Files
minecraft-pe-0.6.1/src/world/item/PickaxeItem.cpp
2026-03-02 22:04:18 +03:00

54 lines
1.8 KiB
C++
Executable File

#include "PickaxeItem.h"
#include "../level/material/Material.h"
#include "../level/tile/Tile.h"
PickaxeItem::PickaxeItem( int id, const Tier& tier ) : super(id, 2, tier)
{
TileList d;
d.push_back(Tile::stoneBrick);
d.push_back(Tile::stoneSlab);
d.push_back(Tile::stoneSlabHalf);
d.push_back(Tile::rock);
d.push_back(Tile::sandStone);
d.push_back(Tile::mossStone);
d.push_back(Tile::ironOre);
d.push_back(Tile::ironBlock);
d.push_back(Tile::coalOre);
d.push_back(Tile::goldBlock);
d.push_back(Tile::goldOre);
d.push_back(Tile::emeraldOre);
d.push_back(Tile::emeraldBlock);
d.push_back(Tile::ice);
//d.push_back(Tile::hellRock);
d.push_back(Tile::lapisOre);
d.push_back(Tile::lapisBlock);
d.push_back(Tile::redStoneOre);
d.push_back(Tile::redStoneOre_lit);
//d.push_back(Tile::rail);
//d.push_back(Tile::detectorRail);
//d.push_back(Tile::goldenRail);
setTiles(d);
}
bool PickaxeItem::canDestroySpecial( const Tile* tile ) const
{
if (tile == Tile::obsidian) return tier.getLevel() == 3;
if (tile == Tile::emeraldBlock || tile == Tile::emeraldOre) return tier.getLevel() >= 2;
if (tile == Tile::goldBlock || tile == Tile::goldOre) return tier.getLevel() >= 2;
if (tile == Tile::ironBlock || tile == Tile::ironOre) return tier.getLevel() >= 1;
if (tile == Tile::lapisBlock || tile == Tile::lapisOre) return tier.getLevel() >= 1;
if (tile == Tile::redStoneOre || tile == Tile::redStoneOre_lit) return tier.getLevel() >= 2;
if (tile->material == Material::stone) return true;
if (tile->material == Material::metal) return true;
return false;
}
float PickaxeItem::getDestroySpeed( ItemInstance* itemInstance, Tile* tile )
{
if (tile != NULL && (tile->material == Material::metal || tile->material == Material::stone)) {
return speed;
}
return super::getDestroySpeed(itemInstance, tile);
}