diff options
Diffstat (limited to 'source/Blocks/BlockVine.h')
-rw-r--r-- | source/Blocks/BlockVine.h | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/source/Blocks/BlockVine.h b/source/Blocks/BlockVine.h index 67376a4d8..2a88c9b68 100644 --- a/source/Blocks/BlockVine.h +++ b/source/Blocks/BlockVine.h @@ -2,7 +2,6 @@ #pragma once
#include "BlockHandler.h"
-#include "../Vine.h"
@@ -31,17 +30,43 @@ public: a_World->GetBlockTypeMeta(a_BlockX, a_BlockY, a_BlockZ, BlockType, BlockMeta);
if (BlockType == m_BlockType)
{
- a_BlockMeta = BlockMeta | cVine::DirectionToMetaData(a_BlockFace);
+ a_BlockMeta = BlockMeta | DirectionToMetaData(a_BlockFace);
}
else
{
- a_BlockMeta = cVine::DirectionToMetaData(a_BlockFace);
+ a_BlockMeta = DirectionToMetaData(a_BlockFace);
}
a_BlockType = m_BlockType;
return true;
}
+ static NIBBLETYPE DirectionToMetaData(char a_BlockFace)
+ {
+ switch (a_BlockFace)
+ {
+ case BLOCK_FACE_NORTH: return 0x1;
+ case BLOCK_FACE_SOUTH: return 0x4;
+ case BLOCK_FACE_WEST: return 0x8;
+ case BLOCK_FACE_EAST: return 0x2;
+ default: return 0x0;
+ }
+ }
+
+
+ static char MetaDataToDirection(NIBBLETYPE a_MetaData)
+ {
+ switch(a_MetaData)
+ {
+ case 0x1: return BLOCK_FACE_NORTH;
+ case 0x4: return BLOCK_FACE_SOUTH;
+ case 0x8: return BLOCK_FACE_WEST;
+ case 0x2: return BLOCK_FACE_EAST;
+ default: return BLOCK_FACE_TOP;
+ }
+ }
+
+
/// Returns true if the specified block type is good for vines to attach to
static bool IsBlockAttachable(BLOCKTYPE a_BlockType)
{
|