summaryrefslogtreecommitdiffstats
path: root/src/Blocks
diff options
context:
space:
mode:
authorLogicParrot <LogicParrot@users.noreply.github.com>2016-04-23 00:28:25 +0200
committerLogicParrot <LogicParrot@users.noreply.github.com>2016-04-23 00:28:25 +0200
commit932c59ee38ac29a300962ab0d2f35362a2deb485 (patch)
tree755a1e62f0b67ac4c8d059145a9e082d0cb11876 /src/Blocks
parentMerge pull request #3048 from Woazboat/minecarts (diff)
parentReduced unnecessary block updates (diff)
downloadcuberite-932c59ee38ac29a300962ab0d2f35362a2deb485.tar
cuberite-932c59ee38ac29a300962ab0d2f35362a2deb485.tar.gz
cuberite-932c59ee38ac29a300962ab0d2f35362a2deb485.tar.bz2
cuberite-932c59ee38ac29a300962ab0d2f35362a2deb485.tar.lz
cuberite-932c59ee38ac29a300962ab0d2f35362a2deb485.tar.xz
cuberite-932c59ee38ac29a300962ab0d2f35362a2deb485.tar.zst
cuberite-932c59ee38ac29a300962ab0d2f35362a2deb485.zip
Diffstat (limited to 'src/Blocks')
-rw-r--r--src/Blocks/BlockButton.h4
-rw-r--r--src/Blocks/BlockLeaves.h15
2 files changed, 9 insertions, 10 deletions
diff --git a/src/Blocks/BlockButton.h b/src/Blocks/BlockButton.h
index b67ae7c97..6a162e331 100644
--- a/src/Blocks/BlockButton.h
+++ b/src/Blocks/BlockButton.h
@@ -33,7 +33,7 @@ public:
// Set p the ON bit to on
Meta |= 0x08;
- a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, Meta);
+ a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, Meta, false);
a_WorldInterface.WakeUpSimulators(a_BlockX, a_BlockY, a_BlockZ);
a_WorldInterface.GetBroadcastManager().BroadcastSoundEffect("random.click", x, y, z, 0.5f, 0.6f);
@@ -44,7 +44,7 @@ public:
if (a_World.GetBlock(a_BlockX, a_BlockY, a_BlockZ) == m_BlockType)
{
// Block hasn't change in the meantime; set its meta
- a_World.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, a_World.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ) & 0x07);
+ a_World.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, a_World.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ) & 0x07, false);
a_World.WakeUpSimulators(a_BlockX, a_BlockY, a_BlockZ);
a_World.BroadcastSoundEffect("random.click", x, y, z, 0.5f, 0.5f);
}
diff --git a/src/Blocks/BlockLeaves.h b/src/Blocks/BlockLeaves.h
index 653fd19bb..84e186b4c 100644
--- a/src/Blocks/BlockLeaves.h
+++ b/src/Blocks/BlockLeaves.h
@@ -75,11 +75,12 @@ public:
virtual void OnNeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_WhichNeighbor) override
{
- // Unset 0x8 bit so this block gets checked for decay:
NIBBLETYPE Meta = a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ);
- if ((Meta & 0x08) != 0)
+
+ // Set 0x8 bit so this block gets checked for decay:
+ if ((Meta & 0x08) == 0)
{
- a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, Meta & 0x7, false, false);
+ a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, Meta | 0x8, true, false);
}
}
@@ -92,7 +93,7 @@ public:
return;
}
- if ((Meta & 0x8) != 0)
+ if ((Meta & 0x8) == 0)
{
// These leaves have been checked for decay lately and nothing around them changed
return;
@@ -116,10 +117,8 @@ public:
if (HasNearLog(Area, BlockX, a_RelY, BlockZ))
{
- // Wood found, the leaves stay; mark them as checked.
- // There is no point in saving this to disk or informing the client
- // So we use SetMetaQuiet
- a_Chunk.SetMeta(a_RelX, a_RelY, a_RelZ, Meta | 0x8, false, false);
+ // Wood found, the leaves stay; unset the check bit
+ a_Chunk.SetMeta(a_RelX, a_RelY, a_RelZ, Meta ^ 0x8, true, false);
return;
}