summaryrefslogtreecommitdiffstats
path: root/src/Blocks/BlockDoor.cpp
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2014-03-09 13:53:50 +0100
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2014-03-09 13:53:50 +0100
commitc2978a34576192d79c1fdc4664eafe316be49e51 (patch)
tree48db5c74ed757bfdf178a70e77eddff693c76a35 /src/Blocks/BlockDoor.cpp
parentHexified colours (diff)
parentUpdated Core (diff)
downloadcuberite-c2978a34576192d79c1fdc4664eafe316be49e51.tar
cuberite-c2978a34576192d79c1fdc4664eafe316be49e51.tar.gz
cuberite-c2978a34576192d79c1fdc4664eafe316be49e51.tar.bz2
cuberite-c2978a34576192d79c1fdc4664eafe316be49e51.tar.lz
cuberite-c2978a34576192d79c1fdc4664eafe316be49e51.tar.xz
cuberite-c2978a34576192d79c1fdc4664eafe316be49e51.tar.zst
cuberite-c2978a34576192d79c1fdc4664eafe316be49e51.zip
Diffstat (limited to 'src/Blocks/BlockDoor.cpp')
-rw-r--r--src/Blocks/BlockDoor.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/Blocks/BlockDoor.cpp b/src/Blocks/BlockDoor.cpp
index 2ff5c1c37..4e38ef334 100644
--- a/src/Blocks/BlockDoor.cpp
+++ b/src/Blocks/BlockDoor.cpp
@@ -9,7 +9,7 @@
cBlockDoorHandler::cBlockDoorHandler(BLOCKTYPE a_BlockType)
- : cBlockHandler(a_BlockType)
+ : super(a_BlockType)
{
}
@@ -55,6 +55,29 @@ void cBlockDoorHandler::OnUse(cChunkInterface & a_ChunkInterface, cWorldInterfac
+void cBlockDoorHandler::OnCancelRightClick(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace)
+{
+ UNUSED(a_ChunkInterface);
+
+ a_WorldInterface.SendBlockTo(a_BlockX, a_BlockY, a_BlockZ, a_Player);
+ NIBBLETYPE Meta = a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ);
+
+ if (Meta & 8)
+ {
+ // Current block is top of the door
+ a_WorldInterface.SendBlockTo(a_BlockX, a_BlockY - 1, a_BlockZ, a_Player);
+ }
+ else
+ {
+ // Current block is bottom of the door
+ a_WorldInterface.SendBlockTo(a_BlockX, a_BlockY + 1, a_BlockZ, a_Player);
+ }
+}
+
+
+
+
+
void cBlockDoorHandler::OnPlacedByPlayer(
cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player,
int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace,