From 007e75de9defc3d96ac61400fa983da812b4b15e Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Wed, 12 Jun 2013 08:22:34 +0000 Subject: Implemented the Hopper block handler Hoppers can be placed properly, but won't work yet. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1583 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Blocks/BlockHopper.h | 46 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 source/Blocks/BlockHopper.h (limited to 'source/Blocks/BlockHopper.h') diff --git a/source/Blocks/BlockHopper.h b/source/Blocks/BlockHopper.h new file mode 100644 index 000000000..10f865564 --- /dev/null +++ b/source/Blocks/BlockHopper.h @@ -0,0 +1,46 @@ + +// BlockHopper.h + +// Declares the cBlockHopperHandler class representing the handler for the Hopper block + + + + + +class cBlockHopperHandler : + public cBlockEntityHandler +{ +public: + cBlockHopperHandler(BLOCKTYPE a_BlockType) + : cBlockEntityHandler(a_BlockType) + { + } + + + 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 + { + a_BlockType = m_BlockType; + + // Convert the blockface into meta: + switch (a_BlockFace) + { + case BLOCK_FACE_BOTTOM: a_BlockMeta = E_META_HOPPER_FACING_YM; break; + case BLOCK_FACE_TOP: a_BlockMeta = E_META_HOPPER_FACING_YM; break; + case BLOCK_FACE_EAST: a_BlockMeta = E_META_HOPPER_FACING_XM; break; + case BLOCK_FACE_NORTH: a_BlockMeta = E_META_HOPPER_FACING_ZP; break; + case BLOCK_FACE_SOUTH: a_BlockMeta = E_META_HOPPER_FACING_ZM; break; + case BLOCK_FACE_WEST: a_BlockMeta = E_META_HOPPER_FACING_XP; break; + default: a_BlockMeta = E_META_HOPPER_UNATTACHED; break; + } + return true; + } +} ; + + + + -- cgit v1.2.3