From 00b4e4016c0238b3b0e499ca07859cef91076aab Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sat, 25 Jun 2022 14:42:32 +0100 Subject: [PATCH] Obliterate BlockLegacyIds --- src/block/BlockFactory.php | 787 +++++++++++++++--------------- src/block/BlockIdentifier.php | 23 +- src/block/BlockLegacyIdHelper.php | 191 ++++---- src/block/BlockLegacyIds.php | 501 ------------------- tests/phpunit/block/BlockTest.php | 7 +- 5 files changed, 498 insertions(+), 1011 deletions(-) delete mode 100644 src/block/BlockLegacyIds.php diff --git a/src/block/BlockFactory.php b/src/block/BlockFactory.php index ee545e4c0..7af168522 100644 --- a/src/block/BlockFactory.php +++ b/src/block/BlockFactory.php @@ -25,7 +25,6 @@ namespace pocketmine\block; use pocketmine\block\BlockBreakInfo as BreakInfo; use pocketmine\block\BlockIdentifier as BID; -use pocketmine\block\BlockLegacyIds as LegacyIds; use pocketmine\block\BlockLegacyMetadata as Meta; use pocketmine\block\BlockToolType as ToolType; use pocketmine\block\BlockTypeIds as Ids; @@ -106,10 +105,10 @@ class BlockFactory{ public function __construct(){ $railBreakInfo = new BlockBreakInfo(0.7); - $this->register(new ActivatorRail(new BID(Ids::ACTIVATOR_RAIL, LegacyIds::ACTIVATOR_RAIL, 0), "Activator Rail", $railBreakInfo)); - $this->register(new Air(new BID(Ids::AIR, LegacyIds::AIR, 0), "Air", BreakInfo::indestructible(-1.0))); - $this->register(new Anvil(new BID(Ids::ANVIL, LegacyIds::ANVIL, 0), "Anvil", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 6000.0))); - $this->register(new Bamboo(new BID(Ids::BAMBOO, LegacyIds::BAMBOO, 0), "Bamboo", new class(2.0 /* 1.0 in PC */, ToolType::AXE) extends BreakInfo{ + $this->register(new ActivatorRail(new BID(Ids::ACTIVATOR_RAIL, ItemIds::ACTIVATOR_RAIL, 0), "Activator Rail", $railBreakInfo)); + $this->register(new Air(new BID(Ids::AIR, ItemIds::AIR, 0), "Air", BreakInfo::indestructible(-1.0))); + $this->register(new Anvil(new BID(Ids::ANVIL, ItemIds::ANVIL, 0), "Anvil", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 6000.0))); + $this->register(new Bamboo(new BID(Ids::BAMBOO, ItemIds::BAMBOO, 0), "Bamboo", new class(2.0 /* 1.0 in PC */, ToolType::AXE) extends BreakInfo{ public function getBreakTime(Item $item) : float{ if($item->getBlockToolType() === ToolType::SWORD){ return 0.0; @@ -117,225 +116,225 @@ class BlockFactory{ return parent::getBreakTime($item); } })); - $this->register(new BambooSapling(new BID(Ids::BAMBOO_SAPLING, LegacyIds::BAMBOO_SAPLING, 0), "Bamboo Sapling", BreakInfo::instant())); + $this->register(new BambooSapling(new BID(Ids::BAMBOO_SAPLING, ItemIds::BAMBOO_SAPLING, 0), "Bamboo Sapling", BreakInfo::instant())); $bannerBreakInfo = new BreakInfo(1.0, ToolType::AXE); - $this->register(new FloorBanner(new BID(Ids::BANNER, LegacyIds::STANDING_BANNER, 0, ItemIds::BANNER, TileBanner::class), "Banner", $bannerBreakInfo)); - $this->register(new WallBanner(new BID(Ids::WALL_BANNER, LegacyIds::WALL_BANNER, 0, ItemIds::BANNER, TileBanner::class), "Wall Banner", $bannerBreakInfo)); - $this->register(new Barrel(new BID(Ids::BARREL, LegacyIds::BARREL, 0, null, TileBarrel::class), "Barrel", new BreakInfo(2.5, ToolType::AXE))); - $this->register(new Transparent(new BID(Ids::BARRIER, LegacyIds::BARRIER, 0), "Barrier", BreakInfo::indestructible())); - $this->register(new Beacon(new BID(Ids::BEACON, LegacyIds::BEACON, 0, null, TileBeacon::class), "Beacon", new BreakInfo(3.0))); - $this->register(new Bed(new BID(Ids::BED, LegacyIds::BED_BLOCK, 0, ItemIds::BED, TileBed::class), "Bed Block", new BreakInfo(0.2))); - $this->register(new Bedrock(new BID(Ids::BEDROCK, LegacyIds::BEDROCK, 0), "Bedrock", BreakInfo::indestructible())); + $this->register(new FloorBanner(new BID(Ids::BANNER, ItemIds::BANNER, 0, TileBanner::class), "Banner", $bannerBreakInfo)); + $this->register(new WallBanner(new BID(Ids::WALL_BANNER, ItemIds::BANNER, 0, TileBanner::class), "Wall Banner", $bannerBreakInfo)); + $this->register(new Barrel(new BID(Ids::BARREL, ItemIds::BARREL, 0, TileBarrel::class), "Barrel", new BreakInfo(2.5, ToolType::AXE))); + $this->register(new Transparent(new BID(Ids::BARRIER, ItemIds::BARRIER, 0), "Barrier", BreakInfo::indestructible())); + $this->register(new Beacon(new BID(Ids::BEACON, ItemIds::BEACON, 0, TileBeacon::class), "Beacon", new BreakInfo(3.0))); + $this->register(new Bed(new BID(Ids::BED, ItemIds::BED, 0, TileBed::class), "Bed Block", new BreakInfo(0.2))); + $this->register(new Bedrock(new BID(Ids::BEDROCK, ItemIds::BEDROCK, 0), "Bedrock", BreakInfo::indestructible())); - $this->register(new Beetroot(new BID(Ids::BEETROOTS, LegacyIds::BEETROOT_BLOCK, 0), "Beetroot Block", BreakInfo::instant())); - $this->register(new Bell(new BID(Ids::BELL, LegacyIds::BELL, 0, null, TileBell::class), "Bell", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new BlueIce(new BID(Ids::BLUE_ICE, LegacyIds::BLUE_ICE, 0), "Blue Ice", new BreakInfo(2.8, ToolType::PICKAXE))); - $this->register(new BoneBlock(new BID(Ids::BONE_BLOCK, LegacyIds::BONE_BLOCK, 0), "Bone Block", new BreakInfo(2.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new Bookshelf(new BID(Ids::BOOKSHELF, LegacyIds::BOOKSHELF, 0), "Bookshelf", new BreakInfo(1.5, ToolType::AXE))); - $this->register(new BrewingStand(new BID(Ids::BREWING_STAND, LegacyIds::BREWING_STAND_BLOCK, 0, ItemIds::BREWING_STAND, TileBrewingStand::class), "Brewing Stand", new BreakInfo(0.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Beetroot(new BID(Ids::BEETROOTS, ItemIds::BEETROOT_BLOCK, 0), "Beetroot Block", BreakInfo::instant())); + $this->register(new Bell(new BID(Ids::BELL, ItemIds::BELL, 0, TileBell::class), "Bell", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new BlueIce(new BID(Ids::BLUE_ICE, ItemIds::BLUE_ICE, 0), "Blue Ice", new BreakInfo(2.8, ToolType::PICKAXE))); + $this->register(new BoneBlock(new BID(Ids::BONE_BLOCK, ItemIds::BONE_BLOCK, 0), "Bone Block", new BreakInfo(2.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Bookshelf(new BID(Ids::BOOKSHELF, ItemIds::BOOKSHELF, 0), "Bookshelf", new BreakInfo(1.5, ToolType::AXE))); + $this->register(new BrewingStand(new BID(Ids::BREWING_STAND, ItemIds::BREWING_STAND, 0, TileBrewingStand::class), "Brewing Stand", new BreakInfo(0.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); $bricksBreakInfo = new BreakInfo(2.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); - $this->register(new Stair(new BID(Ids::BRICK_STAIRS, LegacyIds::BRICK_STAIRS, 0), "Brick Stairs", $bricksBreakInfo)); - $this->register(new Opaque(new BID(Ids::BRICKS, LegacyIds::BRICK_BLOCK, 0), "Bricks", $bricksBreakInfo)); + $this->register(new Stair(new BID(Ids::BRICK_STAIRS, ItemIds::BRICK_STAIRS, 0), "Brick Stairs", $bricksBreakInfo)); + $this->register(new Opaque(new BID(Ids::BRICKS, ItemIds::BRICK_BLOCK, 0), "Bricks", $bricksBreakInfo)); - $this->register(new BrownMushroom(new BID(Ids::BROWN_MUSHROOM, LegacyIds::BROWN_MUSHROOM, 0), "Brown Mushroom", BreakInfo::instant())); - $this->register(new Cactus(new BID(Ids::CACTUS, LegacyIds::CACTUS, 0), "Cactus", new BreakInfo(0.4))); - $this->register(new Cake(new BID(Ids::CAKE, LegacyIds::CAKE_BLOCK, 0, ItemIds::CAKE), "Cake", new BreakInfo(0.5))); - $this->register(new Carrot(new BID(Ids::CARROTS, LegacyIds::CARROTS, 0), "Carrot Block", BreakInfo::instant())); + $this->register(new BrownMushroom(new BID(Ids::BROWN_MUSHROOM, ItemIds::BROWN_MUSHROOM, 0), "Brown Mushroom", BreakInfo::instant())); + $this->register(new Cactus(new BID(Ids::CACTUS, ItemIds::CACTUS, 0), "Cactus", new BreakInfo(0.4))); + $this->register(new Cake(new BID(Ids::CAKE, ItemIds::CAKE, 0), "Cake", new BreakInfo(0.5))); + $this->register(new Carrot(new BID(Ids::CARROTS, ItemIds::CARROTS, 0), "Carrot Block", BreakInfo::instant())); $chestBreakInfo = new BreakInfo(2.5, ToolType::AXE); - $this->register(new Chest(new BID(Ids::CHEST, LegacyIds::CHEST, 0, null, TileChest::class), "Chest", $chestBreakInfo)); - $this->register(new Clay(new BID(Ids::CLAY, LegacyIds::CLAY_BLOCK, 0), "Clay Block", new BreakInfo(0.6, ToolType::SHOVEL))); - $this->register(new Coal(new BID(Ids::COAL, LegacyIds::COAL_BLOCK, 0), "Coal Block", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0))); - $this->register(new CoalOre(new BID(Ids::COAL_ORE, LegacyIds::COAL_ORE, 0), "Coal Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Chest(new BID(Ids::CHEST, ItemIds::CHEST, 0, TileChest::class), "Chest", $chestBreakInfo)); + $this->register(new Clay(new BID(Ids::CLAY, ItemIds::CLAY_BLOCK, 0), "Clay Block", new BreakInfo(0.6, ToolType::SHOVEL))); + $this->register(new Coal(new BID(Ids::COAL, ItemIds::COAL_BLOCK, 0), "Coal Block", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0))); + $this->register(new CoalOre(new BID(Ids::COAL_ORE, ItemIds::COAL_ORE, 0), "Coal Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); $cobblestoneBreakInfo = new BreakInfo(2.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); - $this->register($cobblestone = new Opaque(new BID(Ids::COBBLESTONE, LegacyIds::COBBLESTONE, 0), "Cobblestone", $cobblestoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::MOSSY_COBBLESTONE, LegacyIds::MOSSY_COBBLESTONE, 0), "Mossy Cobblestone", $cobblestoneBreakInfo)); - $this->register(new Stair(new BID(Ids::COBBLESTONE_STAIRS, LegacyIds::COBBLESTONE_STAIRS, 0), "Cobblestone Stairs", $cobblestoneBreakInfo)); - $this->register(new Stair(new BID(Ids::MOSSY_COBBLESTONE_STAIRS, LegacyIds::MOSSY_COBBLESTONE_STAIRS, 0), "Mossy Cobblestone Stairs", $cobblestoneBreakInfo)); + $this->register($cobblestone = new Opaque(new BID(Ids::COBBLESTONE, ItemIds::COBBLESTONE, 0), "Cobblestone", $cobblestoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::MOSSY_COBBLESTONE, ItemIds::MOSSY_COBBLESTONE, 0), "Mossy Cobblestone", $cobblestoneBreakInfo)); + $this->register(new Stair(new BID(Ids::COBBLESTONE_STAIRS, ItemIds::COBBLESTONE_STAIRS, 0), "Cobblestone Stairs", $cobblestoneBreakInfo)); + $this->register(new Stair(new BID(Ids::MOSSY_COBBLESTONE_STAIRS, ItemIds::MOSSY_COBBLESTONE_STAIRS, 0), "Mossy Cobblestone Stairs", $cobblestoneBreakInfo)); - $this->register(new Cobweb(new BID(Ids::COBWEB, LegacyIds::COBWEB, 0), "Cobweb", new BreakInfo(4.0, ToolType::SWORD | ToolType::SHEARS, 1))); - $this->register(new CocoaBlock(new BID(Ids::COCOA_POD, LegacyIds::COCOA, 0), "Cocoa Block", new BreakInfo(0.2, ToolType::AXE, 0, 15.0))); - $this->register(new CoralBlock(new BID(Ids::CORAL_BLOCK, LegacyIds::CORAL_BLOCK, 0), "Coral Block", new BreakInfo(7.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new CraftingTable(new BID(Ids::CRAFTING_TABLE, LegacyIds::CRAFTING_TABLE, 0), "Crafting Table", new BreakInfo(2.5, ToolType::AXE))); - $this->register(new DaylightSensor(new BID(Ids::DAYLIGHT_SENSOR, LegacyIds::DAYLIGHT_DETECTOR, 0, null, TileDaylightSensor::class), "Daylight Sensor", new BreakInfo(0.2, ToolType::AXE))); - $this->register(new DeadBush(new BID(Ids::DEAD_BUSH, LegacyIds::DEADBUSH, 0), "Dead Bush", BreakInfo::instant(ToolType::SHEARS, 1))); - $this->register(new DetectorRail(new BID(Ids::DETECTOR_RAIL, LegacyIds::DETECTOR_RAIL, 0), "Detector Rail", $railBreakInfo)); + $this->register(new Cobweb(new BID(Ids::COBWEB, ItemIds::COBWEB, 0), "Cobweb", new BreakInfo(4.0, ToolType::SWORD | ToolType::SHEARS, 1))); + $this->register(new CocoaBlock(new BID(Ids::COCOA_POD, ItemIds::COCOA, 0), "Cocoa Block", new BreakInfo(0.2, ToolType::AXE, 0, 15.0))); + $this->register(new CoralBlock(new BID(Ids::CORAL_BLOCK, ItemIds::CORAL_BLOCK, 0), "Coral Block", new BreakInfo(7.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new CraftingTable(new BID(Ids::CRAFTING_TABLE, ItemIds::CRAFTING_TABLE, 0), "Crafting Table", new BreakInfo(2.5, ToolType::AXE))); + $this->register(new DaylightSensor(new BID(Ids::DAYLIGHT_SENSOR, ItemIds::DAYLIGHT_DETECTOR, 0, TileDaylightSensor::class), "Daylight Sensor", new BreakInfo(0.2, ToolType::AXE))); + $this->register(new DeadBush(new BID(Ids::DEAD_BUSH, ItemIds::DEADBUSH, 0), "Dead Bush", BreakInfo::instant(ToolType::SHEARS, 1))); + $this->register(new DetectorRail(new BID(Ids::DETECTOR_RAIL, ItemIds::DETECTOR_RAIL, 0), "Detector Rail", $railBreakInfo)); - $this->register(new Opaque(new BID(Ids::DIAMOND, LegacyIds::DIAMOND_BLOCK, 0), "Diamond Block", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0))); - $this->register(new DiamondOre(new BID(Ids::DIAMOND_ORE, LegacyIds::DIAMOND_ORE, 0), "Diamond Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel()))); - $this->register(new Dirt(new BID(Ids::DIRT, LegacyIds::DIRT, 0), "Dirt", new BreakInfo(0.5, ToolType::SHOVEL))); - $this->register(new DoublePlant(new BID(Ids::SUNFLOWER, LegacyIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_SUNFLOWER), "Sunflower", BreakInfo::instant())); - $this->register(new DoublePlant(new BID(Ids::LILAC, LegacyIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_LILAC), "Lilac", BreakInfo::instant())); - $this->register(new DoublePlant(new BID(Ids::ROSE_BUSH, LegacyIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_ROSE_BUSH), "Rose Bush", BreakInfo::instant())); - $this->register(new DoublePlant(new BID(Ids::PEONY, LegacyIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_PEONY), "Peony", BreakInfo::instant())); - $this->register(new DoubleTallGrass(new BID(Ids::DOUBLE_TALLGRASS, LegacyIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_TALLGRASS), "Double Tallgrass", BreakInfo::instant(ToolType::SHEARS, 1))); - $this->register(new DoubleTallGrass(new BID(Ids::LARGE_FERN, LegacyIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_LARGE_FERN), "Large Fern", BreakInfo::instant(ToolType::SHEARS, 1))); - $this->register(new DragonEgg(new BID(Ids::DRAGON_EGG, LegacyIds::DRAGON_EGG, 0), "Dragon Egg", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new DriedKelp(new BID(Ids::DRIED_KELP, LegacyIds::DRIED_KELP_BLOCK, 0), "Dried Kelp Block", new BreakInfo(0.5, ToolType::NONE, 0, 12.5))); - $this->register(new Opaque(new BID(Ids::EMERALD, LegacyIds::EMERALD_BLOCK, 0), "Emerald Block", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0))); - $this->register(new EmeraldOre(new BID(Ids::EMERALD_ORE, LegacyIds::EMERALD_ORE, 0), "Emerald Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel()))); - $this->register(new EnchantingTable(new BID(Ids::ENCHANTING_TABLE, LegacyIds::ENCHANTING_TABLE, 0, null, TileEnchantingTable::class), "Enchanting Table", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 6000.0))); - $this->register(new EndPortalFrame(new BID(Ids::END_PORTAL_FRAME, LegacyIds::END_PORTAL_FRAME, 0), "End Portal Frame", BreakInfo::indestructible())); - $this->register(new EndRod(new BID(Ids::END_ROD, LegacyIds::END_ROD, 0), "End Rod", BreakInfo::instant())); - $this->register(new Opaque(new BID(Ids::END_STONE, LegacyIds::END_STONE, 0), "End Stone", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 45.0))); + $this->register(new Opaque(new BID(Ids::DIAMOND, ItemIds::DIAMOND_BLOCK, 0), "Diamond Block", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0))); + $this->register(new DiamondOre(new BID(Ids::DIAMOND_ORE, ItemIds::DIAMOND_ORE, 0), "Diamond Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel()))); + $this->register(new Dirt(new BID(Ids::DIRT, ItemIds::DIRT, 0), "Dirt", new BreakInfo(0.5, ToolType::SHOVEL))); + $this->register(new DoublePlant(new BID(Ids::SUNFLOWER, ItemIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_SUNFLOWER), "Sunflower", BreakInfo::instant())); + $this->register(new DoublePlant(new BID(Ids::LILAC, ItemIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_LILAC), "Lilac", BreakInfo::instant())); + $this->register(new DoublePlant(new BID(Ids::ROSE_BUSH, ItemIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_ROSE_BUSH), "Rose Bush", BreakInfo::instant())); + $this->register(new DoublePlant(new BID(Ids::PEONY, ItemIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_PEONY), "Peony", BreakInfo::instant())); + $this->register(new DoubleTallGrass(new BID(Ids::DOUBLE_TALLGRASS, ItemIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_TALLGRASS), "Double Tallgrass", BreakInfo::instant(ToolType::SHEARS, 1))); + $this->register(new DoubleTallGrass(new BID(Ids::LARGE_FERN, ItemIds::DOUBLE_PLANT, Meta::DOUBLE_PLANT_LARGE_FERN), "Large Fern", BreakInfo::instant(ToolType::SHEARS, 1))); + $this->register(new DragonEgg(new BID(Ids::DRAGON_EGG, ItemIds::DRAGON_EGG, 0), "Dragon Egg", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new DriedKelp(new BID(Ids::DRIED_KELP, ItemIds::DRIED_KELP_BLOCK, 0), "Dried Kelp Block", new BreakInfo(0.5, ToolType::NONE, 0, 12.5))); + $this->register(new Opaque(new BID(Ids::EMERALD, ItemIds::EMERALD_BLOCK, 0), "Emerald Block", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0))); + $this->register(new EmeraldOre(new BID(Ids::EMERALD_ORE, ItemIds::EMERALD_ORE, 0), "Emerald Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel()))); + $this->register(new EnchantingTable(new BID(Ids::ENCHANTING_TABLE, ItemIds::ENCHANTING_TABLE, 0, TileEnchantingTable::class), "Enchanting Table", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 6000.0))); + $this->register(new EndPortalFrame(new BID(Ids::END_PORTAL_FRAME, ItemIds::END_PORTAL_FRAME, 0), "End Portal Frame", BreakInfo::indestructible())); + $this->register(new EndRod(new BID(Ids::END_ROD, ItemIds::END_ROD, 0), "End Rod", BreakInfo::instant())); + $this->register(new Opaque(new BID(Ids::END_STONE, ItemIds::END_STONE, 0), "End Stone", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 45.0))); $endBrickBreakInfo = new BreakInfo(0.8, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 4.0); - $this->register(new Opaque(new BID(Ids::END_STONE_BRICKS, LegacyIds::END_BRICKS, 0), "End Stone Bricks", $endBrickBreakInfo)); - $this->register(new Stair(new BID(Ids::END_STONE_BRICK_STAIRS, LegacyIds::END_BRICK_STAIRS, 0), "End Stone Brick Stairs", $endBrickBreakInfo)); + $this->register(new Opaque(new BID(Ids::END_STONE_BRICKS, ItemIds::END_BRICKS, 0), "End Stone Bricks", $endBrickBreakInfo)); + $this->register(new Stair(new BID(Ids::END_STONE_BRICK_STAIRS, ItemIds::END_BRICK_STAIRS, 0), "End Stone Brick Stairs", $endBrickBreakInfo)); - $this->register(new EnderChest(new BID(Ids::ENDER_CHEST, LegacyIds::ENDER_CHEST, 0, null, TileEnderChest::class), "Ender Chest", new BreakInfo(22.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 3000.0))); - $this->register(new Farmland(new BID(Ids::FARMLAND, LegacyIds::FARMLAND, 0), "Farmland", new BreakInfo(0.6, ToolType::SHOVEL))); - $this->register(new Fire(new BID(Ids::FIRE, LegacyIds::FIRE, 0), "Fire Block", BreakInfo::instant())); - $this->register(new FletchingTable(new BID(Ids::FLETCHING_TABLE, LegacyIds::FLETCHING_TABLE, 0), "Fletching Table", new BreakInfo(2.5, ToolType::AXE, 0, 2.5))); - $this->register(new Flower(new BID(Ids::DANDELION, LegacyIds::DANDELION, 0), "Dandelion", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::POPPY, LegacyIds::RED_FLOWER, Meta::FLOWER_POPPY), "Poppy", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::ALLIUM, LegacyIds::RED_FLOWER, Meta::FLOWER_ALLIUM), "Allium", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::AZURE_BLUET, LegacyIds::RED_FLOWER, Meta::FLOWER_AZURE_BLUET), "Azure Bluet", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::BLUE_ORCHID, LegacyIds::RED_FLOWER, Meta::FLOWER_BLUE_ORCHID), "Blue Orchid", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::CORNFLOWER, LegacyIds::RED_FLOWER, Meta::FLOWER_CORNFLOWER), "Cornflower", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::LILY_OF_THE_VALLEY, LegacyIds::RED_FLOWER, Meta::FLOWER_LILY_OF_THE_VALLEY), "Lily of the Valley", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::ORANGE_TULIP, LegacyIds::RED_FLOWER, Meta::FLOWER_ORANGE_TULIP), "Orange Tulip", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::OXEYE_DAISY, LegacyIds::RED_FLOWER, Meta::FLOWER_OXEYE_DAISY), "Oxeye Daisy", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::PINK_TULIP, LegacyIds::RED_FLOWER, Meta::FLOWER_PINK_TULIP), "Pink Tulip", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::RED_TULIP, LegacyIds::RED_FLOWER, Meta::FLOWER_RED_TULIP), "Red Tulip", BreakInfo::instant())); - $this->register(new Flower(new BID(Ids::WHITE_TULIP, LegacyIds::RED_FLOWER, Meta::FLOWER_WHITE_TULIP), "White Tulip", BreakInfo::instant())); - $this->register(new FlowerPot(new BID(Ids::FLOWER_POT, LegacyIds::FLOWER_POT_BLOCK, 0, ItemIds::FLOWER_POT, TileFlowerPot::class), "Flower Pot", BreakInfo::instant())); - $this->register(new FrostedIce(new BID(Ids::FROSTED_ICE, LegacyIds::FROSTED_ICE, 0), "Frosted Ice", new BreakInfo(2.5, ToolType::PICKAXE))); - $this->register(new Furnace(new BID(Ids::FURNACE, LegacyIds::FURNACE, 0, null, TileNormalFurnace::class), "Furnace", new BreakInfo(3.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new Furnace(new BID(Ids::BLAST_FURNACE, LegacyIds::BLAST_FURNACE, 0, null, TileBlastFurnace::class), "Blast Furnace", new BreakInfo(3.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new Furnace(new BID(Ids::SMOKER, LegacyIds::SMOKER, 0, null, TileSmoker::class), "Smoker", new BreakInfo(3.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new EnderChest(new BID(Ids::ENDER_CHEST, ItemIds::ENDER_CHEST, 0, TileEnderChest::class), "Ender Chest", new BreakInfo(22.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 3000.0))); + $this->register(new Farmland(new BID(Ids::FARMLAND, ItemIds::FARMLAND, 0), "Farmland", new BreakInfo(0.6, ToolType::SHOVEL))); + $this->register(new Fire(new BID(Ids::FIRE, ItemIds::FIRE, 0), "Fire Block", BreakInfo::instant())); + $this->register(new FletchingTable(new BID(Ids::FLETCHING_TABLE, ItemIds::FLETCHING_TABLE, 0), "Fletching Table", new BreakInfo(2.5, ToolType::AXE, 0, 2.5))); + $this->register(new Flower(new BID(Ids::DANDELION, ItemIds::DANDELION, 0), "Dandelion", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::POPPY, ItemIds::RED_FLOWER, Meta::FLOWER_POPPY), "Poppy", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::ALLIUM, ItemIds::RED_FLOWER, Meta::FLOWER_ALLIUM), "Allium", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::AZURE_BLUET, ItemIds::RED_FLOWER, Meta::FLOWER_AZURE_BLUET), "Azure Bluet", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::BLUE_ORCHID, ItemIds::RED_FLOWER, Meta::FLOWER_BLUE_ORCHID), "Blue Orchid", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::CORNFLOWER, ItemIds::RED_FLOWER, Meta::FLOWER_CORNFLOWER), "Cornflower", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::LILY_OF_THE_VALLEY, ItemIds::RED_FLOWER, Meta::FLOWER_LILY_OF_THE_VALLEY), "Lily of the Valley", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::ORANGE_TULIP, ItemIds::RED_FLOWER, Meta::FLOWER_ORANGE_TULIP), "Orange Tulip", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::OXEYE_DAISY, ItemIds::RED_FLOWER, Meta::FLOWER_OXEYE_DAISY), "Oxeye Daisy", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::PINK_TULIP, ItemIds::RED_FLOWER, Meta::FLOWER_PINK_TULIP), "Pink Tulip", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::RED_TULIP, ItemIds::RED_FLOWER, Meta::FLOWER_RED_TULIP), "Red Tulip", BreakInfo::instant())); + $this->register(new Flower(new BID(Ids::WHITE_TULIP, ItemIds::RED_FLOWER, Meta::FLOWER_WHITE_TULIP), "White Tulip", BreakInfo::instant())); + $this->register(new FlowerPot(new BID(Ids::FLOWER_POT, ItemIds::FLOWER_POT, 0, TileFlowerPot::class), "Flower Pot", BreakInfo::instant())); + $this->register(new FrostedIce(new BID(Ids::FROSTED_ICE, ItemIds::FROSTED_ICE, 0), "Frosted Ice", new BreakInfo(2.5, ToolType::PICKAXE))); + $this->register(new Furnace(new BID(Ids::FURNACE, ItemIds::FURNACE, 0, TileNormalFurnace::class), "Furnace", new BreakInfo(3.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Furnace(new BID(Ids::BLAST_FURNACE, ItemIds::BLAST_FURNACE, 0, TileBlastFurnace::class), "Blast Furnace", new BreakInfo(3.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Furnace(new BID(Ids::SMOKER, ItemIds::SMOKER, 0, TileSmoker::class), "Smoker", new BreakInfo(3.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); $glassBreakInfo = new BreakInfo(0.3); - $this->register(new Glass(new BID(Ids::GLASS, LegacyIds::GLASS, 0), "Glass", $glassBreakInfo)); - $this->register(new GlassPane(new BID(Ids::GLASS_PANE, LegacyIds::GLASS_PANE, 0), "Glass Pane", $glassBreakInfo)); - $this->register(new GlowingObsidian(new BID(Ids::GLOWING_OBSIDIAN, LegacyIds::GLOWINGOBSIDIAN, 0), "Glowing Obsidian", new BreakInfo(10.0, ToolType::PICKAXE, ToolTier::DIAMOND()->getHarvestLevel(), 50.0))); - $this->register(new Glowstone(new BID(Ids::GLOWSTONE, LegacyIds::GLOWSTONE, 0), "Glowstone", new BreakInfo(0.3, ToolType::PICKAXE))); - $this->register(new Opaque(new BID(Ids::GOLD, LegacyIds::GOLD_BLOCK, 0), "Gold Block", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0))); - $this->register(new Opaque(new BID(Ids::GOLD_ORE, LegacyIds::GOLD_ORE, 0), "Gold Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel()))); + $this->register(new Glass(new BID(Ids::GLASS, ItemIds::GLASS, 0), "Glass", $glassBreakInfo)); + $this->register(new GlassPane(new BID(Ids::GLASS_PANE, ItemIds::GLASS_PANE, 0), "Glass Pane", $glassBreakInfo)); + $this->register(new GlowingObsidian(new BID(Ids::GLOWING_OBSIDIAN, ItemIds::GLOWINGOBSIDIAN, 0), "Glowing Obsidian", new BreakInfo(10.0, ToolType::PICKAXE, ToolTier::DIAMOND()->getHarvestLevel(), 50.0))); + $this->register(new Glowstone(new BID(Ids::GLOWSTONE, ItemIds::GLOWSTONE, 0), "Glowstone", new BreakInfo(0.3, ToolType::PICKAXE))); + $this->register(new Opaque(new BID(Ids::GOLD, ItemIds::GOLD_BLOCK, 0), "Gold Block", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0))); + $this->register(new Opaque(new BID(Ids::GOLD_ORE, ItemIds::GOLD_ORE, 0), "Gold Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel()))); $grassBreakInfo = new BreakInfo(0.6, ToolType::SHOVEL); - $this->register(new Grass(new BID(Ids::GRASS, LegacyIds::GRASS, 0), "Grass", $grassBreakInfo)); - $this->register(new GrassPath(new BID(Ids::GRASS_PATH, LegacyIds::GRASS_PATH, 0), "Grass Path", $grassBreakInfo)); - $this->register(new Gravel(new BID(Ids::GRAVEL, LegacyIds::GRAVEL, 0), "Gravel", new BreakInfo(0.6, ToolType::SHOVEL))); + $this->register(new Grass(new BID(Ids::GRASS, ItemIds::GRASS, 0), "Grass", $grassBreakInfo)); + $this->register(new GrassPath(new BID(Ids::GRASS_PATH, ItemIds::GRASS_PATH, 0), "Grass Path", $grassBreakInfo)); + $this->register(new Gravel(new BID(Ids::GRAVEL, ItemIds::GRAVEL, 0), "Gravel", new BreakInfo(0.6, ToolType::SHOVEL))); $hardenedClayBreakInfo = new BreakInfo(1.25, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 21.0); - $this->register(new HardenedClay(new BID(Ids::HARDENED_CLAY, LegacyIds::HARDENED_CLAY, 0), "Hardened Clay", $hardenedClayBreakInfo)); + $this->register(new HardenedClay(new BID(Ids::HARDENED_CLAY, ItemIds::HARDENED_CLAY, 0), "Hardened Clay", $hardenedClayBreakInfo)); $hardenedGlassBreakInfo = new BreakInfo(10.0); - $this->register(new HardenedGlass(new BID(Ids::HARDENED_GLASS, LegacyIds::HARD_GLASS, 0), "Hardened Glass", $hardenedGlassBreakInfo)); - $this->register(new HardenedGlassPane(new BID(Ids::HARDENED_GLASS_PANE, LegacyIds::HARD_GLASS_PANE, 0), "Hardened Glass Pane", $hardenedGlassBreakInfo)); - $this->register(new HayBale(new BID(Ids::HAY_BALE, LegacyIds::HAY_BALE, 0), "Hay Bale", new BreakInfo(0.5))); - $this->register(new Hopper(new BID(Ids::HOPPER, LegacyIds::HOPPER_BLOCK, 0, ItemIds::HOPPER, TileHopper::class), "Hopper", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 15.0))); - $this->register(new Ice(new BID(Ids::ICE, LegacyIds::ICE, 0), "Ice", new BreakInfo(0.5, ToolType::PICKAXE))); + $this->register(new HardenedGlass(new BID(Ids::HARDENED_GLASS, ItemIds::HARD_GLASS, 0), "Hardened Glass", $hardenedGlassBreakInfo)); + $this->register(new HardenedGlassPane(new BID(Ids::HARDENED_GLASS_PANE, ItemIds::HARD_GLASS_PANE, 0), "Hardened Glass Pane", $hardenedGlassBreakInfo)); + $this->register(new HayBale(new BID(Ids::HAY_BALE, ItemIds::HAY_BALE, 0), "Hay Bale", new BreakInfo(0.5))); + $this->register(new Hopper(new BID(Ids::HOPPER, ItemIds::HOPPER, 0, TileHopper::class), "Hopper", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 15.0))); + $this->register(new Ice(new BID(Ids::ICE, ItemIds::ICE, 0), "Ice", new BreakInfo(0.5, ToolType::PICKAXE))); $updateBlockBreakInfo = new BreakInfo(1.0); - $this->register(new Opaque(new BID(Ids::INFO_UPDATE, LegacyIds::INFO_UPDATE, 0), "update!", $updateBlockBreakInfo)); - $this->register(new Opaque(new BID(Ids::INFO_UPDATE2, LegacyIds::INFO_UPDATE2, 0), "ate!upd", $updateBlockBreakInfo)); - $this->register(new Transparent(new BID(Ids::INVISIBLE_BEDROCK, LegacyIds::INVISIBLEBEDROCK, 0), "Invisible Bedrock", BreakInfo::indestructible())); + $this->register(new Opaque(new BID(Ids::INFO_UPDATE, ItemIds::INFO_UPDATE, 0), "update!", $updateBlockBreakInfo)); + $this->register(new Opaque(new BID(Ids::INFO_UPDATE2, ItemIds::INFO_UPDATE2, 0), "ate!upd", $updateBlockBreakInfo)); + $this->register(new Transparent(new BID(Ids::INVISIBLE_BEDROCK, ItemIds::INVISIBLEBEDROCK, 0), "Invisible Bedrock", BreakInfo::indestructible())); $ironBreakInfo = new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel(), 30.0); - $this->register(new Opaque(new BID(Ids::IRON, LegacyIds::IRON_BLOCK, 0), "Iron Block", $ironBreakInfo)); - $this->register(new Thin(new BID(Ids::IRON_BARS, LegacyIds::IRON_BARS, 0), "Iron Bars", $ironBreakInfo)); + $this->register(new Opaque(new BID(Ids::IRON, ItemIds::IRON_BLOCK, 0), "Iron Block", $ironBreakInfo)); + $this->register(new Thin(new BID(Ids::IRON_BARS, ItemIds::IRON_BARS, 0), "Iron Bars", $ironBreakInfo)); $ironDoorBreakInfo = new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 25.0); - $this->register(new Door(new BID(Ids::IRON_DOOR, LegacyIds::IRON_DOOR_BLOCK, 0, ItemIds::IRON_DOOR), "Iron Door", $ironDoorBreakInfo)); - $this->register(new Trapdoor(new BID(Ids::IRON_TRAPDOOR, LegacyIds::IRON_TRAPDOOR, 0), "Iron Trapdoor", $ironDoorBreakInfo)); - $this->register(new Opaque(new BID(Ids::IRON_ORE, LegacyIds::IRON_ORE, 0), "Iron Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel()))); - $this->register(new ItemFrame(new BID(Ids::ITEM_FRAME, LegacyIds::FRAME_BLOCK, 0, ItemIds::FRAME, TileItemFrame::class), "Item Frame", new BreakInfo(0.25))); - $this->register(new Jukebox(new BID(Ids::JUKEBOX, LegacyIds::JUKEBOX, 0, ItemIds::JUKEBOX, TileJukebox::class), "Jukebox", new BreakInfo(0.8, ToolType::AXE))); //TODO: in PC the hardness is 2.0, not 0.8, unsure if this is a MCPE bug or not - $this->register(new Ladder(new BID(Ids::LADDER, LegacyIds::LADDER, 0), "Ladder", new BreakInfo(0.4, ToolType::AXE))); - $this->register(new Lantern(new BID(Ids::LANTERN, LegacyIds::LANTERN, 0), "Lantern", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new Opaque(new BID(Ids::LAPIS_LAZULI, LegacyIds::LAPIS_BLOCK, 0), "Lapis Lazuli Block", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel()))); - $this->register(new LapisOre(new BID(Ids::LAPIS_LAZULI_ORE, LegacyIds::LAPIS_ORE, 0), "Lapis Lazuli Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel()))); - $this->register(new Lava(new BID(Ids::LAVA, LegacyIds::FLOWING_LAVA, 0), "Lava", BreakInfo::indestructible(500.0))); - $this->register(new Lectern(new BID(Ids::LECTERN, LegacyIds::LECTERN, 0, ItemIds::LECTERN, TileLectern::class), "Lectern", new BreakInfo(2.0, ToolType::AXE))); - $this->register(new Lever(new BID(Ids::LEVER, LegacyIds::LEVER, 0), "Lever", new BreakInfo(0.5))); - $this->register(new Loom(new BID(Ids::LOOM, LegacyIds::LOOM, 0), "Loom", new BreakInfo(2.5, ToolType::AXE))); - $this->register(new Magma(new BID(Ids::MAGMA, LegacyIds::MAGMA, 0), "Magma Block", new BreakInfo(0.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new Melon(new BID(Ids::MELON, LegacyIds::MELON_BLOCK, 0), "Melon Block", new BreakInfo(1.0, ToolType::AXE))); - $this->register(new MelonStem(new BID(Ids::MELON_STEM, LegacyIds::MELON_STEM, 0, ItemIds::MELON_SEEDS), "Melon Stem", BreakInfo::instant())); - $this->register(new MonsterSpawner(new BID(Ids::MONSTER_SPAWNER, LegacyIds::MOB_SPAWNER, 0, null, TileMonsterSpawner::class), "Monster Spawner", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new Mycelium(new BID(Ids::MYCELIUM, LegacyIds::MYCELIUM, 0), "Mycelium", new BreakInfo(0.6, ToolType::SHOVEL))); + $this->register(new Door(new BID(Ids::IRON_DOOR, ItemIds::IRON_DOOR, 0), "Iron Door", $ironDoorBreakInfo)); + $this->register(new Trapdoor(new BID(Ids::IRON_TRAPDOOR, ItemIds::IRON_TRAPDOOR, 0), "Iron Trapdoor", $ironDoorBreakInfo)); + $this->register(new Opaque(new BID(Ids::IRON_ORE, ItemIds::IRON_ORE, 0), "Iron Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel()))); + $this->register(new ItemFrame(new BID(Ids::ITEM_FRAME, ItemIds::FRAME, 0, TileItemFrame::class), "Item Frame", new BreakInfo(0.25))); + $this->register(new Jukebox(new BID(Ids::JUKEBOX, ItemIds::JUKEBOX, 0, TileJukebox::class), "Jukebox", new BreakInfo(0.8, ToolType::AXE))); //TODO: in PC the hardness is 2.0, not 0.8, unsure if this is a MCPE bug or not + $this->register(new Ladder(new BID(Ids::LADDER, ItemIds::LADDER, 0), "Ladder", new BreakInfo(0.4, ToolType::AXE))); + $this->register(new Lantern(new BID(Ids::LANTERN, ItemIds::LANTERN, 0), "Lantern", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Opaque(new BID(Ids::LAPIS_LAZULI, ItemIds::LAPIS_BLOCK, 0), "Lapis Lazuli Block", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel()))); + $this->register(new LapisOre(new BID(Ids::LAPIS_LAZULI_ORE, ItemIds::LAPIS_ORE, 0), "Lapis Lazuli Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel()))); + $this->register(new Lava(new BID(Ids::LAVA, ItemIds::FLOWING_LAVA, 0), "Lava", BreakInfo::indestructible(500.0))); + $this->register(new Lectern(new BID(Ids::LECTERN, ItemIds::LECTERN, 0, TileLectern::class), "Lectern", new BreakInfo(2.0, ToolType::AXE))); + $this->register(new Lever(new BID(Ids::LEVER, ItemIds::LEVER, 0), "Lever", new BreakInfo(0.5))); + $this->register(new Loom(new BID(Ids::LOOM, ItemIds::LOOM, 0), "Loom", new BreakInfo(2.5, ToolType::AXE))); + $this->register(new Magma(new BID(Ids::MAGMA, ItemIds::MAGMA, 0), "Magma Block", new BreakInfo(0.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Melon(new BID(Ids::MELON, ItemIds::MELON_BLOCK, 0), "Melon Block", new BreakInfo(1.0, ToolType::AXE))); + $this->register(new MelonStem(new BID(Ids::MELON_STEM, ItemIds::MELON_SEEDS, 0), "Melon Stem", BreakInfo::instant())); + $this->register(new MonsterSpawner(new BID(Ids::MONSTER_SPAWNER, ItemIds::MOB_SPAWNER, 0, TileMonsterSpawner::class), "Monster Spawner", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Mycelium(new BID(Ids::MYCELIUM, ItemIds::MYCELIUM, 0), "Mycelium", new BreakInfo(0.6, ToolType::SHOVEL))); $netherBrickBreakInfo = new BreakInfo(2.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); - $this->register(new Opaque(new BID(Ids::NETHER_BRICKS, LegacyIds::NETHER_BRICK_BLOCK, 0), "Nether Bricks", $netherBrickBreakInfo)); - $this->register(new Opaque(new BID(Ids::RED_NETHER_BRICKS, LegacyIds::RED_NETHER_BRICK, 0), "Red Nether Bricks", $netherBrickBreakInfo)); - $this->register(new Fence(new BID(Ids::NETHER_BRICK_FENCE, LegacyIds::NETHER_BRICK_FENCE, 0), "Nether Brick Fence", $netherBrickBreakInfo)); - $this->register(new Stair(new BID(Ids::NETHER_BRICK_STAIRS, LegacyIds::NETHER_BRICK_STAIRS, 0), "Nether Brick Stairs", $netherBrickBreakInfo)); - $this->register(new Stair(new BID(Ids::RED_NETHER_BRICK_STAIRS, LegacyIds::RED_NETHER_BRICK_STAIRS, 0), "Red Nether Brick Stairs", $netherBrickBreakInfo)); - $this->register(new NetherPortal(new BID(Ids::NETHER_PORTAL, LegacyIds::PORTAL, 0), "Nether Portal", BreakInfo::indestructible(0.0))); - $this->register(new NetherQuartzOre(new BID(Ids::NETHER_QUARTZ_ORE, LegacyIds::NETHER_QUARTZ_ORE, 0), "Nether Quartz Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new NetherReactor(new BID(Ids::NETHER_REACTOR_CORE, LegacyIds::NETHERREACTOR, 0), "Nether Reactor Core", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new Opaque(new BID(Ids::NETHER_WART_BLOCK, LegacyIds::NETHER_WART_BLOCK, 0), "Nether Wart Block", new BreakInfo(1.0, ToolType::HOE))); - $this->register(new NetherWartPlant(new BID(Ids::NETHER_WART, LegacyIds::NETHER_WART_PLANT, 0, ItemIds::NETHER_WART), "Nether Wart", BreakInfo::instant())); - $this->register(new Netherrack(new BID(Ids::NETHERRACK, LegacyIds::NETHERRACK, 0), "Netherrack", new BreakInfo(0.4, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new Note(new BID(Ids::NOTE_BLOCK, LegacyIds::NOTEBLOCK, 0, null, TileNote::class), "Note Block", new BreakInfo(0.8, ToolType::AXE))); - $this->register(new Opaque(new BID(Ids::OBSIDIAN, LegacyIds::OBSIDIAN, 0), "Obsidian", new BreakInfo(35.0 /* 50 in PC */, ToolType::PICKAXE, ToolTier::DIAMOND()->getHarvestLevel(), 6000.0))); - $this->register(new PackedIce(new BID(Ids::PACKED_ICE, LegacyIds::PACKED_ICE, 0), "Packed Ice", new BreakInfo(0.5, ToolType::PICKAXE))); - $this->register(new Podzol(new BID(Ids::PODZOL, LegacyIds::PODZOL, 0), "Podzol", new BreakInfo(0.5, ToolType::SHOVEL))); - $this->register(new Potato(new BID(Ids::POTATOES, LegacyIds::POTATOES, 0), "Potato Block", BreakInfo::instant())); - $this->register(new PoweredRail(new BID(Ids::POWERED_RAIL, LegacyIds::GOLDEN_RAIL, 0), "Powered Rail", $railBreakInfo)); + $this->register(new Opaque(new BID(Ids::NETHER_BRICKS, ItemIds::NETHER_BRICK_BLOCK, 0), "Nether Bricks", $netherBrickBreakInfo)); + $this->register(new Opaque(new BID(Ids::RED_NETHER_BRICKS, ItemIds::RED_NETHER_BRICK, 0), "Red Nether Bricks", $netherBrickBreakInfo)); + $this->register(new Fence(new BID(Ids::NETHER_BRICK_FENCE, ItemIds::NETHER_BRICK_FENCE, 0), "Nether Brick Fence", $netherBrickBreakInfo)); + $this->register(new Stair(new BID(Ids::NETHER_BRICK_STAIRS, ItemIds::NETHER_BRICK_STAIRS, 0), "Nether Brick Stairs", $netherBrickBreakInfo)); + $this->register(new Stair(new BID(Ids::RED_NETHER_BRICK_STAIRS, ItemIds::RED_NETHER_BRICK_STAIRS, 0), "Red Nether Brick Stairs", $netherBrickBreakInfo)); + $this->register(new NetherPortal(new BID(Ids::NETHER_PORTAL, ItemIds::PORTAL, 0), "Nether Portal", BreakInfo::indestructible(0.0))); + $this->register(new NetherQuartzOre(new BID(Ids::NETHER_QUARTZ_ORE, ItemIds::NETHER_QUARTZ_ORE, 0), "Nether Quartz Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new NetherReactor(new BID(Ids::NETHER_REACTOR_CORE, ItemIds::NETHERREACTOR, 0), "Nether Reactor Core", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Opaque(new BID(Ids::NETHER_WART_BLOCK, ItemIds::NETHER_WART_BLOCK, 0), "Nether Wart Block", new BreakInfo(1.0, ToolType::HOE))); + $this->register(new NetherWartPlant(new BID(Ids::NETHER_WART, ItemIds::NETHER_WART, 0), "Nether Wart", BreakInfo::instant())); + $this->register(new Netherrack(new BID(Ids::NETHERRACK, ItemIds::NETHERRACK, 0), "Netherrack", new BreakInfo(0.4, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Note(new BID(Ids::NOTE_BLOCK, ItemIds::NOTEBLOCK, 0, TileNote::class), "Note Block", new BreakInfo(0.8, ToolType::AXE))); + $this->register(new Opaque(new BID(Ids::OBSIDIAN, ItemIds::OBSIDIAN, 0), "Obsidian", new BreakInfo(35.0 /* 50 in PC */, ToolType::PICKAXE, ToolTier::DIAMOND()->getHarvestLevel(), 6000.0))); + $this->register(new PackedIce(new BID(Ids::PACKED_ICE, ItemIds::PACKED_ICE, 0), "Packed Ice", new BreakInfo(0.5, ToolType::PICKAXE))); + $this->register(new Podzol(new BID(Ids::PODZOL, ItemIds::PODZOL, 0), "Podzol", new BreakInfo(0.5, ToolType::SHOVEL))); + $this->register(new Potato(new BID(Ids::POTATOES, ItemIds::POTATOES, 0), "Potato Block", BreakInfo::instant())); + $this->register(new PoweredRail(new BID(Ids::POWERED_RAIL, ItemIds::GOLDEN_RAIL, 0), "Powered Rail", $railBreakInfo)); $prismarineBreakInfo = new BreakInfo(1.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); - $this->register(new Opaque(new BID(Ids::PRISMARINE, LegacyIds::PRISMARINE, Meta::PRISMARINE_NORMAL), "Prismarine", $prismarineBreakInfo)); - $this->register(new Opaque(new BID(Ids::DARK_PRISMARINE, LegacyIds::PRISMARINE, Meta::PRISMARINE_DARK), "Dark Prismarine", $prismarineBreakInfo)); - $this->register(new Opaque(new BID(Ids::PRISMARINE_BRICKS, LegacyIds::PRISMARINE, Meta::PRISMARINE_BRICKS), "Prismarine Bricks", $prismarineBreakInfo)); - $this->register(new Stair(new BID(Ids::PRISMARINE_BRICKS_STAIRS, LegacyIds::PRISMARINE_BRICKS_STAIRS, 0), "Prismarine Bricks Stairs", $prismarineBreakInfo)); - $this->register(new Stair(new BID(Ids::DARK_PRISMARINE_STAIRS, LegacyIds::DARK_PRISMARINE_STAIRS, 0), "Dark Prismarine Stairs", $prismarineBreakInfo)); - $this->register(new Stair(new BID(Ids::PRISMARINE_STAIRS, LegacyIds::PRISMARINE_STAIRS, 0), "Prismarine Stairs", $prismarineBreakInfo)); + $this->register(new Opaque(new BID(Ids::PRISMARINE, ItemIds::PRISMARINE, Meta::PRISMARINE_NORMAL), "Prismarine", $prismarineBreakInfo)); + $this->register(new Opaque(new BID(Ids::DARK_PRISMARINE, ItemIds::PRISMARINE, Meta::PRISMARINE_DARK), "Dark Prismarine", $prismarineBreakInfo)); + $this->register(new Opaque(new BID(Ids::PRISMARINE_BRICKS, ItemIds::PRISMARINE, Meta::PRISMARINE_BRICKS), "Prismarine Bricks", $prismarineBreakInfo)); + $this->register(new Stair(new BID(Ids::PRISMARINE_BRICKS_STAIRS, ItemIds::PRISMARINE_BRICKS_STAIRS, 0), "Prismarine Bricks Stairs", $prismarineBreakInfo)); + $this->register(new Stair(new BID(Ids::DARK_PRISMARINE_STAIRS, ItemIds::DARK_PRISMARINE_STAIRS, 0), "Dark Prismarine Stairs", $prismarineBreakInfo)); + $this->register(new Stair(new BID(Ids::PRISMARINE_STAIRS, ItemIds::PRISMARINE_STAIRS, 0), "Prismarine Stairs", $prismarineBreakInfo)); $pumpkinBreakInfo = new BreakInfo(1.0, ToolType::AXE); - $this->register(new Pumpkin(new BID(Ids::PUMPKIN, LegacyIds::PUMPKIN, 0), "Pumpkin", $pumpkinBreakInfo)); - $this->register(new CarvedPumpkin(new BID(Ids::CARVED_PUMPKIN, LegacyIds::CARVED_PUMPKIN, 0), "Carved Pumpkin", $pumpkinBreakInfo)); - $this->register(new LitPumpkin(new BID(Ids::LIT_PUMPKIN, LegacyIds::JACK_O_LANTERN, 0), "Jack o'Lantern", $pumpkinBreakInfo)); + $this->register(new Pumpkin(new BID(Ids::PUMPKIN, ItemIds::PUMPKIN, 0), "Pumpkin", $pumpkinBreakInfo)); + $this->register(new CarvedPumpkin(new BID(Ids::CARVED_PUMPKIN, ItemIds::CARVED_PUMPKIN, 0), "Carved Pumpkin", $pumpkinBreakInfo)); + $this->register(new LitPumpkin(new BID(Ids::LIT_PUMPKIN, ItemIds::JACK_O_LANTERN, 0), "Jack o'Lantern", $pumpkinBreakInfo)); - $this->register(new PumpkinStem(new BID(Ids::PUMPKIN_STEM, LegacyIds::PUMPKIN_STEM, 0, ItemIds::PUMPKIN_SEEDS), "Pumpkin Stem", BreakInfo::instant())); + $this->register(new PumpkinStem(new BID(Ids::PUMPKIN_STEM, ItemIds::PUMPKIN_SEEDS, 0), "Pumpkin Stem", BreakInfo::instant())); $purpurBreakInfo = new BreakInfo(1.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); - $this->register(new Opaque(new BID(Ids::PURPUR, LegacyIds::PURPUR_BLOCK, Meta::PURPUR_NORMAL), "Purpur Block", $purpurBreakInfo)); - $this->register(new SimplePillar(new BID(Ids::PURPUR_PILLAR, LegacyIds::PURPUR_BLOCK, Meta::PURPUR_PILLAR), "Purpur Pillar", $purpurBreakInfo)); - $this->register(new Stair(new BID(Ids::PURPUR_STAIRS, LegacyIds::PURPUR_STAIRS, 0), "Purpur Stairs", $purpurBreakInfo)); + $this->register(new Opaque(new BID(Ids::PURPUR, ItemIds::PURPUR_BLOCK, Meta::PURPUR_NORMAL), "Purpur Block", $purpurBreakInfo)); + $this->register(new SimplePillar(new BID(Ids::PURPUR_PILLAR, ItemIds::PURPUR_BLOCK, Meta::PURPUR_PILLAR), "Purpur Pillar", $purpurBreakInfo)); + $this->register(new Stair(new BID(Ids::PURPUR_STAIRS, ItemIds::PURPUR_STAIRS, 0), "Purpur Stairs", $purpurBreakInfo)); $quartzBreakInfo = new BreakInfo(0.8, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()); - $this->register(new Opaque(new BID(Ids::QUARTZ, LegacyIds::QUARTZ_BLOCK, Meta::QUARTZ_NORMAL), "Quartz Block", $quartzBreakInfo)); - $this->register(new SimplePillar(new BID(Ids::CHISELED_QUARTZ, LegacyIds::QUARTZ_BLOCK, Meta::QUARTZ_CHISELED), "Chiseled Quartz Block", $quartzBreakInfo)); - $this->register(new SimplePillar(new BID(Ids::QUARTZ_PILLAR, LegacyIds::QUARTZ_BLOCK, Meta::QUARTZ_PILLAR), "Quartz Pillar", $quartzBreakInfo)); - $this->register(new Opaque(new BID(Ids::SMOOTH_QUARTZ, LegacyIds::QUARTZ_BLOCK, Meta::QUARTZ_SMOOTH), "Smooth Quartz Block", $quartzBreakInfo)); + $this->register(new Opaque(new BID(Ids::QUARTZ, ItemIds::QUARTZ_BLOCK, Meta::QUARTZ_NORMAL), "Quartz Block", $quartzBreakInfo)); + $this->register(new SimplePillar(new BID(Ids::CHISELED_QUARTZ, ItemIds::QUARTZ_BLOCK, Meta::QUARTZ_CHISELED), "Chiseled Quartz Block", $quartzBreakInfo)); + $this->register(new SimplePillar(new BID(Ids::QUARTZ_PILLAR, ItemIds::QUARTZ_BLOCK, Meta::QUARTZ_PILLAR), "Quartz Pillar", $quartzBreakInfo)); + $this->register(new Opaque(new BID(Ids::SMOOTH_QUARTZ, ItemIds::QUARTZ_BLOCK, Meta::QUARTZ_SMOOTH), "Smooth Quartz Block", $quartzBreakInfo)); - $this->register(new Stair(new BID(Ids::QUARTZ_STAIRS, LegacyIds::QUARTZ_STAIRS, 0), "Quartz Stairs", $quartzBreakInfo)); - $this->register(new Stair(new BID(Ids::SMOOTH_QUARTZ_STAIRS, LegacyIds::SMOOTH_QUARTZ_STAIRS, 0), "Smooth Quartz Stairs", $quartzBreakInfo)); + $this->register(new Stair(new BID(Ids::QUARTZ_STAIRS, ItemIds::QUARTZ_STAIRS, 0), "Quartz Stairs", $quartzBreakInfo)); + $this->register(new Stair(new BID(Ids::SMOOTH_QUARTZ_STAIRS, ItemIds::SMOOTH_QUARTZ_STAIRS, 0), "Smooth Quartz Stairs", $quartzBreakInfo)); - $this->register(new Rail(new BID(Ids::RAIL, LegacyIds::RAIL, 0), "Rail", $railBreakInfo)); - $this->register(new RedMushroom(new BID(Ids::RED_MUSHROOM, LegacyIds::RED_MUSHROOM, 0), "Red Mushroom", BreakInfo::instant())); - $this->register(new Redstone(new BID(Ids::REDSTONE, LegacyIds::REDSTONE_BLOCK, 0), "Redstone Block", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0))); - $this->register(new RedstoneComparator(new BID(Ids::REDSTONE_COMPARATOR, LegacyIds::UNPOWERED_COMPARATOR, 0, ItemIds::COMPARATOR, TileComparator::class), "Redstone Comparator", BreakInfo::instant())); - $this->register(new RedstoneLamp(new BID(Ids::REDSTONE_LAMP, LegacyIds::REDSTONE_LAMP, 0), "Redstone Lamp", new BreakInfo(0.3))); - $this->register(new RedstoneOre(new BID(Ids::REDSTONE_ORE, LegacyIds::REDSTONE_ORE, 0), "Redstone Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel()))); - $this->register(new RedstoneRepeater(new BID(Ids::REDSTONE_REPEATER, LegacyIds::UNPOWERED_REPEATER, 0, ItemIds::REPEATER), "Redstone Repeater", BreakInfo::instant())); - $this->register(new RedstoneTorch(new BID(Ids::REDSTONE_TORCH, LegacyIds::REDSTONE_TORCH, 0), "Redstone Torch", BreakInfo::instant())); - $this->register(new RedstoneWire(new BID(Ids::REDSTONE_WIRE, LegacyIds::REDSTONE_WIRE, 0, ItemIds::REDSTONE), "Redstone", BreakInfo::instant())); - $this->register(new Reserved6(new BID(Ids::RESERVED6, LegacyIds::RESERVED6, 0), "reserved6", BreakInfo::instant())); + $this->register(new Rail(new BID(Ids::RAIL, ItemIds::RAIL, 0), "Rail", $railBreakInfo)); + $this->register(new RedMushroom(new BID(Ids::RED_MUSHROOM, ItemIds::RED_MUSHROOM, 0), "Red Mushroom", BreakInfo::instant())); + $this->register(new Redstone(new BID(Ids::REDSTONE, ItemIds::REDSTONE_BLOCK, 0), "Redstone Block", new BreakInfo(5.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0))); + $this->register(new RedstoneComparator(new BID(Ids::REDSTONE_COMPARATOR, ItemIds::COMPARATOR, 0, TileComparator::class), "Redstone Comparator", BreakInfo::instant())); + $this->register(new RedstoneLamp(new BID(Ids::REDSTONE_LAMP, ItemIds::REDSTONE_LAMP, 0), "Redstone Lamp", new BreakInfo(0.3))); + $this->register(new RedstoneOre(new BID(Ids::REDSTONE_ORE, ItemIds::REDSTONE_ORE, 0), "Redstone Ore", new BreakInfo(3.0, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel()))); + $this->register(new RedstoneRepeater(new BID(Ids::REDSTONE_REPEATER, ItemIds::REPEATER, 0), "Redstone Repeater", BreakInfo::instant())); + $this->register(new RedstoneTorch(new BID(Ids::REDSTONE_TORCH, ItemIds::REDSTONE_TORCH, 0), "Redstone Torch", BreakInfo::instant())); + $this->register(new RedstoneWire(new BID(Ids::REDSTONE_WIRE, ItemIds::REDSTONE, 0), "Redstone", BreakInfo::instant())); + $this->register(new Reserved6(new BID(Ids::RESERVED6, ItemIds::RESERVED6, 0), "reserved6", BreakInfo::instant())); $sandBreakInfo = new BreakInfo(0.5, ToolType::SHOVEL); - $this->register(new Sand(new BID(Ids::SAND, LegacyIds::SAND, 0), "Sand", $sandBreakInfo)); - $this->register(new Sand(new BID(Ids::RED_SAND, LegacyIds::SAND, 1), "Red Sand", $sandBreakInfo)); + $this->register(new Sand(new BID(Ids::SAND, ItemIds::SAND, 0), "Sand", $sandBreakInfo)); + $this->register(new Sand(new BID(Ids::RED_SAND, ItemIds::SAND, 1), "Red Sand", $sandBreakInfo)); - $this->register(new SeaLantern(new BID(Ids::SEA_LANTERN, LegacyIds::SEALANTERN, 0), "Sea Lantern", new BreakInfo(0.3))); - $this->register(new SeaPickle(new BID(Ids::SEA_PICKLE, LegacyIds::SEA_PICKLE, 0), "Sea Pickle", BreakInfo::instant())); - $this->register(new Skull(new BID(Ids::MOB_HEAD, LegacyIds::MOB_HEAD_BLOCK, 0, ItemIds::SKULL, TileSkull::class), "Mob Head", new BreakInfo(1.0))); - $this->register(new Slime(new BID(Ids::SLIME, LegacyIds::SLIME, 0), "Slime Block", BreakInfo::instant())); - $this->register(new Snow(new BID(Ids::SNOW, LegacyIds::SNOW, 0), "Snow Block", new BreakInfo(0.2, ToolType::SHOVEL, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new SnowLayer(new BID(Ids::SNOW_LAYER, LegacyIds::SNOW_LAYER, 0), "Snow Layer", new BreakInfo(0.1, ToolType::SHOVEL, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new SoulSand(new BID(Ids::SOUL_SAND, LegacyIds::SOUL_SAND, 0), "Soul Sand", new BreakInfo(0.5, ToolType::SHOVEL))); - $this->register(new Sponge(new BID(Ids::SPONGE, LegacyIds::SPONGE, 0), "Sponge", new BreakInfo(0.6, ToolType::HOE))); + $this->register(new SeaLantern(new BID(Ids::SEA_LANTERN, ItemIds::SEALANTERN, 0), "Sea Lantern", new BreakInfo(0.3))); + $this->register(new SeaPickle(new BID(Ids::SEA_PICKLE, ItemIds::SEA_PICKLE, 0), "Sea Pickle", BreakInfo::instant())); + $this->register(new Skull(new BID(Ids::MOB_HEAD, ItemIds::SKULL, 0, TileSkull::class), "Mob Head", new BreakInfo(1.0))); + $this->register(new Slime(new BID(Ids::SLIME, ItemIds::SLIME, 0), "Slime Block", BreakInfo::instant())); + $this->register(new Snow(new BID(Ids::SNOW, ItemIds::SNOW, 0), "Snow Block", new BreakInfo(0.2, ToolType::SHOVEL, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new SnowLayer(new BID(Ids::SNOW_LAYER, ItemIds::SNOW_LAYER, 0), "Snow Layer", new BreakInfo(0.1, ToolType::SHOVEL, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new SoulSand(new BID(Ids::SOUL_SAND, ItemIds::SOUL_SAND, 0), "Soul Sand", new BreakInfo(0.5, ToolType::SHOVEL))); + $this->register(new Sponge(new BID(Ids::SPONGE, ItemIds::SPONGE, 0), "Sponge", new BreakInfo(0.6, ToolType::HOE))); $shulkerBoxBreakInfo = new BreakInfo(2, ToolType::PICKAXE); - $this->register(new ShulkerBox(new BID(Ids::SHULKER_BOX, LegacyIds::UNDYED_SHULKER_BOX, 0, null, TileShulkerBox::class), "Shulker Box", $shulkerBoxBreakInfo)); + $this->register(new ShulkerBox(new BID(Ids::SHULKER_BOX, ItemIds::UNDYED_SHULKER_BOX, 0, TileShulkerBox::class), "Shulker Box", $shulkerBoxBreakInfo)); $stoneBreakInfo = new BreakInfo(1.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); $this->register( - $stone = new class(new BID(Ids::STONE, LegacyIds::STONE, Meta::STONE_NORMAL), "Stone", $stoneBreakInfo) extends Opaque{ + $stone = new class(new BID(Ids::STONE, ItemIds::STONE, Meta::STONE_NORMAL), "Stone", $stoneBreakInfo) extends Opaque{ public function getDropsForCompatibleTool(Item $item) : array{ return [VanillaBlocks::COBBLESTONE()->asItem()]; } @@ -345,39 +344,39 @@ class BlockFactory{ } } ); - $this->register(new Opaque(new BID(Ids::ANDESITE, LegacyIds::STONE, Meta::STONE_ANDESITE), "Andesite", $stoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::DIORITE, LegacyIds::STONE, Meta::STONE_DIORITE), "Diorite", $stoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::GRANITE, LegacyIds::STONE, Meta::STONE_GRANITE), "Granite", $stoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::POLISHED_ANDESITE, LegacyIds::STONE, Meta::STONE_POLISHED_ANDESITE), "Polished Andesite", $stoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::POLISHED_DIORITE, LegacyIds::STONE, Meta::STONE_POLISHED_DIORITE), "Polished Diorite", $stoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::POLISHED_GRANITE, LegacyIds::STONE, Meta::STONE_POLISHED_GRANITE), "Polished Granite", $stoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::ANDESITE, ItemIds::STONE, Meta::STONE_ANDESITE), "Andesite", $stoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::DIORITE, ItemIds::STONE, Meta::STONE_DIORITE), "Diorite", $stoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::GRANITE, ItemIds::STONE, Meta::STONE_GRANITE), "Granite", $stoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::POLISHED_ANDESITE, ItemIds::STONE, Meta::STONE_POLISHED_ANDESITE), "Polished Andesite", $stoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::POLISHED_DIORITE, ItemIds::STONE, Meta::STONE_POLISHED_DIORITE), "Polished Diorite", $stoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::POLISHED_GRANITE, ItemIds::STONE, Meta::STONE_POLISHED_GRANITE), "Polished Granite", $stoneBreakInfo)); - $this->register($stoneBrick = new Opaque(new BID(Ids::STONE_BRICKS, LegacyIds::STONEBRICK, Meta::STONE_BRICK_NORMAL), "Stone Bricks", $stoneBreakInfo)); - $this->register($mossyStoneBrick = new Opaque(new BID(Ids::MOSSY_STONE_BRICKS, LegacyIds::STONEBRICK, Meta::STONE_BRICK_MOSSY), "Mossy Stone Bricks", $stoneBreakInfo)); - $this->register($crackedStoneBrick = new Opaque(new BID(Ids::CRACKED_STONE_BRICKS, LegacyIds::STONEBRICK, Meta::STONE_BRICK_CRACKED), "Cracked Stone Bricks", $stoneBreakInfo)); - $this->register($chiseledStoneBrick = new Opaque(new BID(Ids::CHISELED_STONE_BRICKS, LegacyIds::STONEBRICK, Meta::STONE_BRICK_CHISELED), "Chiseled Stone Bricks", $stoneBreakInfo)); + $this->register($stoneBrick = new Opaque(new BID(Ids::STONE_BRICKS, ItemIds::STONEBRICK, Meta::STONE_BRICK_NORMAL), "Stone Bricks", $stoneBreakInfo)); + $this->register($mossyStoneBrick = new Opaque(new BID(Ids::MOSSY_STONE_BRICKS, ItemIds::STONEBRICK, Meta::STONE_BRICK_MOSSY), "Mossy Stone Bricks", $stoneBreakInfo)); + $this->register($crackedStoneBrick = new Opaque(new BID(Ids::CRACKED_STONE_BRICKS, ItemIds::STONEBRICK, Meta::STONE_BRICK_CRACKED), "Cracked Stone Bricks", $stoneBreakInfo)); + $this->register($chiseledStoneBrick = new Opaque(new BID(Ids::CHISELED_STONE_BRICKS, ItemIds::STONEBRICK, Meta::STONE_BRICK_CHISELED), "Chiseled Stone Bricks", $stoneBreakInfo)); $infestedStoneBreakInfo = new BreakInfo(0.75, ToolType::PICKAXE); - $this->register(new InfestedStone(new BID(Ids::INFESTED_STONE, LegacyIds::MONSTER_EGG, Meta::INFESTED_STONE), "Infested Stone", $infestedStoneBreakInfo, $stone)); - $this->register(new InfestedStone(new BID(Ids::INFESTED_STONE_BRICK, LegacyIds::MONSTER_EGG, Meta::INFESTED_STONE_BRICK), "Infested Stone Brick", $infestedStoneBreakInfo, $stoneBrick)); - $this->register(new InfestedStone(new BID(Ids::INFESTED_COBBLESTONE, LegacyIds::MONSTER_EGG, Meta::INFESTED_COBBLESTONE), "Infested Cobblestone", $infestedStoneBreakInfo, $cobblestone)); - $this->register(new InfestedStone(new BID(Ids::INFESTED_MOSSY_STONE_BRICK, LegacyIds::MONSTER_EGG, Meta::INFESTED_STONE_BRICK_MOSSY), "Infested Mossy Stone Brick", $infestedStoneBreakInfo, $mossyStoneBrick)); - $this->register(new InfestedStone(new BID(Ids::INFESTED_CRACKED_STONE_BRICK, LegacyIds::MONSTER_EGG, Meta::INFESTED_STONE_BRICK_CRACKED), "Infested Cracked Stone Brick", $infestedStoneBreakInfo, $crackedStoneBrick)); - $this->register(new InfestedStone(new BID(Ids::INFESTED_CHISELED_STONE_BRICK, LegacyIds::MONSTER_EGG, Meta::INFESTED_STONE_BRICK_CHISELED), "Infested Chiseled Stone Brick", $infestedStoneBreakInfo, $chiseledStoneBrick)); + $this->register(new InfestedStone(new BID(Ids::INFESTED_STONE, ItemIds::MONSTER_EGG, Meta::INFESTED_STONE), "Infested Stone", $infestedStoneBreakInfo, $stone)); + $this->register(new InfestedStone(new BID(Ids::INFESTED_STONE_BRICK, ItemIds::MONSTER_EGG, Meta::INFESTED_STONE_BRICK), "Infested Stone Brick", $infestedStoneBreakInfo, $stoneBrick)); + $this->register(new InfestedStone(new BID(Ids::INFESTED_COBBLESTONE, ItemIds::MONSTER_EGG, Meta::INFESTED_COBBLESTONE), "Infested Cobblestone", $infestedStoneBreakInfo, $cobblestone)); + $this->register(new InfestedStone(new BID(Ids::INFESTED_MOSSY_STONE_BRICK, ItemIds::MONSTER_EGG, Meta::INFESTED_STONE_BRICK_MOSSY), "Infested Mossy Stone Brick", $infestedStoneBreakInfo, $mossyStoneBrick)); + $this->register(new InfestedStone(new BID(Ids::INFESTED_CRACKED_STONE_BRICK, ItemIds::MONSTER_EGG, Meta::INFESTED_STONE_BRICK_CRACKED), "Infested Cracked Stone Brick", $infestedStoneBreakInfo, $crackedStoneBrick)); + $this->register(new InfestedStone(new BID(Ids::INFESTED_CHISELED_STONE_BRICK, ItemIds::MONSTER_EGG, Meta::INFESTED_STONE_BRICK_CHISELED), "Infested Chiseled Stone Brick", $infestedStoneBreakInfo, $chiseledStoneBrick)); - $this->register(new Stair(new BID(Ids::STONE_STAIRS, LegacyIds::NORMAL_STONE_STAIRS, 0), "Stone Stairs", $stoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::SMOOTH_STONE, LegacyIds::SMOOTH_STONE, 0), "Smooth Stone", $stoneBreakInfo)); - $this->register(new Stair(new BID(Ids::ANDESITE_STAIRS, LegacyIds::ANDESITE_STAIRS, 0), "Andesite Stairs", $stoneBreakInfo)); - $this->register(new Stair(new BID(Ids::DIORITE_STAIRS, LegacyIds::DIORITE_STAIRS, 0), "Diorite Stairs", $stoneBreakInfo)); - $this->register(new Stair(new BID(Ids::GRANITE_STAIRS, LegacyIds::GRANITE_STAIRS, 0), "Granite Stairs", $stoneBreakInfo)); - $this->register(new Stair(new BID(Ids::POLISHED_ANDESITE_STAIRS, LegacyIds::POLISHED_ANDESITE_STAIRS, 0), "Polished Andesite Stairs", $stoneBreakInfo)); - $this->register(new Stair(new BID(Ids::POLISHED_DIORITE_STAIRS, LegacyIds::POLISHED_DIORITE_STAIRS, 0), "Polished Diorite Stairs", $stoneBreakInfo)); - $this->register(new Stair(new BID(Ids::POLISHED_GRANITE_STAIRS, LegacyIds::POLISHED_GRANITE_STAIRS, 0), "Polished Granite Stairs", $stoneBreakInfo)); - $this->register(new Stair(new BID(Ids::STONE_BRICK_STAIRS, LegacyIds::STONE_BRICK_STAIRS, 0), "Stone Brick Stairs", $stoneBreakInfo)); - $this->register(new Stair(new BID(Ids::MOSSY_STONE_BRICK_STAIRS, LegacyIds::MOSSY_STONE_BRICK_STAIRS, 0), "Mossy Stone Brick Stairs", $stoneBreakInfo)); - $this->register(new StoneButton(new BID(Ids::STONE_BUTTON, LegacyIds::STONE_BUTTON, 0), "Stone Button", new BreakInfo(0.5, ToolType::PICKAXE))); - $this->register(new Stonecutter(new BID(Ids::STONECUTTER, LegacyIds::STONECUTTER_BLOCK, 0, ItemIds::STONECUTTER_BLOCK), "Stonecutter", new BreakInfo(3.5, ToolType::PICKAXE))); - $this->register(new StonePressurePlate(new BID(Ids::STONE_PRESSURE_PLATE, LegacyIds::STONE_PRESSURE_PLATE, 0), "Stone Pressure Plate", new BreakInfo(0.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Stair(new BID(Ids::STONE_STAIRS, ItemIds::NORMAL_STONE_STAIRS, 0), "Stone Stairs", $stoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::SMOOTH_STONE, ItemIds::SMOOTH_STONE, 0), "Smooth Stone", $stoneBreakInfo)); + $this->register(new Stair(new BID(Ids::ANDESITE_STAIRS, ItemIds::ANDESITE_STAIRS, 0), "Andesite Stairs", $stoneBreakInfo)); + $this->register(new Stair(new BID(Ids::DIORITE_STAIRS, ItemIds::DIORITE_STAIRS, 0), "Diorite Stairs", $stoneBreakInfo)); + $this->register(new Stair(new BID(Ids::GRANITE_STAIRS, ItemIds::GRANITE_STAIRS, 0), "Granite Stairs", $stoneBreakInfo)); + $this->register(new Stair(new BID(Ids::POLISHED_ANDESITE_STAIRS, ItemIds::POLISHED_ANDESITE_STAIRS, 0), "Polished Andesite Stairs", $stoneBreakInfo)); + $this->register(new Stair(new BID(Ids::POLISHED_DIORITE_STAIRS, ItemIds::POLISHED_DIORITE_STAIRS, 0), "Polished Diorite Stairs", $stoneBreakInfo)); + $this->register(new Stair(new BID(Ids::POLISHED_GRANITE_STAIRS, ItemIds::POLISHED_GRANITE_STAIRS, 0), "Polished Granite Stairs", $stoneBreakInfo)); + $this->register(new Stair(new BID(Ids::STONE_BRICK_STAIRS, ItemIds::STONE_BRICK_STAIRS, 0), "Stone Brick Stairs", $stoneBreakInfo)); + $this->register(new Stair(new BID(Ids::MOSSY_STONE_BRICK_STAIRS, ItemIds::MOSSY_STONE_BRICK_STAIRS, 0), "Mossy Stone Brick Stairs", $stoneBreakInfo)); + $this->register(new StoneButton(new BID(Ids::STONE_BUTTON, ItemIds::STONE_BUTTON, 0), "Stone Button", new BreakInfo(0.5, ToolType::PICKAXE))); + $this->register(new Stonecutter(new BID(Ids::STONECUTTER, ItemIds::STONECUTTER_BLOCK, 0), "Stonecutter", new BreakInfo(3.5, ToolType::PICKAXE))); + $this->register(new StonePressurePlate(new BID(Ids::STONE_PRESSURE_PLATE, ItemIds::STONE_PRESSURE_PLATE, 0), "Stone Pressure Plate", new BreakInfo(0.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); //TODO: in the future this won't be the same for all the types $stoneSlabBreakInfo = new BreakInfo(2.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); @@ -417,31 +416,31 @@ class BlockFactory{ $this->register($slabType); } - $this->register(new Opaque(new BID(Ids::LEGACY_STONECUTTER, LegacyIds::STONECUTTER, 0), "Legacy Stonecutter", new BreakInfo(3.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new Sugarcane(new BID(Ids::SUGARCANE, LegacyIds::REEDS_BLOCK, 0, ItemIds::REEDS), "Sugarcane", BreakInfo::instant())); - $this->register(new SweetBerryBush(new BID(Ids::SWEET_BERRY_BUSH, LegacyIds::SWEET_BERRY_BUSH, 0, ItemIds::SWEET_BERRIES), "Sweet Berry Bush", BreakInfo::instant())); - $this->register(new TNT(new BID(Ids::TNT, LegacyIds::TNT, 0), "TNT", BreakInfo::instant())); - $this->register(new TallGrass(new BID(Ids::FERN, LegacyIds::TALLGRASS, Meta::TALLGRASS_FERN), "Fern", BreakInfo::instant(ToolType::SHEARS, 1))); - $this->register(new TallGrass(new BID(Ids::TALL_GRASS, LegacyIds::TALLGRASS, Meta::TALLGRASS_NORMAL), "Tall Grass", BreakInfo::instant(ToolType::SHEARS, 1))); + $this->register(new Opaque(new BID(Ids::LEGACY_STONECUTTER, ItemIds::STONECUTTER, 0), "Legacy Stonecutter", new BreakInfo(3.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new Sugarcane(new BID(Ids::SUGARCANE, ItemIds::REEDS, 0), "Sugarcane", BreakInfo::instant())); + $this->register(new SweetBerryBush(new BID(Ids::SWEET_BERRY_BUSH, ItemIds::SWEET_BERRIES, 0), "Sweet Berry Bush", BreakInfo::instant())); + $this->register(new TNT(new BID(Ids::TNT, ItemIds::TNT, 0), "TNT", BreakInfo::instant())); + $this->register(new TallGrass(new BID(Ids::FERN, ItemIds::TALLGRASS, Meta::TALLGRASS_FERN), "Fern", BreakInfo::instant(ToolType::SHEARS, 1))); + $this->register(new TallGrass(new BID(Ids::TALL_GRASS, ItemIds::TALLGRASS, Meta::TALLGRASS_NORMAL), "Tall Grass", BreakInfo::instant(ToolType::SHEARS, 1))); - $this->register(new Torch(new BID(Ids::BLUE_TORCH, LegacyIds::COLORED_TORCH_BP, 0), "Blue Torch", BreakInfo::instant())); - $this->register(new Torch(new BID(Ids::PURPLE_TORCH, LegacyIds::COLORED_TORCH_BP, 8), "Purple Torch", BreakInfo::instant())); - $this->register(new Torch(new BID(Ids::RED_TORCH, LegacyIds::COLORED_TORCH_RG, 0), "Red Torch", BreakInfo::instant())); - $this->register(new Torch(new BID(Ids::GREEN_TORCH, LegacyIds::COLORED_TORCH_RG, 8), "Green Torch", BreakInfo::instant())); - $this->register(new Torch(new BID(Ids::TORCH, LegacyIds::TORCH, 0), "Torch", BreakInfo::instant())); + $this->register(new Torch(new BID(Ids::BLUE_TORCH, ItemIds::COLORED_TORCH_BP, 0), "Blue Torch", BreakInfo::instant())); + $this->register(new Torch(new BID(Ids::PURPLE_TORCH, ItemIds::COLORED_TORCH_BP, 8), "Purple Torch", BreakInfo::instant())); + $this->register(new Torch(new BID(Ids::RED_TORCH, ItemIds::COLORED_TORCH_RG, 0), "Red Torch", BreakInfo::instant())); + $this->register(new Torch(new BID(Ids::GREEN_TORCH, ItemIds::COLORED_TORCH_RG, 8), "Green Torch", BreakInfo::instant())); + $this->register(new Torch(new BID(Ids::TORCH, ItemIds::TORCH, 0), "Torch", BreakInfo::instant())); - $this->register(new TrappedChest(new BID(Ids::TRAPPED_CHEST, LegacyIds::TRAPPED_CHEST, 0, null, TileChest::class), "Trapped Chest", $chestBreakInfo)); - $this->register(new Tripwire(new BID(Ids::TRIPWIRE, LegacyIds::TRIPWIRE, 0, ItemIds::STRING), "Tripwire", BreakInfo::instant())); - $this->register(new TripwireHook(new BID(Ids::TRIPWIRE_HOOK, LegacyIds::TRIPWIRE_HOOK, 0), "Tripwire Hook", BreakInfo::instant())); - $this->register(new UnderwaterTorch(new BID(Ids::UNDERWATER_TORCH, LegacyIds::UNDERWATER_TORCH, 0), "Underwater Torch", BreakInfo::instant())); - $this->register(new Vine(new BID(Ids::VINES, LegacyIds::VINE, 0), "Vines", new BreakInfo(0.2, ToolType::AXE))); - $this->register(new Water(new BID(Ids::WATER, LegacyIds::FLOWING_WATER, 0), "Water", BreakInfo::indestructible(500.0))); - $this->register(new WaterLily(new BID(Ids::LILY_PAD, LegacyIds::LILY_PAD, 0), "Lily Pad", BreakInfo::instant())); + $this->register(new TrappedChest(new BID(Ids::TRAPPED_CHEST, ItemIds::TRAPPED_CHEST, 0, TileChest::class), "Trapped Chest", $chestBreakInfo)); + $this->register(new Tripwire(new BID(Ids::TRIPWIRE, ItemIds::STRING, 0), "Tripwire", BreakInfo::instant())); + $this->register(new TripwireHook(new BID(Ids::TRIPWIRE_HOOK, ItemIds::TRIPWIRE_HOOK, 0), "Tripwire Hook", BreakInfo::instant())); + $this->register(new UnderwaterTorch(new BID(Ids::UNDERWATER_TORCH, ItemIds::UNDERWATER_TORCH, 0), "Underwater Torch", BreakInfo::instant())); + $this->register(new Vine(new BID(Ids::VINES, ItemIds::VINE, 0), "Vines", new BreakInfo(0.2, ToolType::AXE))); + $this->register(new Water(new BID(Ids::WATER, ItemIds::FLOWING_WATER, 0), "Water", BreakInfo::indestructible(500.0))); + $this->register(new WaterLily(new BID(Ids::LILY_PAD, ItemIds::LILY_PAD, 0), "Lily Pad", BreakInfo::instant())); $weightedPressurePlateBreakInfo = new BreakInfo(0.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()); - $this->register(new WeightedPressurePlateHeavy(new BID(Ids::WEIGHTED_PRESSURE_PLATE_HEAVY, LegacyIds::HEAVY_WEIGHTED_PRESSURE_PLATE, 0), "Weighted Pressure Plate Heavy", $weightedPressurePlateBreakInfo)); - $this->register(new WeightedPressurePlateLight(new BID(Ids::WEIGHTED_PRESSURE_PLATE_LIGHT, LegacyIds::LIGHT_WEIGHTED_PRESSURE_PLATE, 0), "Weighted Pressure Plate Light", $weightedPressurePlateBreakInfo)); - $this->register(new Wheat(new BID(Ids::WHEAT, LegacyIds::WHEAT_BLOCK, 0), "Wheat Block", BreakInfo::instant())); + $this->register(new WeightedPressurePlateHeavy(new BID(Ids::WEIGHTED_PRESSURE_PLATE_HEAVY, ItemIds::HEAVY_WEIGHTED_PRESSURE_PLATE, 0), "Weighted Pressure Plate Heavy", $weightedPressurePlateBreakInfo)); + $this->register(new WeightedPressurePlateLight(new BID(Ids::WEIGHTED_PRESSURE_PLATE_LIGHT, ItemIds::LIGHT_WEIGHTED_PRESSURE_PLATE, 0), "Weighted Pressure Plate Light", $weightedPressurePlateBreakInfo)); + $this->register(new Wheat(new BID(Ids::WHEAT, ItemIds::WHEAT_BLOCK, 0), "Wheat Block", BreakInfo::instant())); $planksBreakInfo = new BreakInfo(2.0, ToolType::AXE, 0, 15.0); $leavesBreakInfo = new class(0.2, ToolType::HOE) extends BreakInfo{ @@ -486,19 +485,19 @@ class BlockFactory{ } $sandstoneBreakInfo = new BreakInfo(0.8, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()); - $this->register(new Stair(new BID(Ids::RED_SANDSTONE_STAIRS, LegacyIds::RED_SANDSTONE_STAIRS, 0), "Red Sandstone Stairs", $sandstoneBreakInfo)); - $this->register(new Stair(new BID(Ids::SMOOTH_RED_SANDSTONE_STAIRS, LegacyIds::SMOOTH_RED_SANDSTONE_STAIRS, 0), "Smooth Red Sandstone Stairs", $sandstoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::RED_SANDSTONE, LegacyIds::RED_SANDSTONE, Meta::SANDSTONE_NORMAL), "Red Sandstone", $sandstoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::CHISELED_RED_SANDSTONE, LegacyIds::RED_SANDSTONE, Meta::SANDSTONE_CHISELED), "Chiseled Red Sandstone", $sandstoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::CUT_RED_SANDSTONE, LegacyIds::RED_SANDSTONE, Meta::SANDSTONE_CUT), "Cut Red Sandstone", $sandstoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::SMOOTH_RED_SANDSTONE, LegacyIds::RED_SANDSTONE, Meta::SANDSTONE_SMOOTH), "Smooth Red Sandstone", $sandstoneBreakInfo)); + $this->register(new Stair(new BID(Ids::RED_SANDSTONE_STAIRS, ItemIds::RED_SANDSTONE_STAIRS, 0), "Red Sandstone Stairs", $sandstoneBreakInfo)); + $this->register(new Stair(new BID(Ids::SMOOTH_RED_SANDSTONE_STAIRS, ItemIds::SMOOTH_RED_SANDSTONE_STAIRS, 0), "Smooth Red Sandstone Stairs", $sandstoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::RED_SANDSTONE, ItemIds::RED_SANDSTONE, Meta::SANDSTONE_NORMAL), "Red Sandstone", $sandstoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::CHISELED_RED_SANDSTONE, ItemIds::RED_SANDSTONE, Meta::SANDSTONE_CHISELED), "Chiseled Red Sandstone", $sandstoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::CUT_RED_SANDSTONE, ItemIds::RED_SANDSTONE, Meta::SANDSTONE_CUT), "Cut Red Sandstone", $sandstoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::SMOOTH_RED_SANDSTONE, ItemIds::RED_SANDSTONE, Meta::SANDSTONE_SMOOTH), "Smooth Red Sandstone", $sandstoneBreakInfo)); - $this->register(new Stair(new BID(Ids::SANDSTONE_STAIRS, LegacyIds::SANDSTONE_STAIRS, 0), "Sandstone Stairs", $sandstoneBreakInfo)); - $this->register(new Stair(new BID(Ids::SMOOTH_SANDSTONE_STAIRS, LegacyIds::SMOOTH_SANDSTONE_STAIRS, 0), "Smooth Sandstone Stairs", $sandstoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::SANDSTONE, LegacyIds::SANDSTONE, Meta::SANDSTONE_NORMAL), "Sandstone", $sandstoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::CHISELED_SANDSTONE, LegacyIds::SANDSTONE, Meta::SANDSTONE_CHISELED), "Chiseled Sandstone", $sandstoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::CUT_SANDSTONE, LegacyIds::SANDSTONE, Meta::SANDSTONE_CUT), "Cut Sandstone", $sandstoneBreakInfo)); - $this->register(new Opaque(new BID(Ids::SMOOTH_SANDSTONE, LegacyIds::SANDSTONE, Meta::SANDSTONE_SMOOTH), "Smooth Sandstone", $sandstoneBreakInfo)); + $this->register(new Stair(new BID(Ids::SANDSTONE_STAIRS, ItemIds::SANDSTONE_STAIRS, 0), "Sandstone Stairs", $sandstoneBreakInfo)); + $this->register(new Stair(new BID(Ids::SMOOTH_SANDSTONE_STAIRS, ItemIds::SMOOTH_SANDSTONE_STAIRS, 0), "Smooth Sandstone Stairs", $sandstoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::SANDSTONE, ItemIds::SANDSTONE, Meta::SANDSTONE_NORMAL), "Sandstone", $sandstoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::CHISELED_SANDSTONE, ItemIds::SANDSTONE, Meta::SANDSTONE_CHISELED), "Chiseled Sandstone", $sandstoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::CUT_SANDSTONE, ItemIds::SANDSTONE, Meta::SANDSTONE_CUT), "Cut Sandstone", $sandstoneBreakInfo)); + $this->register(new Opaque(new BID(Ids::SMOOTH_SANDSTONE, ItemIds::SANDSTONE, Meta::SANDSTONE_SMOOTH), "Smooth Sandstone", $sandstoneBreakInfo)); $glazedTerracottaBreakInfo = new BreakInfo(1.4, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()); foreach(DyeColor::getAll() as $color){ @@ -507,16 +506,16 @@ class BlockFactory{ }; $this->register(new GlazedTerracotta(BlockLegacyIdHelper::getGlazedTerracottaIdentifier($color), $coloredName("Glazed Terracotta"), $glazedTerracottaBreakInfo)); } - $this->register(new DyedShulkerBox(new BID(Ids::DYED_SHULKER_BOX, LegacyIds::SHULKER_BOX, 0, null, TileShulkerBox::class), "Dyed Shulker Box", $shulkerBoxBreakInfo)); - $this->register(new StainedGlass(new BID(Ids::STAINED_GLASS, LegacyIds::STAINED_GLASS, 0), "Stained Glass", $glassBreakInfo)); - $this->register(new StainedGlassPane(new BID(Ids::STAINED_GLASS_PANE, LegacyIds::STAINED_GLASS_PANE, 0), "Stained Glass Pane", $glassBreakInfo)); - $this->register(new StainedHardenedClay(new BID(Ids::STAINED_CLAY, LegacyIds::STAINED_CLAY, 0), "Stained Clay", $hardenedClayBreakInfo)); - $this->register(new StainedHardenedGlass(new BID(Ids::STAINED_HARDENED_GLASS, LegacyIds::HARD_STAINED_GLASS, 0), "Stained Hardened Glass", $hardenedGlassBreakInfo)); - $this->register(new StainedHardenedGlassPane(new BID(Ids::STAINED_HARDENED_GLASS_PANE, LegacyIds::HARD_STAINED_GLASS_PANE, 0), "Stained Hardened Glass Pane", $hardenedGlassBreakInfo)); - $this->register(new Carpet(new BID(Ids::CARPET, LegacyIds::CARPET, 0), "Carpet", new BreakInfo(0.1))); - $this->register(new Concrete(new BID(Ids::CONCRETE, LegacyIds::CONCRETE, 0), "Concrete", new BreakInfo(1.8, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); - $this->register(new ConcretePowder(new BID(Ids::CONCRETE_POWDER, LegacyIds::CONCRETE_POWDER, 0), "Concrete Powder", new BreakInfo(0.5, ToolType::SHOVEL))); - $this->register(new Wool(new BID(Ids::WOOL, LegacyIds::WOOL, 0), "Wool", new class(0.8, ToolType::SHEARS) extends BreakInfo{ + $this->register(new DyedShulkerBox(new BID(Ids::DYED_SHULKER_BOX, ItemIds::SHULKER_BOX, 0, TileShulkerBox::class), "Dyed Shulker Box", $shulkerBoxBreakInfo)); + $this->register(new StainedGlass(new BID(Ids::STAINED_GLASS, ItemIds::STAINED_GLASS, 0), "Stained Glass", $glassBreakInfo)); + $this->register(new StainedGlassPane(new BID(Ids::STAINED_GLASS_PANE, ItemIds::STAINED_GLASS_PANE, 0), "Stained Glass Pane", $glassBreakInfo)); + $this->register(new StainedHardenedClay(new BID(Ids::STAINED_CLAY, ItemIds::STAINED_CLAY, 0), "Stained Clay", $hardenedClayBreakInfo)); + $this->register(new StainedHardenedGlass(new BID(Ids::STAINED_HARDENED_GLASS, ItemIds::HARD_STAINED_GLASS, 0), "Stained Hardened Glass", $hardenedGlassBreakInfo)); + $this->register(new StainedHardenedGlassPane(new BID(Ids::STAINED_HARDENED_GLASS_PANE, ItemIds::HARD_STAINED_GLASS_PANE, 0), "Stained Hardened Glass Pane", $hardenedGlassBreakInfo)); + $this->register(new Carpet(new BID(Ids::CARPET, ItemIds::CARPET, 0), "Carpet", new BreakInfo(0.1))); + $this->register(new Concrete(new BID(Ids::CONCRETE, ItemIds::CONCRETE, 0), "Concrete", new BreakInfo(1.8, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + $this->register(new ConcretePowder(new BID(Ids::CONCRETE_POWDER, ItemIds::CONCRETE_POWDER, 0), "Concrete Powder", new BreakInfo(0.5, ToolType::SHOVEL))); + $this->register(new Wool(new BID(Ids::WOOL, ItemIds::WOOL, 0), "Wool", new class(0.8, ToolType::SHEARS) extends BreakInfo{ public function getBreakTime(Item $item) : float{ $time = parent::getBreakTime($item); if($item->getBlockToolType() === ToolType::SHEARS){ @@ -529,45 +528,45 @@ class BlockFactory{ //TODO: in the future these won't all have the same hardness; they only do now because of the old metadata crap $wallBreakInfo = new BreakInfo(2.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); - $this->register(new Wall(new BID(Ids::COBBLESTONE_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_COBBLESTONE), "Cobblestone Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::ANDESITE_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_ANDESITE), "Andesite Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::BRICK_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_BRICK), "Brick Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::DIORITE_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_DIORITE), "Diorite Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::END_STONE_BRICK_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_END_STONE_BRICK), "End Stone Brick Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::GRANITE_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_GRANITE), "Granite Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::MOSSY_STONE_BRICK_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_MOSSY_STONE_BRICK), "Mossy Stone Brick Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::MOSSY_COBBLESTONE_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_MOSSY_COBBLESTONE), "Mossy Cobblestone Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::NETHER_BRICK_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_NETHER_BRICK), "Nether Brick Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::PRISMARINE_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_PRISMARINE), "Prismarine Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::RED_NETHER_BRICK_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_RED_NETHER_BRICK), "Red Nether Brick Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::RED_SANDSTONE_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_RED_SANDSTONE), "Red Sandstone Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::SANDSTONE_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_SANDSTONE), "Sandstone Wall", $wallBreakInfo)); - $this->register(new Wall(new BID(Ids::STONE_BRICK_WALL, LegacyIds::COBBLESTONE_WALL, Meta::WALL_STONE_BRICK), "Stone Brick Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::COBBLESTONE_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_COBBLESTONE), "Cobblestone Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::ANDESITE_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_ANDESITE), "Andesite Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::BRICK_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_BRICK), "Brick Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::DIORITE_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_DIORITE), "Diorite Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::END_STONE_BRICK_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_END_STONE_BRICK), "End Stone Brick Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::GRANITE_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_GRANITE), "Granite Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::MOSSY_STONE_BRICK_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_MOSSY_STONE_BRICK), "Mossy Stone Brick Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::MOSSY_COBBLESTONE_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_MOSSY_COBBLESTONE), "Mossy Cobblestone Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::NETHER_BRICK_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_NETHER_BRICK), "Nether Brick Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::PRISMARINE_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_PRISMARINE), "Prismarine Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::RED_NETHER_BRICK_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_RED_NETHER_BRICK), "Red Nether Brick Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::RED_SANDSTONE_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_RED_SANDSTONE), "Red Sandstone Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::SANDSTONE_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_SANDSTONE), "Sandstone Wall", $wallBreakInfo)); + $this->register(new Wall(new BID(Ids::STONE_BRICK_WALL, ItemIds::COBBLESTONE_WALL, Meta::WALL_STONE_BRICK), "Stone Brick Wall", $wallBreakInfo)); $this->registerElements(); $chemistryTableBreakInfo = new BreakInfo(2.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()); - $this->register(new ChemistryTable(new BID(Ids::COMPOUND_CREATOR, LegacyIds::CHEMISTRY_TABLE, Meta::CHEMISTRY_COMPOUND_CREATOR), "Compound Creator", $chemistryTableBreakInfo)); - $this->register(new ChemistryTable(new BID(Ids::ELEMENT_CONSTRUCTOR, LegacyIds::CHEMISTRY_TABLE, Meta::CHEMISTRY_ELEMENT_CONSTRUCTOR), "Element Constructor", $chemistryTableBreakInfo)); - $this->register(new ChemistryTable(new BID(Ids::LAB_TABLE, LegacyIds::CHEMISTRY_TABLE, Meta::CHEMISTRY_LAB_TABLE), "Lab Table", $chemistryTableBreakInfo)); - $this->register(new ChemistryTable(new BID(Ids::MATERIAL_REDUCER, LegacyIds::CHEMISTRY_TABLE, Meta::CHEMISTRY_MATERIAL_REDUCER), "Material Reducer", $chemistryTableBreakInfo)); + $this->register(new ChemistryTable(new BID(Ids::COMPOUND_CREATOR, ItemIds::CHEMISTRY_TABLE, Meta::CHEMISTRY_COMPOUND_CREATOR), "Compound Creator", $chemistryTableBreakInfo)); + $this->register(new ChemistryTable(new BID(Ids::ELEMENT_CONSTRUCTOR, ItemIds::CHEMISTRY_TABLE, Meta::CHEMISTRY_ELEMENT_CONSTRUCTOR), "Element Constructor", $chemistryTableBreakInfo)); + $this->register(new ChemistryTable(new BID(Ids::LAB_TABLE, ItemIds::CHEMISTRY_TABLE, Meta::CHEMISTRY_LAB_TABLE), "Lab Table", $chemistryTableBreakInfo)); + $this->register(new ChemistryTable(new BID(Ids::MATERIAL_REDUCER, ItemIds::CHEMISTRY_TABLE, Meta::CHEMISTRY_MATERIAL_REDUCER), "Material Reducer", $chemistryTableBreakInfo)); - $this->register(new ChemicalHeat(new BID(Ids::CHEMICAL_HEAT, LegacyIds::CHEMICAL_HEAT, 0), "Heat Block", $chemistryTableBreakInfo)); + $this->register(new ChemicalHeat(new BID(Ids::CHEMICAL_HEAT, ItemIds::CHEMICAL_HEAT, 0), "Heat Block", $chemistryTableBreakInfo)); $this->registerMushroomBlocks(); $this->register(new Coral( - new BID(Ids::CORAL, LegacyIds::CORAL, 0), + new BID(Ids::CORAL, ItemIds::CORAL, 0), "Coral", BreakInfo::instant(), )); $this->register(new FloorCoralFan( - new BID(Ids::CORAL_FAN, LegacyIds::CORAL_FAN, 0, ItemIds::CORAL_FAN), + new BID(Ids::CORAL_FAN, ItemIds::CORAL_FAN, 0), "Coral Fan", BreakInfo::instant(), )); $this->register(new WallCoralFan( - new BID(Ids::WALL_CORAL_FAN, LegacyIds::CORAL_FAN_HANG, 0, ItemIds::CORAL_FAN), + new BID(Ids::WALL_CORAL_FAN, ItemIds::CORAL_FAN, 0), "Wall Coral Fan", BreakInfo::instant(), )); @@ -710,136 +709,136 @@ class BlockFactory{ private function registerMushroomBlocks() : void{ $mushroomBlockBreakInfo = new BreakInfo(0.2, ToolType::AXE); - $this->register(new BrownMushroomBlock(new BID(Ids::BROWN_MUSHROOM_BLOCK, LegacyIds::BROWN_MUSHROOM_BLOCK, 0), "Brown Mushroom Block", $mushroomBlockBreakInfo)); - $this->register(new RedMushroomBlock(new BID(Ids::RED_MUSHROOM_BLOCK, LegacyIds::RED_MUSHROOM_BLOCK, 0), "Red Mushroom Block", $mushroomBlockBreakInfo)); + $this->register(new BrownMushroomBlock(new BID(Ids::BROWN_MUSHROOM_BLOCK, ItemIds::BROWN_MUSHROOM_BLOCK, 0), "Brown Mushroom Block", $mushroomBlockBreakInfo)); + $this->register(new RedMushroomBlock(new BID(Ids::RED_MUSHROOM_BLOCK, ItemIds::RED_MUSHROOM_BLOCK, 0), "Red Mushroom Block", $mushroomBlockBreakInfo)); //finally, the stems - $this->register(new MushroomStem(new BID(Ids::MUSHROOM_STEM, LegacyIds::BROWN_MUSHROOM_BLOCK, Meta::MUSHROOM_BLOCK_STEM), "Mushroom Stem", $mushroomBlockBreakInfo)); - $this->register(new MushroomStem(new BID(Ids::ALL_SIDED_MUSHROOM_STEM, LegacyIds::BROWN_MUSHROOM_BLOCK, Meta::MUSHROOM_BLOCK_ALL_STEM), "All Sided Mushroom Stem", $mushroomBlockBreakInfo)); + $this->register(new MushroomStem(new BID(Ids::MUSHROOM_STEM, ItemIds::BROWN_MUSHROOM_BLOCK, Meta::MUSHROOM_BLOCK_STEM), "Mushroom Stem", $mushroomBlockBreakInfo)); + $this->register(new MushroomStem(new BID(Ids::ALL_SIDED_MUSHROOM_STEM, ItemIds::BROWN_MUSHROOM_BLOCK, Meta::MUSHROOM_BLOCK_ALL_STEM), "All Sided Mushroom Stem", $mushroomBlockBreakInfo)); } private function registerElements() : void{ $instaBreak = BreakInfo::instant(); - $this->register(new Opaque(new BID(Ids::ELEMENT_ZERO, LegacyIds::ELEMENT_0, 0), "???", $instaBreak)); + $this->register(new Opaque(new BID(Ids::ELEMENT_ZERO, ItemIds::ELEMENT_0, 0), "???", $instaBreak)); - $this->register(new Element(new BID(Ids::ELEMENT_HYDROGEN, LegacyIds::ELEMENT_1, 0), "Hydrogen", $instaBreak, "h", 1, 5)); - $this->register(new Element(new BID(Ids::ELEMENT_HELIUM, LegacyIds::ELEMENT_2, 0), "Helium", $instaBreak, "he", 2, 7)); - $this->register(new Element(new BID(Ids::ELEMENT_LITHIUM, LegacyIds::ELEMENT_3, 0), "Lithium", $instaBreak, "li", 3, 0)); - $this->register(new Element(new BID(Ids::ELEMENT_BERYLLIUM, LegacyIds::ELEMENT_4, 0), "Beryllium", $instaBreak, "be", 4, 1)); - $this->register(new Element(new BID(Ids::ELEMENT_BORON, LegacyIds::ELEMENT_5, 0), "Boron", $instaBreak, "b", 5, 4)); - $this->register(new Element(new BID(Ids::ELEMENT_CARBON, LegacyIds::ELEMENT_6, 0), "Carbon", $instaBreak, "c", 6, 5)); - $this->register(new Element(new BID(Ids::ELEMENT_NITROGEN, LegacyIds::ELEMENT_7, 0), "Nitrogen", $instaBreak, "n", 7, 5)); - $this->register(new Element(new BID(Ids::ELEMENT_OXYGEN, LegacyIds::ELEMENT_8, 0), "Oxygen", $instaBreak, "o", 8, 5)); - $this->register(new Element(new BID(Ids::ELEMENT_FLUORINE, LegacyIds::ELEMENT_9, 0), "Fluorine", $instaBreak, "f", 9, 6)); - $this->register(new Element(new BID(Ids::ELEMENT_NEON, LegacyIds::ELEMENT_10, 0), "Neon", $instaBreak, "ne", 10, 7)); - $this->register(new Element(new BID(Ids::ELEMENT_SODIUM, LegacyIds::ELEMENT_11, 0), "Sodium", $instaBreak, "na", 11, 0)); - $this->register(new Element(new BID(Ids::ELEMENT_MAGNESIUM, LegacyIds::ELEMENT_12, 0), "Magnesium", $instaBreak, "mg", 12, 1)); - $this->register(new Element(new BID(Ids::ELEMENT_ALUMINUM, LegacyIds::ELEMENT_13, 0), "Aluminum", $instaBreak, "al", 13, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_SILICON, LegacyIds::ELEMENT_14, 0), "Silicon", $instaBreak, "si", 14, 4)); - $this->register(new Element(new BID(Ids::ELEMENT_PHOSPHORUS, LegacyIds::ELEMENT_15, 0), "Phosphorus", $instaBreak, "p", 15, 5)); - $this->register(new Element(new BID(Ids::ELEMENT_SULFUR, LegacyIds::ELEMENT_16, 0), "Sulfur", $instaBreak, "s", 16, 5)); - $this->register(new Element(new BID(Ids::ELEMENT_CHLORINE, LegacyIds::ELEMENT_17, 0), "Chlorine", $instaBreak, "cl", 17, 6)); - $this->register(new Element(new BID(Ids::ELEMENT_ARGON, LegacyIds::ELEMENT_18, 0), "Argon", $instaBreak, "ar", 18, 7)); - $this->register(new Element(new BID(Ids::ELEMENT_POTASSIUM, LegacyIds::ELEMENT_19, 0), "Potassium", $instaBreak, "k", 19, 0)); - $this->register(new Element(new BID(Ids::ELEMENT_CALCIUM, LegacyIds::ELEMENT_20, 0), "Calcium", $instaBreak, "ca", 20, 1)); - $this->register(new Element(new BID(Ids::ELEMENT_SCANDIUM, LegacyIds::ELEMENT_21, 0), "Scandium", $instaBreak, "sc", 21, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_TITANIUM, LegacyIds::ELEMENT_22, 0), "Titanium", $instaBreak, "ti", 22, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_VANADIUM, LegacyIds::ELEMENT_23, 0), "Vanadium", $instaBreak, "v", 23, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_CHROMIUM, LegacyIds::ELEMENT_24, 0), "Chromium", $instaBreak, "cr", 24, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_MANGANESE, LegacyIds::ELEMENT_25, 0), "Manganese", $instaBreak, "mn", 25, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_IRON, LegacyIds::ELEMENT_26, 0), "Iron", $instaBreak, "fe", 26, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_COBALT, LegacyIds::ELEMENT_27, 0), "Cobalt", $instaBreak, "co", 27, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_NICKEL, LegacyIds::ELEMENT_28, 0), "Nickel", $instaBreak, "ni", 28, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_COPPER, LegacyIds::ELEMENT_29, 0), "Copper", $instaBreak, "cu", 29, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_ZINC, LegacyIds::ELEMENT_30, 0), "Zinc", $instaBreak, "zn", 30, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_GALLIUM, LegacyIds::ELEMENT_31, 0), "Gallium", $instaBreak, "ga", 31, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_GERMANIUM, LegacyIds::ELEMENT_32, 0), "Germanium", $instaBreak, "ge", 32, 4)); - $this->register(new Element(new BID(Ids::ELEMENT_ARSENIC, LegacyIds::ELEMENT_33, 0), "Arsenic", $instaBreak, "as", 33, 4)); - $this->register(new Element(new BID(Ids::ELEMENT_SELENIUM, LegacyIds::ELEMENT_34, 0), "Selenium", $instaBreak, "se", 34, 5)); - $this->register(new Element(new BID(Ids::ELEMENT_BROMINE, LegacyIds::ELEMENT_35, 0), "Bromine", $instaBreak, "br", 35, 6)); - $this->register(new Element(new BID(Ids::ELEMENT_KRYPTON, LegacyIds::ELEMENT_36, 0), "Krypton", $instaBreak, "kr", 36, 7)); - $this->register(new Element(new BID(Ids::ELEMENT_RUBIDIUM, LegacyIds::ELEMENT_37, 0), "Rubidium", $instaBreak, "rb", 37, 0)); - $this->register(new Element(new BID(Ids::ELEMENT_STRONTIUM, LegacyIds::ELEMENT_38, 0), "Strontium", $instaBreak, "sr", 38, 1)); - $this->register(new Element(new BID(Ids::ELEMENT_YTTRIUM, LegacyIds::ELEMENT_39, 0), "Yttrium", $instaBreak, "y", 39, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_ZIRCONIUM, LegacyIds::ELEMENT_40, 0), "Zirconium", $instaBreak, "zr", 40, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_NIOBIUM, LegacyIds::ELEMENT_41, 0), "Niobium", $instaBreak, "nb", 41, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_MOLYBDENUM, LegacyIds::ELEMENT_42, 0), "Molybdenum", $instaBreak, "mo", 42, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_TECHNETIUM, LegacyIds::ELEMENT_43, 0), "Technetium", $instaBreak, "tc", 43, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_RUTHENIUM, LegacyIds::ELEMENT_44, 0), "Ruthenium", $instaBreak, "ru", 44, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_RHODIUM, LegacyIds::ELEMENT_45, 0), "Rhodium", $instaBreak, "rh", 45, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_PALLADIUM, LegacyIds::ELEMENT_46, 0), "Palladium", $instaBreak, "pd", 46, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_SILVER, LegacyIds::ELEMENT_47, 0), "Silver", $instaBreak, "ag", 47, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_CADMIUM, LegacyIds::ELEMENT_48, 0), "Cadmium", $instaBreak, "cd", 48, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_INDIUM, LegacyIds::ELEMENT_49, 0), "Indium", $instaBreak, "in", 49, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_TIN, LegacyIds::ELEMENT_50, 0), "Tin", $instaBreak, "sn", 50, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_ANTIMONY, LegacyIds::ELEMENT_51, 0), "Antimony", $instaBreak, "sb", 51, 4)); - $this->register(new Element(new BID(Ids::ELEMENT_TELLURIUM, LegacyIds::ELEMENT_52, 0), "Tellurium", $instaBreak, "te", 52, 4)); - $this->register(new Element(new BID(Ids::ELEMENT_IODINE, LegacyIds::ELEMENT_53, 0), "Iodine", $instaBreak, "i", 53, 6)); - $this->register(new Element(new BID(Ids::ELEMENT_XENON, LegacyIds::ELEMENT_54, 0), "Xenon", $instaBreak, "xe", 54, 7)); - $this->register(new Element(new BID(Ids::ELEMENT_CESIUM, LegacyIds::ELEMENT_55, 0), "Cesium", $instaBreak, "cs", 55, 0)); - $this->register(new Element(new BID(Ids::ELEMENT_BARIUM, LegacyIds::ELEMENT_56, 0), "Barium", $instaBreak, "ba", 56, 1)); - $this->register(new Element(new BID(Ids::ELEMENT_LANTHANUM, LegacyIds::ELEMENT_57, 0), "Lanthanum", $instaBreak, "la", 57, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_CERIUM, LegacyIds::ELEMENT_58, 0), "Cerium", $instaBreak, "ce", 58, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_PRASEODYMIUM, LegacyIds::ELEMENT_59, 0), "Praseodymium", $instaBreak, "pr", 59, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_NEODYMIUM, LegacyIds::ELEMENT_60, 0), "Neodymium", $instaBreak, "nd", 60, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_PROMETHIUM, LegacyIds::ELEMENT_61, 0), "Promethium", $instaBreak, "pm", 61, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_SAMARIUM, LegacyIds::ELEMENT_62, 0), "Samarium", $instaBreak, "sm", 62, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_EUROPIUM, LegacyIds::ELEMENT_63, 0), "Europium", $instaBreak, "eu", 63, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_GADOLINIUM, LegacyIds::ELEMENT_64, 0), "Gadolinium", $instaBreak, "gd", 64, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_TERBIUM, LegacyIds::ELEMENT_65, 0), "Terbium", $instaBreak, "tb", 65, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_DYSPROSIUM, LegacyIds::ELEMENT_66, 0), "Dysprosium", $instaBreak, "dy", 66, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_HOLMIUM, LegacyIds::ELEMENT_67, 0), "Holmium", $instaBreak, "ho", 67, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_ERBIUM, LegacyIds::ELEMENT_68, 0), "Erbium", $instaBreak, "er", 68, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_THULIUM, LegacyIds::ELEMENT_69, 0), "Thulium", $instaBreak, "tm", 69, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_YTTERBIUM, LegacyIds::ELEMENT_70, 0), "Ytterbium", $instaBreak, "yb", 70, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_LUTETIUM, LegacyIds::ELEMENT_71, 0), "Lutetium", $instaBreak, "lu", 71, 8)); - $this->register(new Element(new BID(Ids::ELEMENT_HAFNIUM, LegacyIds::ELEMENT_72, 0), "Hafnium", $instaBreak, "hf", 72, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_TANTALUM, LegacyIds::ELEMENT_73, 0), "Tantalum", $instaBreak, "ta", 73, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_TUNGSTEN, LegacyIds::ELEMENT_74, 0), "Tungsten", $instaBreak, "w", 74, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_RHENIUM, LegacyIds::ELEMENT_75, 0), "Rhenium", $instaBreak, "re", 75, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_OSMIUM, LegacyIds::ELEMENT_76, 0), "Osmium", $instaBreak, "os", 76, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_IRIDIUM, LegacyIds::ELEMENT_77, 0), "Iridium", $instaBreak, "ir", 77, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_PLATINUM, LegacyIds::ELEMENT_78, 0), "Platinum", $instaBreak, "pt", 78, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_GOLD, LegacyIds::ELEMENT_79, 0), "Gold", $instaBreak, "au", 79, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_MERCURY, LegacyIds::ELEMENT_80, 0), "Mercury", $instaBreak, "hg", 80, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_THALLIUM, LegacyIds::ELEMENT_81, 0), "Thallium", $instaBreak, "tl", 81, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_LEAD, LegacyIds::ELEMENT_82, 0), "Lead", $instaBreak, "pb", 82, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_BISMUTH, LegacyIds::ELEMENT_83, 0), "Bismuth", $instaBreak, "bi", 83, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_POLONIUM, LegacyIds::ELEMENT_84, 0), "Polonium", $instaBreak, "po", 84, 4)); - $this->register(new Element(new BID(Ids::ELEMENT_ASTATINE, LegacyIds::ELEMENT_85, 0), "Astatine", $instaBreak, "at", 85, 6)); - $this->register(new Element(new BID(Ids::ELEMENT_RADON, LegacyIds::ELEMENT_86, 0), "Radon", $instaBreak, "rn", 86, 7)); - $this->register(new Element(new BID(Ids::ELEMENT_FRANCIUM, LegacyIds::ELEMENT_87, 0), "Francium", $instaBreak, "fr", 87, 0)); - $this->register(new Element(new BID(Ids::ELEMENT_RADIUM, LegacyIds::ELEMENT_88, 0), "Radium", $instaBreak, "ra", 88, 1)); - $this->register(new Element(new BID(Ids::ELEMENT_ACTINIUM, LegacyIds::ELEMENT_89, 0), "Actinium", $instaBreak, "ac", 89, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_THORIUM, LegacyIds::ELEMENT_90, 0), "Thorium", $instaBreak, "th", 90, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_PROTACTINIUM, LegacyIds::ELEMENT_91, 0), "Protactinium", $instaBreak, "pa", 91, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_URANIUM, LegacyIds::ELEMENT_92, 0), "Uranium", $instaBreak, "u", 92, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_NEPTUNIUM, LegacyIds::ELEMENT_93, 0), "Neptunium", $instaBreak, "np", 93, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_PLUTONIUM, LegacyIds::ELEMENT_94, 0), "Plutonium", $instaBreak, "pu", 94, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_AMERICIUM, LegacyIds::ELEMENT_95, 0), "Americium", $instaBreak, "am", 95, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_CURIUM, LegacyIds::ELEMENT_96, 0), "Curium", $instaBreak, "cm", 96, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_BERKELIUM, LegacyIds::ELEMENT_97, 0), "Berkelium", $instaBreak, "bk", 97, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_CALIFORNIUM, LegacyIds::ELEMENT_98, 0), "Californium", $instaBreak, "cf", 98, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_EINSTEINIUM, LegacyIds::ELEMENT_99, 0), "Einsteinium", $instaBreak, "es", 99, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_FERMIUM, LegacyIds::ELEMENT_100, 0), "Fermium", $instaBreak, "fm", 100, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_MENDELEVIUM, LegacyIds::ELEMENT_101, 0), "Mendelevium", $instaBreak, "md", 101, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_NOBELIUM, LegacyIds::ELEMENT_102, 0), "Nobelium", $instaBreak, "no", 102, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_LAWRENCIUM, LegacyIds::ELEMENT_103, 0), "Lawrencium", $instaBreak, "lr", 103, 9)); - $this->register(new Element(new BID(Ids::ELEMENT_RUTHERFORDIUM, LegacyIds::ELEMENT_104, 0), "Rutherfordium", $instaBreak, "rf", 104, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_DUBNIUM, LegacyIds::ELEMENT_105, 0), "Dubnium", $instaBreak, "db", 105, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_SEABORGIUM, LegacyIds::ELEMENT_106, 0), "Seaborgium", $instaBreak, "sg", 106, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_BOHRIUM, LegacyIds::ELEMENT_107, 0), "Bohrium", $instaBreak, "bh", 107, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_HASSIUM, LegacyIds::ELEMENT_108, 0), "Hassium", $instaBreak, "hs", 108, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_MEITNERIUM, LegacyIds::ELEMENT_109, 0), "Meitnerium", $instaBreak, "mt", 109, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_DARMSTADTIUM, LegacyIds::ELEMENT_110, 0), "Darmstadtium", $instaBreak, "ds", 110, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_ROENTGENIUM, LegacyIds::ELEMENT_111, 0), "Roentgenium", $instaBreak, "rg", 111, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_COPERNICIUM, LegacyIds::ELEMENT_112, 0), "Copernicium", $instaBreak, "cn", 112, 2)); - $this->register(new Element(new BID(Ids::ELEMENT_NIHONIUM, LegacyIds::ELEMENT_113, 0), "Nihonium", $instaBreak, "nh", 113, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_FLEROVIUM, LegacyIds::ELEMENT_114, 0), "Flerovium", $instaBreak, "fl", 114, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_MOSCOVIUM, LegacyIds::ELEMENT_115, 0), "Moscovium", $instaBreak, "mc", 115, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_LIVERMORIUM, LegacyIds::ELEMENT_116, 0), "Livermorium", $instaBreak, "lv", 116, 3)); - $this->register(new Element(new BID(Ids::ELEMENT_TENNESSINE, LegacyIds::ELEMENT_117, 0), "Tennessine", $instaBreak, "ts", 117, 6)); - $this->register(new Element(new BID(Ids::ELEMENT_OGANESSON, LegacyIds::ELEMENT_118, 0), "Oganesson", $instaBreak, "og", 118, 7)); + $this->register(new Element(new BID(Ids::ELEMENT_HYDROGEN, ItemIds::ELEMENT_1, 0), "Hydrogen", $instaBreak, "h", 1, 5)); + $this->register(new Element(new BID(Ids::ELEMENT_HELIUM, ItemIds::ELEMENT_2, 0), "Helium", $instaBreak, "he", 2, 7)); + $this->register(new Element(new BID(Ids::ELEMENT_LITHIUM, ItemIds::ELEMENT_3, 0), "Lithium", $instaBreak, "li", 3, 0)); + $this->register(new Element(new BID(Ids::ELEMENT_BERYLLIUM, ItemIds::ELEMENT_4, 0), "Beryllium", $instaBreak, "be", 4, 1)); + $this->register(new Element(new BID(Ids::ELEMENT_BORON, ItemIds::ELEMENT_5, 0), "Boron", $instaBreak, "b", 5, 4)); + $this->register(new Element(new BID(Ids::ELEMENT_CARBON, ItemIds::ELEMENT_6, 0), "Carbon", $instaBreak, "c", 6, 5)); + $this->register(new Element(new BID(Ids::ELEMENT_NITROGEN, ItemIds::ELEMENT_7, 0), "Nitrogen", $instaBreak, "n", 7, 5)); + $this->register(new Element(new BID(Ids::ELEMENT_OXYGEN, ItemIds::ELEMENT_8, 0), "Oxygen", $instaBreak, "o", 8, 5)); + $this->register(new Element(new BID(Ids::ELEMENT_FLUORINE, ItemIds::ELEMENT_9, 0), "Fluorine", $instaBreak, "f", 9, 6)); + $this->register(new Element(new BID(Ids::ELEMENT_NEON, ItemIds::ELEMENT_10, 0), "Neon", $instaBreak, "ne", 10, 7)); + $this->register(new Element(new BID(Ids::ELEMENT_SODIUM, ItemIds::ELEMENT_11, 0), "Sodium", $instaBreak, "na", 11, 0)); + $this->register(new Element(new BID(Ids::ELEMENT_MAGNESIUM, ItemIds::ELEMENT_12, 0), "Magnesium", $instaBreak, "mg", 12, 1)); + $this->register(new Element(new BID(Ids::ELEMENT_ALUMINUM, ItemIds::ELEMENT_13, 0), "Aluminum", $instaBreak, "al", 13, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_SILICON, ItemIds::ELEMENT_14, 0), "Silicon", $instaBreak, "si", 14, 4)); + $this->register(new Element(new BID(Ids::ELEMENT_PHOSPHORUS, ItemIds::ELEMENT_15, 0), "Phosphorus", $instaBreak, "p", 15, 5)); + $this->register(new Element(new BID(Ids::ELEMENT_SULFUR, ItemIds::ELEMENT_16, 0), "Sulfur", $instaBreak, "s", 16, 5)); + $this->register(new Element(new BID(Ids::ELEMENT_CHLORINE, ItemIds::ELEMENT_17, 0), "Chlorine", $instaBreak, "cl", 17, 6)); + $this->register(new Element(new BID(Ids::ELEMENT_ARGON, ItemIds::ELEMENT_18, 0), "Argon", $instaBreak, "ar", 18, 7)); + $this->register(new Element(new BID(Ids::ELEMENT_POTASSIUM, ItemIds::ELEMENT_19, 0), "Potassium", $instaBreak, "k", 19, 0)); + $this->register(new Element(new BID(Ids::ELEMENT_CALCIUM, ItemIds::ELEMENT_20, 0), "Calcium", $instaBreak, "ca", 20, 1)); + $this->register(new Element(new BID(Ids::ELEMENT_SCANDIUM, ItemIds::ELEMENT_21, 0), "Scandium", $instaBreak, "sc", 21, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_TITANIUM, ItemIds::ELEMENT_22, 0), "Titanium", $instaBreak, "ti", 22, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_VANADIUM, ItemIds::ELEMENT_23, 0), "Vanadium", $instaBreak, "v", 23, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_CHROMIUM, ItemIds::ELEMENT_24, 0), "Chromium", $instaBreak, "cr", 24, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_MANGANESE, ItemIds::ELEMENT_25, 0), "Manganese", $instaBreak, "mn", 25, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_IRON, ItemIds::ELEMENT_26, 0), "Iron", $instaBreak, "fe", 26, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_COBALT, ItemIds::ELEMENT_27, 0), "Cobalt", $instaBreak, "co", 27, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_NICKEL, ItemIds::ELEMENT_28, 0), "Nickel", $instaBreak, "ni", 28, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_COPPER, ItemIds::ELEMENT_29, 0), "Copper", $instaBreak, "cu", 29, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_ZINC, ItemIds::ELEMENT_30, 0), "Zinc", $instaBreak, "zn", 30, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_GALLIUM, ItemIds::ELEMENT_31, 0), "Gallium", $instaBreak, "ga", 31, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_GERMANIUM, ItemIds::ELEMENT_32, 0), "Germanium", $instaBreak, "ge", 32, 4)); + $this->register(new Element(new BID(Ids::ELEMENT_ARSENIC, ItemIds::ELEMENT_33, 0), "Arsenic", $instaBreak, "as", 33, 4)); + $this->register(new Element(new BID(Ids::ELEMENT_SELENIUM, ItemIds::ELEMENT_34, 0), "Selenium", $instaBreak, "se", 34, 5)); + $this->register(new Element(new BID(Ids::ELEMENT_BROMINE, ItemIds::ELEMENT_35, 0), "Bromine", $instaBreak, "br", 35, 6)); + $this->register(new Element(new BID(Ids::ELEMENT_KRYPTON, ItemIds::ELEMENT_36, 0), "Krypton", $instaBreak, "kr", 36, 7)); + $this->register(new Element(new BID(Ids::ELEMENT_RUBIDIUM, ItemIds::ELEMENT_37, 0), "Rubidium", $instaBreak, "rb", 37, 0)); + $this->register(new Element(new BID(Ids::ELEMENT_STRONTIUM, ItemIds::ELEMENT_38, 0), "Strontium", $instaBreak, "sr", 38, 1)); + $this->register(new Element(new BID(Ids::ELEMENT_YTTRIUM, ItemIds::ELEMENT_39, 0), "Yttrium", $instaBreak, "y", 39, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_ZIRCONIUM, ItemIds::ELEMENT_40, 0), "Zirconium", $instaBreak, "zr", 40, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_NIOBIUM, ItemIds::ELEMENT_41, 0), "Niobium", $instaBreak, "nb", 41, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_MOLYBDENUM, ItemIds::ELEMENT_42, 0), "Molybdenum", $instaBreak, "mo", 42, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_TECHNETIUM, ItemIds::ELEMENT_43, 0), "Technetium", $instaBreak, "tc", 43, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_RUTHENIUM, ItemIds::ELEMENT_44, 0), "Ruthenium", $instaBreak, "ru", 44, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_RHODIUM, ItemIds::ELEMENT_45, 0), "Rhodium", $instaBreak, "rh", 45, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_PALLADIUM, ItemIds::ELEMENT_46, 0), "Palladium", $instaBreak, "pd", 46, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_SILVER, ItemIds::ELEMENT_47, 0), "Silver", $instaBreak, "ag", 47, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_CADMIUM, ItemIds::ELEMENT_48, 0), "Cadmium", $instaBreak, "cd", 48, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_INDIUM, ItemIds::ELEMENT_49, 0), "Indium", $instaBreak, "in", 49, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_TIN, ItemIds::ELEMENT_50, 0), "Tin", $instaBreak, "sn", 50, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_ANTIMONY, ItemIds::ELEMENT_51, 0), "Antimony", $instaBreak, "sb", 51, 4)); + $this->register(new Element(new BID(Ids::ELEMENT_TELLURIUM, ItemIds::ELEMENT_52, 0), "Tellurium", $instaBreak, "te", 52, 4)); + $this->register(new Element(new BID(Ids::ELEMENT_IODINE, ItemIds::ELEMENT_53, 0), "Iodine", $instaBreak, "i", 53, 6)); + $this->register(new Element(new BID(Ids::ELEMENT_XENON, ItemIds::ELEMENT_54, 0), "Xenon", $instaBreak, "xe", 54, 7)); + $this->register(new Element(new BID(Ids::ELEMENT_CESIUM, ItemIds::ELEMENT_55, 0), "Cesium", $instaBreak, "cs", 55, 0)); + $this->register(new Element(new BID(Ids::ELEMENT_BARIUM, ItemIds::ELEMENT_56, 0), "Barium", $instaBreak, "ba", 56, 1)); + $this->register(new Element(new BID(Ids::ELEMENT_LANTHANUM, ItemIds::ELEMENT_57, 0), "Lanthanum", $instaBreak, "la", 57, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_CERIUM, ItemIds::ELEMENT_58, 0), "Cerium", $instaBreak, "ce", 58, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_PRASEODYMIUM, ItemIds::ELEMENT_59, 0), "Praseodymium", $instaBreak, "pr", 59, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_NEODYMIUM, ItemIds::ELEMENT_60, 0), "Neodymium", $instaBreak, "nd", 60, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_PROMETHIUM, ItemIds::ELEMENT_61, 0), "Promethium", $instaBreak, "pm", 61, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_SAMARIUM, ItemIds::ELEMENT_62, 0), "Samarium", $instaBreak, "sm", 62, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_EUROPIUM, ItemIds::ELEMENT_63, 0), "Europium", $instaBreak, "eu", 63, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_GADOLINIUM, ItemIds::ELEMENT_64, 0), "Gadolinium", $instaBreak, "gd", 64, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_TERBIUM, ItemIds::ELEMENT_65, 0), "Terbium", $instaBreak, "tb", 65, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_DYSPROSIUM, ItemIds::ELEMENT_66, 0), "Dysprosium", $instaBreak, "dy", 66, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_HOLMIUM, ItemIds::ELEMENT_67, 0), "Holmium", $instaBreak, "ho", 67, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_ERBIUM, ItemIds::ELEMENT_68, 0), "Erbium", $instaBreak, "er", 68, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_THULIUM, ItemIds::ELEMENT_69, 0), "Thulium", $instaBreak, "tm", 69, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_YTTERBIUM, ItemIds::ELEMENT_70, 0), "Ytterbium", $instaBreak, "yb", 70, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_LUTETIUM, ItemIds::ELEMENT_71, 0), "Lutetium", $instaBreak, "lu", 71, 8)); + $this->register(new Element(new BID(Ids::ELEMENT_HAFNIUM, ItemIds::ELEMENT_72, 0), "Hafnium", $instaBreak, "hf", 72, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_TANTALUM, ItemIds::ELEMENT_73, 0), "Tantalum", $instaBreak, "ta", 73, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_TUNGSTEN, ItemIds::ELEMENT_74, 0), "Tungsten", $instaBreak, "w", 74, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_RHENIUM, ItemIds::ELEMENT_75, 0), "Rhenium", $instaBreak, "re", 75, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_OSMIUM, ItemIds::ELEMENT_76, 0), "Osmium", $instaBreak, "os", 76, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_IRIDIUM, ItemIds::ELEMENT_77, 0), "Iridium", $instaBreak, "ir", 77, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_PLATINUM, ItemIds::ELEMENT_78, 0), "Platinum", $instaBreak, "pt", 78, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_GOLD, ItemIds::ELEMENT_79, 0), "Gold", $instaBreak, "au", 79, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_MERCURY, ItemIds::ELEMENT_80, 0), "Mercury", $instaBreak, "hg", 80, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_THALLIUM, ItemIds::ELEMENT_81, 0), "Thallium", $instaBreak, "tl", 81, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_LEAD, ItemIds::ELEMENT_82, 0), "Lead", $instaBreak, "pb", 82, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_BISMUTH, ItemIds::ELEMENT_83, 0), "Bismuth", $instaBreak, "bi", 83, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_POLONIUM, ItemIds::ELEMENT_84, 0), "Polonium", $instaBreak, "po", 84, 4)); + $this->register(new Element(new BID(Ids::ELEMENT_ASTATINE, ItemIds::ELEMENT_85, 0), "Astatine", $instaBreak, "at", 85, 6)); + $this->register(new Element(new BID(Ids::ELEMENT_RADON, ItemIds::ELEMENT_86, 0), "Radon", $instaBreak, "rn", 86, 7)); + $this->register(new Element(new BID(Ids::ELEMENT_FRANCIUM, ItemIds::ELEMENT_87, 0), "Francium", $instaBreak, "fr", 87, 0)); + $this->register(new Element(new BID(Ids::ELEMENT_RADIUM, ItemIds::ELEMENT_88, 0), "Radium", $instaBreak, "ra", 88, 1)); + $this->register(new Element(new BID(Ids::ELEMENT_ACTINIUM, ItemIds::ELEMENT_89, 0), "Actinium", $instaBreak, "ac", 89, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_THORIUM, ItemIds::ELEMENT_90, 0), "Thorium", $instaBreak, "th", 90, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_PROTACTINIUM, ItemIds::ELEMENT_91, 0), "Protactinium", $instaBreak, "pa", 91, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_URANIUM, ItemIds::ELEMENT_92, 0), "Uranium", $instaBreak, "u", 92, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_NEPTUNIUM, ItemIds::ELEMENT_93, 0), "Neptunium", $instaBreak, "np", 93, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_PLUTONIUM, ItemIds::ELEMENT_94, 0), "Plutonium", $instaBreak, "pu", 94, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_AMERICIUM, ItemIds::ELEMENT_95, 0), "Americium", $instaBreak, "am", 95, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_CURIUM, ItemIds::ELEMENT_96, 0), "Curium", $instaBreak, "cm", 96, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_BERKELIUM, ItemIds::ELEMENT_97, 0), "Berkelium", $instaBreak, "bk", 97, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_CALIFORNIUM, ItemIds::ELEMENT_98, 0), "Californium", $instaBreak, "cf", 98, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_EINSTEINIUM, ItemIds::ELEMENT_99, 0), "Einsteinium", $instaBreak, "es", 99, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_FERMIUM, ItemIds::ELEMENT_100, 0), "Fermium", $instaBreak, "fm", 100, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_MENDELEVIUM, ItemIds::ELEMENT_101, 0), "Mendelevium", $instaBreak, "md", 101, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_NOBELIUM, ItemIds::ELEMENT_102, 0), "Nobelium", $instaBreak, "no", 102, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_LAWRENCIUM, ItemIds::ELEMENT_103, 0), "Lawrencium", $instaBreak, "lr", 103, 9)); + $this->register(new Element(new BID(Ids::ELEMENT_RUTHERFORDIUM, ItemIds::ELEMENT_104, 0), "Rutherfordium", $instaBreak, "rf", 104, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_DUBNIUM, ItemIds::ELEMENT_105, 0), "Dubnium", $instaBreak, "db", 105, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_SEABORGIUM, ItemIds::ELEMENT_106, 0), "Seaborgium", $instaBreak, "sg", 106, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_BOHRIUM, ItemIds::ELEMENT_107, 0), "Bohrium", $instaBreak, "bh", 107, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_HASSIUM, ItemIds::ELEMENT_108, 0), "Hassium", $instaBreak, "hs", 108, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_MEITNERIUM, ItemIds::ELEMENT_109, 0), "Meitnerium", $instaBreak, "mt", 109, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_DARMSTADTIUM, ItemIds::ELEMENT_110, 0), "Darmstadtium", $instaBreak, "ds", 110, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_ROENTGENIUM, ItemIds::ELEMENT_111, 0), "Roentgenium", $instaBreak, "rg", 111, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_COPERNICIUM, ItemIds::ELEMENT_112, 0), "Copernicium", $instaBreak, "cn", 112, 2)); + $this->register(new Element(new BID(Ids::ELEMENT_NIHONIUM, ItemIds::ELEMENT_113, 0), "Nihonium", $instaBreak, "nh", 113, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_FLEROVIUM, ItemIds::ELEMENT_114, 0), "Flerovium", $instaBreak, "fl", 114, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_MOSCOVIUM, ItemIds::ELEMENT_115, 0), "Moscovium", $instaBreak, "mc", 115, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_LIVERMORIUM, ItemIds::ELEMENT_116, 0), "Livermorium", $instaBreak, "lv", 116, 3)); + $this->register(new Element(new BID(Ids::ELEMENT_TENNESSINE, ItemIds::ELEMENT_117, 0), "Tennessine", $instaBreak, "ts", 117, 6)); + $this->register(new Element(new BID(Ids::ELEMENT_OGANESSON, ItemIds::ELEMENT_118, 0), "Oganesson", $instaBreak, "og", 118, 7)); } /** @@ -914,7 +913,7 @@ class BlockFactory{ if(isset($this->fullList[$index])) { //hot $block = clone $this->fullList[$index]; }else{ - $block = new UnknownBlock(new BID($typeId, $typeId, $stateData), BreakInfo::instant()); + $block = new UnknownBlock(new BID($typeId, $stateData, $stateData), BreakInfo::instant()); } return $block; diff --git a/src/block/BlockIdentifier.php b/src/block/BlockIdentifier.php index c4a809dc9..f2c7fd2c9 100644 --- a/src/block/BlockIdentifier.php +++ b/src/block/BlockIdentifier.php @@ -32,19 +32,15 @@ class BlockIdentifier{ */ public function __construct( private int $blockTypeId, - private int $legacyBlockId, - private int $legacyVariant, - private ?int $legacyItemId = null, + private int $legacyItemId, + private int $legacyItemVariant, private ?string $tileClass = null ){ if($blockTypeId < 0){ throw new \InvalidArgumentException("Block type ID may not be negative"); } - if($legacyBlockId < 0){ - throw new \InvalidArgumentException("Legacy block ID may not be negative"); - } - if($legacyVariant < 0){ - throw new \InvalidArgumentException("Legacy block variant may not be negative"); + if($legacyItemVariant < 0){ + throw new \InvalidArgumentException("Legacy item variant may not be negative"); } if($tileClass !== null){ @@ -54,25 +50,18 @@ class BlockIdentifier{ public function getBlockTypeId() : int{ return $this->blockTypeId; } - /** - * @deprecated - */ - public function getLegacyBlockId() : int{ - return $this->legacyBlockId; - } - /** * @deprecated */ public function getLegacyVariant() : int{ - return $this->legacyVariant; + return $this->legacyItemVariant; } /** * @deprecated */ public function getLegacyItemId() : int{ - return $this->legacyItemId ?? ($this->legacyBlockId > 255 ? 255 - $this->legacyBlockId : $this->legacyBlockId); + return $this->legacyItemId; } /** diff --git a/src/block/BlockLegacyIdHelper.php b/src/block/BlockLegacyIdHelper.php index c50cb9df9..5b83825b1 100644 --- a/src/block/BlockLegacyIdHelper.php +++ b/src/block/BlockLegacyIdHelper.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\block\BlockIdentifier as BID; -use pocketmine\block\BlockLegacyIds as LegacyIds; use pocketmine\block\BlockTypeIds as Ids; use pocketmine\block\tile\Sign as TileSign; use pocketmine\block\utils\DyeColor; @@ -43,7 +42,7 @@ final class BlockLegacyIdHelper{ TreeType::ACACIA()->id() => Ids::ACACIA_PLANKS, TreeType::DARK_OAK()->id() => Ids::DARK_OAK_PLANKS, default => throw new AssumptionFailedError("All tree types should be covered") - }, LegacyIds::PLANKS, $treeType->getMagicNumber()); + }, ItemIds::PLANKS, $treeType->getMagicNumber()); } public static function getWoodenFenceIdentifier(TreeType $treeType) : BID{ @@ -55,7 +54,7 @@ final class BlockLegacyIdHelper{ TreeType::ACACIA()->id() => Ids::ACACIA_FENCE, TreeType::DARK_OAK()->id() => Ids::DARK_OAK_FENCE, default => throw new AssumptionFailedError("All tree types should be covered") - }, LegacyIds::FENCE, $treeType->getMagicNumber()); + }, ItemIds::FENCE, $treeType->getMagicNumber()); } public static function getWoodenSlabIdentifier(TreeType $treeType) : BID{ @@ -67,17 +66,17 @@ final class BlockLegacyIdHelper{ TreeType::ACACIA()->id() => Ids::ACACIA_SLAB, TreeType::DARK_OAK()->id() => Ids::DARK_OAK_SLAB, default => throw new AssumptionFailedError("All tree types should be covered") - }, LegacyIds::WOODEN_SLAB, $treeType->getMagicNumber()); + }, ItemIds::WOODEN_SLAB, $treeType->getMagicNumber()); } public static function getLogIdentifier(TreeType $treeType) : BID{ return match($treeType->id()){ - TreeType::OAK()->id() => new BID(Ids::OAK_LOG, LegacyIds::LOG, 0), - TreeType::SPRUCE()->id() => new BID(Ids::SPRUCE_LOG, LegacyIds::LOG, 1), - TreeType::BIRCH()->id() => new BID(Ids::BIRCH_LOG, LegacyIds::LOG, 2), - TreeType::JUNGLE()->id() => new BID(Ids::JUNGLE_LOG, LegacyIds::LOG, 3), - TreeType::ACACIA()->id() => new BID(Ids::ACACIA_LOG, LegacyIds::LOG2, 0), - TreeType::DARK_OAK()->id() => new BID(Ids::DARK_OAK_LOG, LegacyIds::LOG2, 1), + TreeType::OAK()->id() => new BID(Ids::OAK_LOG, ItemIds::LOG, 0), + TreeType::SPRUCE()->id() => new BID(Ids::SPRUCE_LOG, ItemIds::LOG, 1), + TreeType::BIRCH()->id() => new BID(Ids::BIRCH_LOG, ItemIds::LOG, 2), + TreeType::JUNGLE()->id() => new BID(Ids::JUNGLE_LOG, ItemIds::LOG, 3), + TreeType::ACACIA()->id() => new BID(Ids::ACACIA_LOG, ItemIds::LOG2, 0), + TreeType::DARK_OAK()->id() => new BID(Ids::DARK_OAK_LOG, ItemIds::LOG2, 1), default => throw new AssumptionFailedError("All tree types should be covered") }; } @@ -91,7 +90,7 @@ final class BlockLegacyIdHelper{ TreeType::ACACIA()->id() => Ids::ACACIA_WOOD, TreeType::DARK_OAK()->id() => Ids::DARK_OAK_WOOD, default => throw new AssumptionFailedError("All tree types should be covered") - }, LegacyIds::WOOD, $treeType->getMagicNumber()); + }, ItemIds::WOOD, $treeType->getMagicNumber()); } public static function getAllSidedStrippedLogIdentifier(TreeType $treeType) : BID{ @@ -103,17 +102,17 @@ final class BlockLegacyIdHelper{ TreeType::ACACIA()->id() => Ids::STRIPPED_ACACIA_WOOD, TreeType::DARK_OAK()->id() => Ids::STRIPPED_DARK_OAK_WOOD, default => throw new AssumptionFailedError("All tree types should be covered") - }, LegacyIds::WOOD, $treeType->getMagicNumber() | BlockLegacyMetadata::WOOD_FLAG_STRIPPED); + }, ItemIds::WOOD, $treeType->getMagicNumber() | BlockLegacyMetadata::WOOD_FLAG_STRIPPED); } public static function getLeavesIdentifier(TreeType $treeType) : BID{ return match($treeType->id()){ - TreeType::OAK()->id() => new BID(Ids::OAK_LEAVES, LegacyIds::LEAVES, 0), - TreeType::SPRUCE()->id() => new BID(Ids::SPRUCE_LEAVES, LegacyIds::LEAVES, 1), - TreeType::BIRCH()->id() => new BID(Ids::BIRCH_LEAVES, LegacyIds::LEAVES, 2), - TreeType::JUNGLE()->id() => new BID(Ids::JUNGLE_LEAVES, LegacyIds::LEAVES, 3), - TreeType::ACACIA()->id() => new BID(Ids::ACACIA_LEAVES, LegacyIds::LEAVES2, 0), - TreeType::DARK_OAK()->id() => new BID(Ids::DARK_OAK_LEAVES, LegacyIds::LEAVES2, 1), + TreeType::OAK()->id() => new BID(Ids::OAK_LEAVES, ItemIds::LEAVES, 0), + TreeType::SPRUCE()->id() => new BID(Ids::SPRUCE_LEAVES, ItemIds::LEAVES, 1), + TreeType::BIRCH()->id() => new BID(Ids::BIRCH_LEAVES, ItemIds::LEAVES, 2), + TreeType::JUNGLE()->id() => new BID(Ids::JUNGLE_LEAVES, ItemIds::LEAVES, 3), + TreeType::ACACIA()->id() => new BID(Ids::ACACIA_LEAVES, ItemIds::LEAVES2, 0), + TreeType::DARK_OAK()->id() => new BID(Ids::DARK_OAK_LEAVES, ItemIds::LEAVES2, 1), default => throw new AssumptionFailedError("All tree types should be covered") }; } @@ -127,23 +126,23 @@ final class BlockLegacyIdHelper{ TreeType::ACACIA()->id() => Ids::ACACIA_SAPLING, TreeType::DARK_OAK()->id() => Ids::DARK_OAK_SAPLING, default => throw new AssumptionFailedError("All tree types should be covered") - }, LegacyIds::SAPLING, $treeType->getMagicNumber()); + }, ItemIds::SAPLING, $treeType->getMagicNumber()); } public static function getWoodenFloorSignIdentifier(TreeType $treeType) : BID{ switch($treeType->id()){ case TreeType::OAK()->id(): - return new BID(Ids::OAK_SIGN, LegacyIds::SIGN_POST, 0, ItemIds::SIGN, TileSign::class); + return new BID(Ids::OAK_SIGN, ItemIds::SIGN, 0, TileSign::class); case TreeType::SPRUCE()->id(): - return new BID(Ids::SPRUCE_SIGN, LegacyIds::SPRUCE_STANDING_SIGN, 0, ItemIds::SPRUCE_SIGN, TileSign::class); + return new BID(Ids::SPRUCE_SIGN, ItemIds::SPRUCE_SIGN, 0, TileSign::class); case TreeType::BIRCH()->id(): - return new BID(Ids::BIRCH_SIGN, LegacyIds::BIRCH_STANDING_SIGN, 0, ItemIds::BIRCH_SIGN, TileSign::class); + return new BID(Ids::BIRCH_SIGN, ItemIds::BIRCH_SIGN, 0, TileSign::class); case TreeType::JUNGLE()->id(): - return new BID(Ids::JUNGLE_SIGN, LegacyIds::JUNGLE_STANDING_SIGN, 0, ItemIds::JUNGLE_SIGN, TileSign::class); + return new BID(Ids::JUNGLE_SIGN, ItemIds::JUNGLE_SIGN, 0, TileSign::class); case TreeType::ACACIA()->id(): - return new BID(Ids::ACACIA_SIGN, LegacyIds::ACACIA_STANDING_SIGN, 0, ItemIds::ACACIA_SIGN, TileSign::class); + return new BID(Ids::ACACIA_SIGN, ItemIds::ACACIA_SIGN, 0, TileSign::class); case TreeType::DARK_OAK()->id(): - return new BID(Ids::DARK_OAK_SIGN, LegacyIds::DARKOAK_STANDING_SIGN, 0, ItemIds::DARKOAK_SIGN, TileSign::class); + return new BID(Ids::DARK_OAK_SIGN, ItemIds::DARKOAK_SIGN, 0, TileSign::class); } throw new AssumptionFailedError("Switch should cover all wood types"); } @@ -151,17 +150,17 @@ final class BlockLegacyIdHelper{ public static function getWoodenWallSignIdentifier(TreeType $treeType) : BID{ switch($treeType->id()){ case TreeType::OAK()->id(): - return new BID(Ids::OAK_WALL_SIGN, LegacyIds::WALL_SIGN, 0, ItemIds::SIGN, TileSign::class); + return new BID(Ids::OAK_WALL_SIGN, ItemIds::SIGN, 0, TileSign::class); case TreeType::SPRUCE()->id(): - return new BID(Ids::SPRUCE_WALL_SIGN, LegacyIds::SPRUCE_WALL_SIGN, 0, ItemIds::SPRUCE_SIGN, TileSign::class); + return new BID(Ids::SPRUCE_WALL_SIGN, ItemIds::SPRUCE_SIGN, 0, TileSign::class); case TreeType::BIRCH()->id(): - return new BID(Ids::BIRCH_WALL_SIGN, LegacyIds::BIRCH_WALL_SIGN, 0, ItemIds::BIRCH_SIGN, TileSign::class); + return new BID(Ids::BIRCH_WALL_SIGN, ItemIds::BIRCH_SIGN, 0, TileSign::class); case TreeType::JUNGLE()->id(): - return new BID(Ids::JUNGLE_WALL_SIGN, LegacyIds::JUNGLE_WALL_SIGN, 0, ItemIds::JUNGLE_SIGN, TileSign::class); + return new BID(Ids::JUNGLE_WALL_SIGN, ItemIds::JUNGLE_SIGN, 0, TileSign::class); case TreeType::ACACIA()->id(): - return new BID(Ids::ACACIA_WALL_SIGN, LegacyIds::ACACIA_WALL_SIGN, 0, ItemIds::ACACIA_SIGN, TileSign::class); + return new BID(Ids::ACACIA_WALL_SIGN, ItemIds::ACACIA_SIGN, 0, TileSign::class); case TreeType::DARK_OAK()->id(): - return new BID(Ids::DARK_OAK_WALL_SIGN, LegacyIds::DARKOAK_WALL_SIGN, 0, ItemIds::DARKOAK_SIGN, TileSign::class); + return new BID(Ids::DARK_OAK_WALL_SIGN, ItemIds::DARKOAK_SIGN, 0, TileSign::class); } throw new AssumptionFailedError("Switch should cover all wood types"); } @@ -169,17 +168,17 @@ final class BlockLegacyIdHelper{ public static function getWoodenTrapdoorIdentifier(TreeType $treeType) : BlockIdentifier{ switch($treeType->id()){ case TreeType::OAK()->id(): - return new BID(Ids::OAK_TRAPDOOR, LegacyIds::WOODEN_TRAPDOOR, 0); + return new BID(Ids::OAK_TRAPDOOR, ItemIds::WOODEN_TRAPDOOR, 0); case TreeType::SPRUCE()->id(): - return new BID(Ids::SPRUCE_TRAPDOOR, LegacyIds::SPRUCE_TRAPDOOR, 0); + return new BID(Ids::SPRUCE_TRAPDOOR, ItemIds::SPRUCE_TRAPDOOR, 0); case TreeType::BIRCH()->id(): - return new BID(Ids::BIRCH_TRAPDOOR, LegacyIds::BIRCH_TRAPDOOR, 0); + return new BID(Ids::BIRCH_TRAPDOOR, ItemIds::BIRCH_TRAPDOOR, 0); case TreeType::JUNGLE()->id(): - return new BID(Ids::JUNGLE_TRAPDOOR, LegacyIds::JUNGLE_TRAPDOOR, 0); + return new BID(Ids::JUNGLE_TRAPDOOR, ItemIds::JUNGLE_TRAPDOOR, 0); case TreeType::ACACIA()->id(): - return new BID(Ids::ACACIA_TRAPDOOR, LegacyIds::ACACIA_TRAPDOOR, 0); + return new BID(Ids::ACACIA_TRAPDOOR, ItemIds::ACACIA_TRAPDOOR, 0); case TreeType::DARK_OAK()->id(): - return new BID(Ids::DARK_OAK_TRAPDOOR, LegacyIds::DARK_OAK_TRAPDOOR, 0); + return new BID(Ids::DARK_OAK_TRAPDOOR, ItemIds::DARK_OAK_TRAPDOOR, 0); } throw new AssumptionFailedError("Switch should cover all wood types"); } @@ -187,17 +186,17 @@ final class BlockLegacyIdHelper{ public static function getWoodenButtonIdentifier(TreeType $treeType) : BlockIdentifier{ switch($treeType->id()){ case TreeType::OAK()->id(): - return new BID(Ids::OAK_BUTTON, LegacyIds::WOODEN_BUTTON, 0); + return new BID(Ids::OAK_BUTTON, ItemIds::WOODEN_BUTTON, 0); case TreeType::SPRUCE()->id(): - return new BID(Ids::SPRUCE_BUTTON, LegacyIds::SPRUCE_BUTTON, 0); + return new BID(Ids::SPRUCE_BUTTON, ItemIds::SPRUCE_BUTTON, 0); case TreeType::BIRCH()->id(): - return new BID(Ids::BIRCH_BUTTON, LegacyIds::BIRCH_BUTTON, 0); + return new BID(Ids::BIRCH_BUTTON, ItemIds::BIRCH_BUTTON, 0); case TreeType::JUNGLE()->id(): - return new BID(Ids::JUNGLE_BUTTON, LegacyIds::JUNGLE_BUTTON, 0); + return new BID(Ids::JUNGLE_BUTTON, ItemIds::JUNGLE_BUTTON, 0); case TreeType::ACACIA()->id(): - return new BID(Ids::ACACIA_BUTTON, LegacyIds::ACACIA_BUTTON, 0); + return new BID(Ids::ACACIA_BUTTON, ItemIds::ACACIA_BUTTON, 0); case TreeType::DARK_OAK()->id(): - return new BID(Ids::DARK_OAK_BUTTON, LegacyIds::DARK_OAK_BUTTON, 0); + return new BID(Ids::DARK_OAK_BUTTON, ItemIds::DARK_OAK_BUTTON, 0); } throw new AssumptionFailedError("Switch should cover all wood types"); } @@ -205,17 +204,17 @@ final class BlockLegacyIdHelper{ public static function getWoodenPressurePlateIdentifier(TreeType $treeType) : BlockIdentifier{ switch($treeType->id()){ case TreeType::OAK()->id(): - return new BID(Ids::OAK_PRESSURE_PLATE, LegacyIds::WOODEN_PRESSURE_PLATE, 0); + return new BID(Ids::OAK_PRESSURE_PLATE, ItemIds::WOODEN_PRESSURE_PLATE, 0); case TreeType::SPRUCE()->id(): - return new BID(Ids::SPRUCE_PRESSURE_PLATE, LegacyIds::SPRUCE_PRESSURE_PLATE, 0); + return new BID(Ids::SPRUCE_PRESSURE_PLATE, ItemIds::SPRUCE_PRESSURE_PLATE, 0); case TreeType::BIRCH()->id(): - return new BID(Ids::BIRCH_PRESSURE_PLATE, LegacyIds::BIRCH_PRESSURE_PLATE, 0); + return new BID(Ids::BIRCH_PRESSURE_PLATE, ItemIds::BIRCH_PRESSURE_PLATE, 0); case TreeType::JUNGLE()->id(): - return new BID(Ids::JUNGLE_PRESSURE_PLATE, LegacyIds::JUNGLE_PRESSURE_PLATE, 0); + return new BID(Ids::JUNGLE_PRESSURE_PLATE, ItemIds::JUNGLE_PRESSURE_PLATE, 0); case TreeType::ACACIA()->id(): - return new BID(Ids::ACACIA_PRESSURE_PLATE, LegacyIds::ACACIA_PRESSURE_PLATE, 0); + return new BID(Ids::ACACIA_PRESSURE_PLATE, ItemIds::ACACIA_PRESSURE_PLATE, 0); case TreeType::DARK_OAK()->id(): - return new BID(Ids::DARK_OAK_PRESSURE_PLATE, LegacyIds::DARK_OAK_PRESSURE_PLATE, 0); + return new BID(Ids::DARK_OAK_PRESSURE_PLATE, ItemIds::DARK_OAK_PRESSURE_PLATE, 0); } throw new AssumptionFailedError("Switch should cover all wood types"); } @@ -223,17 +222,17 @@ final class BlockLegacyIdHelper{ public static function getWoodenDoorIdentifier(TreeType $treeType) : BlockIdentifier{ switch($treeType->id()){ case TreeType::OAK()->id(): - return new BID(Ids::OAK_DOOR, LegacyIds::OAK_DOOR_BLOCK, 0, ItemIds::OAK_DOOR); + return new BID(Ids::OAK_DOOR, ItemIds::OAK_DOOR, 0); case TreeType::SPRUCE()->id(): - return new BID(Ids::SPRUCE_DOOR, LegacyIds::SPRUCE_DOOR_BLOCK, 0, ItemIds::SPRUCE_DOOR); + return new BID(Ids::SPRUCE_DOOR, ItemIds::SPRUCE_DOOR, 0); case TreeType::BIRCH()->id(): - return new BID(Ids::BIRCH_DOOR, LegacyIds::BIRCH_DOOR_BLOCK, 0, ItemIds::BIRCH_DOOR); + return new BID(Ids::BIRCH_DOOR, ItemIds::BIRCH_DOOR, 0); case TreeType::JUNGLE()->id(): - return new BID(Ids::JUNGLE_DOOR, LegacyIds::JUNGLE_DOOR_BLOCK, 0, ItemIds::JUNGLE_DOOR); + return new BID(Ids::JUNGLE_DOOR, ItemIds::JUNGLE_DOOR, 0); case TreeType::ACACIA()->id(): - return new BID(Ids::ACACIA_DOOR, LegacyIds::ACACIA_DOOR_BLOCK, 0, ItemIds::ACACIA_DOOR); + return new BID(Ids::ACACIA_DOOR, ItemIds::ACACIA_DOOR, 0); case TreeType::DARK_OAK()->id(): - return new BID(Ids::DARK_OAK_DOOR, LegacyIds::DARK_OAK_DOOR_BLOCK, 0, ItemIds::DARK_OAK_DOOR); + return new BID(Ids::DARK_OAK_DOOR, ItemIds::DARK_OAK_DOOR, 0); } throw new AssumptionFailedError("Switch should cover all wood types"); } @@ -241,17 +240,17 @@ final class BlockLegacyIdHelper{ public static function getWoodenFenceGateIdentifier(TreeType $treeType) : BlockIdentifier{ switch($treeType->id()){ case TreeType::OAK()->id(): - return new BID(Ids::OAK_FENCE_GATE, LegacyIds::OAK_FENCE_GATE, 0); + return new BID(Ids::OAK_FENCE_GATE, ItemIds::OAK_FENCE_GATE, 0); case TreeType::SPRUCE()->id(): - return new BID(Ids::SPRUCE_FENCE_GATE, LegacyIds::SPRUCE_FENCE_GATE, 0); + return new BID(Ids::SPRUCE_FENCE_GATE, ItemIds::SPRUCE_FENCE_GATE, 0); case TreeType::BIRCH()->id(): - return new BID(Ids::BIRCH_FENCE_GATE, LegacyIds::BIRCH_FENCE_GATE, 0); + return new BID(Ids::BIRCH_FENCE_GATE, ItemIds::BIRCH_FENCE_GATE, 0); case TreeType::JUNGLE()->id(): - return new BID(Ids::JUNGLE_FENCE_GATE, LegacyIds::JUNGLE_FENCE_GATE, 0); + return new BID(Ids::JUNGLE_FENCE_GATE, ItemIds::JUNGLE_FENCE_GATE, 0); case TreeType::ACACIA()->id(): - return new BID(Ids::ACACIA_FENCE_GATE, LegacyIds::ACACIA_FENCE_GATE, 0); + return new BID(Ids::ACACIA_FENCE_GATE, ItemIds::ACACIA_FENCE_GATE, 0); case TreeType::DARK_OAK()->id(): - return new BID(Ids::DARK_OAK_FENCE_GATE, LegacyIds::DARK_OAK_FENCE_GATE, 0); + return new BID(Ids::DARK_OAK_FENCE_GATE, ItemIds::DARK_OAK_FENCE_GATE, 0); } throw new AssumptionFailedError("Switch should cover all wood types"); } @@ -259,17 +258,17 @@ final class BlockLegacyIdHelper{ public static function getWoodenStairsIdentifier(TreeType $treeType) : BlockIdentifier{ switch($treeType->id()){ case TreeType::OAK()->id(): - return new BID(Ids::OAK_STAIRS, LegacyIds::OAK_STAIRS, 0); + return new BID(Ids::OAK_STAIRS, ItemIds::OAK_STAIRS, 0); case TreeType::SPRUCE()->id(): - return new BID(Ids::SPRUCE_STAIRS, LegacyIds::SPRUCE_STAIRS, 0); + return new BID(Ids::SPRUCE_STAIRS, ItemIds::SPRUCE_STAIRS, 0); case TreeType::BIRCH()->id(): - return new BID(Ids::BIRCH_STAIRS, LegacyIds::BIRCH_STAIRS, 0); + return new BID(Ids::BIRCH_STAIRS, ItemIds::BIRCH_STAIRS, 0); case TreeType::JUNGLE()->id(): - return new BID(Ids::JUNGLE_STAIRS, LegacyIds::JUNGLE_STAIRS, 0); + return new BID(Ids::JUNGLE_STAIRS, ItemIds::JUNGLE_STAIRS, 0); case TreeType::ACACIA()->id(): - return new BID(Ids::ACACIA_STAIRS, LegacyIds::ACACIA_STAIRS, 0); + return new BID(Ids::ACACIA_STAIRS, ItemIds::ACACIA_STAIRS, 0); case TreeType::DARK_OAK()->id(): - return new BID(Ids::DARK_OAK_STAIRS, LegacyIds::DARK_OAK_STAIRS, 0); + return new BID(Ids::DARK_OAK_STAIRS, ItemIds::DARK_OAK_STAIRS, 0); } throw new AssumptionFailedError("Switch should cover all wood types"); } @@ -277,17 +276,17 @@ final class BlockLegacyIdHelper{ public static function getStrippedLogIdentifier(TreeType $treeType) : BlockIdentifier{ switch($treeType->id()){ case TreeType::OAK()->id(): - return new BID(Ids::STRIPPED_OAK_LOG, LegacyIds::STRIPPED_OAK_LOG, 0); + return new BID(Ids::STRIPPED_OAK_LOG, ItemIds::STRIPPED_OAK_LOG, 0); case TreeType::SPRUCE()->id(): - return new BID(Ids::STRIPPED_SPRUCE_LOG, LegacyIds::STRIPPED_SPRUCE_LOG, 0); + return new BID(Ids::STRIPPED_SPRUCE_LOG, ItemIds::STRIPPED_SPRUCE_LOG, 0); case TreeType::BIRCH()->id(): - return new BID(Ids::STRIPPED_BIRCH_LOG, LegacyIds::STRIPPED_BIRCH_LOG, 0); + return new BID(Ids::STRIPPED_BIRCH_LOG, ItemIds::STRIPPED_BIRCH_LOG, 0); case TreeType::JUNGLE()->id(): - return new BID(Ids::STRIPPED_JUNGLE_LOG, LegacyIds::STRIPPED_JUNGLE_LOG, 0); + return new BID(Ids::STRIPPED_JUNGLE_LOG, ItemIds::STRIPPED_JUNGLE_LOG, 0); case TreeType::ACACIA()->id(): - return new BID(Ids::STRIPPED_ACACIA_LOG, LegacyIds::STRIPPED_ACACIA_LOG, 0); + return new BID(Ids::STRIPPED_ACACIA_LOG, ItemIds::STRIPPED_ACACIA_LOG, 0); case TreeType::DARK_OAK()->id(): - return new BID(Ids::STRIPPED_DARK_OAK_LOG, LegacyIds::STRIPPED_DARK_OAK_LOG, 0); + return new BID(Ids::STRIPPED_DARK_OAK_LOG, ItemIds::STRIPPED_DARK_OAK_LOG, 0); } throw new AssumptionFailedError("Switch should cover all wood types"); } @@ -295,51 +294,51 @@ final class BlockLegacyIdHelper{ public static function getGlazedTerracottaIdentifier(DyeColor $color) : BlockIdentifier{ switch($color->id()){ case DyeColor::WHITE()->id(): - return new BID(Ids::WHITE_GLAZED_TERRACOTTA, LegacyIds::WHITE_GLAZED_TERRACOTTA, 0); + return new BID(Ids::WHITE_GLAZED_TERRACOTTA, ItemIds::WHITE_GLAZED_TERRACOTTA, 0); case DyeColor::ORANGE()->id(): - return new BID(Ids::ORANGE_GLAZED_TERRACOTTA, LegacyIds::ORANGE_GLAZED_TERRACOTTA, 0); + return new BID(Ids::ORANGE_GLAZED_TERRACOTTA, ItemIds::ORANGE_GLAZED_TERRACOTTA, 0); case DyeColor::MAGENTA()->id(): - return new BID(Ids::MAGENTA_GLAZED_TERRACOTTA, LegacyIds::MAGENTA_GLAZED_TERRACOTTA, 0); + return new BID(Ids::MAGENTA_GLAZED_TERRACOTTA, ItemIds::MAGENTA_GLAZED_TERRACOTTA, 0); case DyeColor::LIGHT_BLUE()->id(): - return new BID(Ids::LIGHT_BLUE_GLAZED_TERRACOTTA, LegacyIds::LIGHT_BLUE_GLAZED_TERRACOTTA, 0); + return new BID(Ids::LIGHT_BLUE_GLAZED_TERRACOTTA, ItemIds::LIGHT_BLUE_GLAZED_TERRACOTTA, 0); case DyeColor::YELLOW()->id(): - return new BID(Ids::YELLOW_GLAZED_TERRACOTTA, LegacyIds::YELLOW_GLAZED_TERRACOTTA, 0); + return new BID(Ids::YELLOW_GLAZED_TERRACOTTA, ItemIds::YELLOW_GLAZED_TERRACOTTA, 0); case DyeColor::LIME()->id(): - return new BID(Ids::LIME_GLAZED_TERRACOTTA, LegacyIds::LIME_GLAZED_TERRACOTTA, 0); + return new BID(Ids::LIME_GLAZED_TERRACOTTA, ItemIds::LIME_GLAZED_TERRACOTTA, 0); case DyeColor::PINK()->id(): - return new BID(Ids::PINK_GLAZED_TERRACOTTA, LegacyIds::PINK_GLAZED_TERRACOTTA, 0); + return new BID(Ids::PINK_GLAZED_TERRACOTTA, ItemIds::PINK_GLAZED_TERRACOTTA, 0); case DyeColor::GRAY()->id(): - return new BID(Ids::GRAY_GLAZED_TERRACOTTA, LegacyIds::GRAY_GLAZED_TERRACOTTA, 0); + return new BID(Ids::GRAY_GLAZED_TERRACOTTA, ItemIds::GRAY_GLAZED_TERRACOTTA, 0); case DyeColor::LIGHT_GRAY()->id(): - return new BID(Ids::LIGHT_GRAY_GLAZED_TERRACOTTA, LegacyIds::SILVER_GLAZED_TERRACOTTA, 0); + return new BID(Ids::LIGHT_GRAY_GLAZED_TERRACOTTA, ItemIds::SILVER_GLAZED_TERRACOTTA, 0); case DyeColor::CYAN()->id(): - return new BID(Ids::CYAN_GLAZED_TERRACOTTA, LegacyIds::CYAN_GLAZED_TERRACOTTA, 0); + return new BID(Ids::CYAN_GLAZED_TERRACOTTA, ItemIds::CYAN_GLAZED_TERRACOTTA, 0); case DyeColor::PURPLE()->id(): - return new BID(Ids::PURPLE_GLAZED_TERRACOTTA, LegacyIds::PURPLE_GLAZED_TERRACOTTA, 0); + return new BID(Ids::PURPLE_GLAZED_TERRACOTTA, ItemIds::PURPLE_GLAZED_TERRACOTTA, 0); case DyeColor::BLUE()->id(): - return new BID(Ids::BLUE_GLAZED_TERRACOTTA, LegacyIds::BLUE_GLAZED_TERRACOTTA, 0); + return new BID(Ids::BLUE_GLAZED_TERRACOTTA, ItemIds::BLUE_GLAZED_TERRACOTTA, 0); case DyeColor::BROWN()->id(): - return new BID(Ids::BROWN_GLAZED_TERRACOTTA, LegacyIds::BROWN_GLAZED_TERRACOTTA, 0); + return new BID(Ids::BROWN_GLAZED_TERRACOTTA, ItemIds::BROWN_GLAZED_TERRACOTTA, 0); case DyeColor::GREEN()->id(): - return new BID(Ids::GREEN_GLAZED_TERRACOTTA, LegacyIds::GREEN_GLAZED_TERRACOTTA, 0); + return new BID(Ids::GREEN_GLAZED_TERRACOTTA, ItemIds::GREEN_GLAZED_TERRACOTTA, 0); case DyeColor::RED()->id(): - return new BID(Ids::RED_GLAZED_TERRACOTTA, LegacyIds::RED_GLAZED_TERRACOTTA, 0); + return new BID(Ids::RED_GLAZED_TERRACOTTA, ItemIds::RED_GLAZED_TERRACOTTA, 0); case DyeColor::BLACK()->id(): - return new BID(Ids::BLACK_GLAZED_TERRACOTTA, LegacyIds::BLACK_GLAZED_TERRACOTTA, 0); + return new BID(Ids::BLACK_GLAZED_TERRACOTTA, ItemIds::BLACK_GLAZED_TERRACOTTA, 0); } throw new AssumptionFailedError("Switch should cover all colours"); } public static function getStoneSlabIdentifier(int $blockTypeId, int $stoneSlabId, int $meta) : BID{ - $id = [ - 1 => LegacyIds::STONE_SLAB, - 2 => LegacyIds::STONE_SLAB2, - 3 => LegacyIds::STONE_SLAB3, - 4 => LegacyIds::STONE_SLAB4 + $itemId = [ + 1 => ItemIds::STONE_SLAB, + 2 => ItemIds::STONE_SLAB2, + 3 => ItemIds::STONE_SLAB3, + 4 => ItemIds::STONE_SLAB4 ][$stoneSlabId] ?? null; - if($id === null){ + if($itemId === null){ throw new \InvalidArgumentException("Stone slab type should be 1, 2, 3 or 4"); } - return new BID($blockTypeId, $id, $meta); + return new BID($blockTypeId, $itemId, $meta); } } diff --git a/src/block/BlockLegacyIds.php b/src/block/BlockLegacyIds.php deleted file mode 100644 index f4757e357..000000000 --- a/src/block/BlockLegacyIds.php +++ /dev/null @@ -1,501 +0,0 @@ -expectException(\InvalidArgumentException::class); $this->blockFactory->register($block); } @@ -52,7 +53,7 @@ class BlockTest extends TestCase{ * Test registering a block deliberately overwriting another block works as expected */ public function testDeliberateOverrideBlock() : void{ - $block = new MyCustomBlock(new BlockIdentifier(BlockTypeIds::COBBLESTONE, BlockLegacyIds::COBBLESTONE, 0), "Cobblestone", BlockBreakInfo::instant()); + $block = new MyCustomBlock(new BlockIdentifier(BlockTypeIds::COBBLESTONE, ItemIds::COBBLESTONE, 0), "Cobblestone", BlockBreakInfo::instant()); $this->blockFactory->register($block, true); self::assertInstanceOf(MyCustomBlock::class, $this->blockFactory->fromFullBlock($block->getStateId())); } @@ -63,7 +64,7 @@ class BlockTest extends TestCase{ public function testRegisterNewBlock() : void{ for($i = BlockTypeIds::FIRST_UNUSED_BLOCK_ID; $i < BlockTypeIds::FIRST_UNUSED_BLOCK_ID + 256; ++$i){ if(!$this->blockFactory->isRegistered($i)){ - $b = new StrangeNewBlock(new BlockIdentifier($i, $i, 0), "Strange New Block", BlockBreakInfo::instant()); + $b = new StrangeNewBlock(new BlockIdentifier($i, $i + 10000, 0), "Strange New Block", BlockBreakInfo::instant()); $this->blockFactory->register($b); self::assertInstanceOf(StrangeNewBlock::class, $this->blockFactory->fromFullBlock($b->getStateId())); return;