diff options
Diffstat (limited to 'source/Blocks/BlockLever.h')
-rw-r--r-- | source/Blocks/BlockLever.h | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/source/Blocks/BlockLever.h b/source/Blocks/BlockLever.h deleted file mode 100644 index 5e6a3bd1e..000000000 --- a/source/Blocks/BlockLever.h +++ /dev/null @@ -1,101 +0,0 @@ -#pragma once - -#include "BlockHandler.h" - - - - - -class cBlockLeverHandler : - public cBlockHandler -{ -public: - cBlockLeverHandler(BLOCKTYPE a_BlockType); - - virtual void OnUse(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) override; - - - virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override - { - // Reset meta to 0 - a_Pickups.push_back(cItem(E_BLOCK_LEVER, 1, 0)); - } - - - virtual bool IsUseable(void) override - { - return true; - } - - - 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; - a_BlockMeta = LeverDirectionToMetaData(a_BlockFace); - return true; - } - - - inline static NIBBLETYPE LeverDirectionToMetaData(char a_Dir) - { - // Determine lever direction: - switch (a_Dir) - { - case BLOCK_FACE_YP: return 0x6; - case BLOCK_FACE_XP: return 0x1; - case BLOCK_FACE_XM: return 0x2; - case BLOCK_FACE_ZP: return 0x3; - case BLOCK_FACE_ZM: return 0x4; - case BLOCK_FACE_YM: return 0x0; - default: return 0x6; - } - } - - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } - - - inline static NIBBLETYPE BlockMetaDataToBlockFace(NIBBLETYPE a_Meta) - { - switch (a_Meta & 0x7) - { - case 0x1: return BLOCK_FACE_XP; - case 0x2: return BLOCK_FACE_XM; - case 0x3: return BLOCK_FACE_ZP; - case 0x4: return BLOCK_FACE_ZM; - case 0x5: - case 0x6: return BLOCK_FACE_YP; - case 0x7: - case 0x0: return BLOCK_FACE_YM; - default: - { - ASSERT(!"Unhandled block meta!"); - return BLOCK_FACE_NONE; - } - } - } - - - virtual bool CanBeAt(int a_RelX, int a_RelY, int a_RelZ, const cChunk & a_Chunk) override - { - NIBBLETYPE Meta; - a_Chunk.UnboundedRelGetBlockMeta(a_RelX, a_RelY, a_RelZ, Meta); - - AddFaceDirection(a_RelX, a_RelY, a_RelZ, BlockMetaDataToBlockFace(Meta), true); - BLOCKTYPE BlockIsOn; a_Chunk.UnboundedRelGetBlockType(a_RelX, a_RelY, a_RelZ, BlockIsOn); - - return (a_RelY > 0) && (g_BlockIsSolid[BlockIsOn]); - } -} ; - - - - |