diff options
author | Mattes D <github@xoft.cz> | 2014-12-25 01:00:51 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-12-25 01:00:51 +0100 |
commit | 9e478c6f29702002c227dc06c0a1f49d1568de53 (patch) | |
tree | 65a7f96945e955524f52ab3ed98a1207994ba237 /src | |
parent | Fixed forgotten big flower handler. (diff) | |
download | cuberite-9e478c6f29702002c227dc06c0a1f49d1568de53.tar cuberite-9e478c6f29702002c227dc06c0a1f49d1568de53.tar.gz cuberite-9e478c6f29702002c227dc06c0a1f49d1568de53.tar.bz2 cuberite-9e478c6f29702002c227dc06c0a1f49d1568de53.tar.lz cuberite-9e478c6f29702002c227dc06c0a1f49d1568de53.tar.xz cuberite-9e478c6f29702002c227dc06c0a1f49d1568de53.tar.zst cuberite-9e478c6f29702002c227dc06c0a1f49d1568de53.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/Blocks/BlockDoor.h | 3 | ||||
-rw-r--r-- | src/Items/ItemDoor.h | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/Blocks/BlockDoor.h b/src/Blocks/BlockDoor.h index 334519077..53f84b553 100644 --- a/src/Blocks/BlockDoor.h +++ b/src/Blocks/BlockDoor.h @@ -117,7 +117,8 @@ public: static bool CanBeOn(BLOCKTYPE a_BlockType) { // Vanilla refuses to place doors on transparent blocks - return !cBlockInfo::IsTransparent(a_BlockType); + // We need to keep the door compatible with itself, otherwise the top half drops while the bottom half stays + return !cBlockInfo::IsTransparent(a_BlockType) || IsDoorBlockType(a_BlockType); } diff --git a/src/Items/ItemDoor.h b/src/Items/ItemDoor.h index dbba26728..dacf286e5 100644 --- a/src/Items/ItemDoor.h +++ b/src/Items/ItemDoor.h @@ -27,7 +27,7 @@ public: ) override { // Vanilla only allows door placement while clicking on the top face of the block below the door: - if (a_BlockFace != BLOCK_FACE_NONE) + if (a_BlockFace != BLOCK_FACE_TOP) { return false; } @@ -40,7 +40,7 @@ public: } // The door needs a compatible block below it: - if ((a_BlockY > 0) && cBlockDoorHandler::CanBeOn(a_World.GetBlock(a_BlockX, a_BlockY - 1, a_BlockZ))) + if ((a_BlockY > 0) && !cBlockDoorHandler::CanBeOn(a_World.GetBlock(a_BlockX, a_BlockY - 1, a_BlockZ))) { return false; } |