diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2015-03-14 00:05:06 +0100 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2015-03-14 00:05:06 +0100 |
commit | 3d398baf355fd0dee0e282a73c61fe79f288db8f (patch) | |
tree | cc4fc49b1dbcbdf3b0bee969d4b3b5e3ac22ba99 /src/Items/ItemPainting.h | |
parent | Fixed confusion over Item Frame directions (diff) | |
download | cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar.gz cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar.bz2 cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar.lz cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar.xz cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar.zst cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.zip |
Diffstat (limited to '')
-rw-r--r-- | src/Items/ItemPainting.h | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/src/Items/ItemPainting.h b/src/Items/ItemPainting.h index a2a77ce21..d6f2e24b4 100644 --- a/src/Items/ItemPainting.h +++ b/src/Items/ItemPainting.h @@ -21,30 +21,17 @@ public: virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_Dir) override { - if (a_Dir == BLOCK_FACE_NONE) + if ((a_Dir == BLOCK_FACE_NONE) || (a_Dir == BLOCK_FACE_YM) || (a_Dir == BLOCK_FACE_YP)) { - // Client sends this if clicked on top or bottom face + // Paintings can't be flatly placed return false; } AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_Dir); // Make sure block that will be occupied is free BLOCKTYPE Block = a_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ); - AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_Dir, true); // We want the clicked block, so go back again if (Block == E_BLOCK_AIR) { - int Dir = 0; - - // The client uses different values for painting directions and block faces. Our constants are for the block faces, so we convert them here to painting faces - switch (a_Dir) - { - case BLOCK_FACE_ZP: break; // Initialised to zero - case BLOCK_FACE_ZM: Dir = 2; break; - case BLOCK_FACE_XM: Dir = 1; break; - case BLOCK_FACE_XP: Dir = 3; break; - default: ASSERT(!"Unhandled block face when trying spawn painting!"); return false; - } - static const struct // Define all the possible painting titles { AString Title; @@ -78,7 +65,7 @@ public: { "BurningSkull" } }; - cPainting * Painting = new cPainting(gPaintingTitlesList[a_World->GetTickRandomNumber(ARRAYCOUNT(gPaintingTitlesList) - 1)].Title, Dir, a_BlockX, a_BlockY, a_BlockZ); + cPainting * Painting = new cPainting(gPaintingTitlesList[a_World->GetTickRandomNumber(ARRAYCOUNT(gPaintingTitlesList) - 1)].Title, a_Dir, a_BlockX, a_BlockY, a_BlockZ); Painting->Initialize(*a_World); if (!a_Player->IsGameModeCreative()) |