diff options
Diffstat (limited to 'source/Blocks/BlockFenceGate.h')
-rw-r--r-- | source/Blocks/BlockFenceGate.h | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/source/Blocks/BlockFenceGate.h b/source/Blocks/BlockFenceGate.h deleted file mode 100644 index 6423a7cb0..000000000 --- a/source/Blocks/BlockFenceGate.h +++ /dev/null @@ -1,88 +0,0 @@ - -#pragma once - -#include "BlockHandler.h" - - - - - -class cBlockFenceGateHandler : - public cBlockHandler -{ -public: - cBlockFenceGateHandler(BLOCKTYPE a_BlockType) : - cBlockHandler(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; - a_BlockMeta = PlayerYawToMetaData(a_Player->GetRotation()); - return true; - } - - - 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 - { - NIBBLETYPE OldMetaData = a_World->GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ); - NIBBLETYPE NewMetaData = PlayerYawToMetaData(a_Player->GetRotation()); - OldMetaData ^= 4; // Toggle the gate - if ((OldMetaData & 1) == (NewMetaData & 1)) - { - // Standing in front of the gate - apply new direction - a_World->SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, (OldMetaData & 4) | (NewMetaData & 3)); - } - else - { - // Standing aside - use last direction - a_World->SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, OldMetaData); - } - } - - - virtual bool IsUseable(void) override - { - return true; - } - - - /// Converts the player's yaw to placed gate's blockmeta - inline static NIBBLETYPE PlayerYawToMetaData(double a_Yaw) - { - ASSERT((a_Yaw >= -180) && (a_Yaw < 180)); - - a_Yaw += 360 + 45; - if (a_Yaw > 360) - { - a_Yaw -= 360; - } - if ((a_Yaw >= 0) && (a_Yaw < 90)) - { - return 0x0; - } - else if ((a_Yaw >= 180) && (a_Yaw < 270)) - { - return 0x2; - } - else if ((a_Yaw >= 90) && (a_Yaw < 180)) - { - return 0x1; - } - else - { - return 0x3; - } - } -} ; - - - - |