diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-04-03 20:18:34 +0200 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-04-03 20:18:34 +0200 |
commit | e1ba51e6ca1cdff477279b7064fc0e0b5117c085 (patch) | |
tree | eaad9f451838b75cd990b548b93f8287fbd75865 /src/Blocks/BlockAnvil.h | |
parent | Fixed some bugs (diff) | |
parent | Fixed a few MSVC type warnings. (diff) | |
download | cuberite-e1ba51e6ca1cdff477279b7064fc0e0b5117c085.tar cuberite-e1ba51e6ca1cdff477279b7064fc0e0b5117c085.tar.gz cuberite-e1ba51e6ca1cdff477279b7064fc0e0b5117c085.tar.bz2 cuberite-e1ba51e6ca1cdff477279b7064fc0e0b5117c085.tar.lz cuberite-e1ba51e6ca1cdff477279b7064fc0e0b5117c085.tar.xz cuberite-e1ba51e6ca1cdff477279b7064fc0e0b5117c085.tar.zst cuberite-e1ba51e6ca1cdff477279b7064fc0e0b5117c085.zip |
Diffstat (limited to 'src/Blocks/BlockAnvil.h')
-rw-r--r-- | src/Blocks/BlockAnvil.h | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/Blocks/BlockAnvil.h b/src/Blocks/BlockAnvil.h index 9f5f84be0..93a796ef7 100644 --- a/src/Blocks/BlockAnvil.h +++ b/src/Blocks/BlockAnvil.h @@ -18,11 +18,13 @@ public: { } + virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override { a_Pickups.push_back(cItem(E_BLOCK_ANVIL, 1, a_BlockMeta >> 2)); } + virtual bool GetPlacementBlockTypeMeta( cChunkInterface & a_ChunkInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, @@ -31,27 +33,23 @@ public: ) override { a_BlockType = m_BlockType; - - int Direction = (int)floor(a_Player->GetYaw() * 4.0 / 360.0 + 0.5) & 0x3; - int RawMeta = a_BlockMeta >> 2; - - Direction++; - Direction %= 4; + NIBBLETYPE HighBits = a_BlockMeta & 0x0c; // Only highest two bits are preserved + int Direction = (int)floor(a_Player->GetYaw() * 4.0 / 360.0 + 1.5) & 0x3; switch (Direction) { - case 0: a_BlockMeta = 0x2 | RawMeta << 2; break; - case 1: a_BlockMeta = 0x3 | RawMeta << 2; break; - case 2: a_BlockMeta = 0x0 | RawMeta << 2; break; - case 3: a_BlockMeta = 0x1 | RawMeta << 2; break; + case 0: a_BlockMeta = 0x2 | HighBits; break; + case 1: a_BlockMeta = 0x3 | HighBits; break; + case 2: a_BlockMeta = 0x0 | HighBits; break; + case 3: a_BlockMeta = 0x1 | HighBits; break; default: { return false; } } - return true; } + virtual bool IsUseable() override { return true; |