summaryrefslogtreecommitdiffstats
path: root/src/Blocks
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2013-12-26 08:57:02 +0100
committerMattes D <github@xoft.cz>2013-12-26 08:57:02 +0100
commite0e01d0615fdeeb32a87dc74ca882e92a450ceb7 (patch)
tree22ef418f2fd3ff628fc010f52a5fe8e945519701 /src/Blocks
parentMerge pull request #471 from mc-server/Fishing_Catapult (diff)
parentMoved increment operator to back of variables (diff)
downloadcuberite-e0e01d0615fdeeb32a87dc74ca882e92a450ceb7.tar
cuberite-e0e01d0615fdeeb32a87dc74ca882e92a450ceb7.tar.gz
cuberite-e0e01d0615fdeeb32a87dc74ca882e92a450ceb7.tar.bz2
cuberite-e0e01d0615fdeeb32a87dc74ca882e92a450ceb7.tar.lz
cuberite-e0e01d0615fdeeb32a87dc74ca882e92a450ceb7.tar.xz
cuberite-e0e01d0615fdeeb32a87dc74ca882e92a450ceb7.tar.zst
cuberite-e0e01d0615fdeeb32a87dc74ca882e92a450ceb7.zip
Diffstat (limited to 'src/Blocks')
-rw-r--r--src/Blocks/BlockRail.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/Blocks/BlockRail.h b/src/Blocks/BlockRail.h
index 24a101652..55cadfa48 100644
--- a/src/Blocks/BlockRail.h
+++ b/src/Blocks/BlockRail.h
@@ -43,6 +43,40 @@ public:
}
+ virtual void OnPlaced(cWorld *a_World, int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override
+ {
+ super::OnPlaced(a_World, a_BlockX, a_BlockY, a_BlockZ, a_BlockType, a_BlockMeta);
+
+ // Alert diagonal rails
+ OnNeighborChanged(a_World, a_BlockX + 1, a_BlockY + 1, a_BlockZ);
+ OnNeighborChanged(a_World, a_BlockX - 1, a_BlockY + 1, a_BlockZ);
+ OnNeighborChanged(a_World, a_BlockX, a_BlockY + 1, a_BlockZ + 1);
+ OnNeighborChanged(a_World, a_BlockX, a_BlockY + 1, a_BlockZ - 1);
+
+ OnNeighborChanged(a_World, a_BlockX + 1, a_BlockY - 1, a_BlockZ);
+ OnNeighborChanged(a_World, a_BlockX - 1, a_BlockY - 1, a_BlockZ);
+ OnNeighborChanged(a_World, a_BlockX, a_BlockY - 1, a_BlockZ + 1);
+ OnNeighborChanged(a_World, a_BlockX, a_BlockY - 1, a_BlockZ - 1);
+ }
+
+
+ virtual void OnDestroyed(cWorld *a_World, int a_BlockX, int a_BlockY, int a_BlockZ) override
+ {
+ super::OnDestroyed(a_World, a_BlockX, a_BlockY, a_BlockZ);
+
+ // Alert diagonal rails
+ OnNeighborChanged(a_World, a_BlockX + 1, a_BlockY + 1, a_BlockZ);
+ OnNeighborChanged(a_World, a_BlockX - 1, a_BlockY + 1, a_BlockZ);
+ OnNeighborChanged(a_World, a_BlockX, a_BlockY + 1, a_BlockZ + 1);
+ OnNeighborChanged(a_World, a_BlockX, a_BlockY + 1, a_BlockZ - 1);
+
+ OnNeighborChanged(a_World, a_BlockX + 1, a_BlockY - 1, a_BlockZ);
+ OnNeighborChanged(a_World, a_BlockX - 1, a_BlockY - 1, a_BlockZ);
+ OnNeighborChanged(a_World, a_BlockX, a_BlockY - 1, a_BlockZ + 1);
+ OnNeighborChanged(a_World, a_BlockX, a_BlockY - 1, a_BlockZ - 1);
+ }
+
+
virtual void OnNeighborChanged(cWorld *a_World, int a_BlockX, int a_BlockY, int a_BlockZ) override
{
NIBBLETYPE Meta = a_World->GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ);