diff options
Diffstat (limited to 'src/Items/SimplePlaceableItemHandler.h')
-rw-r--r-- | src/Items/SimplePlaceableItemHandler.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/Items/SimplePlaceableItemHandler.h b/src/Items/SimplePlaceableItemHandler.h new file mode 100644 index 000000000..3908bc1f3 --- /dev/null +++ b/src/Items/SimplePlaceableItemHandler.h @@ -0,0 +1,37 @@ +#pragma once + + +#include "ItemHandler.h" + +class cSimplePlaceableItemHandler : + public cItemHandler +{ + using Super = cItemHandler; + +public: + cSimplePlaceableItemHandler(int a_ItemType, BLOCKTYPE a_BlockType) : + Super(a_ItemType) + { + m_BlockType = a_BlockType; + } + + + virtual bool IsPlaceable(void) override + { + return true; + } + + + 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 + { + a_BlockType = m_BlockType; + a_BlockMeta = 0; + return true; + } + +protected: + BLOCKTYPE m_BlockType; +}; |