1
0

Fixed door placement.

This commit is contained in:
Mattes D 2014-12-25 01:00:51 +01:00
parent 1af6210466
commit 9e478c6f29
2 changed files with 4 additions and 3 deletions

View File

@ -117,7 +117,8 @@ public:
static bool CanBeOn(BLOCKTYPE a_BlockType) static bool CanBeOn(BLOCKTYPE a_BlockType)
{ {
// Vanilla refuses to place doors on transparent blocks // 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);
} }

View File

@ -27,7 +27,7 @@ public:
) override ) override
{ {
// Vanilla only allows door placement while clicking on the top face of the block below the door: // 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; return false;
} }
@ -40,7 +40,7 @@ public:
} }
// The door needs a compatible block below it: // 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; return false;
} }