diff options
Diffstat (limited to 'src/Items/ItemAxe.h')
-rw-r--r-- | src/Items/ItemAxe.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/Items/ItemAxe.h b/src/Items/ItemAxe.h new file mode 100644 index 000000000..656497199 --- /dev/null +++ b/src/Items/ItemAxe.h @@ -0,0 +1,48 @@ + +#pragma once + +#include "ItemHandler.h" +#include "../World.h" +#include "../Entities/Player.h" + + + + + +class cItemAxeHandler : + public cItemHandler +{ + typedef cItemHandler super; +public: + cItemAxeHandler(int a_ItemType) + : cItemHandler(a_ItemType) + { + } + + + virtual float GetBlockBreakingStrength(BLOCKTYPE a_Block) + { + if (!IsBlockMaterialWood(a_Block) && !IsBlockMaterialPlants(a_Block) && !IsBlockMaterialVine(a_Block)) + { + return super::GetBlockBreakingStrength(a_Block); + } + else + { + switch (m_ItemType) + { + case E_ITEM_WOODEN_AXE: return 2.0f; + case E_ITEM_STONE_AXE: return 4.0f; + case E_ITEM_IRON_AXE: return 6.0f; + case E_ITEM_GOLD_AXE: return 12.0f; + case E_ITEM_DIAMOND_AXE: return 8.0f; + } + } + ASSERT(!"Something is wrong here... Maybe they are axes out of a new material?"); + return 1.0f; + } + +} ; + + + + |