summaryrefslogtreecommitdiffstats
path: root/src/Blocks/BlockRail.h
diff options
context:
space:
mode:
authorTycho Bickerstaff <work.tycho@gmail.com>2013-12-22 14:19:27 +0100
committerTycho Bickerstaff <work.tycho@gmail.com>2013-12-22 14:19:27 +0100
commit94ca07cfbfe0016d70963c055c87fe14f8622a4d (patch)
tree28dc91dc948287f802d9628a2ea715e1d4e0be49 /src/Blocks/BlockRail.h
parentChunk is now warnings clean (diff)
parentUpdate GETTING-STARTED.md (diff)
downloadcuberite-94ca07cfbfe0016d70963c055c87fe14f8622a4d.tar
cuberite-94ca07cfbfe0016d70963c055c87fe14f8622a4d.tar.gz
cuberite-94ca07cfbfe0016d70963c055c87fe14f8622a4d.tar.bz2
cuberite-94ca07cfbfe0016d70963c055c87fe14f8622a4d.tar.lz
cuberite-94ca07cfbfe0016d70963c055c87fe14f8622a4d.tar.xz
cuberite-94ca07cfbfe0016d70963c055c87fe14f8622a4d.tar.zst
cuberite-94ca07cfbfe0016d70963c055c87fe14f8622a4d.zip
Diffstat (limited to 'src/Blocks/BlockRail.h')
-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);