From 55d06845653165525a9659eb125738be4db4b21e Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Fri, 24 Nov 2017 11:19:19 +0000 Subject: [PATCH] Move block-breaking tool-type constants to a BlockToolType interface --- src/pocketmine/block/Anvil.php | 3 +- src/pocketmine/block/Block.php | 11 +++---- src/pocketmine/block/BlockToolType.php | 38 ++++++++++++++++++++++ src/pocketmine/block/BoneBlock.php | 3 +- src/pocketmine/block/Bookshelf.php | 3 +- src/pocketmine/block/BrewingStand.php | 4 +-- src/pocketmine/block/BrickStairs.php | 4 +-- src/pocketmine/block/Bricks.php | 3 +- src/pocketmine/block/BurningFurnace.php | 3 +- src/pocketmine/block/Chest.php | 3 +- src/pocketmine/block/Clay.php | 3 +- src/pocketmine/block/Coal.php | 3 +- src/pocketmine/block/CoalOre.php | 3 +- src/pocketmine/block/Cobblestone.php | 3 +- src/pocketmine/block/CobblestoneStairs.php | 4 +-- src/pocketmine/block/CobblestoneWall.php | 3 +- src/pocketmine/block/Cobweb.php | 3 +- src/pocketmine/block/Concrete.php | 3 +- src/pocketmine/block/ConcretePowder.php | 3 +- src/pocketmine/block/CraftingTable.php | 3 +- src/pocketmine/block/DeadBush.php | 3 +- src/pocketmine/block/Diamond.php | 3 +- src/pocketmine/block/DiamondOre.php | 3 +- src/pocketmine/block/Dirt.php | 3 +- src/pocketmine/block/DoubleStoneSlab.php | 3 +- src/pocketmine/block/DoubleWoodenSlab.php | 4 +-- src/pocketmine/block/Emerald.php | 3 +- src/pocketmine/block/EmeraldOre.php | 3 +- src/pocketmine/block/EnchantingTable.php | 3 +- src/pocketmine/block/EndStone.php | 4 +-- src/pocketmine/block/EndStoneBricks.php | 3 +- src/pocketmine/block/EnderChest.php | 3 +- src/pocketmine/block/Farmland.php | 3 +- src/pocketmine/block/FenceGate.php | 3 +- src/pocketmine/block/GlazedTerracotta.php | 3 +- src/pocketmine/block/Glowstone.php | 3 +- src/pocketmine/block/Gold.php | 3 +- src/pocketmine/block/GoldOre.php | 3 +- src/pocketmine/block/Grass.php | 3 +- src/pocketmine/block/GrassPath.php | 3 +- src/pocketmine/block/Gravel.php | 3 +- src/pocketmine/block/HardenedClay.php | 4 +-- src/pocketmine/block/Ice.php | 3 +- src/pocketmine/block/Iron.php | 3 +- src/pocketmine/block/IronBars.php | 3 +- src/pocketmine/block/IronDoor.php | 3 +- src/pocketmine/block/IronOre.php | 3 +- src/pocketmine/block/IronTrapdoor.php | 4 +-- src/pocketmine/block/Ladder.php | 3 +- src/pocketmine/block/Lapis.php | 3 +- src/pocketmine/block/LapisOre.php | 3 +- src/pocketmine/block/Leaves.php | 3 +- src/pocketmine/block/Magma.php | 3 +- src/pocketmine/block/Melon.php | 3 +- src/pocketmine/block/MonsterSpawner.php | 3 +- src/pocketmine/block/Mycelium.php | 3 +- src/pocketmine/block/NetherBrick.php | 3 +- src/pocketmine/block/NetherBrickFence.php | 3 +- src/pocketmine/block/NetherBrickStairs.php | 4 +-- src/pocketmine/block/NetherQuartzOre.php | 3 +- src/pocketmine/block/NetherReactor.php | 3 +- src/pocketmine/block/Netherrack.php | 3 +- src/pocketmine/block/Obsidian.php | 3 +- src/pocketmine/block/PackedIce.php | 4 +-- src/pocketmine/block/Planks.php | 4 +-- src/pocketmine/block/Podzol.php | 4 +-- src/pocketmine/block/Prismarine.php | 3 +- src/pocketmine/block/Pumpkin.php | 3 +- src/pocketmine/block/PurpurStairs.php | 4 +-- src/pocketmine/block/Quartz.php | 3 +- src/pocketmine/block/QuartzStairs.php | 4 +-- src/pocketmine/block/RedMushroomBlock.php | 3 +- src/pocketmine/block/Redstone.php | 3 +- src/pocketmine/block/RedstoneOre.php | 3 +- src/pocketmine/block/Sand.php | 4 +-- src/pocketmine/block/Sandstone.php | 3 +- src/pocketmine/block/SandstoneStairs.php | 4 +-- src/pocketmine/block/SignPost.php | 3 +- src/pocketmine/block/Snow.php | 4 +-- src/pocketmine/block/SnowLayer.php | 3 +- src/pocketmine/block/SoulSand.php | 3 +- src/pocketmine/block/StainedClay.php | 3 +- src/pocketmine/block/Stair.php | 1 - src/pocketmine/block/StandingBanner.php | 7 ++-- src/pocketmine/block/Stone.php | 3 +- src/pocketmine/block/StoneBrickStairs.php | 4 +-- src/pocketmine/block/StoneBricks.php | 3 +- src/pocketmine/block/StoneButton.php | 4 +-- src/pocketmine/block/StoneSlab.php | 3 +- src/pocketmine/block/Stonecutter.php | 3 +- src/pocketmine/block/Trapdoor.php | 3 +- src/pocketmine/block/Vine.php | 3 +- src/pocketmine/block/Wood.php | 3 +- src/pocketmine/block/WoodenButton.php | 4 +-- src/pocketmine/block/WoodenDoor.php | 4 +-- src/pocketmine/block/WoodenFence.php | 4 +-- src/pocketmine/block/WoodenSlab.php | 4 +-- src/pocketmine/block/WoodenStairs.php | 3 +- src/pocketmine/block/Wool.php | 3 +- src/pocketmine/item/Tool.php | 18 ++++------ 100 files changed, 147 insertions(+), 235 deletions(-) create mode 100644 src/pocketmine/block/BlockToolType.php diff --git a/src/pocketmine/block/Anvil.php b/src/pocketmine/block/Anvil.php index cb3c9b3673..2fd5b634e6 100644 --- a/src/pocketmine/block/Anvil.php +++ b/src/pocketmine/block/Anvil.php @@ -27,7 +27,6 @@ use pocketmine\inventory\AnvilInventory; use pocketmine\item\Item; use pocketmine\item\ItemFactory; use pocketmine\item\TieredTool; -use pocketmine\item\Tool; use pocketmine\math\AxisAlignedBB; use pocketmine\math\Vector3; use pocketmine\Player; @@ -66,7 +65,7 @@ class Anvil extends Fallable{ } public function getToolType() : int{ - return Tool::TYPE_PICKAXE; + return BlockToolType::TYPE_PICKAXE; } public function recalculateBoundingBox() : ?AxisAlignedBB{ diff --git a/src/pocketmine/block/Block.php b/src/pocketmine/block/Block.php index e136c1a4c5..6f71692463 100644 --- a/src/pocketmine/block/Block.php +++ b/src/pocketmine/block/Block.php @@ -30,7 +30,6 @@ use pocketmine\entity\Entity; use pocketmine\item\Item; use pocketmine\item\ItemFactory; use pocketmine\item\TieredTool; -use pocketmine\item\Tool; use pocketmine\level\Level; use pocketmine\level\MovingObjectPosition; use pocketmine\level\Position; @@ -223,12 +222,12 @@ class Block extends Position implements BlockIds, Metadatable{ public function getBreakTime(Item $item) : float{ $base = $this->getHardness() * 1.5; if($this->canBeBrokenWith($item)){ - if($this->getToolType() === Tool::TYPE_SHEARS and $item->isShears()){ + if($this->getToolType() === BlockToolType::TYPE_SHEARS and $item->isShears()){ $base /= 15; }elseif( - ($this->getToolType() === Tool::TYPE_PICKAXE and ($tier = $item->isPickaxe()) !== false) or - ($this->getToolType() === Tool::TYPE_AXE and ($tier = $item->isAxe()) !== false) or - ($this->getToolType() === Tool::TYPE_SHOVEL and ($tier = $item->isShovel()) !== false) + ($this->getToolType() === BlockToolType::TYPE_PICKAXE and ($tier = $item->isPickaxe()) !== false) or + ($this->getToolType() === BlockToolType::TYPE_AXE and ($tier = $item->isAxe()) !== false) or + ($this->getToolType() === BlockToolType::TYPE_SHOVEL and ($tier = $item->isShovel()) !== false) ){ switch($tier){ case TieredTool::TIER_WOODEN: @@ -320,7 +319,7 @@ class Block extends Position implements BlockIds, Metadatable{ * @return int */ public function getToolType() : int{ - return Tool::TYPE_NONE; + return BlockToolType::TYPE_NONE; } /** diff --git a/src/pocketmine/block/BlockToolType.php b/src/pocketmine/block/BlockToolType.php new file mode 100644 index 0000000000..bc7a4ec775 --- /dev/null +++ b/src/pocketmine/block/BlockToolType.php @@ -0,0 +1,38 @@ +getToolType() === Tool::TYPE_PICKAXE and $this->isPickaxe() or - $object->getToolType() === Tool::TYPE_SHOVEL and $this->isShovel() or - $object->getToolType() === Tool::TYPE_AXE and $this->isAxe() or - $object->getToolType() === Tool::TYPE_SWORD and $this->isSword() or - $object->getToolType() === Tool::TYPE_SHEARS and $this->isShears() + $object->getToolType() === BlockToolType::TYPE_PICKAXE and $this->isPickaxe() or + $object->getToolType() === BlockToolType::TYPE_SHOVEL and $this->isShovel() or + $object->getToolType() === BlockToolType::TYPE_AXE and $this->isAxe() or + $object->getToolType() === BlockToolType::TYPE_SWORD and $this->isSword() or + $object->getToolType() === BlockToolType::TYPE_SHEARS and $this->isShears() ){ $this->applyDamage(1); }elseif(!$this->isShears() and $object->getBreakTime($this) > 0){