summaryrefslogtreecommitdiffstats
path: root/src/Items/ItemNetherWart.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Items/ItemNetherWart.h')
-rw-r--r--src/Items/ItemNetherWart.h32
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;
}
} ;