diff options
Diffstat (limited to 'source/items/ItemSlab.h')
-rw-r--r-- | source/items/ItemSlab.h | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/source/items/ItemSlab.h b/source/items/ItemSlab.h index 9b91530c9..955d3acfc 100644 --- a/source/items/ItemSlab.h +++ b/source/items/ItemSlab.h @@ -1,8 +1,13 @@ +
#pragma once
#include "Item.h"
#include "../cWorld.h"
+
+
+
+
class cItemSlabHandler : public cItemHandler
{
public:
@@ -12,19 +17,20 @@ public: }
- virtual bool OnItemUse(cWorld *a_World, cPlayer *a_Player, cItem *a_Item, int a_X, int a_Y, int a_Z, char a_Dir) override
+ virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, cItem * a_Item, int a_X, int a_Y, int a_Z, char a_Dir) override
{
BLOCKTYPE Block;
NIBBLETYPE Meta;
a_World->GetBlockTypeMeta(a_X, a_Y, a_Z, Block, Meta);
- if( (a_Dir == 0 || a_Dir == 1) //Only when clicking on top or on bottom of the block
- && (Block == E_BLOCK_WOODEN_SLAB || Block == E_BLOCK_STONE_SLAB) //It is a slab
- && (Block == a_Item->m_ItemID) //Same slab
- && ((Meta & 0x7) == (a_Item->m_ItemHealth & 0x7))) //Same Texture
+ if (
+ (a_Dir == 0 || a_Dir == 1) // Only when clicking on top or on bottom of the block
+ && (Block == E_BLOCK_WOODEN_SLAB || Block == E_BLOCK_STONE_SLAB) // It is a slab
+ && (Block == a_Item->m_ItemID) // Same slab
+ && ((Meta & 0x7) == (a_Item->m_ItemHealth & 0x7))) // Same Texture
{
cItem Item(a_Item->m_ItemID, 1);
- if(a_Player->GetInventory().RemoveItem(Item))
+ if (a_Player->GetInventory().RemoveItem(Item))
{
a_World->SetBlock(a_X, a_Y, a_Z, Block - 1, Meta); //Block - 1 simple hack to save one if statement
return true;
@@ -32,9 +38,8 @@ public: }
return false;
}
+} ;
+
+
+
- virtual NIBBLETYPE GetBlockMeta(NIBBLETYPE a_ItemMeta) override
- {
- return a_ItemMeta;
- }
-};
\ No newline at end of file |