BlockIdentifier: variant parameter of constructor is now mandatory

This commit is contained in:
Dylan K. Taylor 2021-04-16 20:14:29 +01:00
parent 8d2ee516f0
commit 81ced66bd0
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
5 changed files with 319 additions and 319 deletions

View File

@ -99,55 +99,55 @@ class BlockFactory{
$this->blocksDirectSkyLight = \SplFixedArray::fromArray(array_fill(0, 16384, false));
$this->blastResistance = \SplFixedArray::fromArray(array_fill(0, 16384, 0.0));
$this->register(new ActivatorRail(new BID(Ids::ACTIVATOR_RAIL), "Activator Rail"));
$this->register(new Air(new BID(Ids::AIR), "Air"));
$this->register(new Anvil(new BID(Ids::ANVIL), "Anvil"));
$this->register(new Bamboo(new BID(Ids::BAMBOO), "Bamboo", new BlockBreakInfo(2.0 /* 1.0 in PC */, BlockToolType::AXE)));
$this->register(new BambooSapling(new BID(Ids::BAMBOO_SAPLING), "Bamboo Sapling", BlockBreakInfo::instant()));
$this->register(new ActivatorRail(new BID(Ids::ACTIVATOR_RAIL, 0), "Activator Rail"));
$this->register(new Air(new BID(Ids::AIR, 0), "Air"));
$this->register(new Anvil(new BID(Ids::ANVIL, 0), "Anvil"));
$this->register(new Bamboo(new BID(Ids::BAMBOO, 0), "Bamboo", new BlockBreakInfo(2.0 /* 1.0 in PC */, BlockToolType::AXE)));
$this->register(new BambooSapling(new BID(Ids::BAMBOO_SAPLING, 0), "Bamboo Sapling", BlockBreakInfo::instant()));
$this->register(new FloorBanner(new BID(Ids::STANDING_BANNER, 0, ItemIds::BANNER, TileBanner::class), "Banner"));
$this->register(new WallBanner(new BID(Ids::WALL_BANNER, 0, ItemIds::BANNER, TileBanner::class), "Wall Banner"));
$this->register(new Barrel(new BID(Ids::BARREL, 0, null, TileBarrel::class), "Barrel"));
$this->register(new Transparent(new BID(Ids::BARRIER), "Barrier", BlockBreakInfo::indestructible()));
$this->register(new Transparent(new BID(Ids::BARRIER, 0), "Barrier", BlockBreakInfo::indestructible()));
$this->register(new Beacon(new BID(Ids::BEACON, 0, null, TileBeacon::class), "Beacon", new BlockBreakInfo(3.0)));
$this->register(new Bed(new BID(Ids::BED_BLOCK, 0, ItemIds::BED, TileBed::class), "Bed Block"));
$this->register(new Bedrock(new BID(Ids::BEDROCK), "Bedrock"));
$this->register(new Beetroot(new BID(Ids::BEETROOT_BLOCK), "Beetroot Block"));
$this->register(new BlueIce(new BID(Ids::BLUE_ICE), "Blue Ice"));
$this->register(new BoneBlock(new BID(Ids::BONE_BLOCK), "Bone Block"));
$this->register(new Bookshelf(new BID(Ids::BOOKSHELF), "Bookshelf"));
$this->register(new Bedrock(new BID(Ids::BEDROCK, 0), "Bedrock"));
$this->register(new Beetroot(new BID(Ids::BEETROOT_BLOCK, 0), "Beetroot Block"));
$this->register(new BlueIce(new BID(Ids::BLUE_ICE, 0), "Blue Ice"));
$this->register(new BoneBlock(new BID(Ids::BONE_BLOCK, 0), "Bone Block"));
$this->register(new Bookshelf(new BID(Ids::BOOKSHELF, 0), "Bookshelf"));
$this->register(new BrewingStand(new BID(Ids::BREWING_STAND_BLOCK, 0, ItemIds::BREWING_STAND, TileBrewingStand::class), "Brewing Stand"));
$bricksBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0);
$this->register(new Stair(new BID(Ids::BRICK_STAIRS), "Brick Stairs", $bricksBreakInfo));
$this->register(new Opaque(new BID(Ids::BRICK_BLOCK), "Bricks", $bricksBreakInfo));
$this->register(new Stair(new BID(Ids::BRICK_STAIRS, 0), "Brick Stairs", $bricksBreakInfo));
$this->register(new Opaque(new BID(Ids::BRICK_BLOCK, 0), "Bricks", $bricksBreakInfo));
$this->register(new BrownMushroom(new BID(Ids::BROWN_MUSHROOM), "Brown Mushroom"));
$this->register(new Cactus(new BID(Ids::CACTUS), "Cactus"));
$this->register(new BrownMushroom(new BID(Ids::BROWN_MUSHROOM, 0), "Brown Mushroom"));
$this->register(new Cactus(new BID(Ids::CACTUS, 0), "Cactus"));
$this->register(new Cake(new BID(Ids::CAKE_BLOCK, 0, ItemIds::CAKE), "Cake"));
$this->register(new Carrot(new BID(Ids::CARROTS), "Carrot Block"));
$this->register(new Carrot(new BID(Ids::CARROTS, 0), "Carrot Block"));
$this->register(new Chest(new BID(Ids::CHEST, 0, null, TileChest::class), "Chest"));
$this->register(new Clay(new BID(Ids::CLAY_BLOCK), "Clay Block"));
$this->register(new Coal(new BID(Ids::COAL_BLOCK), "Coal Block"));
$this->register(new CoalOre(new BID(Ids::COAL_ORE), "Coal Ore"));
$this->register(new Clay(new BID(Ids::CLAY_BLOCK, 0), "Clay Block"));
$this->register(new Coal(new BID(Ids::COAL_BLOCK, 0), "Coal Block"));
$this->register(new CoalOre(new BID(Ids::COAL_ORE, 0), "Coal Ore"));
$this->register(new CoarseDirt(new BID(Ids::DIRT, Meta::DIRT_COARSE), "Coarse Dirt"));
$cobblestoneBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0);
$this->register($cobblestone = new Opaque(new BID(Ids::COBBLESTONE), "Cobblestone", $cobblestoneBreakInfo));
$this->register($cobblestone = new Opaque(new BID(Ids::COBBLESTONE, 0), "Cobblestone", $cobblestoneBreakInfo));
$this->register(new InfestedStone(new BID(Ids::MONSTER_EGG, Meta::INFESTED_COBBLESTONE), "Infested Cobblestone", $cobblestone));
$this->register(new Opaque(new BID(Ids::MOSSY_COBBLESTONE), "Mossy Cobblestone", $cobblestoneBreakInfo));
$this->register(new Stair(new BID(Ids::COBBLESTONE_STAIRS), "Cobblestone Stairs", $cobblestoneBreakInfo));
$this->register(new Stair(new BID(Ids::MOSSY_COBBLESTONE_STAIRS), "Mossy Cobblestone Stairs", $cobblestoneBreakInfo));
$this->register(new Opaque(new BID(Ids::MOSSY_COBBLESTONE, 0), "Mossy Cobblestone", $cobblestoneBreakInfo));
$this->register(new Stair(new BID(Ids::COBBLESTONE_STAIRS, 0), "Cobblestone Stairs", $cobblestoneBreakInfo));
$this->register(new Stair(new BID(Ids::MOSSY_COBBLESTONE_STAIRS, 0), "Mossy Cobblestone Stairs", $cobblestoneBreakInfo));
$this->register(new Cobweb(new BID(Ids::COBWEB), "Cobweb"));
$this->register(new CocoaBlock(new BID(Ids::COCOA), "Cocoa Block"));
$this->register(new CoralBlock(new BID(Ids::CORAL_BLOCK), "Coral Block", new BlockBreakInfo(7.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())));
$this->register(new CraftingTable(new BID(Ids::CRAFTING_TABLE), "Crafting Table"));
$this->register(new Cobweb(new BID(Ids::COBWEB, 0), "Cobweb"));
$this->register(new CocoaBlock(new BID(Ids::COCOA, 0), "Cocoa Block"));
$this->register(new CoralBlock(new BID(Ids::CORAL_BLOCK, 0), "Coral Block", new BlockBreakInfo(7.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())));
$this->register(new CraftingTable(new BID(Ids::CRAFTING_TABLE, 0), "Crafting Table"));
$this->register(new DaylightSensor(new BIDFlattened(Ids::DAYLIGHT_DETECTOR, Ids::DAYLIGHT_DETECTOR_INVERTED, 0, null, TileDaylightSensor::class), "Daylight Sensor"));
$this->register(new DeadBush(new BID(Ids::DEADBUSH), "Dead Bush"));
$this->register(new DetectorRail(new BID(Ids::DETECTOR_RAIL), "Detector Rail"));
$this->register(new DeadBush(new BID(Ids::DEADBUSH, 0), "Dead Bush"));
$this->register(new DetectorRail(new BID(Ids::DETECTOR_RAIL, 0), "Detector Rail"));
$this->register(new Opaque(new BID(Ids::DIAMOND_BLOCK), "Diamond Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0)));
$this->register(new DiamondOre(new BID(Ids::DIAMOND_ORE), "Diamond Ore"));
$this->register(new Opaque(new BID(Ids::DIAMOND_BLOCK, 0), "Diamond Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0)));
$this->register(new DiamondOre(new BID(Ids::DIAMOND_ORE, 0), "Diamond Ore"));
$this->register(new Dirt(new BID(Ids::DIRT, Meta::DIRT_NORMAL), "Dirt"));
$this->register(new DoublePlant(new BID(Ids::DOUBLE_PLANT, Meta::DOUBLE_PLANT_SUNFLOWER), "Sunflower"));
$this->register(new DoublePlant(new BID(Ids::DOUBLE_PLANT, Meta::DOUBLE_PLANT_LILAC), "Lilac"));
@ -155,23 +155,23 @@ class BlockFactory{
$this->register(new DoublePlant(new BID(Ids::DOUBLE_PLANT, Meta::DOUBLE_PLANT_PEONY), "Peony"));
$this->register(new DoubleTallGrass(new BID(Ids::DOUBLE_PLANT, Meta::DOUBLE_PLANT_TALLGRASS), "Double Tallgrass"));
$this->register(new DoubleTallGrass(new BID(Ids::DOUBLE_PLANT, Meta::DOUBLE_PLANT_LARGE_FERN), "Large Fern"));
$this->register(new DragonEgg(new BID(Ids::DRAGON_EGG), "Dragon Egg"));
$this->register(new DriedKelp(new BID(Ids::DRIED_KELP_BLOCK), "Dried Kelp Block", new BlockBreakInfo(0.5, BlockToolType::NONE, 0, 12.5)));
$this->register(new Opaque(new BID(Ids::EMERALD_BLOCK), "Emerald Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0)));
$this->register(new EmeraldOre(new BID(Ids::EMERALD_ORE), "Emerald Ore"));
$this->register(new DragonEgg(new BID(Ids::DRAGON_EGG, 0), "Dragon Egg"));
$this->register(new DriedKelp(new BID(Ids::DRIED_KELP_BLOCK, 0), "Dried Kelp Block", new BlockBreakInfo(0.5, BlockToolType::NONE, 0, 12.5)));
$this->register(new Opaque(new BID(Ids::EMERALD_BLOCK, 0), "Emerald Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0)));
$this->register(new EmeraldOre(new BID(Ids::EMERALD_ORE, 0), "Emerald Ore"));
$this->register(new EnchantingTable(new BID(Ids::ENCHANTING_TABLE, 0, null, TileEnchantingTable::class), "Enchanting Table"));
$this->register(new EndPortalFrame(new BID(Ids::END_PORTAL_FRAME), "End Portal Frame"));
$this->register(new EndRod(new BID(Ids::END_ROD), "End Rod"));
$this->register(new Opaque(new BID(Ids::END_STONE), "End Stone", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 45.0)));
$this->register(new EndPortalFrame(new BID(Ids::END_PORTAL_FRAME, 0), "End Portal Frame"));
$this->register(new EndRod(new BID(Ids::END_ROD, 0), "End Rod"));
$this->register(new Opaque(new BID(Ids::END_STONE, 0), "End Stone", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 45.0)));
$endBrickBreakInfo = new BlockBreakInfo(0.8, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 4.0);
$this->register(new Opaque(new BID(Ids::END_BRICKS), "End Stone Bricks", $endBrickBreakInfo));
$this->register(new Stair(new BID(Ids::END_BRICK_STAIRS), "End Stone Brick Stairs", $endBrickBreakInfo));
$this->register(new Opaque(new BID(Ids::END_BRICKS, 0), "End Stone Bricks", $endBrickBreakInfo));
$this->register(new Stair(new BID(Ids::END_BRICK_STAIRS, 0), "End Stone Brick Stairs", $endBrickBreakInfo));
$this->register(new EnderChest(new BID(Ids::ENDER_CHEST, 0, null, TileEnderChest::class), "Ender Chest"));
$this->register(new Farmland(new BID(Ids::FARMLAND), "Farmland"));
$this->register(new Fire(new BID(Ids::FIRE), "Fire Block"));
$this->register(new Flower(new BID(Ids::DANDELION), "Dandelion"));
$this->register(new Farmland(new BID(Ids::FARMLAND, 0), "Farmland"));
$this->register(new Fire(new BID(Ids::FIRE, 0), "Fire Block"));
$this->register(new Flower(new BID(Ids::DANDELION, 0), "Dandelion"));
$this->register(new Flower(new BID(Ids::RED_FLOWER, Meta::FLOWER_ALLIUM), "Allium"));
$this->register(new Flower(new BID(Ids::RED_FLOWER, Meta::FLOWER_AZURE_BLUET), "Azure Bluet"));
$this->register(new Flower(new BID(Ids::RED_FLOWER, Meta::FLOWER_BLUE_ORCHID), "Blue Orchid"));
@ -184,117 +184,117 @@ class BlockFactory{
$this->register(new Flower(new BID(Ids::RED_FLOWER, Meta::FLOWER_RED_TULIP), "Red Tulip"));
$this->register(new Flower(new BID(Ids::RED_FLOWER, Meta::FLOWER_WHITE_TULIP), "White Tulip"));
$this->register(new FlowerPot(new BID(Ids::FLOWER_POT_BLOCK, 0, ItemIds::FLOWER_POT, TileFlowerPot::class), "Flower Pot"));
$this->register(new FrostedIce(new BID(Ids::FROSTED_ICE), "Frosted Ice"));
$this->register(new FrostedIce(new BID(Ids::FROSTED_ICE, 0), "Frosted Ice"));
$this->register(new Furnace(new BIDFlattened(Ids::FURNACE, Ids::LIT_FURNACE, 0, null, TileFurnace::class), "Furnace"));
$this->register(new Glass(new BID(Ids::GLASS), "Glass"));
$this->register(new GlassPane(new BID(Ids::GLASS_PANE), "Glass Pane"));
$this->register(new GlowingObsidian(new BID(Ids::GLOWINGOBSIDIAN), "Glowing Obsidian"));
$this->register(new Glowstone(new BID(Ids::GLOWSTONE), "Glowstone"));
$this->register(new Opaque(new BID(Ids::GOLD_BLOCK), "Gold Block", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0)));
$this->register(new Opaque(new BID(Ids::GOLD_ORE), "Gold Ore", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel())));
$this->register(new Grass(new BID(Ids::GRASS), "Grass"));
$this->register(new GrassPath(new BID(Ids::GRASS_PATH), "Grass Path"));
$this->register(new Gravel(new BID(Ids::GRAVEL), "Gravel"));
$this->register(new HardenedClay(new BID(Ids::HARDENED_CLAY), "Hardened Clay"));
$this->register(new HardenedGlass(new BID(Ids::HARD_GLASS), "Hardened Glass"));
$this->register(new HardenedGlassPane(new BID(Ids::HARD_GLASS_PANE), "Hardened Glass Pane"));
$this->register(new HayBale(new BID(Ids::HAY_BALE), "Hay Bale"));
$this->register(new Glass(new BID(Ids::GLASS, 0), "Glass"));
$this->register(new GlassPane(new BID(Ids::GLASS_PANE, 0), "Glass Pane"));
$this->register(new GlowingObsidian(new BID(Ids::GLOWINGOBSIDIAN, 0), "Glowing Obsidian"));
$this->register(new Glowstone(new BID(Ids::GLOWSTONE, 0), "Glowstone"));
$this->register(new Opaque(new BID(Ids::GOLD_BLOCK, 0), "Gold Block", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel(), 30.0)));
$this->register(new Opaque(new BID(Ids::GOLD_ORE, 0), "Gold Ore", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel())));
$this->register(new Grass(new BID(Ids::GRASS, 0), "Grass"));
$this->register(new GrassPath(new BID(Ids::GRASS_PATH, 0), "Grass Path"));
$this->register(new Gravel(new BID(Ids::GRAVEL, 0), "Gravel"));
$this->register(new HardenedClay(new BID(Ids::HARDENED_CLAY, 0), "Hardened Clay"));
$this->register(new HardenedGlass(new BID(Ids::HARD_GLASS, 0), "Hardened Glass"));
$this->register(new HardenedGlassPane(new BID(Ids::HARD_GLASS_PANE, 0), "Hardened Glass Pane"));
$this->register(new HayBale(new BID(Ids::HAY_BALE, 0), "Hay Bale"));
$this->register(new Hopper(new BID(Ids::HOPPER_BLOCK, 0, ItemIds::HOPPER, TileHopper::class), "Hopper", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 15.0)));
$this->register(new Ice(new BID(Ids::ICE), "Ice"));
$this->register(new Ice(new BID(Ids::ICE, 0), "Ice"));
$updateBlockBreakInfo = new BlockBreakInfo(1.0);
$this->register(new Opaque(new BID(Ids::INFO_UPDATE), "update!", $updateBlockBreakInfo));
$this->register(new Opaque(new BID(Ids::INFO_UPDATE2), "ate!upd", $updateBlockBreakInfo));
$this->register(new Transparent(new BID(Ids::INVISIBLEBEDROCK), "Invisible Bedrock", BlockBreakInfo::indestructible()));
$this->register(new Opaque(new BID(Ids::IRON_BLOCK), "Iron Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel(), 30.0)));
$this->register(new Thin(new BID(Ids::IRON_BARS), "Iron Bars", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0)));
$this->register(new Opaque(new BID(Ids::INFO_UPDATE, 0), "update!", $updateBlockBreakInfo));
$this->register(new Opaque(new BID(Ids::INFO_UPDATE2, 0), "ate!upd", $updateBlockBreakInfo));
$this->register(new Transparent(new BID(Ids::INVISIBLEBEDROCK, 0), "Invisible Bedrock", BlockBreakInfo::indestructible()));
$this->register(new Opaque(new BID(Ids::IRON_BLOCK, 0), "Iron Block", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel(), 30.0)));
$this->register(new Thin(new BID(Ids::IRON_BARS, 0), "Iron Bars", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0)));
$this->register(new Door(new BID(Ids::IRON_DOOR_BLOCK, 0, ItemIds::IRON_DOOR), "Iron Door", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 25.0)));
$this->register(new Opaque(new BID(Ids::IRON_ORE), "Iron Ore", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel())));
$this->register(new Trapdoor(new BID(Ids::IRON_TRAPDOOR), "Iron Trapdoor", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 25.0)));
$this->register(new Opaque(new BID(Ids::IRON_ORE, 0), "Iron Ore", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel())));
$this->register(new Trapdoor(new BID(Ids::IRON_TRAPDOOR, 0), "Iron Trapdoor", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 25.0)));
$this->register(new ItemFrame(new BID(Ids::FRAME_BLOCK, 0, ItemIds::FRAME, TileItemFrame::class), "Item Frame"));
$this->register(new Jukebox(new BID(Ids::JUKEBOX, 0, ItemIds::JUKEBOX, TileJukebox::class), "Jukebox"));
$this->register(new Ladder(new BID(Ids::LADDER), "Ladder"));
$this->register(new Lantern(new BID(Ids::LANTERN), "Lantern", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())));
$this->register(new Opaque(new BID(Ids::LAPIS_BLOCK), "Lapis Lazuli Block", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel())));
$this->register(new LapisOre(new BID(Ids::LAPIS_ORE), "Lapis Lazuli Ore"));
$this->register(new Lava(new BIDFlattened(Ids::FLOWING_LAVA, Ids::STILL_LAVA), "Lava"));
$this->register(new Lever(new BID(Ids::LEVER), "Lever"));
$this->register(new Magma(new BID(Ids::MAGMA), "Magma Block"));
$this->register(new Melon(new BID(Ids::MELON_BLOCK), "Melon Block"));
$this->register(new Ladder(new BID(Ids::LADDER, 0), "Ladder"));
$this->register(new Lantern(new BID(Ids::LANTERN, 0), "Lantern", new BlockBreakInfo(5.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())));
$this->register(new Opaque(new BID(Ids::LAPIS_BLOCK, 0), "Lapis Lazuli Block", new BlockBreakInfo(3.0, BlockToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel())));
$this->register(new LapisOre(new BID(Ids::LAPIS_ORE, 0), "Lapis Lazuli Ore"));
$this->register(new Lava(new BIDFlattened(Ids::FLOWING_LAVA, Ids::STILL_LAVA, 0), "Lava"));
$this->register(new Lever(new BID(Ids::LEVER, 0), "Lever"));
$this->register(new Magma(new BID(Ids::MAGMA, 0), "Magma Block"));
$this->register(new Melon(new BID(Ids::MELON_BLOCK, 0), "Melon Block"));
$this->register(new MelonStem(new BID(Ids::MELON_STEM, 0, ItemIds::MELON_SEEDS), "Melon Stem"));
$this->register(new MonsterSpawner(new BID(Ids::MOB_SPAWNER, 0, null, TileMonsterSpawner::class), "Monster Spawner"));
$this->register(new Mycelium(new BID(Ids::MYCELIUM), "Mycelium"));
$this->register(new Mycelium(new BID(Ids::MYCELIUM, 0), "Mycelium"));
$netherBrickBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0);
$this->register(new Opaque(new BID(Ids::NETHER_BRICK_BLOCK), "Nether Bricks", $netherBrickBreakInfo));
$this->register(new Opaque(new BID(Ids::RED_NETHER_BRICK), "Red Nether Bricks", $netherBrickBreakInfo));
$this->register(new Fence(new BID(Ids::NETHER_BRICK_FENCE), "Nether Brick Fence", $netherBrickBreakInfo));
$this->register(new Stair(new BID(Ids::NETHER_BRICK_STAIRS), "Nether Brick Stairs", $netherBrickBreakInfo));
$this->register(new Stair(new BID(Ids::RED_NETHER_BRICK_STAIRS), "Red Nether Brick Stairs", $netherBrickBreakInfo));
$this->register(new NetherPortal(new BID(Ids::PORTAL), "Nether Portal"));
$this->register(new NetherQuartzOre(new BID(Ids::NETHER_QUARTZ_ORE), "Nether Quartz Ore"));
$this->register(new NetherReactor(new BID(Ids::NETHERREACTOR), "Nether Reactor Core"));
$this->register(new Opaque(new BID(Ids::NETHER_WART_BLOCK), "Nether Wart Block", new BlockBreakInfo(1.0)));
$this->register(new Opaque(new BID(Ids::NETHER_BRICK_BLOCK, 0), "Nether Bricks", $netherBrickBreakInfo));
$this->register(new Opaque(new BID(Ids::RED_NETHER_BRICK, 0), "Red Nether Bricks", $netherBrickBreakInfo));
$this->register(new Fence(new BID(Ids::NETHER_BRICK_FENCE, 0), "Nether Brick Fence", $netherBrickBreakInfo));
$this->register(new Stair(new BID(Ids::NETHER_BRICK_STAIRS, 0), "Nether Brick Stairs", $netherBrickBreakInfo));
$this->register(new Stair(new BID(Ids::RED_NETHER_BRICK_STAIRS, 0), "Red Nether Brick Stairs", $netherBrickBreakInfo));
$this->register(new NetherPortal(new BID(Ids::PORTAL, 0), "Nether Portal"));
$this->register(new NetherQuartzOre(new BID(Ids::NETHER_QUARTZ_ORE, 0), "Nether Quartz Ore"));
$this->register(new NetherReactor(new BID(Ids::NETHERREACTOR, 0), "Nether Reactor Core"));
$this->register(new Opaque(new BID(Ids::NETHER_WART_BLOCK, 0), "Nether Wart Block", new BlockBreakInfo(1.0)));
$this->register(new NetherWartPlant(new BID(Ids::NETHER_WART_PLANT, 0, ItemIds::NETHER_WART), "Nether Wart"));
$this->register(new Netherrack(new BID(Ids::NETHERRACK), "Netherrack"));
$this->register(new Netherrack(new BID(Ids::NETHERRACK, 0), "Netherrack"));
$this->register(new Note(new BID(Ids::NOTEBLOCK, 0, null, TileNote::class), "Note Block"));
$this->register(new Opaque(new BID(Ids::OBSIDIAN), "Obsidian", new BlockBreakInfo(35.0 /* 50 in PC */, BlockToolType::PICKAXE, ToolTier::DIAMOND()->getHarvestLevel(), 6000.0)));
$this->register(new PackedIce(new BID(Ids::PACKED_ICE), "Packed Ice"));
$this->register(new Podzol(new BID(Ids::PODZOL), "Podzol"));
$this->register(new Potato(new BID(Ids::POTATOES), "Potato Block"));
$this->register(new Opaque(new BID(Ids::OBSIDIAN, 0), "Obsidian", new BlockBreakInfo(35.0 /* 50 in PC */, BlockToolType::PICKAXE, ToolTier::DIAMOND()->getHarvestLevel(), 6000.0)));
$this->register(new PackedIce(new BID(Ids::PACKED_ICE, 0), "Packed Ice"));
$this->register(new Podzol(new BID(Ids::PODZOL, 0), "Podzol"));
$this->register(new Potato(new BID(Ids::POTATOES, 0), "Potato Block"));
$this->register(new PoweredRail(new BID(Ids::GOLDEN_RAIL, Meta::RAIL_STRAIGHT_NORTH_SOUTH), "Powered Rail"));
$prismarineBreakInfo = new BlockBreakInfo(1.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0);
$this->register(new Opaque(new BID(Ids::PRISMARINE, Meta::PRISMARINE_BRICKS), "Prismarine Bricks", $prismarineBreakInfo));
$this->register(new Stair(new BID(Ids::PRISMARINE_BRICKS_STAIRS), "Prismarine Bricks Stairs", $prismarineBreakInfo));
$this->register(new Stair(new BID(Ids::PRISMARINE_BRICKS_STAIRS, 0), "Prismarine Bricks Stairs", $prismarineBreakInfo));
$this->register(new Opaque(new BID(Ids::PRISMARINE, Meta::PRISMARINE_DARK), "Dark Prismarine", $prismarineBreakInfo));
$this->register(new Stair(new BID(Ids::DARK_PRISMARINE_STAIRS), "Dark Prismarine Stairs", $prismarineBreakInfo));
$this->register(new Stair(new BID(Ids::DARK_PRISMARINE_STAIRS, 0), "Dark Prismarine Stairs", $prismarineBreakInfo));
$this->register(new Opaque(new BID(Ids::PRISMARINE, Meta::PRISMARINE_NORMAL), "Prismarine", $prismarineBreakInfo));
$this->register(new Stair(new BID(Ids::PRISMARINE_STAIRS), "Prismarine Stairs", $prismarineBreakInfo));
$this->register(new Stair(new BID(Ids::PRISMARINE_STAIRS, 0), "Prismarine Stairs", $prismarineBreakInfo));
$pumpkinBreakInfo = new BlockBreakInfo(1.0, BlockToolType::AXE);
$this->register($pumpkin = new Opaque(new BID(Ids::PUMPKIN), "Pumpkin", $pumpkinBreakInfo));
$this->register($pumpkin = new Opaque(new BID(Ids::PUMPKIN, 0), "Pumpkin", $pumpkinBreakInfo));
for($i = 1; $i <= 3; ++$i){
$this->remap(Ids::PUMPKIN, $i, $pumpkin);
}
$this->register(new CarvedPumpkin(new BID(Ids::CARVED_PUMPKIN), "Carved Pumpkin", $pumpkinBreakInfo));
$this->register(new LitPumpkin(new BID(Ids::JACK_O_LANTERN), "Jack o'Lantern", $pumpkinBreakInfo));
$this->register(new CarvedPumpkin(new BID(Ids::CARVED_PUMPKIN, 0), "Carved Pumpkin", $pumpkinBreakInfo));
$this->register(new LitPumpkin(new BID(Ids::JACK_O_LANTERN, 0), "Jack o'Lantern", $pumpkinBreakInfo));
$this->register(new PumpkinStem(new BID(Ids::PUMPKIN_STEM, 0, ItemIds::PUMPKIN_SEEDS), "Pumpkin Stem"));
$purpurBreakInfo = new BlockBreakInfo(1.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0);
$this->register(new Opaque(new BID(Ids::PURPUR_BLOCK, Meta::PURPUR_NORMAL), "Purpur Block", $purpurBreakInfo));
$this->register(new SimplePillar(new BID(Ids::PURPUR_BLOCK, Meta::PURPUR_PILLAR), "Purpur Pillar", $purpurBreakInfo));
$this->register(new Stair(new BID(Ids::PURPUR_STAIRS), "Purpur Stairs", $purpurBreakInfo));
$this->register(new Stair(new BID(Ids::PURPUR_STAIRS, 0), "Purpur Stairs", $purpurBreakInfo));
$quartzBreakInfo = new BlockBreakInfo(0.8, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel());
$this->register(new Opaque(new BID(Ids::QUARTZ_BLOCK, Meta::QUARTZ_NORMAL), "Quartz Block", $quartzBreakInfo));
$this->register(new Stair(new BID(Ids::QUARTZ_STAIRS), "Quartz Stairs", $quartzBreakInfo));
$this->register(new Stair(new BID(Ids::QUARTZ_STAIRS, 0), "Quartz Stairs", $quartzBreakInfo));
$this->register(new SimplePillar(new BID(Ids::QUARTZ_BLOCK, Meta::QUARTZ_CHISELED), "Chiseled Quartz Block", $quartzBreakInfo));
$this->register(new SimplePillar(new BID(Ids::QUARTZ_BLOCK, Meta::QUARTZ_PILLAR), "Quartz Pillar", $quartzBreakInfo));
$this->register(new Opaque(new BID(Ids::QUARTZ_BLOCK, Meta::QUARTZ_SMOOTH), "Smooth Quartz Block", $quartzBreakInfo)); //TODO: this has axis rotation in 1.9, unsure if a bug (https://bugs.mojang.com/browse/MCPE-39074)
$this->register(new Stair(new BID(Ids::SMOOTH_QUARTZ_STAIRS), "Smooth Quartz Stairs", $quartzBreakInfo));
$this->register(new Stair(new BID(Ids::SMOOTH_QUARTZ_STAIRS, 0), "Smooth Quartz Stairs", $quartzBreakInfo));
$this->register(new Rail(new BID(Ids::RAIL), "Rail"));
$this->register(new RedMushroom(new BID(Ids::RED_MUSHROOM), "Red Mushroom"));
$this->register(new Redstone(new BID(Ids::REDSTONE_BLOCK), "Redstone Block"));
$this->register(new Rail(new BID(Ids::RAIL, 0), "Rail"));
$this->register(new RedMushroom(new BID(Ids::RED_MUSHROOM, 0), "Red Mushroom"));
$this->register(new Redstone(new BID(Ids::REDSTONE_BLOCK, 0), "Redstone Block"));
$this->register(new RedstoneComparator(new BIDFlattened(Ids::UNPOWERED_COMPARATOR, Ids::POWERED_COMPARATOR, 0, ItemIds::COMPARATOR, TileComparator::class), "Redstone Comparator"));
$this->register(new RedstoneLamp(new BIDFlattened(Ids::REDSTONE_LAMP, Ids::LIT_REDSTONE_LAMP), "Redstone Lamp"));
$this->register(new RedstoneOre(new BIDFlattened(Ids::REDSTONE_ORE, Ids::LIT_REDSTONE_ORE), "Redstone Ore"));
$this->register(new RedstoneLamp(new BIDFlattened(Ids::REDSTONE_LAMP, Ids::LIT_REDSTONE_LAMP, 0), "Redstone Lamp"));
$this->register(new RedstoneOre(new BIDFlattened(Ids::REDSTONE_ORE, Ids::LIT_REDSTONE_ORE, 0), "Redstone Ore"));
$this->register(new RedstoneRepeater(new BIDFlattened(Ids::UNPOWERED_REPEATER, Ids::POWERED_REPEATER, 0, ItemIds::REPEATER), "Redstone Repeater"));
$this->register(new RedstoneTorch(new BIDFlattened(Ids::REDSTONE_TORCH, Ids::UNLIT_REDSTONE_TORCH), "Redstone Torch"));
$this->register(new RedstoneTorch(new BIDFlattened(Ids::REDSTONE_TORCH, Ids::UNLIT_REDSTONE_TORCH, 0), "Redstone Torch"));
$this->register(new RedstoneWire(new BID(Ids::REDSTONE_WIRE, 0, ItemIds::REDSTONE), "Redstone"));
$this->register(new Reserved6(new BID(Ids::RESERVED6), "reserved6"));
$this->register(new Sand(new BID(Ids::SAND), "Sand"));
$this->register(new Reserved6(new BID(Ids::RESERVED6, 0), "reserved6"));
$this->register(new Sand(new BID(Ids::SAND, 0), "Sand"));
$this->register(new Sand(new BID(Ids::SAND, 1), "Red Sand"));
$this->register(new SeaLantern(new BID(Ids::SEALANTERN), "Sea Lantern"));
$this->register(new SeaPickle(new BID(Ids::SEA_PICKLE), "Sea Pickle"));
$this->register(new SeaLantern(new BID(Ids::SEALANTERN, 0), "Sea Lantern"));
$this->register(new SeaPickle(new BID(Ids::SEA_PICKLE, 0), "Sea Pickle"));
$this->register(new Skull(new BID(Ids::MOB_HEAD_BLOCK, 0, null, TileSkull::class), "Mob Head"));
$this->register(new Snow(new BID(Ids::SNOW), "Snow Block"));
$this->register(new SnowLayer(new BID(Ids::SNOW_LAYER), "Snow Layer"));
$this->register(new SoulSand(new BID(Ids::SOUL_SAND), "Soul Sand"));
$this->register(new Sponge(new BID(Ids::SPONGE), "Sponge"));
$this->register(new Snow(new BID(Ids::SNOW, 0), "Snow Block"));
$this->register(new SnowLayer(new BID(Ids::SNOW_LAYER, 0), "Snow Layer"));
$this->register(new SoulSand(new BID(Ids::SOUL_SAND, 0), "Soul Sand"));
$this->register(new Sponge(new BID(Ids::SPONGE, 0), "Sponge"));
$stoneBreakInfo = new BlockBreakInfo(1.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0);
$this->register($stone = new class(new BID(Ids::STONE, Meta::STONE_NORMAL), "Stone", $stoneBreakInfo) extends Opaque{
@ -307,32 +307,32 @@ class BlockFactory{
}
});
$this->register(new InfestedStone(new BID(Ids::MONSTER_EGG, Meta::INFESTED_STONE), "Infested Stone", $stone));
$this->register(new Stair(new BID(Ids::NORMAL_STONE_STAIRS), "Stone Stairs", $stoneBreakInfo));
$this->register(new Opaque(new BID(Ids::SMOOTH_STONE), "Smooth Stone", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::NORMAL_STONE_STAIRS, 0), "Stone Stairs", $stoneBreakInfo));
$this->register(new Opaque(new BID(Ids::SMOOTH_STONE, 0), "Smooth Stone", $stoneBreakInfo));
$this->register(new Opaque(new BID(Ids::STONE, Meta::STONE_ANDESITE), "Andesite", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::ANDESITE_STAIRS), "Andesite Stairs", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::ANDESITE_STAIRS, 0), "Andesite Stairs", $stoneBreakInfo));
$this->register(new Opaque(new BID(Ids::STONE, Meta::STONE_DIORITE), "Diorite", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::DIORITE_STAIRS), "Diorite Stairs", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::DIORITE_STAIRS, 0), "Diorite Stairs", $stoneBreakInfo));
$this->register(new Opaque(new BID(Ids::STONE, Meta::STONE_GRANITE), "Granite", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::GRANITE_STAIRS), "Granite Stairs", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::GRANITE_STAIRS, 0), "Granite Stairs", $stoneBreakInfo));
$this->register(new Opaque(new BID(Ids::STONE, Meta::STONE_POLISHED_ANDESITE), "Polished Andesite", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::POLISHED_ANDESITE_STAIRS), "Polished Andesite Stairs", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::POLISHED_ANDESITE_STAIRS, 0), "Polished Andesite Stairs", $stoneBreakInfo));
$this->register(new Opaque(new BID(Ids::STONE, Meta::STONE_POLISHED_DIORITE), "Polished Diorite", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::POLISHED_DIORITE_STAIRS), "Polished Diorite Stairs", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::POLISHED_DIORITE_STAIRS, 0), "Polished Diorite Stairs", $stoneBreakInfo));
$this->register(new Opaque(new BID(Ids::STONE, Meta::STONE_POLISHED_GRANITE), "Polished Granite", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::POLISHED_GRANITE_STAIRS), "Polished Granite Stairs", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::STONE_BRICK_STAIRS), "Stone Brick Stairs", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::POLISHED_GRANITE_STAIRS, 0), "Polished Granite Stairs", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::STONE_BRICK_STAIRS, 0), "Stone Brick Stairs", $stoneBreakInfo));
$this->register($chiseledStoneBrick = new Opaque(new BID(Ids::STONEBRICK, Meta::STONE_BRICK_CHISELED), "Chiseled Stone Bricks", $stoneBreakInfo));
$this->register(new InfestedStone(new BID(Ids::MONSTER_EGG, Meta::INFESTED_STONE_BRICK_CHISELED), "Infested Chiseled Stone Brick", $chiseledStoneBrick));
$this->register($crackedStoneBrick = new Opaque(new BID(Ids::STONEBRICK, Meta::STONE_BRICK_CRACKED), "Cracked Stone Bricks", $stoneBreakInfo));
$this->register(new InfestedStone(new BID(Ids::MONSTER_EGG, Meta::INFESTED_STONE_BRICK_CRACKED), "Infested Cracked Stone Brick", $crackedStoneBrick));
$this->register($mossyStoneBrick = new Opaque(new BID(Ids::STONEBRICK, Meta::STONE_BRICK_MOSSY), "Mossy Stone Bricks", $stoneBreakInfo));
$this->register(new InfestedStone(new BID(Ids::MONSTER_EGG, Meta::INFESTED_STONE_BRICK_MOSSY), "Infested Mossy Stone Brick", $mossyStoneBrick));
$this->register(new Stair(new BID(Ids::MOSSY_STONE_BRICK_STAIRS), "Mossy Stone Brick Stairs", $stoneBreakInfo));
$this->register(new Stair(new BID(Ids::MOSSY_STONE_BRICK_STAIRS, 0), "Mossy Stone Brick Stairs", $stoneBreakInfo));
$this->register($stoneBrick = new Opaque(new BID(Ids::STONEBRICK, Meta::STONE_BRICK_NORMAL), "Stone Bricks", $stoneBreakInfo));
$this->register(new InfestedStone(new BID(Ids::MONSTER_EGG, Meta::INFESTED_STONE_BRICK), "Infested Stone Brick", $stoneBrick));
$this->register(new StoneButton(new BID(Ids::STONE_BUTTON), "Stone Button"));
$this->register(new StonePressurePlate(new BID(Ids::STONE_PRESSURE_PLATE), "Stone Pressure Plate"));
$this->register(new StoneButton(new BID(Ids::STONE_BUTTON, 0), "Stone Button"));
$this->register(new StonePressurePlate(new BID(Ids::STONE_PRESSURE_PLATE, 0), "Stone Pressure Plate"));
//TODO: in the future this won't be the same for all the types
$stoneSlabBreakInfo = new BlockBreakInfo(2.0, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0);
@ -365,30 +365,30 @@ class BlockFactory{
$this->register(new Slab(BlockLegacyIdHelper::getStoneSlabIdentifier(4, Meta::STONE_SLAB4_MOSSY_STONE_BRICK), "Mossy Stone Brick", $stoneSlabBreakInfo));
$this->register(new Slab(BlockLegacyIdHelper::getStoneSlabIdentifier(4, Meta::STONE_SLAB4_SMOOTH_QUARTZ), "Smooth Quartz", $stoneSlabBreakInfo));
$this->register(new Slab(BlockLegacyIdHelper::getStoneSlabIdentifier(4, Meta::STONE_SLAB4_STONE), "Stone", $stoneSlabBreakInfo));
$this->register(new Opaque(new BID(Ids::STONECUTTER), "Stonecutter", new BlockBreakInfo(3.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())));
$this->register(new Opaque(new BID(Ids::STONECUTTER, 0), "Stonecutter", new BlockBreakInfo(3.5, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel())));
$this->register(new Sugarcane(new BID(Ids::REEDS_BLOCK, 0, ItemIds::REEDS), "Sugarcane"));
$this->register(new TNT(new BID(Ids::TNT), "TNT"));
$this->register(new TNT(new BID(Ids::TNT, 0), "TNT"));
$fern = new TallGrass(new BID(Ids::TALLGRASS, Meta::TALLGRASS_FERN), "Fern");
$this->register($fern);
$this->remap(Ids::TALLGRASS, 0, $fern);
$this->remap(Ids::TALLGRASS, 3, $fern);
$this->register(new TallGrass(new BID(Ids::TALLGRASS, Meta::TALLGRASS_NORMAL), "Tall Grass"));
$this->register(new Torch(new BID(Ids::COLORED_TORCH_BP), "Blue Torch"));
$this->register(new Torch(new BID(Ids::COLORED_TORCH_BP, 0), "Blue Torch"));
$this->register(new Torch(new BID(Ids::COLORED_TORCH_BP, 8), "Purple Torch"));
$this->register(new Torch(new BID(Ids::COLORED_TORCH_RG), "Red Torch"));
$this->register(new Torch(new BID(Ids::COLORED_TORCH_RG, 0), "Red Torch"));
$this->register(new Torch(new BID(Ids::COLORED_TORCH_RG, 8), "Green Torch"));
$this->register(new Torch(new BID(Ids::TORCH), "Torch"));
$this->register(new Torch(new BID(Ids::TORCH, 0), "Torch"));
$this->register(new TrappedChest(new BID(Ids::TRAPPED_CHEST, 0, null, TileChest::class), "Trapped Chest"));
$this->register(new Tripwire(new BID(Ids::TRIPWIRE, 0, ItemIds::STRING), "Tripwire"));
$this->register(new TripwireHook(new BID(Ids::TRIPWIRE_HOOK), "Tripwire Hook"));
$this->register(new UnderwaterTorch(new BID(Ids::UNDERWATER_TORCH), "Underwater Torch"));
$this->register(new Vine(new BID(Ids::VINE), "Vines"));
$this->register(new Water(new BIDFlattened(Ids::FLOWING_WATER, Ids::STILL_WATER), "Water"));
$this->register(new WaterLily(new BID(Ids::LILY_PAD), "Lily Pad"));
$this->register(new WeightedPressurePlateHeavy(new BID(Ids::HEAVY_WEIGHTED_PRESSURE_PLATE), "Weighted Pressure Plate Heavy"));
$this->register(new WeightedPressurePlateLight(new BID(Ids::LIGHT_WEIGHTED_PRESSURE_PLATE), "Weighted Pressure Plate Light"));
$this->register(new Wheat(new BID(Ids::WHEAT_BLOCK), "Wheat Block"));
$this->register(new TripwireHook(new BID(Ids::TRIPWIRE_HOOK, 0), "Tripwire Hook"));
$this->register(new UnderwaterTorch(new BID(Ids::UNDERWATER_TORCH, 0), "Underwater Torch"));
$this->register(new Vine(new BID(Ids::VINE, 0), "Vines"));
$this->register(new Water(new BIDFlattened(Ids::FLOWING_WATER, Ids::STILL_WATER, 0), "Water"));
$this->register(new WaterLily(new BID(Ids::LILY_PAD, 0), "Lily Pad"));
$this->register(new WeightedPressurePlateHeavy(new BID(Ids::HEAVY_WEIGHTED_PRESSURE_PLATE, 0), "Weighted Pressure Plate Heavy"));
$this->register(new WeightedPressurePlateLight(new BID(Ids::LIGHT_WEIGHTED_PRESSURE_PLATE, 0), "Weighted Pressure Plate Light"));
$this->register(new Wheat(new BID(Ids::WHEAT_BLOCK, 0), "Wheat Block"));
foreach(TreeType::getAll() as $treeType){
$magicNumber = $treeType->getMagicNumber();
@ -425,10 +425,10 @@ class BlockFactory{
Meta::SANDSTONE_SMOOTH => "Smooth "
];
$sandstoneBreakInfo = new BlockBreakInfo(0.8, BlockToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel());
$this->register(new Stair(new BID(Ids::RED_SANDSTONE_STAIRS), "Red Sandstone Stairs", $sandstoneBreakInfo));
$this->register(new Stair(new BID(Ids::SMOOTH_RED_SANDSTONE_STAIRS), "Smooth Red Sandstone Stairs", $sandstoneBreakInfo));
$this->register(new Stair(new BID(Ids::SANDSTONE_STAIRS), "Sandstone Stairs", $sandstoneBreakInfo));
$this->register(new Stair(new BID(Ids::SMOOTH_SANDSTONE_STAIRS), "Smooth Sandstone Stairs", $sandstoneBreakInfo));
$this->register(new Stair(new BID(Ids::RED_SANDSTONE_STAIRS, 0), "Red Sandstone Stairs", $sandstoneBreakInfo));
$this->register(new Stair(new BID(Ids::SMOOTH_RED_SANDSTONE_STAIRS, 0), "Smooth Red Sandstone Stairs", $sandstoneBreakInfo));
$this->register(new Stair(new BID(Ids::SANDSTONE_STAIRS, 0), "Sandstone Stairs", $sandstoneBreakInfo));
$this->register(new Stair(new BID(Ids::SMOOTH_SANDSTONE_STAIRS, 0), "Smooth Sandstone Stairs", $sandstoneBreakInfo));
foreach($sandstoneTypes as $variant => $prefix){
$this->register(new Opaque(new BID(Ids::SANDSTONE, $variant), $prefix . "Sandstone", $sandstoneBreakInfo));
$this->register(new Opaque(new BID(Ids::RED_SANDSTONE, $variant), $prefix . "Red Sandstone", $sandstoneBreakInfo));
@ -446,10 +446,10 @@ class BlockFactory{
$this->register(new HardenedGlass(new BID(Ids::HARD_STAINED_GLASS, $colorIdMap->toId($color)), "Hardened " . $coloredName("Stained Glass")));
$this->register(new HardenedGlassPane(new BID(Ids::HARD_STAINED_GLASS_PANE, $colorIdMap->toId($color)), "Hardened " . $coloredName("Stained Glass Pane")));
}
$this->register(new Carpet(new BID(Ids::CARPET), "Carpet"));
$this->register(new Concrete(new BID(Ids::CONCRETE), "Concrete"));
$this->register(new ConcretePowder(new BID(Ids::CONCRETE_POWDER), "Concrete Powder"));
$this->register(new Wool(new BID(Ids::WOOL), "Wool"));
$this->register(new Carpet(new BID(Ids::CARPET, 0), "Carpet"));
$this->register(new Concrete(new BID(Ids::CONCRETE, 0), "Concrete"));
$this->register(new ConcretePowder(new BID(Ids::CONCRETE_POWDER, 0), "Concrete Powder"));
$this->register(new Wool(new BID(Ids::WOOL, 0), "Wool"));
$this->register(new Wall(new BID(Ids::COBBLESTONE_WALL, Meta::WALL_ANDESITE), "Andesite Wall"));
$this->register(new Wall(new BID(Ids::COBBLESTONE_WALL, Meta::WALL_BRICK), "Brick Wall"));
@ -474,7 +474,7 @@ class BlockFactory{
$this->register(new ChemistryTable(new BID(Ids::CHEMISTRY_TABLE, Meta::CHEMISTRY_LAB_TABLE), "Lab Table", $chemistryTableBreakInfo));
$this->register(new ChemistryTable(new BID(Ids::CHEMISTRY_TABLE, Meta::CHEMISTRY_MATERIAL_REDUCER), "Material Reducer", $chemistryTableBreakInfo));
$this->register(new ChemicalHeat(new BID(Ids::CHEMICAL_HEAT), "Heat Block", $chemistryTableBreakInfo));
$this->register(new ChemicalHeat(new BID(Ids::CHEMICAL_HEAT, 0), "Heat Block", $chemistryTableBreakInfo));
$this->registerMushroomBlocks();
@ -645,8 +645,8 @@ class BlockFactory{
$mushroomBlockBreakInfo = new BlockBreakInfo(0.2, BlockToolType::AXE);
$mushroomBlocks = [
new BrownMushroomBlock(new BID(Ids::BROWN_MUSHROOM_BLOCK), "Brown Mushroom Block", $mushroomBlockBreakInfo),
new RedMushroomBlock(new BID(Ids::RED_MUSHROOM_BLOCK), "Red Mushroom Block", $mushroomBlockBreakInfo)
new BrownMushroomBlock(new BID(Ids::BROWN_MUSHROOM_BLOCK, 0), "Brown Mushroom Block", $mushroomBlockBreakInfo),
new RedMushroomBlock(new BID(Ids::RED_MUSHROOM_BLOCK, 0), "Red Mushroom Block", $mushroomBlockBreakInfo)
];
//caps
@ -687,126 +687,126 @@ class BlockFactory{
private function registerElements() : void{
$instaBreak = BlockBreakInfo::instant();
$this->register(new Opaque(new BID(Ids::ELEMENT_0), "???", $instaBreak));
$this->register(new Opaque(new BID(Ids::ELEMENT_0, 0), "???", $instaBreak));
$this->register(new Element(new BID(Ids::ELEMENT_1), "Hydrogen", $instaBreak, "h", 1, 5));
$this->register(new Element(new BID(Ids::ELEMENT_2), "Helium", $instaBreak, "he", 2, 7));
$this->register(new Element(new BID(Ids::ELEMENT_3), "Lithium", $instaBreak, "li", 3, 0));
$this->register(new Element(new BID(Ids::ELEMENT_4), "Beryllium", $instaBreak, "be", 4, 1));
$this->register(new Element(new BID(Ids::ELEMENT_5), "Boron", $instaBreak, "b", 5, 4));
$this->register(new Element(new BID(Ids::ELEMENT_6), "Carbon", $instaBreak, "c", 6, 5));
$this->register(new Element(new BID(Ids::ELEMENT_7), "Nitrogen", $instaBreak, "n", 7, 5));
$this->register(new Element(new BID(Ids::ELEMENT_8), "Oxygen", $instaBreak, "o", 8, 5));
$this->register(new Element(new BID(Ids::ELEMENT_9), "Fluorine", $instaBreak, "f", 9, 6));
$this->register(new Element(new BID(Ids::ELEMENT_10), "Neon", $instaBreak, "ne", 10, 7));
$this->register(new Element(new BID(Ids::ELEMENT_11), "Sodium", $instaBreak, "na", 11, 0));
$this->register(new Element(new BID(Ids::ELEMENT_12), "Magnesium", $instaBreak, "mg", 12, 1));
$this->register(new Element(new BID(Ids::ELEMENT_13), "Aluminum", $instaBreak, "al", 13, 3));
$this->register(new Element(new BID(Ids::ELEMENT_14), "Silicon", $instaBreak, "si", 14, 4));
$this->register(new Element(new BID(Ids::ELEMENT_15), "Phosphorus", $instaBreak, "p", 15, 5));
$this->register(new Element(new BID(Ids::ELEMENT_16), "Sulfur", $instaBreak, "s", 16, 5));
$this->register(new Element(new BID(Ids::ELEMENT_17), "Chlorine", $instaBreak, "cl", 17, 6));
$this->register(new Element(new BID(Ids::ELEMENT_18), "Argon", $instaBreak, "ar", 18, 7));
$this->register(new Element(new BID(Ids::ELEMENT_19), "Potassium", $instaBreak, "k", 19, 0));
$this->register(new Element(new BID(Ids::ELEMENT_20), "Calcium", $instaBreak, "ca", 20, 1));
$this->register(new Element(new BID(Ids::ELEMENT_21), "Scandium", $instaBreak, "sc", 21, 2));
$this->register(new Element(new BID(Ids::ELEMENT_22), "Titanium", $instaBreak, "ti", 22, 2));
$this->register(new Element(new BID(Ids::ELEMENT_23), "Vanadium", $instaBreak, "v", 23, 2));
$this->register(new Element(new BID(Ids::ELEMENT_24), "Chromium", $instaBreak, "cr", 24, 2));
$this->register(new Element(new BID(Ids::ELEMENT_25), "Manganese", $instaBreak, "mn", 25, 2));
$this->register(new Element(new BID(Ids::ELEMENT_26), "Iron", $instaBreak, "fe", 26, 2));
$this->register(new Element(new BID(Ids::ELEMENT_27), "Cobalt", $instaBreak, "co", 27, 2));
$this->register(new Element(new BID(Ids::ELEMENT_28), "Nickel", $instaBreak, "ni", 28, 2));
$this->register(new Element(new BID(Ids::ELEMENT_29), "Copper", $instaBreak, "cu", 29, 2));
$this->register(new Element(new BID(Ids::ELEMENT_30), "Zinc", $instaBreak, "zn", 30, 2));
$this->register(new Element(new BID(Ids::ELEMENT_31), "Gallium", $instaBreak, "ga", 31, 3));
$this->register(new Element(new BID(Ids::ELEMENT_32), "Germanium", $instaBreak, "ge", 32, 4));
$this->register(new Element(new BID(Ids::ELEMENT_33), "Arsenic", $instaBreak, "as", 33, 4));
$this->register(new Element(new BID(Ids::ELEMENT_34), "Selenium", $instaBreak, "se", 34, 5));
$this->register(new Element(new BID(Ids::ELEMENT_35), "Bromine", $instaBreak, "br", 35, 6));
$this->register(new Element(new BID(Ids::ELEMENT_36), "Krypton", $instaBreak, "kr", 36, 7));
$this->register(new Element(new BID(Ids::ELEMENT_37), "Rubidium", $instaBreak, "rb", 37, 0));
$this->register(new Element(new BID(Ids::ELEMENT_38), "Strontium", $instaBreak, "sr", 38, 1));
$this->register(new Element(new BID(Ids::ELEMENT_39), "Yttrium", $instaBreak, "y", 39, 2));
$this->register(new Element(new BID(Ids::ELEMENT_40), "Zirconium", $instaBreak, "zr", 40, 2));
$this->register(new Element(new BID(Ids::ELEMENT_41), "Niobium", $instaBreak, "nb", 41, 2));
$this->register(new Element(new BID(Ids::ELEMENT_42), "Molybdenum", $instaBreak, "mo", 42, 2));
$this->register(new Element(new BID(Ids::ELEMENT_43), "Technetium", $instaBreak, "tc", 43, 2));
$this->register(new Element(new BID(Ids::ELEMENT_44), "Ruthenium", $instaBreak, "ru", 44, 2));
$this->register(new Element(new BID(Ids::ELEMENT_45), "Rhodium", $instaBreak, "rh", 45, 2));
$this->register(new Element(new BID(Ids::ELEMENT_46), "Palladium", $instaBreak, "pd", 46, 2));
$this->register(new Element(new BID(Ids::ELEMENT_47), "Silver", $instaBreak, "ag", 47, 2));
$this->register(new Element(new BID(Ids::ELEMENT_48), "Cadmium", $instaBreak, "cd", 48, 2));
$this->register(new Element(new BID(Ids::ELEMENT_49), "Indium", $instaBreak, "in", 49, 3));
$this->register(new Element(new BID(Ids::ELEMENT_50), "Tin", $instaBreak, "sn", 50, 3));
$this->register(new Element(new BID(Ids::ELEMENT_51), "Antimony", $instaBreak, "sb", 51, 4));
$this->register(new Element(new BID(Ids::ELEMENT_52), "Tellurium", $instaBreak, "te", 52, 4));
$this->register(new Element(new BID(Ids::ELEMENT_53), "Iodine", $instaBreak, "i", 53, 6));
$this->register(new Element(new BID(Ids::ELEMENT_54), "Xenon", $instaBreak, "xe", 54, 7));
$this->register(new Element(new BID(Ids::ELEMENT_55), "Cesium", $instaBreak, "cs", 55, 0));
$this->register(new Element(new BID(Ids::ELEMENT_56), "Barium", $instaBreak, "ba", 56, 1));
$this->register(new Element(new BID(Ids::ELEMENT_57), "Lanthanum", $instaBreak, "la", 57, 8));
$this->register(new Element(new BID(Ids::ELEMENT_58), "Cerium", $instaBreak, "ce", 58, 8));
$this->register(new Element(new BID(Ids::ELEMENT_59), "Praseodymium", $instaBreak, "pr", 59, 8));
$this->register(new Element(new BID(Ids::ELEMENT_60), "Neodymium", $instaBreak, "nd", 60, 8));
$this->register(new Element(new BID(Ids::ELEMENT_61), "Promethium", $instaBreak, "pm", 61, 8));
$this->register(new Element(new BID(Ids::ELEMENT_62), "Samarium", $instaBreak, "sm", 62, 8));
$this->register(new Element(new BID(Ids::ELEMENT_63), "Europium", $instaBreak, "eu", 63, 8));
$this->register(new Element(new BID(Ids::ELEMENT_64), "Gadolinium", $instaBreak, "gd", 64, 8));
$this->register(new Element(new BID(Ids::ELEMENT_65), "Terbium", $instaBreak, "tb", 65, 8));
$this->register(new Element(new BID(Ids::ELEMENT_66), "Dysprosium", $instaBreak, "dy", 66, 8));
$this->register(new Element(new BID(Ids::ELEMENT_67), "Holmium", $instaBreak, "ho", 67, 8));
$this->register(new Element(new BID(Ids::ELEMENT_68), "Erbium", $instaBreak, "er", 68, 8));
$this->register(new Element(new BID(Ids::ELEMENT_69), "Thulium", $instaBreak, "tm", 69, 8));
$this->register(new Element(new BID(Ids::ELEMENT_70), "Ytterbium", $instaBreak, "yb", 70, 8));
$this->register(new Element(new BID(Ids::ELEMENT_71), "Lutetium", $instaBreak, "lu", 71, 8));
$this->register(new Element(new BID(Ids::ELEMENT_72), "Hafnium", $instaBreak, "hf", 72, 2));
$this->register(new Element(new BID(Ids::ELEMENT_73), "Tantalum", $instaBreak, "ta", 73, 2));
$this->register(new Element(new BID(Ids::ELEMENT_74), "Tungsten", $instaBreak, "w", 74, 2));
$this->register(new Element(new BID(Ids::ELEMENT_75), "Rhenium", $instaBreak, "re", 75, 2));
$this->register(new Element(new BID(Ids::ELEMENT_76), "Osmium", $instaBreak, "os", 76, 2));
$this->register(new Element(new BID(Ids::ELEMENT_77), "Iridium", $instaBreak, "ir", 77, 2));
$this->register(new Element(new BID(Ids::ELEMENT_78), "Platinum", $instaBreak, "pt", 78, 2));
$this->register(new Element(new BID(Ids::ELEMENT_79), "Gold", $instaBreak, "au", 79, 2));
$this->register(new Element(new BID(Ids::ELEMENT_80), "Mercury", $instaBreak, "hg", 80, 2));
$this->register(new Element(new BID(Ids::ELEMENT_81), "Thallium", $instaBreak, "tl", 81, 3));
$this->register(new Element(new BID(Ids::ELEMENT_82), "Lead", $instaBreak, "pb", 82, 3));
$this->register(new Element(new BID(Ids::ELEMENT_83), "Bismuth", $instaBreak, "bi", 83, 3));
$this->register(new Element(new BID(Ids::ELEMENT_84), "Polonium", $instaBreak, "po", 84, 4));
$this->register(new Element(new BID(Ids::ELEMENT_85), "Astatine", $instaBreak, "at", 85, 6));
$this->register(new Element(new BID(Ids::ELEMENT_86), "Radon", $instaBreak, "rn", 86, 7));
$this->register(new Element(new BID(Ids::ELEMENT_87), "Francium", $instaBreak, "fr", 87, 0));
$this->register(new Element(new BID(Ids::ELEMENT_88), "Radium", $instaBreak, "ra", 88, 1));
$this->register(new Element(new BID(Ids::ELEMENT_89), "Actinium", $instaBreak, "ac", 89, 9));
$this->register(new Element(new BID(Ids::ELEMENT_90), "Thorium", $instaBreak, "th", 90, 9));
$this->register(new Element(new BID(Ids::ELEMENT_91), "Protactinium", $instaBreak, "pa", 91, 9));
$this->register(new Element(new BID(Ids::ELEMENT_92), "Uranium", $instaBreak, "u", 92, 9));
$this->register(new Element(new BID(Ids::ELEMENT_93), "Neptunium", $instaBreak, "np", 93, 9));
$this->register(new Element(new BID(Ids::ELEMENT_94), "Plutonium", $instaBreak, "pu", 94, 9));
$this->register(new Element(new BID(Ids::ELEMENT_95), "Americium", $instaBreak, "am", 95, 9));
$this->register(new Element(new BID(Ids::ELEMENT_96), "Curium", $instaBreak, "cm", 96, 9));
$this->register(new Element(new BID(Ids::ELEMENT_97), "Berkelium", $instaBreak, "bk", 97, 9));
$this->register(new Element(new BID(Ids::ELEMENT_98), "Californium", $instaBreak, "cf", 98, 9));
$this->register(new Element(new BID(Ids::ELEMENT_99), "Einsteinium", $instaBreak, "es", 99, 9));
$this->register(new Element(new BID(Ids::ELEMENT_100), "Fermium", $instaBreak, "fm", 100, 9));
$this->register(new Element(new BID(Ids::ELEMENT_101), "Mendelevium", $instaBreak, "md", 101, 9));
$this->register(new Element(new BID(Ids::ELEMENT_102), "Nobelium", $instaBreak, "no", 102, 9));
$this->register(new Element(new BID(Ids::ELEMENT_103), "Lawrencium", $instaBreak, "lr", 103, 9));
$this->register(new Element(new BID(Ids::ELEMENT_104), "Rutherfordium", $instaBreak, "rf", 104, 2));
$this->register(new Element(new BID(Ids::ELEMENT_105), "Dubnium", $instaBreak, "db", 105, 2));
$this->register(new Element(new BID(Ids::ELEMENT_106), "Seaborgium", $instaBreak, "sg", 106, 2));
$this->register(new Element(new BID(Ids::ELEMENT_107), "Bohrium", $instaBreak, "bh", 107, 2));
$this->register(new Element(new BID(Ids::ELEMENT_108), "Hassium", $instaBreak, "hs", 108, 2));
$this->register(new Element(new BID(Ids::ELEMENT_109), "Meitnerium", $instaBreak, "mt", 109, 2));
$this->register(new Element(new BID(Ids::ELEMENT_110), "Darmstadtium", $instaBreak, "ds", 110, 2));
$this->register(new Element(new BID(Ids::ELEMENT_111), "Roentgenium", $instaBreak, "rg", 111, 2));
$this->register(new Element(new BID(Ids::ELEMENT_112), "Copernicium", $instaBreak, "cn", 112, 2));
$this->register(new Element(new BID(Ids::ELEMENT_113), "Nihonium", $instaBreak, "nh", 113, 3));
$this->register(new Element(new BID(Ids::ELEMENT_114), "Flerovium", $instaBreak, "fl", 114, 3));
$this->register(new Element(new BID(Ids::ELEMENT_115), "Moscovium", $instaBreak, "mc", 115, 3));
$this->register(new Element(new BID(Ids::ELEMENT_116), "Livermorium", $instaBreak, "lv", 116, 3));
$this->register(new Element(new BID(Ids::ELEMENT_117), "Tennessine", $instaBreak, "ts", 117, 6));
$this->register(new Element(new BID(Ids::ELEMENT_118), "Oganesson", $instaBreak, "og", 118, 7));
$this->register(new Element(new BID(Ids::ELEMENT_1, 0), "Hydrogen", $instaBreak, "h", 1, 5));
$this->register(new Element(new BID(Ids::ELEMENT_2, 0), "Helium", $instaBreak, "he", 2, 7));
$this->register(new Element(new BID(Ids::ELEMENT_3, 0), "Lithium", $instaBreak, "li", 3, 0));
$this->register(new Element(new BID(Ids::ELEMENT_4, 0), "Beryllium", $instaBreak, "be", 4, 1));
$this->register(new Element(new BID(Ids::ELEMENT_5, 0), "Boron", $instaBreak, "b", 5, 4));
$this->register(new Element(new BID(Ids::ELEMENT_6, 0), "Carbon", $instaBreak, "c", 6, 5));
$this->register(new Element(new BID(Ids::ELEMENT_7, 0), "Nitrogen", $instaBreak, "n", 7, 5));
$this->register(new Element(new BID(Ids::ELEMENT_8, 0), "Oxygen", $instaBreak, "o", 8, 5));
$this->register(new Element(new BID(Ids::ELEMENT_9, 0), "Fluorine", $instaBreak, "f", 9, 6));
$this->register(new Element(new BID(Ids::ELEMENT_10, 0), "Neon", $instaBreak, "ne", 10, 7));
$this->register(new Element(new BID(Ids::ELEMENT_11, 0), "Sodium", $instaBreak, "na", 11, 0));
$this->register(new Element(new BID(Ids::ELEMENT_12, 0), "Magnesium", $instaBreak, "mg", 12, 1));
$this->register(new Element(new BID(Ids::ELEMENT_13, 0), "Aluminum", $instaBreak, "al", 13, 3));
$this->register(new Element(new BID(Ids::ELEMENT_14, 0), "Silicon", $instaBreak, "si", 14, 4));
$this->register(new Element(new BID(Ids::ELEMENT_15, 0), "Phosphorus", $instaBreak, "p", 15, 5));
$this->register(new Element(new BID(Ids::ELEMENT_16, 0), "Sulfur", $instaBreak, "s", 16, 5));
$this->register(new Element(new BID(Ids::ELEMENT_17, 0), "Chlorine", $instaBreak, "cl", 17, 6));
$this->register(new Element(new BID(Ids::ELEMENT_18, 0), "Argon", $instaBreak, "ar", 18, 7));
$this->register(new Element(new BID(Ids::ELEMENT_19, 0), "Potassium", $instaBreak, "k", 19, 0));
$this->register(new Element(new BID(Ids::ELEMENT_20, 0), "Calcium", $instaBreak, "ca", 20, 1));
$this->register(new Element(new BID(Ids::ELEMENT_21, 0), "Scandium", $instaBreak, "sc", 21, 2));
$this->register(new Element(new BID(Ids::ELEMENT_22, 0), "Titanium", $instaBreak, "ti", 22, 2));
$this->register(new Element(new BID(Ids::ELEMENT_23, 0), "Vanadium", $instaBreak, "v", 23, 2));
$this->register(new Element(new BID(Ids::ELEMENT_24, 0), "Chromium", $instaBreak, "cr", 24, 2));
$this->register(new Element(new BID(Ids::ELEMENT_25, 0), "Manganese", $instaBreak, "mn", 25, 2));
$this->register(new Element(new BID(Ids::ELEMENT_26, 0), "Iron", $instaBreak, "fe", 26, 2));
$this->register(new Element(new BID(Ids::ELEMENT_27, 0), "Cobalt", $instaBreak, "co", 27, 2));
$this->register(new Element(new BID(Ids::ELEMENT_28, 0), "Nickel", $instaBreak, "ni", 28, 2));
$this->register(new Element(new BID(Ids::ELEMENT_29, 0), "Copper", $instaBreak, "cu", 29, 2));
$this->register(new Element(new BID(Ids::ELEMENT_30, 0), "Zinc", $instaBreak, "zn", 30, 2));
$this->register(new Element(new BID(Ids::ELEMENT_31, 0), "Gallium", $instaBreak, "ga", 31, 3));
$this->register(new Element(new BID(Ids::ELEMENT_32, 0), "Germanium", $instaBreak, "ge", 32, 4));
$this->register(new Element(new BID(Ids::ELEMENT_33, 0), "Arsenic", $instaBreak, "as", 33, 4));
$this->register(new Element(new BID(Ids::ELEMENT_34, 0), "Selenium", $instaBreak, "se", 34, 5));
$this->register(new Element(new BID(Ids::ELEMENT_35, 0), "Bromine", $instaBreak, "br", 35, 6));
$this->register(new Element(new BID(Ids::ELEMENT_36, 0), "Krypton", $instaBreak, "kr", 36, 7));
$this->register(new Element(new BID(Ids::ELEMENT_37, 0), "Rubidium", $instaBreak, "rb", 37, 0));
$this->register(new Element(new BID(Ids::ELEMENT_38, 0), "Strontium", $instaBreak, "sr", 38, 1));
$this->register(new Element(new BID(Ids::ELEMENT_39, 0), "Yttrium", $instaBreak, "y", 39, 2));
$this->register(new Element(new BID(Ids::ELEMENT_40, 0), "Zirconium", $instaBreak, "zr", 40, 2));
$this->register(new Element(new BID(Ids::ELEMENT_41, 0), "Niobium", $instaBreak, "nb", 41, 2));
$this->register(new Element(new BID(Ids::ELEMENT_42, 0), "Molybdenum", $instaBreak, "mo", 42, 2));
$this->register(new Element(new BID(Ids::ELEMENT_43, 0), "Technetium", $instaBreak, "tc", 43, 2));
$this->register(new Element(new BID(Ids::ELEMENT_44, 0), "Ruthenium", $instaBreak, "ru", 44, 2));
$this->register(new Element(new BID(Ids::ELEMENT_45, 0), "Rhodium", $instaBreak, "rh", 45, 2));
$this->register(new Element(new BID(Ids::ELEMENT_46, 0), "Palladium", $instaBreak, "pd", 46, 2));
$this->register(new Element(new BID(Ids::ELEMENT_47, 0), "Silver", $instaBreak, "ag", 47, 2));
$this->register(new Element(new BID(Ids::ELEMENT_48, 0), "Cadmium", $instaBreak, "cd", 48, 2));
$this->register(new Element(new BID(Ids::ELEMENT_49, 0), "Indium", $instaBreak, "in", 49, 3));
$this->register(new Element(new BID(Ids::ELEMENT_50, 0), "Tin", $instaBreak, "sn", 50, 3));
$this->register(new Element(new BID(Ids::ELEMENT_51, 0), "Antimony", $instaBreak, "sb", 51, 4));
$this->register(new Element(new BID(Ids::ELEMENT_52, 0), "Tellurium", $instaBreak, "te", 52, 4));
$this->register(new Element(new BID(Ids::ELEMENT_53, 0), "Iodine", $instaBreak, "i", 53, 6));
$this->register(new Element(new BID(Ids::ELEMENT_54, 0), "Xenon", $instaBreak, "xe", 54, 7));
$this->register(new Element(new BID(Ids::ELEMENT_55, 0), "Cesium", $instaBreak, "cs", 55, 0));
$this->register(new Element(new BID(Ids::ELEMENT_56, 0), "Barium", $instaBreak, "ba", 56, 1));
$this->register(new Element(new BID(Ids::ELEMENT_57, 0), "Lanthanum", $instaBreak, "la", 57, 8));
$this->register(new Element(new BID(Ids::ELEMENT_58, 0), "Cerium", $instaBreak, "ce", 58, 8));
$this->register(new Element(new BID(Ids::ELEMENT_59, 0), "Praseodymium", $instaBreak, "pr", 59, 8));
$this->register(new Element(new BID(Ids::ELEMENT_60, 0), "Neodymium", $instaBreak, "nd", 60, 8));
$this->register(new Element(new BID(Ids::ELEMENT_61, 0), "Promethium", $instaBreak, "pm", 61, 8));
$this->register(new Element(new BID(Ids::ELEMENT_62, 0), "Samarium", $instaBreak, "sm", 62, 8));
$this->register(new Element(new BID(Ids::ELEMENT_63, 0), "Europium", $instaBreak, "eu", 63, 8));
$this->register(new Element(new BID(Ids::ELEMENT_64, 0), "Gadolinium", $instaBreak, "gd", 64, 8));
$this->register(new Element(new BID(Ids::ELEMENT_65, 0), "Terbium", $instaBreak, "tb", 65, 8));
$this->register(new Element(new BID(Ids::ELEMENT_66, 0), "Dysprosium", $instaBreak, "dy", 66, 8));
$this->register(new Element(new BID(Ids::ELEMENT_67, 0), "Holmium", $instaBreak, "ho", 67, 8));
$this->register(new Element(new BID(Ids::ELEMENT_68, 0), "Erbium", $instaBreak, "er", 68, 8));
$this->register(new Element(new BID(Ids::ELEMENT_69, 0), "Thulium", $instaBreak, "tm", 69, 8));
$this->register(new Element(new BID(Ids::ELEMENT_70, 0), "Ytterbium", $instaBreak, "yb", 70, 8));
$this->register(new Element(new BID(Ids::ELEMENT_71, 0), "Lutetium", $instaBreak, "lu", 71, 8));
$this->register(new Element(new BID(Ids::ELEMENT_72, 0), "Hafnium", $instaBreak, "hf", 72, 2));
$this->register(new Element(new BID(Ids::ELEMENT_73, 0), "Tantalum", $instaBreak, "ta", 73, 2));
$this->register(new Element(new BID(Ids::ELEMENT_74, 0), "Tungsten", $instaBreak, "w", 74, 2));
$this->register(new Element(new BID(Ids::ELEMENT_75, 0), "Rhenium", $instaBreak, "re", 75, 2));
$this->register(new Element(new BID(Ids::ELEMENT_76, 0), "Osmium", $instaBreak, "os", 76, 2));
$this->register(new Element(new BID(Ids::ELEMENT_77, 0), "Iridium", $instaBreak, "ir", 77, 2));
$this->register(new Element(new BID(Ids::ELEMENT_78, 0), "Platinum", $instaBreak, "pt", 78, 2));
$this->register(new Element(new BID(Ids::ELEMENT_79, 0), "Gold", $instaBreak, "au", 79, 2));
$this->register(new Element(new BID(Ids::ELEMENT_80, 0), "Mercury", $instaBreak, "hg", 80, 2));
$this->register(new Element(new BID(Ids::ELEMENT_81, 0), "Thallium", $instaBreak, "tl", 81, 3));
$this->register(new Element(new BID(Ids::ELEMENT_82, 0), "Lead", $instaBreak, "pb", 82, 3));
$this->register(new Element(new BID(Ids::ELEMENT_83, 0), "Bismuth", $instaBreak, "bi", 83, 3));
$this->register(new Element(new BID(Ids::ELEMENT_84, 0), "Polonium", $instaBreak, "po", 84, 4));
$this->register(new Element(new BID(Ids::ELEMENT_85, 0), "Astatine", $instaBreak, "at", 85, 6));
$this->register(new Element(new BID(Ids::ELEMENT_86, 0), "Radon", $instaBreak, "rn", 86, 7));
$this->register(new Element(new BID(Ids::ELEMENT_87, 0), "Francium", $instaBreak, "fr", 87, 0));
$this->register(new Element(new BID(Ids::ELEMENT_88, 0), "Radium", $instaBreak, "ra", 88, 1));
$this->register(new Element(new BID(Ids::ELEMENT_89, 0), "Actinium", $instaBreak, "ac", 89, 9));
$this->register(new Element(new BID(Ids::ELEMENT_90, 0), "Thorium", $instaBreak, "th", 90, 9));
$this->register(new Element(new BID(Ids::ELEMENT_91, 0), "Protactinium", $instaBreak, "pa", 91, 9));
$this->register(new Element(new BID(Ids::ELEMENT_92, 0), "Uranium", $instaBreak, "u", 92, 9));
$this->register(new Element(new BID(Ids::ELEMENT_93, 0), "Neptunium", $instaBreak, "np", 93, 9));
$this->register(new Element(new BID(Ids::ELEMENT_94, 0), "Plutonium", $instaBreak, "pu", 94, 9));
$this->register(new Element(new BID(Ids::ELEMENT_95, 0), "Americium", $instaBreak, "am", 95, 9));
$this->register(new Element(new BID(Ids::ELEMENT_96, 0), "Curium", $instaBreak, "cm", 96, 9));
$this->register(new Element(new BID(Ids::ELEMENT_97, 0), "Berkelium", $instaBreak, "bk", 97, 9));
$this->register(new Element(new BID(Ids::ELEMENT_98, 0), "Californium", $instaBreak, "cf", 98, 9));
$this->register(new Element(new BID(Ids::ELEMENT_99, 0), "Einsteinium", $instaBreak, "es", 99, 9));
$this->register(new Element(new BID(Ids::ELEMENT_100, 0), "Fermium", $instaBreak, "fm", 100, 9));
$this->register(new Element(new BID(Ids::ELEMENT_101, 0), "Mendelevium", $instaBreak, "md", 101, 9));
$this->register(new Element(new BID(Ids::ELEMENT_102, 0), "Nobelium", $instaBreak, "no", 102, 9));
$this->register(new Element(new BID(Ids::ELEMENT_103, 0), "Lawrencium", $instaBreak, "lr", 103, 9));
$this->register(new Element(new BID(Ids::ELEMENT_104, 0), "Rutherfordium", $instaBreak, "rf", 104, 2));
$this->register(new Element(new BID(Ids::ELEMENT_105, 0), "Dubnium", $instaBreak, "db", 105, 2));
$this->register(new Element(new BID(Ids::ELEMENT_106, 0), "Seaborgium", $instaBreak, "sg", 106, 2));
$this->register(new Element(new BID(Ids::ELEMENT_107, 0), "Bohrium", $instaBreak, "bh", 107, 2));
$this->register(new Element(new BID(Ids::ELEMENT_108, 0), "Hassium", $instaBreak, "hs", 108, 2));
$this->register(new Element(new BID(Ids::ELEMENT_109, 0), "Meitnerium", $instaBreak, "mt", 109, 2));
$this->register(new Element(new BID(Ids::ELEMENT_110, 0), "Darmstadtium", $instaBreak, "ds", 110, 2));
$this->register(new Element(new BID(Ids::ELEMENT_111, 0), "Roentgenium", $instaBreak, "rg", 111, 2));
$this->register(new Element(new BID(Ids::ELEMENT_112, 0), "Copernicium", $instaBreak, "cn", 112, 2));
$this->register(new Element(new BID(Ids::ELEMENT_113, 0), "Nihonium", $instaBreak, "nh", 113, 3));
$this->register(new Element(new BID(Ids::ELEMENT_114, 0), "Flerovium", $instaBreak, "fl", 114, 3));
$this->register(new Element(new BID(Ids::ELEMENT_115, 0), "Moscovium", $instaBreak, "mc", 115, 3));
$this->register(new Element(new BID(Ids::ELEMENT_116, 0), "Livermorium", $instaBreak, "lv", 116, 3));
$this->register(new Element(new BID(Ids::ELEMENT_117, 0), "Tennessine", $instaBreak, "ts", 117, 6));
$this->register(new Element(new BID(Ids::ELEMENT_118, 0), "Oganesson", $instaBreak, "og", 118, 7));
}
/**

View File

@ -42,7 +42,7 @@ class BlockIdentifier{
/**
* @phpstan-param class-string<Tile>|null $tileClass
*/
public function __construct(int $blockId, int $variant = 0, ?int $itemId = null, ?string $tileClass = null){
public function __construct(int $blockId, int $variant, ?int $itemId = null, ?string $tileClass = null){
$this->blockId = $blockId;
$this->variant = $variant;
$this->itemId = $itemId;

View File

@ -28,7 +28,7 @@ class BlockIdentifierFlattened extends BlockIdentifier{
/** @var int */
private $secondId;
public function __construct(int $blockId, int $secondId, int $variant = 0, ?int $itemId = null, ?string $tileClass = null){
public function __construct(int $blockId, int $secondId, int $variant, ?int $itemId = null, ?string $tileClass = null){
parent::__construct($blockId, $variant, $itemId, $tileClass);
$this->secondId = $secondId;
}

View File

@ -72,17 +72,17 @@ final class BlockLegacyIdHelper{
public static function getWoodenTrapdoorIdentifier(TreeType $treeType) : BlockIdentifier{
switch($treeType->id()){
case TreeType::OAK()->id():
return new BlockIdentifier(Ids::WOODEN_TRAPDOOR);
return new BlockIdentifier(Ids::WOODEN_TRAPDOOR, 0);
case TreeType::SPRUCE()->id():
return new BlockIdentifier(Ids::SPRUCE_TRAPDOOR);
return new BlockIdentifier(Ids::SPRUCE_TRAPDOOR, 0);
case TreeType::BIRCH()->id():
return new BlockIdentifier(Ids::BIRCH_TRAPDOOR);
return new BlockIdentifier(Ids::BIRCH_TRAPDOOR, 0);
case TreeType::JUNGLE()->id():
return new BlockIdentifier(Ids::JUNGLE_TRAPDOOR);
return new BlockIdentifier(Ids::JUNGLE_TRAPDOOR, 0);
case TreeType::ACACIA()->id():
return new BlockIdentifier(Ids::ACACIA_TRAPDOOR);
return new BlockIdentifier(Ids::ACACIA_TRAPDOOR, 0);
case TreeType::DARK_OAK()->id():
return new BlockIdentifier(Ids::DARK_OAK_TRAPDOOR);
return new BlockIdentifier(Ids::DARK_OAK_TRAPDOOR, 0);
}
throw new AssumptionFailedError("Switch should cover all wood types");
}
@ -90,17 +90,17 @@ final class BlockLegacyIdHelper{
public static function getWoodenButtonIdentifier(TreeType $treeType) : BlockIdentifier{
switch($treeType->id()){
case TreeType::OAK()->id():
return new BlockIdentifier(Ids::WOODEN_BUTTON);
return new BlockIdentifier(Ids::WOODEN_BUTTON, 0);
case TreeType::SPRUCE()->id():
return new BlockIdentifier(Ids::SPRUCE_BUTTON);
return new BlockIdentifier(Ids::SPRUCE_BUTTON, 0);
case TreeType::BIRCH()->id():
return new BlockIdentifier(Ids::BIRCH_BUTTON);
return new BlockIdentifier(Ids::BIRCH_BUTTON, 0);
case TreeType::JUNGLE()->id():
return new BlockIdentifier(Ids::JUNGLE_BUTTON);
return new BlockIdentifier(Ids::JUNGLE_BUTTON, 0);
case TreeType::ACACIA()->id():
return new BlockIdentifier(Ids::ACACIA_BUTTON);
return new BlockIdentifier(Ids::ACACIA_BUTTON, 0);
case TreeType::DARK_OAK()->id():
return new BlockIdentifier(Ids::DARK_OAK_BUTTON);
return new BlockIdentifier(Ids::DARK_OAK_BUTTON, 0);
}
throw new AssumptionFailedError("Switch should cover all wood types");
}
@ -108,17 +108,17 @@ final class BlockLegacyIdHelper{
public static function getWoodenPressurePlateIdentifier(TreeType $treeType) : BlockIdentifier{
switch($treeType->id()){
case TreeType::OAK()->id():
return new BlockIdentifier(Ids::WOODEN_PRESSURE_PLATE);
return new BlockIdentifier(Ids::WOODEN_PRESSURE_PLATE, 0);
case TreeType::SPRUCE()->id():
return new BlockIdentifier(Ids::SPRUCE_PRESSURE_PLATE);
return new BlockIdentifier(Ids::SPRUCE_PRESSURE_PLATE, 0);
case TreeType::BIRCH()->id():
return new BlockIdentifier(Ids::BIRCH_PRESSURE_PLATE);
return new BlockIdentifier(Ids::BIRCH_PRESSURE_PLATE, 0);
case TreeType::JUNGLE()->id():
return new BlockIdentifier(Ids::JUNGLE_PRESSURE_PLATE);
return new BlockIdentifier(Ids::JUNGLE_PRESSURE_PLATE, 0);
case TreeType::ACACIA()->id():
return new BlockIdentifier(Ids::ACACIA_PRESSURE_PLATE);
return new BlockIdentifier(Ids::ACACIA_PRESSURE_PLATE, 0);
case TreeType::DARK_OAK()->id():
return new BlockIdentifier(Ids::DARK_OAK_PRESSURE_PLATE);
return new BlockIdentifier(Ids::DARK_OAK_PRESSURE_PLATE, 0);
}
throw new AssumptionFailedError("Switch should cover all wood types");
}
@ -144,17 +144,17 @@ final class BlockLegacyIdHelper{
public static function getWoodenFenceIdentifier(TreeType $treeType) : BlockIdentifier{
switch($treeType->id()){
case TreeType::OAK()->id():
return new BlockIdentifier(Ids::OAK_FENCE_GATE);
return new BlockIdentifier(Ids::OAK_FENCE_GATE, 0);
case TreeType::SPRUCE()->id():
return new BlockIdentifier(Ids::SPRUCE_FENCE_GATE);
return new BlockIdentifier(Ids::SPRUCE_FENCE_GATE, 0);
case TreeType::BIRCH()->id():
return new BlockIdentifier(Ids::BIRCH_FENCE_GATE);
return new BlockIdentifier(Ids::BIRCH_FENCE_GATE, 0);
case TreeType::JUNGLE()->id():
return new BlockIdentifier(Ids::JUNGLE_FENCE_GATE);
return new BlockIdentifier(Ids::JUNGLE_FENCE_GATE, 0);
case TreeType::ACACIA()->id():
return new BlockIdentifier(Ids::ACACIA_FENCE_GATE);
return new BlockIdentifier(Ids::ACACIA_FENCE_GATE, 0);
case TreeType::DARK_OAK()->id():
return new BlockIdentifier(Ids::DARK_OAK_FENCE_GATE);
return new BlockIdentifier(Ids::DARK_OAK_FENCE_GATE, 0);
}
throw new AssumptionFailedError("Switch should cover all wood types");
}
@ -162,17 +162,17 @@ final class BlockLegacyIdHelper{
public static function getWoodenStairsIdentifier(TreeType $treeType) : BlockIdentifier{
switch($treeType->id()){
case TreeType::OAK()->id():
return new BlockIdentifier(Ids::OAK_STAIRS);
return new BlockIdentifier(Ids::OAK_STAIRS, 0);
case TreeType::SPRUCE()->id():
return new BlockIdentifier(Ids::SPRUCE_STAIRS);
return new BlockIdentifier(Ids::SPRUCE_STAIRS, 0);
case TreeType::BIRCH()->id():
return new BlockIdentifier(Ids::BIRCH_STAIRS);
return new BlockIdentifier(Ids::BIRCH_STAIRS, 0);
case TreeType::JUNGLE()->id():
return new BlockIdentifier(Ids::JUNGLE_STAIRS);
return new BlockIdentifier(Ids::JUNGLE_STAIRS, 0);
case TreeType::ACACIA()->id():
return new BlockIdentifier(Ids::ACACIA_STAIRS);
return new BlockIdentifier(Ids::ACACIA_STAIRS, 0);
case TreeType::DARK_OAK()->id():
return new BlockIdentifier(Ids::DARK_OAK_STAIRS);
return new BlockIdentifier(Ids::DARK_OAK_STAIRS, 0);
}
throw new AssumptionFailedError("Switch should cover all wood types");
}
@ -180,37 +180,37 @@ final class BlockLegacyIdHelper{
public static function getGlazedTerracottaIdentifier(DyeColor $color) : BlockIdentifier{
switch($color->id()){
case DyeColor::WHITE()->id():
return new BlockIdentifier(Ids::WHITE_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::WHITE_GLAZED_TERRACOTTA, 0);
case DyeColor::ORANGE()->id():
return new BlockIdentifier(Ids::ORANGE_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::ORANGE_GLAZED_TERRACOTTA, 0);
case DyeColor::MAGENTA()->id():
return new BlockIdentifier(Ids::MAGENTA_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::MAGENTA_GLAZED_TERRACOTTA, 0);
case DyeColor::LIGHT_BLUE()->id():
return new BlockIdentifier(Ids::LIGHT_BLUE_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::LIGHT_BLUE_GLAZED_TERRACOTTA, 0);
case DyeColor::YELLOW()->id():
return new BlockIdentifier(Ids::YELLOW_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::YELLOW_GLAZED_TERRACOTTA, 0);
case DyeColor::LIME()->id():
return new BlockIdentifier(Ids::LIME_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::LIME_GLAZED_TERRACOTTA, 0);
case DyeColor::PINK()->id():
return new BlockIdentifier(Ids::PINK_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::PINK_GLAZED_TERRACOTTA, 0);
case DyeColor::GRAY()->id():
return new BlockIdentifier(Ids::GRAY_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::GRAY_GLAZED_TERRACOTTA, 0);
case DyeColor::LIGHT_GRAY()->id():
return new BlockIdentifier(Ids::SILVER_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::SILVER_GLAZED_TERRACOTTA, 0);
case DyeColor::CYAN()->id():
return new BlockIdentifier(Ids::CYAN_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::CYAN_GLAZED_TERRACOTTA, 0);
case DyeColor::PURPLE()->id():
return new BlockIdentifier(Ids::PURPLE_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::PURPLE_GLAZED_TERRACOTTA, 0);
case DyeColor::BLUE()->id():
return new BlockIdentifier(Ids::BLUE_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::BLUE_GLAZED_TERRACOTTA, 0);
case DyeColor::BROWN()->id():
return new BlockIdentifier(Ids::BROWN_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::BROWN_GLAZED_TERRACOTTA, 0);
case DyeColor::GREEN()->id():
return new BlockIdentifier(Ids::GREEN_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::GREEN_GLAZED_TERRACOTTA, 0);
case DyeColor::RED()->id():
return new BlockIdentifier(Ids::RED_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::RED_GLAZED_TERRACOTTA, 0);
case DyeColor::BLACK()->id():
return new BlockIdentifier(Ids::BLACK_GLAZED_TERRACOTTA);
return new BlockIdentifier(Ids::BLACK_GLAZED_TERRACOTTA, 0);
}
throw new AssumptionFailedError("Switch should cover all colours");
}

View File

@ -40,7 +40,7 @@ class BlockTest extends TestCase{
* Test registering a block which would overwrite another block, without forcing it
*/
public function testAccidentalOverrideBlock() : void{
$block = new MyCustomBlock(new BlockIdentifier(BlockLegacyIds::COBBLESTONE), "Cobblestone", BlockBreakInfo::instant());
$block = new MyCustomBlock(new BlockIdentifier(BlockLegacyIds::COBBLESTONE, 0), "Cobblestone", BlockBreakInfo::instant());
$this->expectException(\InvalidArgumentException::class);
$this->blockFactory->register($block);
}
@ -49,7 +49,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(BlockLegacyIds::COBBLESTONE), "Cobblestone", BlockBreakInfo::instant());
$block = new MyCustomBlock(new BlockIdentifier(BlockLegacyIds::COBBLESTONE, 0), "Cobblestone", BlockBreakInfo::instant());
$this->blockFactory->register($block, true);
self::assertInstanceOf(MyCustomBlock::class, $this->blockFactory->get($block->getId(), 0));
}
@ -60,7 +60,7 @@ class BlockTest extends TestCase{
public function testRegisterNewBlock() : void{
for($i = 0; $i < 256; ++$i){
if(!$this->blockFactory->isRegistered($i)){
$b = new StrangeNewBlock(new BlockIdentifier($i), "Strange New Block", BlockBreakInfo::instant());
$b = new StrangeNewBlock(new BlockIdentifier($i, 0), "Strange New Block", BlockBreakInfo::instant());
$this->blockFactory->register($b);
self::assertInstanceOf(StrangeNewBlock::class, $this->blockFactory->get($b->getId(), 0));
return;
@ -75,7 +75,7 @@ class BlockTest extends TestCase{
*/
public function testRegisterIdTooLarge() : void{
self::expectException(\RuntimeException::class);
$this->blockFactory->register(new OutOfBoundsBlock(new BlockIdentifier(25555), "Out Of Bounds Block", BlockBreakInfo::instant()));
$this->blockFactory->register(new OutOfBoundsBlock(new BlockIdentifier(25555, 0), "Out Of Bounds Block", BlockBreakInfo::instant()));
}
/**
@ -83,7 +83,7 @@ class BlockTest extends TestCase{
*/
public function testRegisterIdTooSmall() : void{
self::expectException(\RuntimeException::class);
$this->blockFactory->register(new OutOfBoundsBlock(new BlockIdentifier(-1), "Out Of Bounds Block", BlockBreakInfo::instant()));
$this->blockFactory->register(new OutOfBoundsBlock(new BlockIdentifier(-1, 0), "Out Of Bounds Block", BlockBreakInfo::instant()));
}
/**