diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-04-27 18:35:41 +0200 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-04-27 18:35:41 +0200 |
commit | bbc5faa723b7dd63250949f7b28601ffd748e2f5 (patch) | |
tree | e74901e581237b889cd8d7ccfaaf376f8b616508 /src/Chunk.cpp | |
parent | Merge pull request #941 from archshift/master (diff) | |
download | cuberite-bbc5faa723b7dd63250949f7b28601ffd748e2f5.tar cuberite-bbc5faa723b7dd63250949f7b28601ffd748e2f5.tar.gz cuberite-bbc5faa723b7dd63250949f7b28601ffd748e2f5.tar.bz2 cuberite-bbc5faa723b7dd63250949f7b28601ffd748e2f5.tar.lz cuberite-bbc5faa723b7dd63250949f7b28601ffd748e2f5.tar.xz cuberite-bbc5faa723b7dd63250949f7b28601ffd748e2f5.tar.zst cuberite-bbc5faa723b7dd63250949f7b28601ffd748e2f5.zip |
Diffstat (limited to '')
-rw-r--r-- | src/Chunk.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/Chunk.cpp b/src/Chunk.cpp index cd3bceda2..053648262 100644 --- a/src/Chunk.cpp +++ b/src/Chunk.cpp @@ -749,7 +749,7 @@ void cChunk::ProcessQueuedSetBlocks(void) { if (itr->m_Tick <= CurrTick) { - if (itr->m_PreviousType != E_BLOCK_AIR) // PreviousType defaults to -1 if not specified + if (itr->m_PreviousType != E_BLOCK_AIR) // PreviousType defaults to 0 if not specified { if (GetBlock(itr->m_RelX, itr->m_RelY, itr->m_RelZ) == itr->m_PreviousType) { @@ -1638,6 +1638,24 @@ void cChunk::FastSetBlock(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_BlockT +void cChunk::SetMeta(int a_BlockIdx, NIBBLETYPE a_Meta) +{ + if (GetNibble(m_BlockMeta, a_BlockIdx) == a_Meta) + { + return; + } + + MarkDirty(); + SetNibble(m_BlockMeta, a_BlockIdx, a_Meta); + Vector3i Coords(IndexToCoordinate(a_BlockIdx)); + + m_PendingSendBlocks.push_back(sSetBlock(m_PosX, m_PosZ, Coords.x, Coords.y, Coords.z, GetBlock(a_BlockIdx), a_Meta)); +} + + + + + void cChunk::SendBlockTo(int a_RelX, int a_RelY, int a_RelZ, cClientHandle * a_Client) { // The coords must be valid, because the upper level already does chunk lookup. No need to check them again. |