summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Chunk.cpp18
-rw-r--r--src/Chunk.h8
2 files changed, 7 insertions, 19 deletions
diff --git a/src/Chunk.cpp b/src/Chunk.cpp
index 0303e1502..a986ac076 100644
--- a/src/Chunk.cpp
+++ b/src/Chunk.cpp
@@ -1568,24 +1568,6 @@ 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)
{
diff --git a/src/Chunk.h b/src/Chunk.h
index d2328971f..26f1e9d10 100644
--- a/src/Chunk.h
+++ b/src/Chunk.h
@@ -328,7 +328,13 @@ public:
}
inline void SetMeta(int a_RelX, int a_RelY, int a_RelZ, NIBBLETYPE a_Meta)
{
- m_ChunkBuffer.SetMeta(a_RelX, a_RelY, a_RelZ, a_Meta);
+ if (!GetMeta(a_RelX, a_RelY, a_RelZ) == a_Meta)
+ {
+ MarkDirty();
+ m_ChunkBuffer.SetMeta(a_RelX, a_RelY, a_RelZ, a_Meta);
+
+ m_PendingSendBlocks.push_back(sSetBlock(m_PosX, m_PosZ, a_RelX, a_RelY, a_RelZ, GetBlock(a_RelX, a_RelY, a_RelZ), a_Meta));
+ }
}
inline NIBBLETYPE GetBlockLight(int a_RelX, int a_RelY, int a_RelZ) const {return m_ChunkBuffer.GetBlockLight(a_RelX, a_RelY, a_RelZ); }