diff options
author | Mattes D <github@xoft.cz> | 2015-03-15 14:30:23 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2015-03-15 14:30:23 +0100 |
commit | 0add3d461782b7a89ff614f78f77cbb37476594d (patch) | |
tree | 22f4c7f9023efc0554cc0c2b67235b93b8bd82fb /src/Items | |
parent | Merge pull request #1811 from mc-server/grass (diff) | |
parent | Fixed style violations (diff) | |
download | cuberite-0add3d461782b7a89ff614f78f77cbb37476594d.tar cuberite-0add3d461782b7a89ff614f78f77cbb37476594d.tar.gz cuberite-0add3d461782b7a89ff614f78f77cbb37476594d.tar.bz2 cuberite-0add3d461782b7a89ff614f78f77cbb37476594d.tar.lz cuberite-0add3d461782b7a89ff614f78f77cbb37476594d.tar.xz cuberite-0add3d461782b7a89ff614f78f77cbb37476594d.tar.zst cuberite-0add3d461782b7a89ff614f78f77cbb37476594d.zip |
Diffstat (limited to 'src/Items')
-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()) |