diff --git a/src/pocketmine/block/Anvil.php b/src/pocketmine/block/Anvil.php index aecd4c9e5..34cdf1003 100644 --- a/src/pocketmine/block/Anvil.php +++ b/src/pocketmine/block/Anvil.php @@ -28,7 +28,7 @@ use pocketmine\block\utils\Fallable; use pocketmine\block\utils\FallableTrait; use pocketmine\inventory\AnvilInventory; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\math\AxisAlignedBB; use pocketmine\math\Bearing; use pocketmine\math\Facing; @@ -43,7 +43,7 @@ class Anvil extends Transparent implements Fallable{ protected $facing = Facing::NORTH; public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 6000.0)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 6000.0)); } protected function writeStateToMeta() : int{ diff --git a/src/pocketmine/block/BlockFactory.php b/src/pocketmine/block/BlockFactory.php index c757bad17..e67b2b646 100644 --- a/src/pocketmine/block/BlockFactory.php +++ b/src/pocketmine/block/BlockFactory.php @@ -50,7 +50,7 @@ use pocketmine\block\utils\PillarRotationTrait; use pocketmine\block\utils\TreeType; use pocketmine\item\Item; use pocketmine\item\ItemIds; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\world\Position; use function array_fill; use function array_filter; @@ -99,7 +99,7 @@ class BlockFactory{ self::register(new Bookshelf(new BID(Ids::BOOKSHELF), "Bookshelf")); self::register(new BrewingStand(new BID(Ids::BREWING_STAND_BLOCK, 0, ItemIds::BREWING_STAND, TileBrewingStand::class), "Brewing Stand")); - $bricksBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0); + $bricksBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); self::register(new Stair(new BID(Ids::BRICK_STAIRS), "Brick Stairs", $bricksBreakInfo)); self::register(new Solid(new BID(Ids::BRICK_BLOCK), "Bricks", $bricksBreakInfo)); @@ -114,7 +114,7 @@ class BlockFactory{ self::register(new CoalOre(new BID(Ids::COAL_ORE), "Coal Ore")); self::register(new CoarseDirt(new BID(Ids::DIRT, Meta::DIRT_COARSE), "Coarse Dirt")); - $cobblestoneBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0); + $cobblestoneBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); self::register(new Solid(new BID(Ids::COBBLESTONE), "Cobblestone", $cobblestoneBreakInfo)); self::register(new Solid(new BID(Ids::MOSSY_COBBLESTONE), "Mossy Cobblestone", $cobblestoneBreakInfo)); self::register(new Stair(new BID(Ids::COBBLESTONE_STAIRS), "Cobblestone Stairs", $cobblestoneBreakInfo)); @@ -127,7 +127,7 @@ class BlockFactory{ self::register(new DeadBush(new BID(Ids::DEADBUSH), "Dead Bush")); self::register(new DetectorRail(new BID(Ids::DETECTOR_RAIL), "Detector Rail")); - self::register(new Solid(new BID(Ids::DIAMOND_BLOCK), "Diamond Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_IRON, 30.0))); + self::register(new Solid(new BID(Ids::DIAMOND_BLOCK), "Diamond Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0))); self::register(new DiamondOre(new BID(Ids::DIAMOND_ORE), "Diamond Ore")); self::register(new Dirt(new BID(Ids::DIRT, Meta::DIRT_NORMAL), "Dirt")); self::register(new DoublePlant(new BID(Ids::DOUBLE_PLANT, Meta::DOUBLE_PLANT_SUNFLOWER), "Sunflower")); @@ -138,14 +138,14 @@ class BlockFactory{ self::register(new DoubleTallGrass(new BID(Ids::DOUBLE_PLANT, Meta::DOUBLE_PLANT_LARGE_FERN), "Large Fern")); self::register(new DragonEgg(new BID(Ids::DRAGON_EGG), "Dragon Egg")); self::register(new DriedKelp(new BID(Ids::DRIED_KELP_BLOCK), "Dried Kelp Block", new BlockBreakInfo(0.5, BlockToolType::NONE, 0, 12.5))); - self::register(new Solid(new BID(Ids::EMERALD_BLOCK), "Emerald Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_IRON, 30.0))); + self::register(new Solid(new BID(Ids::EMERALD_BLOCK), "Emerald Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0))); self::register(new EmeraldOre(new BID(Ids::EMERALD_ORE), "Emerald Ore")); self::register(new EnchantingTable(new BID(Ids::ENCHANTING_TABLE, 0, null, TileEnchantingTable::class), "Enchanting Table")); self::register(new EndPortalFrame(new BID(Ids::END_PORTAL_FRAME), "End Portal Frame")); self::register(new EndRod(new BID(Ids::END_ROD), "End Rod")); - self::register(new Solid(new BID(Ids::END_STONE), "End Stone", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 45.0))); + self::register(new Solid(new BID(Ids::END_STONE), "End Stone", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 45.0))); - $endBrickBreakInfo = new BlockBreakInfo(0.8, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 4.0); + $endBrickBreakInfo = new BlockBreakInfo(0.8, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 4.0); self::register(new Solid(new BID(Ids::END_BRICKS), "End Stone Bricks", $endBrickBreakInfo)); self::register(new Stair(new BID(Ids::END_BRICK_STAIRS), "End Stone Brick Stairs", $endBrickBreakInfo)); @@ -171,8 +171,8 @@ class BlockFactory{ self::register(new GlassPane(new BID(Ids::GLASS_PANE), "Glass Pane")); self::register(new GlowingObsidian(new BID(Ids::GLOWINGOBSIDIAN), "Glowing Obsidian")); self::register(new Glowstone(new BID(Ids::GLOWSTONE), "Glowstone")); - self::register(new Solid(new BID(Ids::GOLD_BLOCK), "Gold Block", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_IRON, 30.0))); - self::register(new Solid(new BID(Ids::GOLD_ORE), "Gold Ore", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_IRON))); + self::register(new Solid(new BID(Ids::GOLD_BLOCK), "Gold Block", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0))); + self::register(new Solid(new BID(Ids::GOLD_ORE), "Gold Ore", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel()))); self::register(new Grass(new BID(Ids::GRASS), "Grass")); self::register(new GrassPath(new BID(Ids::GRASS_PATH), "Grass Path")); self::register(new Gravel(new BID(Ids::GRAVEL), "Gravel")); @@ -180,7 +180,7 @@ class BlockFactory{ self::register(new HardenedGlass(new BID(Ids::HARD_GLASS), "Hardened Glass")); self::register(new HardenedGlassPane(new BID(Ids::HARD_GLASS_PANE), "Hardened Glass Pane")); self::register(new HayBale(new BID(Ids::HAY_BALE), "Hay Bale")); - self::register(new Hopper(new BID(Ids::HOPPER_BLOCK, 0, ItemIds::HOPPER, TileHopper::class), "Hopper", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 15.0))); + self::register(new Hopper(new BID(Ids::HOPPER_BLOCK, 0, ItemIds::HOPPER, TileHopper::class), "Hopper", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 15.0))); self::register(new Ice(new BID(Ids::ICE), "Ice")); self::register(new class(new BID(Ids::MONSTER_EGG, Meta::INFESTED_STONE), "Infested Stone") extends InfestedStone{ public function getSilkTouchDrops(Item $item) : array{ @@ -217,14 +217,14 @@ class BlockFactory{ self::register(new Solid(new BID(Ids::INFO_UPDATE), "update!", $updateBlockBreakInfo)); self::register(new Solid(new BID(Ids::INFO_UPDATE2), "ate!upd", $updateBlockBreakInfo)); self::register(new Transparent(new BID(Ids::INVISIBLEBEDROCK), "Invisible Bedrock", BlockBreakInfo::indestructible())); - self::register(new Solid(new BID(Ids::IRON_BLOCK), "Iron Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_STONE, 30.0))); - self::register(new Thin(new BID(Ids::IRON_BARS), "Iron Bars", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0))); - self::register(new Door(new BID(Ids::IRON_DOOR_BLOCK, 0, ItemIds::IRON_DOOR), "Iron Door", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 25.0))); - self::register(new Solid(new BID(Ids::IRON_ORE), "Iron Ore", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_STONE))); - self::register(new Trapdoor(new BID(Ids::IRON_TRAPDOOR), "Iron Trapdoor", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 25.0))); + self::register(new Solid(new BID(Ids::IRON_BLOCK), "Iron Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel(), 30.0))); + self::register(new Thin(new BID(Ids::IRON_BARS), "Iron Bars", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0))); + self::register(new Door(new BID(Ids::IRON_DOOR_BLOCK, 0, ItemIds::IRON_DOOR), "Iron Door", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 25.0))); + self::register(new Solid(new BID(Ids::IRON_ORE), "Iron Ore", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel()))); + self::register(new Trapdoor(new BID(Ids::IRON_TRAPDOOR), "Iron Trapdoor", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 25.0))); self::register(new ItemFrame(new BID(Ids::FRAME_BLOCK, 0, ItemIds::FRAME, TileItemFrame::class), "Item Frame")); self::register(new Ladder(new BID(Ids::LADDER), "Ladder")); - self::register(new Solid(new BID(Ids::LAPIS_BLOCK), "Lapis Lazuli Block", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_STONE))); + self::register(new Solid(new BID(Ids::LAPIS_BLOCK), "Lapis Lazuli Block", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel()))); self::register(new LapisOre(new BID(Ids::LAPIS_ORE), "Lapis Lazuli Ore")); self::register(new Lava(new BIDFlattened(Ids::FLOWING_LAVA, Ids::STILL_LAVA), "Lava")); self::register(new Lever(new BID(Ids::LEVER), "Lever")); @@ -234,7 +234,7 @@ class BlockFactory{ self::register(new MonsterSpawner(new BID(Ids::MOB_SPAWNER, 0, null, TileMonsterSpawner::class), "Monster Spawner")); self::register(new Mycelium(new BID(Ids::MYCELIUM), "Mycelium")); - $netherBrickBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0); + $netherBrickBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); self::register(new Solid(new BID(Ids::NETHER_BRICK_BLOCK), "Nether Bricks", $netherBrickBreakInfo)); self::register(new Solid(new BID(Ids::RED_NETHER_BRICK), "Red Nether Bricks", $netherBrickBreakInfo)); self::register(new Fence(new BID(Ids::NETHER_BRICK_FENCE), "Nether Brick Fence", $netherBrickBreakInfo)); @@ -247,13 +247,13 @@ class BlockFactory{ self::register(new NetherWartPlant(new BID(Ids::NETHER_WART_PLANT, 0, ItemIds::NETHER_WART), "Nether Wart")); self::register(new Netherrack(new BID(Ids::NETHERRACK), "Netherrack")); self::register(new Note(new BID(Ids::NOTEBLOCK, 0, null, TileNote::class), "Note Block")); - self::register(new Solid(new BID(Ids::OBSIDIAN), "Obsidian", new BlockBreakInfo(35.0 /* 50 in PC */, BlockToolType::PICKAXE, TieredTool::TIER_DIAMOND, 6000.0))); + self::register(new Solid(new BID(Ids::OBSIDIAN), "Obsidian", new BlockBreakInfo(35.0 /* 50 in PC */, BlockToolType::PICKAXE, ToolTier::DIAMOND()->getHarvestLevel(), 6000.0))); self::register(new PackedIce(new BID(Ids::PACKED_ICE), "Packed Ice")); self::register(new Podzol(new BID(Ids::PODZOL), "Podzol")); self::register(new Potato(new BID(Ids::POTATOES), "Potato Block")); self::register(new PoweredRail(new BID(Ids::GOLDEN_RAIL, Meta::RAIL_STRAIGHT_NORTH_SOUTH), "Powered Rail")); - $prismarineBreakInfo = new BlockBreakInfo(1.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0); + $prismarineBreakInfo = new BlockBreakInfo(1.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); self::register(new Solid(new BID(Ids::PRISMARINE, Meta::PRISMARINE_BRICKS), "Prismarine Bricks", $prismarineBreakInfo)); self::register(new Stair(new BID(Ids::PRISMARINE_BRICKS_STAIRS), "Prismarine Bricks Stairs", $prismarineBreakInfo)); self::register(new Solid(new BID(Ids::PRISMARINE, Meta::PRISMARINE_DARK), "Dark Prismarine", $prismarineBreakInfo)); @@ -271,14 +271,14 @@ class BlockFactory{ self::register(new PumpkinStem(new BID(Ids::PUMPKIN_STEM, 0, ItemIds::PUMPKIN_SEEDS), "Pumpkin Stem")); - $purpurBreakInfo = new BlockBreakInfo(1.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0); + $purpurBreakInfo = new BlockBreakInfo(1.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); self::register(new Solid(new BID(Ids::PURPUR_BLOCK, Meta::PURPUR_NORMAL), "Purpur Block", $purpurBreakInfo)); self::register(new class(new BID(Ids::PURPUR_BLOCK, Meta::PURPUR_PILLAR), "Purpur Pillar", $purpurBreakInfo) extends Solid{ use PillarRotationTrait; }); self::register(new Stair(new BID(Ids::PURPUR_STAIRS), "Purpur Stairs", $purpurBreakInfo)); - $quartzBreakInfo = new BlockBreakInfo(0.8, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN); + $quartzBreakInfo = new BlockBreakInfo(0.8, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()); self::register(new Solid(new BID(Ids::QUARTZ_BLOCK, Meta::QUARTZ_NORMAL), "Quartz Block", $quartzBreakInfo)); self::register(new Stair(new BID(Ids::QUARTZ_STAIRS), "Quartz Stairs", $quartzBreakInfo)); self::register(new class(new BID(Ids::QUARTZ_BLOCK, Meta::QUARTZ_CHISELED), "Chiseled Quartz Block", $quartzBreakInfo) extends Solid{ @@ -314,7 +314,7 @@ class BlockFactory{ self::register(new SoulSand(new BID(Ids::SOUL_SAND), "Soul Sand")); self::register(new Sponge(new BID(Ids::SPONGE), "Sponge")); - $stoneBreakInfo = new BlockBreakInfo(1.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0); + $stoneBreakInfo = new BlockBreakInfo(1.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); self::register(new class(new BID(Ids::STONE, Meta::STONE_NORMAL), "Stone", $stoneBreakInfo) extends Solid{ public function getDropsForCompatibleTool(Item $item) : array{ return [VanillaBlocks::COBBLESTONE()->asItem()]; @@ -344,7 +344,7 @@ class BlockFactory{ self::register(new StonePressurePlate(new BID(Ids::STONE_PRESSURE_PLATE), "Stone Pressure Plate")); //TODO: in the future this won't be the same for all the types - $stoneSlabBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0); + $stoneSlabBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); self::register(new Slab(new BIDFlattened(Ids::STONE_SLAB, Ids::DOUBLE_STONE_SLAB, Meta::STONE_SLAB_BRICK), "Brick", $stoneSlabBreakInfo)); self::register(new Slab(new BIDFlattened(Ids::STONE_SLAB, Ids::DOUBLE_STONE_SLAB, Meta::STONE_SLAB_COBBLESTONE), "Cobblestone", $stoneSlabBreakInfo)); self::register(new Slab(new BIDFlattened(Ids::STONE_SLAB, Ids::DOUBLE_STONE_SLAB, Meta::STONE_SLAB_FAKE_WOODEN), "Fake Wooden", $stoneSlabBreakInfo)); @@ -374,7 +374,7 @@ class BlockFactory{ self::register(new Slab(new BIDFlattened(Ids::STONE_SLAB4, Ids::DOUBLE_STONE_SLAB4, Meta::STONE_SLAB4_MOSSY_STONE_BRICK), "Mossy Stone Brick", $stoneSlabBreakInfo)); self::register(new Slab(new BIDFlattened(Ids::STONE_SLAB4, Ids::DOUBLE_STONE_SLAB4, Meta::STONE_SLAB4_SMOOTH_QUARTZ), "Smooth Quartz", $stoneSlabBreakInfo)); self::register(new Slab(new BIDFlattened(Ids::STONE_SLAB4, Ids::DOUBLE_STONE_SLAB4, Meta::STONE_SLAB4_STONE), "Stone", $stoneSlabBreakInfo)); - self::register(new Solid(new BID(Ids::STONECUTTER), "Stonecutter", new BlockBreakInfo(3.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN))); + self::register(new Solid(new BID(Ids::STONECUTTER), "Stonecutter", new BlockBreakInfo(3.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); self::register(new Sugarcane(new BID(Ids::REEDS_BLOCK, 0, ItemIds::REEDS), "Sugarcane")); self::register(new TNT(new BID(Ids::TNT), "TNT")); @@ -498,7 +498,7 @@ class BlockFactory{ Meta::SANDSTONE_CUT => "Cut ", Meta::SANDSTONE_SMOOTH => "Smooth " ]; - $sandstoneBreakInfo = new BlockBreakInfo(0.8, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN); + $sandstoneBreakInfo = new BlockBreakInfo(0.8, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()); self::register(new Stair(new BID(Ids::RED_SANDSTONE_STAIRS), "Red Sandstone Stairs", $sandstoneBreakInfo)); self::register(new Stair(new BID(Ids::SMOOTH_RED_SANDSTONE_STAIRS), "Smooth Red Sandstone Stairs", $sandstoneBreakInfo)); self::register(new Stair(new BID(Ids::SANDSTONE_STAIRS), "Sandstone Stairs", $sandstoneBreakInfo)); diff --git a/src/pocketmine/block/BoneBlock.php b/src/pocketmine/block/BoneBlock.php index 36f8f751e..35d1f7bce 100644 --- a/src/pocketmine/block/BoneBlock.php +++ b/src/pocketmine/block/BoneBlock.php @@ -24,12 +24,12 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\block\utils\PillarRotationTrait; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class BoneBlock extends Solid{ use PillarRotationTrait; public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(2.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(2.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } } diff --git a/src/pocketmine/block/BrewingStand.php b/src/pocketmine/block/BrewingStand.php index 13ef6f11d..bfb820e94 100644 --- a/src/pocketmine/block/BrewingStand.php +++ b/src/pocketmine/block/BrewingStand.php @@ -25,7 +25,7 @@ namespace pocketmine\block; use pocketmine\block\tile\BrewingStand as TileBrewingStand; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\math\Vector3; use pocketmine\player\Player; @@ -39,7 +39,7 @@ class BrewingStand extends Transparent{ protected $southwestSlot = false; public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } protected function writeStateToMeta() : int{ diff --git a/src/pocketmine/block/Coal.php b/src/pocketmine/block/Coal.php index 1b7fae1d5..8b3d4257e 100644 --- a/src/pocketmine/block/Coal.php +++ b/src/pocketmine/block/Coal.php @@ -23,12 +23,12 @@ declare(strict_types=1); namespace pocketmine\block; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class Coal extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0)); } public function getFuelTime() : int{ diff --git a/src/pocketmine/block/CoalOre.php b/src/pocketmine/block/CoalOre.php index b1e58e177..5643d8d54 100644 --- a/src/pocketmine/block/CoalOre.php +++ b/src/pocketmine/block/CoalOre.php @@ -24,14 +24,14 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\item\VanillaItems; use function mt_rand; class CoalOre extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } public function getDropsForCompatibleTool(Item $item) : array{ diff --git a/src/pocketmine/block/Concrete.php b/src/pocketmine/block/Concrete.php index 1ef4806c6..93243fee1 100644 --- a/src/pocketmine/block/Concrete.php +++ b/src/pocketmine/block/Concrete.php @@ -23,11 +23,11 @@ declare(strict_types=1); namespace pocketmine\block; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class Concrete extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(1.8, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(1.8, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } } diff --git a/src/pocketmine/block/DiamondOre.php b/src/pocketmine/block/DiamondOre.php index 1a03923df..ff0ea297e 100644 --- a/src/pocketmine/block/DiamondOre.php +++ b/src/pocketmine/block/DiamondOre.php @@ -24,14 +24,14 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\item\VanillaItems; use function mt_rand; class DiamondOre extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_IRON)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel())); } public function getDropsForCompatibleTool(Item $item) : array{ diff --git a/src/pocketmine/block/DragonEgg.php b/src/pocketmine/block/DragonEgg.php index 0ede5a6be..97bc0683c 100644 --- a/src/pocketmine/block/DragonEgg.php +++ b/src/pocketmine/block/DragonEgg.php @@ -27,7 +27,7 @@ use pocketmine\block\utils\Fallable; use pocketmine\block\utils\FallableTrait; use pocketmine\event\block\BlockTeleportEvent; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\math\Vector3; use pocketmine\player\Player; use pocketmine\world\particle\DragonEggTeleportParticle; @@ -40,7 +40,7 @@ class DragonEgg extends Transparent implements Fallable{ use FallableTrait; public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } public function getLightLevel() : int{ diff --git a/src/pocketmine/block/EmeraldOre.php b/src/pocketmine/block/EmeraldOre.php index 0170efc31..4345ada46 100644 --- a/src/pocketmine/block/EmeraldOre.php +++ b/src/pocketmine/block/EmeraldOre.php @@ -24,14 +24,14 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\item\VanillaItems; use function mt_rand; class EmeraldOre extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_IRON)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel())); } public function getDropsForCompatibleTool(Item $item) : array{ diff --git a/src/pocketmine/block/EnchantingTable.php b/src/pocketmine/block/EnchantingTable.php index 96af742a2..2edbf7087 100644 --- a/src/pocketmine/block/EnchantingTable.php +++ b/src/pocketmine/block/EnchantingTable.php @@ -25,7 +25,7 @@ namespace pocketmine\block; use pocketmine\inventory\EnchantInventory; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\math\AxisAlignedBB; use pocketmine\math\Facing; use pocketmine\math\Vector3; @@ -34,7 +34,7 @@ use pocketmine\player\Player; class EnchantingTable extends Transparent{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 6000.0)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 6000.0)); } protected function recalculateBoundingBox() : ?AxisAlignedBB{ diff --git a/src/pocketmine/block/EnderChest.php b/src/pocketmine/block/EnderChest.php index e68c11ef4..1c01cf398 100644 --- a/src/pocketmine/block/EnderChest.php +++ b/src/pocketmine/block/EnderChest.php @@ -26,7 +26,7 @@ namespace pocketmine\block; use pocketmine\block\tile\EnderChest as TileEnderChest; use pocketmine\block\utils\BlockDataValidator; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\math\AxisAlignedBB; use pocketmine\math\Facing; use pocketmine\math\Vector3; @@ -39,7 +39,7 @@ class EnderChest extends Transparent{ protected $facing = Facing::NORTH; public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(22.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 3000.0)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(22.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 3000.0)); } protected function writeStateToMeta() : int{ diff --git a/src/pocketmine/block/Furnace.php b/src/pocketmine/block/Furnace.php index b242958cc..3864118c8 100644 --- a/src/pocketmine/block/Furnace.php +++ b/src/pocketmine/block/Furnace.php @@ -26,7 +26,7 @@ namespace pocketmine\block; use pocketmine\block\tile\Furnace as TileFurnace; use pocketmine\block\utils\BlockDataValidator; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\math\Facing; use pocketmine\math\Vector3; use pocketmine\player\Player; @@ -42,7 +42,7 @@ class Furnace extends Solid{ protected $lit = false; //this is set based on the blockID public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } public function getId() : int{ diff --git a/src/pocketmine/block/GlazedTerracotta.php b/src/pocketmine/block/GlazedTerracotta.php index 781492db7..5f680e036 100644 --- a/src/pocketmine/block/GlazedTerracotta.php +++ b/src/pocketmine/block/GlazedTerracotta.php @@ -26,7 +26,7 @@ namespace pocketmine\block; use pocketmine\block\utils\BlockDataValidator; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\math\Facing; use pocketmine\math\Vector3; use pocketmine\player\Player; @@ -38,7 +38,7 @@ class GlazedTerracotta extends Solid{ protected $facing = Facing::NORTH; public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(1.4, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(1.4, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } protected function writeStateToMeta() : int{ diff --git a/src/pocketmine/block/GlowingObsidian.php b/src/pocketmine/block/GlowingObsidian.php index 9dfb73b30..74f5ba694 100644 --- a/src/pocketmine/block/GlowingObsidian.php +++ b/src/pocketmine/block/GlowingObsidian.php @@ -24,12 +24,12 @@ declare(strict_types=1); namespace pocketmine\block; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class GlowingObsidian extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(10.0, BlockToolType::PICKAXE, TieredTool::TIER_DIAMOND, 50.0)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(10.0, BlockToolType::PICKAXE, ToolTier::DIAMOND()->getHarvestLevel(), 50.0)); } public function getLightLevel() : int{ diff --git a/src/pocketmine/block/HardenedClay.php b/src/pocketmine/block/HardenedClay.php index 8c46c4ad1..293d2f4ec 100644 --- a/src/pocketmine/block/HardenedClay.php +++ b/src/pocketmine/block/HardenedClay.php @@ -23,11 +23,11 @@ declare(strict_types=1); namespace pocketmine\block; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class HardenedClay extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(1.25, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 21.0)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(1.25, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 21.0)); } } diff --git a/src/pocketmine/block/LapisOre.php b/src/pocketmine/block/LapisOre.php index 97a5666b6..a1e49f227 100644 --- a/src/pocketmine/block/LapisOre.php +++ b/src/pocketmine/block/LapisOre.php @@ -24,14 +24,14 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\item\VanillaItems; use function mt_rand; class LapisOre extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_STONE)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel())); } public function getDropsForCompatibleTool(Item $item) : array{ diff --git a/src/pocketmine/block/Magma.php b/src/pocketmine/block/Magma.php index 887dba1b3..16f1e4435 100644 --- a/src/pocketmine/block/Magma.php +++ b/src/pocketmine/block/Magma.php @@ -26,12 +26,12 @@ namespace pocketmine\block; use pocketmine\entity\Entity; use pocketmine\event\entity\EntityDamageByBlockEvent; use pocketmine\event\entity\EntityDamageEvent; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class Magma extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } public function getLightLevel() : int{ diff --git a/src/pocketmine/block/MonsterSpawner.php b/src/pocketmine/block/MonsterSpawner.php index d545b0427..b27f6c0d8 100644 --- a/src/pocketmine/block/MonsterSpawner.php +++ b/src/pocketmine/block/MonsterSpawner.php @@ -24,13 +24,13 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use function mt_rand; class MonsterSpawner extends Transparent{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } public function getDropsForCompatibleTool(Item $item) : array{ diff --git a/src/pocketmine/block/NetherQuartzOre.php b/src/pocketmine/block/NetherQuartzOre.php index 54efd1a33..7c55be08f 100644 --- a/src/pocketmine/block/NetherQuartzOre.php +++ b/src/pocketmine/block/NetherQuartzOre.php @@ -24,14 +24,14 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\item\VanillaItems; use function mt_rand; class NetherQuartzOre extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } public function getDropsForCompatibleTool(Item $item) : array{ diff --git a/src/pocketmine/block/NetherReactor.php b/src/pocketmine/block/NetherReactor.php index a18907e94..800ac583d 100644 --- a/src/pocketmine/block/NetherReactor.php +++ b/src/pocketmine/block/NetherReactor.php @@ -25,7 +25,7 @@ namespace pocketmine\block; use pocketmine\block\utils\BlockDataValidator; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\item\VanillaItems; class NetherReactor extends Solid{ @@ -34,7 +34,7 @@ class NetherReactor extends Solid{ protected $state = BlockLegacyMetadata::NETHER_REACTOR_INACTIVE; public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } protected function writeStateToMeta() : int{ diff --git a/src/pocketmine/block/Netherrack.php b/src/pocketmine/block/Netherrack.php index a6a3f70e6..f1db4323f 100644 --- a/src/pocketmine/block/Netherrack.php +++ b/src/pocketmine/block/Netherrack.php @@ -23,12 +23,12 @@ declare(strict_types=1); namespace pocketmine\block; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class Netherrack extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.4, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.4, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } public function burnsForever() : bool{ diff --git a/src/pocketmine/block/Redstone.php b/src/pocketmine/block/Redstone.php index b4400b0c1..6c22fbc56 100644 --- a/src/pocketmine/block/Redstone.php +++ b/src/pocketmine/block/Redstone.php @@ -23,11 +23,11 @@ declare(strict_types=1); namespace pocketmine\block; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class Redstone extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(5.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0)); } } diff --git a/src/pocketmine/block/RedstoneOre.php b/src/pocketmine/block/RedstoneOre.php index 11b866424..8fe05ed25 100644 --- a/src/pocketmine/block/RedstoneOre.php +++ b/src/pocketmine/block/RedstoneOre.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\item\VanillaItems; use pocketmine\math\Vector3; use pocketmine\player\Player; @@ -38,7 +38,7 @@ class RedstoneOre extends Solid{ protected $lit = false; public function __construct(BlockIdentifierFlattened $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, TieredTool::TIER_IRON)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel())); } public function getId() : int{ diff --git a/src/pocketmine/block/Snow.php b/src/pocketmine/block/Snow.php index 22279086c..02e98af2e 100644 --- a/src/pocketmine/block/Snow.php +++ b/src/pocketmine/block/Snow.php @@ -24,13 +24,13 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\item\VanillaItems; class Snow extends Solid{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.2, BlockToolType::SHOVEL, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.2, BlockToolType::SHOVEL, ToolTier::WOOD()->getHarvestLevel())); } public function getDropsForCompatibleTool(Item $item) : array{ diff --git a/src/pocketmine/block/SnowLayer.php b/src/pocketmine/block/SnowLayer.php index d861c0297..8c917d86c 100644 --- a/src/pocketmine/block/SnowLayer.php +++ b/src/pocketmine/block/SnowLayer.php @@ -27,7 +27,7 @@ use pocketmine\block\utils\BlockDataValidator; use pocketmine\block\utils\Fallable; use pocketmine\block\utils\FallableTrait; use pocketmine\item\Item; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\item\VanillaItems; use pocketmine\math\AxisAlignedBB; use pocketmine\math\Facing; @@ -44,7 +44,7 @@ class SnowLayer extends Flowable implements Fallable{ protected $layers = 1; public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.1, BlockToolType::SHOVEL, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.1, BlockToolType::SHOVEL, ToolTier::WOOD()->getHarvestLevel())); } protected function writeStateToMeta() : int{ diff --git a/src/pocketmine/block/StonePressurePlate.php b/src/pocketmine/block/StonePressurePlate.php index a6c1c0de6..7635d98c6 100644 --- a/src/pocketmine/block/StonePressurePlate.php +++ b/src/pocketmine/block/StonePressurePlate.php @@ -23,11 +23,11 @@ declare(strict_types=1); namespace pocketmine\block; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class StonePressurePlate extends SimplePressurePlate{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } } diff --git a/src/pocketmine/block/Wall.php b/src/pocketmine/block/Wall.php index e4462767d..c2af8d1b1 100644 --- a/src/pocketmine/block/Wall.php +++ b/src/pocketmine/block/Wall.php @@ -23,7 +23,7 @@ declare(strict_types=1); namespace pocketmine\block; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; use pocketmine\math\AxisAlignedBB; use pocketmine\math\Facing; @@ -35,7 +35,7 @@ class Wall extends Transparent{ protected $up = false; public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(2.0, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN, 30.0)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(2.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0)); } public function readStateFromWorld() : void{ diff --git a/src/pocketmine/block/WeightedPressurePlateHeavy.php b/src/pocketmine/block/WeightedPressurePlateHeavy.php index 40fd3c507..33b7fe08c 100644 --- a/src/pocketmine/block/WeightedPressurePlateHeavy.php +++ b/src/pocketmine/block/WeightedPressurePlateHeavy.php @@ -23,11 +23,11 @@ declare(strict_types=1); namespace pocketmine\block; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class WeightedPressurePlateHeavy extends WeightedPressurePlate{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } } diff --git a/src/pocketmine/block/WeightedPressurePlateLight.php b/src/pocketmine/block/WeightedPressurePlateLight.php index 44b2f41e2..15ea238bf 100644 --- a/src/pocketmine/block/WeightedPressurePlateLight.php +++ b/src/pocketmine/block/WeightedPressurePlateLight.php @@ -23,11 +23,11 @@ declare(strict_types=1); namespace pocketmine\block; -use pocketmine\item\TieredTool; +use pocketmine\item\ToolTier; class WeightedPressurePlateLight extends WeightedPressurePlate{ public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ - parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.5, BlockToolType::PICKAXE, TieredTool::TIER_WOODEN)); + parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(0.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())); } } diff --git a/src/pocketmine/item/Axe.php b/src/pocketmine/item/Axe.php index 816f46444..15305d05f 100644 --- a/src/pocketmine/item/Axe.php +++ b/src/pocketmine/item/Axe.php @@ -34,11 +34,11 @@ class Axe extends TieredTool{ } public function getBlockToolHarvestLevel() : int{ - return $this->tier; + return $this->tier->getHarvestLevel(); } public function getAttackPoints() : int{ - return self::getBaseDamageFromTier($this->tier) - 1; + return $this->tier->getBaseAttackPoints() - 1; } public function onDestroyBlock(Block $block) : bool{ diff --git a/src/pocketmine/item/ItemFactory.php b/src/pocketmine/item/ItemFactory.php index 22199d7bc..b341fa370 100644 --- a/src/pocketmine/item/ItemFactory.php +++ b/src/pocketmine/item/ItemFactory.php @@ -57,11 +57,11 @@ class ItemFactory{ self::register(new Apple(Item::APPLE, 0, "Apple")); self::register(new Arrow(Item::ARROW, 0, "Arrow")); - self::register(new Axe(Item::DIAMOND_AXE, "Diamond Axe", TieredTool::TIER_DIAMOND)); - self::register(new Axe(Item::GOLDEN_AXE, "Golden Axe", TieredTool::TIER_GOLD)); - self::register(new Axe(Item::IRON_AXE, "Iron Axe", TieredTool::TIER_IRON)); - self::register(new Axe(Item::STONE_AXE, "Stone Axe", TieredTool::TIER_STONE)); - self::register(new Axe(Item::WOODEN_AXE, "Wooden Axe", TieredTool::TIER_WOODEN)); + self::register(new Axe(Item::DIAMOND_AXE, "Diamond Axe", ToolTier::DIAMOND())); + self::register(new Axe(Item::GOLDEN_AXE, "Golden Axe", ToolTier::GOLD())); + self::register(new Axe(Item::IRON_AXE, "Iron Axe", ToolTier::IRON())); + self::register(new Axe(Item::STONE_AXE, "Stone Axe", ToolTier::STONE())); + self::register(new Axe(Item::WOODEN_AXE, "Wooden Axe", ToolTier::WOOD())); self::register(new BakedPotato(Item::BAKED_POTATO, 0, "Baked Potato")); self::register(new Beetroot(Item::BEETROOT, 0, "Beetroot")); self::register(new BeetrootSeeds(Item::BEETROOT_SEEDS, 0, "Beetroot Seeds")); @@ -113,11 +113,11 @@ class ItemFactory{ self::register(new Helmet(Item::GOLDEN_HELMET, 0, "Golden Helmet", new ArmorTypeInfo(2, 78))); self::register(new Helmet(Item::IRON_HELMET, 0, "Iron Helmet", new ArmorTypeInfo(2, 166))); self::register(new Helmet(Item::LEATHER_HELMET, 0, "Leather Cap", new ArmorTypeInfo(1, 56))); - self::register(new Hoe(Item::DIAMOND_HOE, "Diamond Hoe", TieredTool::TIER_DIAMOND)); - self::register(new Hoe(Item::GOLDEN_HOE, "Golden Hoe", TieredTool::TIER_GOLD)); - self::register(new Hoe(Item::IRON_HOE, "Iron Hoe", TieredTool::TIER_IRON)); - self::register(new Hoe(Item::STONE_HOE, "Stone Hoe", TieredTool::TIER_STONE)); - self::register(new Hoe(Item::WOODEN_HOE, "Wooden Hoe", TieredTool::TIER_WOODEN)); + self::register(new Hoe(Item::DIAMOND_HOE, "Diamond Hoe", ToolTier::DIAMOND())); + self::register(new Hoe(Item::GOLDEN_HOE, "Golden Hoe", ToolTier::GOLD())); + self::register(new Hoe(Item::IRON_HOE, "Iron Hoe", ToolTier::IRON())); + self::register(new Hoe(Item::STONE_HOE, "Stone Hoe", ToolTier::STONE())); + self::register(new Hoe(Item::WOODEN_HOE, "Wooden Hoe", ToolTier::WOOD())); self::register(new Item(Item::BLAZE_POWDER, 0, "Blaze Powder")); self::register(new Item(Item::BLEACH, 0, "Bleach")); //EDU self::register(new Item(Item::BONE, 0, "Bone")); @@ -227,11 +227,11 @@ class ItemFactory{ self::register(new Minecart(Item::MINECART, 0, "Minecart")); self::register(new MushroomStew(Item::MUSHROOM_STEW, 0, "Mushroom Stew")); self::register(new PaintingItem(Item::PAINTING, 0, "Painting")); - self::register(new Pickaxe(Item::DIAMOND_PICKAXE, "Diamond Pickaxe", TieredTool::TIER_DIAMOND)); - self::register(new Pickaxe(Item::GOLDEN_PICKAXE, "Golden Pickaxe", TieredTool::TIER_GOLD)); - self::register(new Pickaxe(Item::IRON_PICKAXE, "Iron Pickaxe", TieredTool::TIER_IRON)); - self::register(new Pickaxe(Item::STONE_PICKAXE, "Stone Pickaxe", TieredTool::TIER_STONE)); - self::register(new Pickaxe(Item::WOODEN_PICKAXE, "Wooden Pickaxe", TieredTool::TIER_WOODEN)); + self::register(new Pickaxe(Item::DIAMOND_PICKAXE, "Diamond Pickaxe", ToolTier::DIAMOND())); + self::register(new Pickaxe(Item::GOLDEN_PICKAXE, "Golden Pickaxe", ToolTier::GOLD())); + self::register(new Pickaxe(Item::IRON_PICKAXE, "Iron Pickaxe", ToolTier::IRON())); + self::register(new Pickaxe(Item::STONE_PICKAXE, "Stone Pickaxe", ToolTier::STONE())); + self::register(new Pickaxe(Item::WOODEN_PICKAXE, "Wooden Pickaxe", ToolTier::WOOD())); self::register(new PoisonousPotato(Item::POISONOUS_POTATO, 0, "Poisonous Potato")); self::register(new Potato(Item::POTATO, 0, "Potato")); self::register(new Pufferfish(Item::PUFFERFISH, 0, "Pufferfish")); @@ -248,11 +248,11 @@ class ItemFactory{ self::register(new Redstone(Item::REDSTONE, 0, "Redstone")); self::register(new RottenFlesh(Item::ROTTEN_FLESH, 0, "Rotten Flesh")); self::register(new Shears(Item::SHEARS, 0, "Shears")); - self::register(new Shovel(Item::DIAMOND_SHOVEL, "Diamond Shovel", TieredTool::TIER_DIAMOND)); - self::register(new Shovel(Item::GOLDEN_SHOVEL, "Golden Shovel", TieredTool::TIER_GOLD)); - self::register(new Shovel(Item::IRON_SHOVEL, "Iron Shovel", TieredTool::TIER_IRON)); - self::register(new Shovel(Item::STONE_SHOVEL, "Stone Shovel", TieredTool::TIER_STONE)); - self::register(new Shovel(Item::WOODEN_SHOVEL, "Wooden Shovel", TieredTool::TIER_WOODEN)); + self::register(new Shovel(Item::DIAMOND_SHOVEL, "Diamond Shovel", ToolTier::DIAMOND())); + self::register(new Shovel(Item::GOLDEN_SHOVEL, "Golden Shovel", ToolTier::GOLD())); + self::register(new Shovel(Item::IRON_SHOVEL, "Iron Shovel", ToolTier::IRON())); + self::register(new Shovel(Item::STONE_SHOVEL, "Stone Shovel", ToolTier::STONE())); + self::register(new Shovel(Item::WOODEN_SHOVEL, "Wooden Shovel", ToolTier::WOOD())); self::register(new Sign(BlockLegacyIds::STANDING_SIGN, 0, Item::SIGN)); self::register(new Sign(BlockLegacyIds::SPRUCE_STANDING_SIGN, 0, Item::SPRUCE_SIGN)); self::register(new Sign(BlockLegacyIds::BIRCH_STANDING_SIGN, 0, Item::BIRCH_SIGN)); @@ -264,11 +264,11 @@ class ItemFactory{ self::register(new Steak(Item::STEAK, 0, "Steak")); self::register(new Stick(Item::STICK, 0, "Stick")); self::register(new StringItem(Item::STRING, 0, "String")); - self::register(new Sword(Item::DIAMOND_SWORD, "Diamond Sword", TieredTool::TIER_DIAMOND)); - self::register(new Sword(Item::GOLDEN_SWORD, "Golden Sword", TieredTool::TIER_GOLD)); - self::register(new Sword(Item::IRON_SWORD, "Iron Sword", TieredTool::TIER_IRON)); - self::register(new Sword(Item::STONE_SWORD, "Stone Sword", TieredTool::TIER_STONE)); - self::register(new Sword(Item::WOODEN_SWORD, "Wooden Sword", TieredTool::TIER_WOODEN)); + self::register(new Sword(Item::DIAMOND_SWORD, "Diamond Sword", ToolTier::DIAMOND())); + self::register(new Sword(Item::GOLDEN_SWORD, "Golden Sword", ToolTier::GOLD())); + self::register(new Sword(Item::IRON_SWORD, "Iron Sword", ToolTier::IRON())); + self::register(new Sword(Item::STONE_SWORD, "Stone Sword", ToolTier::STONE())); + self::register(new Sword(Item::WOODEN_SWORD, "Wooden Sword", ToolTier::WOOD())); self::register(new Totem(Item::TOTEM, 0, "Totem of Undying")); self::register(new WheatSeeds(Item::WHEAT_SEEDS, 0, "Wheat Seeds")); self::register(new WritableBook(Item::WRITABLE_BOOK, 0, "Book & Quill")); diff --git a/src/pocketmine/item/Pickaxe.php b/src/pocketmine/item/Pickaxe.php index 76fbd49d1..4e1a7693e 100644 --- a/src/pocketmine/item/Pickaxe.php +++ b/src/pocketmine/item/Pickaxe.php @@ -34,11 +34,11 @@ class Pickaxe extends TieredTool{ } public function getBlockToolHarvestLevel() : int{ - return $this->tier; + return $this->tier->getHarvestLevel(); } public function getAttackPoints() : int{ - return self::getBaseDamageFromTier($this->tier) - 2; + return $this->tier->getBaseAttackPoints() - 2; } public function onDestroyBlock(Block $block) : bool{ diff --git a/src/pocketmine/item/Shovel.php b/src/pocketmine/item/Shovel.php index f3afc9494..c167bd2ba 100644 --- a/src/pocketmine/item/Shovel.php +++ b/src/pocketmine/item/Shovel.php @@ -34,11 +34,11 @@ class Shovel extends TieredTool{ } public function getBlockToolHarvestLevel() : int{ - return $this->tier; + return $this->tier->getHarvestLevel(); } public function getAttackPoints() : int{ - return self::getBaseDamageFromTier($this->tier) - 3; + return $this->tier->getBaseAttackPoints() - 3; } public function onDestroyBlock(Block $block) : bool{ diff --git a/src/pocketmine/item/Sword.php b/src/pocketmine/item/Sword.php index 24c46a36e..99ffc82ba 100644 --- a/src/pocketmine/item/Sword.php +++ b/src/pocketmine/item/Sword.php @@ -34,7 +34,7 @@ class Sword extends TieredTool{ } public function getAttackPoints() : int{ - return self::getBaseDamageFromTier($this->tier); + return $this->tier->getBaseAttackPoints(); } public function getBlockToolHarvestLevel() : int{ diff --git a/src/pocketmine/item/TieredTool.php b/src/pocketmine/item/TieredTool.php index ac276f5e2..eb1998fe3 100644 --- a/src/pocketmine/item/TieredTool.php +++ b/src/pocketmine/item/TieredTool.php @@ -24,82 +24,29 @@ declare(strict_types=1); namespace pocketmine\item; abstract class TieredTool extends Tool{ - public const TIER_WOODEN = 1; - public const TIER_GOLD = 2; - public const TIER_STONE = 3; - public const TIER_IRON = 4; - public const TIER_DIAMOND = 5; - /** @var int */ + /** @var ToolTier */ protected $tier; - public function __construct(int $id, string $name, int $tier){ + public function __construct(int $id, string $name, ToolTier $tier){ parent::__construct($id, 0, $name); $this->tier = $tier; } public function getMaxDurability() : int{ - return self::getDurabilityFromTier($this->tier); + return $this->tier->getMaxDurability(); } - public function getTier() : int{ + public function getTier() : ToolTier{ return $this->tier; } - public static function getDurabilityFromTier(int $tier) : int{ - static $levels = [ - self::TIER_GOLD => 33, - self::TIER_WOODEN => 60, - self::TIER_STONE => 132, - self::TIER_IRON => 251, - self::TIER_DIAMOND => 1562 - ]; - - if(!isset($levels[$tier])){ - throw new \InvalidArgumentException("Unknown tier '$tier'"); - } - - return $levels[$tier]; - } - - protected static function getBaseDamageFromTier(int $tier) : int{ - static $levels = [ - self::TIER_WOODEN => 5, - self::TIER_GOLD => 5, - self::TIER_STONE => 6, - self::TIER_IRON => 7, - self::TIER_DIAMOND => 8 - ]; - - if(!isset($levels[$tier])){ - throw new \InvalidArgumentException("Unknown tier '$tier'"); - } - - return $levels[$tier]; - } - - public static function getBaseMiningEfficiencyFromTier(int $tier) : float{ - static $levels = [ - self::TIER_WOODEN => 2, - self::TIER_STONE => 4, - self::TIER_IRON => 6, - self::TIER_DIAMOND => 8, - self::TIER_GOLD => 12 - ]; - - if(!isset($levels[$tier])){ - throw new \InvalidArgumentException("Unknown tier '$tier'"); - } - - return $levels[$tier]; - } - protected function getBaseMiningEfficiency() : float{ - return self::getBaseMiningEfficiencyFromTier($this->tier); + return $this->tier->getBaseEfficiency(); } public function getFuelTime() : int{ - if($this->tier === self::TIER_WOODEN){ + if($this->tier->equals(ToolTier::WOOD())){ return 200; } diff --git a/src/pocketmine/item/ToolTier.php b/src/pocketmine/item/ToolTier.php new file mode 100644 index 000000000..129da6bb2 --- /dev/null +++ b/src/pocketmine/item/ToolTier.php @@ -0,0 +1,99 @@ +Enum___construct($name); + $this->harvestLevel = $harvestLevel; + $this->maxDurability = $maxDurability; + $this->baseAttackPoints = $baseAttackPoints; + $this->baseEfficiency = $baseEfficiency; + } + + /** + * @return int + */ + public function getHarvestLevel() : int{ + return $this->harvestLevel; + } + + /** + * @return int + */ + public function getMaxDurability() : int{ + return $this->maxDurability; + } + + /** + * @return int + */ + public function getBaseAttackPoints() : int{ + return $this->baseAttackPoints; + } + + /** + * @return int + */ + public function getBaseEfficiency() : int{ + return $this->baseEfficiency; + } +}