diff options
Diffstat (limited to 'src/Items/ItemNetherWart.h')
-rw-r--r-- | src/Items/ItemNetherWart.h | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/src/Items/ItemNetherWart.h b/src/Items/ItemNetherWart.h index 462ea61f9..61043226d 100644 --- a/src/Items/ItemNetherWart.h +++ b/src/Items/ItemNetherWart.h @@ -24,37 +24,23 @@ public: - virtual bool IsPlaceable(void) override + virtual bool CommitPlacement(cPlayer & a_Player, const cItem & a_HeldItem, const Vector3i a_PlacePosition, const eBlockFace a_ClickedBlockFace, const Vector3i a_CursorPosition) override { - return true; + // Only allow planting nether wart onto the top side of the block: + if (a_ClickedBlockFace != BLOCK_FACE_TOP) + { + return true; + } + + return a_Player.PlaceBlock(a_PlacePosition, E_BLOCK_NETHER_WART, 0); } - virtual bool GetPlacementBlockTypeMeta( - cWorld * a_World, cPlayer * a_Player, - const Vector3i a_PlacedBlockPos, - eBlockFace a_ClickedBlockFace, - const Vector3i a_CursorPos, - BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta - ) override + virtual bool IsPlaceable(void) override { - // Only allow planting nether wart onto the top side of the block: - if (a_ClickedBlockFace != BLOCK_FACE_TOP) - { - return false; - } - - // Only allow placement on soulsand - if ((a_PlacedBlockPos.y < 1) || (a_World->GetBlock(a_PlacedBlockPos.addedY(-1)) != E_BLOCK_SOULSAND)) - { - return false; - } - - a_BlockMeta = 0; - a_BlockType = E_BLOCK_NETHER_WART; return true; } } ; |