diff options
author | Mattes D <github@xoft.cz> | 2014-12-24 07:20:17 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-12-24 07:20:17 +0100 |
commit | ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0 (patch) | |
tree | 445feea29fb0a2228cd8187821a1bf8e519c5807 /src/Items/ItemSign.h | |
parent | Added Vector3::TurnCW() and Vector3::TurnCCW() (diff) | |
download | cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar.gz cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar.bz2 cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar.lz cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar.xz cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar.zst cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.zip |
Diffstat (limited to 'src/Items/ItemSign.h')
-rw-r--r-- | src/Items/ItemSign.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/Items/ItemSign.h b/src/Items/ItemSign.h index 0fa0fa0be..dabbdbba1 100644 --- a/src/Items/ItemSign.h +++ b/src/Items/ItemSign.h @@ -13,13 +13,33 @@ class cItemSignHandler : public cItemHandler { + typedef cItemHandler super; public: cItemSignHandler(int a_ItemType) : - cItemHandler(a_ItemType) + super(a_ItemType) { } + virtual bool OnPlayerPlace( + cWorld & a_World, cPlayer & a_Player, const cItem & a_EquippedItem, + int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, + int a_CursorX, int a_CursorY, int a_CursorZ + ) + { + // If the regular placement doesn't work, do no further processing: + if (!super::OnPlayerPlace(a_World, a_Player, a_EquippedItem, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ)) + { + return false; + } + + // After successfully placing the sign, open the sign editor for the player: + AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); + a_Player.GetClientHandle()->SendEditSign(a_BlockX, a_BlockY, a_BlockZ); + return true; + } + + virtual bool IsPlaceable(void) override { return true; |