From 43e684071933adef93040e8d4b830d5c6b71cf9a Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Sat, 12 Jan 2013 04:46:01 +0000 Subject: Merged branch "branches/hooks" into "trunk". git-svn-id: http://mc-server.googlecode.com/svn/trunk@1139 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Items/ItemSign.h | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) (limited to 'source/Items/ItemSign.h') diff --git a/source/Items/ItemSign.h b/source/Items/ItemSign.h index b5593a010..758e08c4d 100644 --- a/source/Items/ItemSign.h +++ b/source/Items/ItemSign.h @@ -3,24 +3,49 @@ #include "ItemHandler.h" #include "../World.h" +#include "../Sign.h" -class cItemSignHandler : public cItemHandler + + + + +class cItemSignHandler : + public cItemHandler { public: - cItemSignHandler(int a_ItemType) - : cItemHandler(a_ItemType) + cItemSignHandler(int a_ItemType) : + cItemHandler(a_ItemType) { - } - virtual bool IsPlaceable() override + + virtual bool IsPlaceable(void) override { return true; } - virtual BLOCKTYPE GetBlockType() override + + virtual bool GetPlacementBlockTypeMeta( + cWorld * a_World, cPlayer * a_Player, + int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, + int a_CursorX, int a_CursorY, int a_CursorZ, + BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta + ) override { - return E_BLOCK_SIGN_POST; + if (a_BlockFace == BLOCK_FACE_TOP) + { + a_BlockMeta = cSign::RotationToMetaData(a_Player->GetRotation()); + a_BlockType = E_BLOCK_SIGN_POST; + } + else + { + a_BlockMeta = cSign::DirectionToMetaData(a_BlockFace); + a_BlockType = E_BLOCK_WALLSIGN; + } + return true; } +} ; + + + -}; \ No newline at end of file -- cgit v1.2.3