From 88c4b836f09278a2d81a14356ff3c29ce465de1d Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 20 Feb 2019 10:24:44 +0000 Subject: [PATCH] Make factory register methods less verbose --- src/pocketmine/block/BlockFactory.php | 506 +++++++++++++------------- src/pocketmine/item/ItemFactory.php | 366 +++++++++---------- 2 files changed, 436 insertions(+), 436 deletions(-) diff --git a/src/pocketmine/block/BlockFactory.php b/src/pocketmine/block/BlockFactory.php index ac892a91d2..77761361e4 100644 --- a/src/pocketmine/block/BlockFactory.php +++ b/src/pocketmine/block/BlockFactory.php @@ -76,256 +76,256 @@ class BlockFactory{ self::$stateMasks = new \SplFixedArray(8192); - self::registerBlock(new ActivatorRail()); - self::registerBlock(new Air()); - self::registerBlock(new Anvil(Block::ANVIL, Anvil::TYPE_NORMAL, "Anvil")); - self::registerBlock(new Anvil(Block::ANVIL, Anvil::TYPE_SLIGHTLY_DAMAGED, "Slightly Damaged Anvil")); - self::registerBlock(new Anvil(Block::ANVIL, Anvil::TYPE_VERY_DAMAGED, "Very Damaged Anvil")); - self::registerBlock(new Bed()); - self::registerBlock(new Bedrock()); - self::registerBlock(new Beetroot()); - self::registerBlock(new BoneBlock()); - self::registerBlock(new Bookshelf()); - self::registerBlock(new BrewingStand()); - self::registerBlock(new BrickStairs()); - self::registerBlock(new Bricks()); - self::registerBlock(new BrownMushroom()); - self::registerBlock(new BrownMushroomBlock()); - self::registerBlock(new Cactus()); - self::registerBlock(new Cake()); - self::registerBlock(new Carrot()); - self::registerBlock(new Chest()); - self::registerBlock(new Clay()); - self::registerBlock(new Coal()); - self::registerBlock(new CoalOre()); - self::registerBlock(new CoarseDirt(Block::DIRT, Dirt::COARSE, "Coarse Dirt")); - self::registerBlock(new Cobblestone()); - self::registerBlock(new CobblestoneStairs()); - self::registerBlock(new Cobweb()); - self::registerBlock(new CocoaBlock()); - self::registerBlock(new CraftingTable()); - self::registerBlock(new Dandelion()); - self::registerBlock(new DaylightSensor()); - self::registerBlock((new DaylightSensor())->setInverted()); //flattening hack - self::registerBlock(new DeadBush()); - self::registerBlock(new DetectorRail()); - self::registerBlock(new Diamond()); - self::registerBlock(new DiamondOre()); - self::registerBlock(new Dirt(Block::DIRT, Dirt::NORMAL, "Dirt")); - self::registerBlock(new DoublePlant(Block::DOUBLE_PLANT, 0, "Sunflower")); - self::registerBlock(new DoublePlant(Block::DOUBLE_PLANT, 1, "Lilac")); - self::registerBlock(new DoublePlant(Block::DOUBLE_PLANT, 4, "Rose Bush")); - self::registerBlock(new DoublePlant(Block::DOUBLE_PLANT, 5, "Peony")); - self::registerBlock(new DoubleTallGrass(Block::DOUBLE_PLANT, 2, "Double Tallgrass")); - self::registerBlock(new DoubleTallGrass(Block::DOUBLE_PLANT, 3, "Large Fern")); - self::registerBlock(new Emerald()); - self::registerBlock(new EmeraldOre()); - self::registerBlock(new EnchantingTable()); - self::registerBlock(new EndPortalFrame()); - self::registerBlock(new EndRod()); - self::registerBlock(new EndStone()); - self::registerBlock(new EndStoneBricks()); - self::registerBlock(new EnderChest()); - self::registerBlock(new Farmland()); - self::registerBlock(new FenceGate(Block::ACACIA_FENCE_GATE, 0, "Acacia Fence Gate")); - self::registerBlock(new FenceGate(Block::BIRCH_FENCE_GATE, 0, "Birch Fence Gate")); - self::registerBlock(new FenceGate(Block::DARK_OAK_FENCE_GATE, 0, "Dark Oak Fence Gate")); - self::registerBlock(new FenceGate(Block::JUNGLE_FENCE_GATE, 0, "Jungle Fence Gate")); - self::registerBlock(new FenceGate(Block::OAK_FENCE_GATE, 0, "Oak Fence Gate")); - self::registerBlock(new FenceGate(Block::SPRUCE_FENCE_GATE, 0, "Spruce Fence Gate")); - self::registerBlock(new Fire()); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_ALLIUM, "Allium")); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_AZURE_BLUET, "Azure Bluet")); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_BLUE_ORCHID, "Blue Orchid")); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_ORANGE_TULIP, "Orange Tulip")); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_OXEYE_DAISY, "Oxeye Daisy")); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_PINK_TULIP, "Pink Tulip")); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_POPPY, "Poppy")); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_RED_TULIP, "Red Tulip")); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_WHITE_TULIP, "White Tulip")); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_CORNFLOWER, "Cornflower")); - self::registerBlock(new Flower(Block::RED_FLOWER, Flower::TYPE_LILY_OF_THE_VALLEY, "Lily of the Valley")); - self::registerBlock(new FlowerPot()); - self::registerBlock(new Furnace()); - self::registerBlock((new Furnace())->setLit()); //flattening hack - self::registerBlock(new Glass(Block::GLASS, 0, "Glass")); - self::registerBlock(new GlassPane(Block::GLASS_PANE, 0, "Glass Pane")); - self::registerBlock(new GlazedTerracotta(Block::BLACK_GLAZED_TERRACOTTA, 0, "Black Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::BLUE_GLAZED_TERRACOTTA, 0, "Blue Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::BROWN_GLAZED_TERRACOTTA, 0, "Brown Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::CYAN_GLAZED_TERRACOTTA, 0, "Cyan Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::GRAY_GLAZED_TERRACOTTA, 0, "Grey Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::GREEN_GLAZED_TERRACOTTA, 0, "Green Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::LIGHT_BLUE_GLAZED_TERRACOTTA, 0, "Light Blue Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::LIME_GLAZED_TERRACOTTA, 0, "Lime Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::MAGENTA_GLAZED_TERRACOTTA, 0, "Magenta Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::ORANGE_GLAZED_TERRACOTTA, 0, "Orange Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::PINK_GLAZED_TERRACOTTA, 0, "Pink Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::PURPLE_GLAZED_TERRACOTTA, 0, "Purple Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::RED_GLAZED_TERRACOTTA, 0, "Red Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::SILVER_GLAZED_TERRACOTTA, 0, "Light Grey Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::WHITE_GLAZED_TERRACOTTA, 0, "White Glazed Terracotta")); - self::registerBlock(new GlazedTerracotta(Block::YELLOW_GLAZED_TERRACOTTA, 0, "Yellow Glazed Terracotta")); - self::registerBlock(new GlowingObsidian()); - self::registerBlock(new Glowstone()); - self::registerBlock(new Gold()); - self::registerBlock(new GoldOre()); - self::registerBlock(new Grass()); - self::registerBlock(new GrassPath()); - self::registerBlock(new Gravel()); - self::registerBlock(new HardenedClay(Block::HARDENED_CLAY, 0, "Hardened Clay")); - self::registerBlock(new HardenedGlass(Block::HARD_GLASS, 0, "Hardened Glass")); - self::registerBlock(new HardenedGlassPane(Block::HARD_GLASS_PANE, 0, "Hardened Glass Pane")); - self::registerBlock(new HayBale()); - self::registerBlock(new Ice()); - self::registerBlock(new InfoUpdate(Block::INFO_UPDATE, 0, "update!")); - self::registerBlock(new InfoUpdate(Block::INFO_UPDATE2, 0, "ate!upd")); - self::registerBlock(new InvisibleBedrock()); - self::registerBlock(new Iron()); - self::registerBlock(new IronBars()); - self::registerBlock(new IronDoor()); - self::registerBlock(new IronOre()); - self::registerBlock(new IronTrapdoor()); - self::registerBlock(new ItemFrame()); - self::registerBlock(new Ladder()); - self::registerBlock(new Lapis()); - self::registerBlock(new LapisOre()); - self::registerBlock(new Lava()); - self::registerBlock((new Lava())->setStill()); //flattening hack - self::registerBlock(new Lever()); - self::registerBlock(new LitPumpkin()); - self::registerBlock(new Magma()); - self::registerBlock(new Melon()); - self::registerBlock(new MelonStem()); - self::registerBlock(new MonsterSpawner()); - self::registerBlock(new MossyCobblestone()); - self::registerBlock(new Mycelium()); - self::registerBlock(new NetherBrick(Block::NETHER_BRICK_BLOCK, 0, "Nether Bricks")); - self::registerBlock(new NetherBrick(Block::RED_NETHER_BRICK, 0, "Red Nether Bricks")); - self::registerBlock(new NetherBrickFence()); - self::registerBlock(new NetherBrickStairs()); - self::registerBlock(new NetherQuartzOre()); - self::registerBlock(new NetherReactor()); - self::registerBlock(new NetherWartBlock()); - self::registerBlock(new NetherWartPlant()); - self::registerBlock(new Netherrack()); - self::registerBlock(new NoteBlock()); - self::registerBlock(new Obsidian()); - self::registerBlock(new PackedIce()); - self::registerBlock(new Podzol()); - self::registerBlock(new Potato()); - self::registerBlock(new PoweredRail()); - self::registerBlock(new Prismarine(Block::PRISMARINE, Prismarine::BRICKS, "Prismarine Bricks")); - self::registerBlock(new Prismarine(Block::PRISMARINE, Prismarine::DARK, "Dark Prismarine")); - self::registerBlock(new Prismarine(Block::PRISMARINE, Prismarine::NORMAL, "Prismarine")); - self::registerBlock(new Pumpkin()); - self::registerBlock(new PumpkinStem()); - self::registerBlock(new Purpur(Block::PURPUR_BLOCK, 0, "Purpur Block")); - self::registerBlock(new class(Block::PURPUR_BLOCK, 2, "Purpur Pillar") extends Purpur{ + self::register(new ActivatorRail()); + self::register(new Air()); + self::register(new Anvil(Block::ANVIL, Anvil::TYPE_NORMAL, "Anvil")); + self::register(new Anvil(Block::ANVIL, Anvil::TYPE_SLIGHTLY_DAMAGED, "Slightly Damaged Anvil")); + self::register(new Anvil(Block::ANVIL, Anvil::TYPE_VERY_DAMAGED, "Very Damaged Anvil")); + self::register(new Bed()); + self::register(new Bedrock()); + self::register(new Beetroot()); + self::register(new BoneBlock()); + self::register(new Bookshelf()); + self::register(new BrewingStand()); + self::register(new BrickStairs()); + self::register(new Bricks()); + self::register(new BrownMushroom()); + self::register(new BrownMushroomBlock()); + self::register(new Cactus()); + self::register(new Cake()); + self::register(new Carrot()); + self::register(new Chest()); + self::register(new Clay()); + self::register(new Coal()); + self::register(new CoalOre()); + self::register(new CoarseDirt(Block::DIRT, Dirt::COARSE, "Coarse Dirt")); + self::register(new Cobblestone()); + self::register(new CobblestoneStairs()); + self::register(new Cobweb()); + self::register(new CocoaBlock()); + self::register(new CraftingTable()); + self::register(new Dandelion()); + self::register(new DaylightSensor()); + self::register((new DaylightSensor())->setInverted()); //flattening hack + self::register(new DeadBush()); + self::register(new DetectorRail()); + self::register(new Diamond()); + self::register(new DiamondOre()); + self::register(new Dirt(Block::DIRT, Dirt::NORMAL, "Dirt")); + self::register(new DoublePlant(Block::DOUBLE_PLANT, 0, "Sunflower")); + self::register(new DoublePlant(Block::DOUBLE_PLANT, 1, "Lilac")); + self::register(new DoublePlant(Block::DOUBLE_PLANT, 4, "Rose Bush")); + self::register(new DoublePlant(Block::DOUBLE_PLANT, 5, "Peony")); + self::register(new DoubleTallGrass(Block::DOUBLE_PLANT, 2, "Double Tallgrass")); + self::register(new DoubleTallGrass(Block::DOUBLE_PLANT, 3, "Large Fern")); + self::register(new Emerald()); + self::register(new EmeraldOre()); + self::register(new EnchantingTable()); + self::register(new EndPortalFrame()); + self::register(new EndRod()); + self::register(new EndStone()); + self::register(new EndStoneBricks()); + self::register(new EnderChest()); + self::register(new Farmland()); + self::register(new FenceGate(Block::ACACIA_FENCE_GATE, 0, "Acacia Fence Gate")); + self::register(new FenceGate(Block::BIRCH_FENCE_GATE, 0, "Birch Fence Gate")); + self::register(new FenceGate(Block::DARK_OAK_FENCE_GATE, 0, "Dark Oak Fence Gate")); + self::register(new FenceGate(Block::JUNGLE_FENCE_GATE, 0, "Jungle Fence Gate")); + self::register(new FenceGate(Block::OAK_FENCE_GATE, 0, "Oak Fence Gate")); + self::register(new FenceGate(Block::SPRUCE_FENCE_GATE, 0, "Spruce Fence Gate")); + self::register(new Fire()); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_ALLIUM, "Allium")); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_AZURE_BLUET, "Azure Bluet")); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_BLUE_ORCHID, "Blue Orchid")); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_ORANGE_TULIP, "Orange Tulip")); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_OXEYE_DAISY, "Oxeye Daisy")); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_PINK_TULIP, "Pink Tulip")); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_POPPY, "Poppy")); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_RED_TULIP, "Red Tulip")); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_WHITE_TULIP, "White Tulip")); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_CORNFLOWER, "Cornflower")); + self::register(new Flower(Block::RED_FLOWER, Flower::TYPE_LILY_OF_THE_VALLEY, "Lily of the Valley")); + self::register(new FlowerPot()); + self::register(new Furnace()); + self::register((new Furnace())->setLit()); //flattening hack + self::register(new Glass(Block::GLASS, 0, "Glass")); + self::register(new GlassPane(Block::GLASS_PANE, 0, "Glass Pane")); + self::register(new GlazedTerracotta(Block::BLACK_GLAZED_TERRACOTTA, 0, "Black Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::BLUE_GLAZED_TERRACOTTA, 0, "Blue Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::BROWN_GLAZED_TERRACOTTA, 0, "Brown Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::CYAN_GLAZED_TERRACOTTA, 0, "Cyan Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::GRAY_GLAZED_TERRACOTTA, 0, "Grey Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::GREEN_GLAZED_TERRACOTTA, 0, "Green Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::LIGHT_BLUE_GLAZED_TERRACOTTA, 0, "Light Blue Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::LIME_GLAZED_TERRACOTTA, 0, "Lime Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::MAGENTA_GLAZED_TERRACOTTA, 0, "Magenta Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::ORANGE_GLAZED_TERRACOTTA, 0, "Orange Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::PINK_GLAZED_TERRACOTTA, 0, "Pink Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::PURPLE_GLAZED_TERRACOTTA, 0, "Purple Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::RED_GLAZED_TERRACOTTA, 0, "Red Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::SILVER_GLAZED_TERRACOTTA, 0, "Light Grey Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::WHITE_GLAZED_TERRACOTTA, 0, "White Glazed Terracotta")); + self::register(new GlazedTerracotta(Block::YELLOW_GLAZED_TERRACOTTA, 0, "Yellow Glazed Terracotta")); + self::register(new GlowingObsidian()); + self::register(new Glowstone()); + self::register(new Gold()); + self::register(new GoldOre()); + self::register(new Grass()); + self::register(new GrassPath()); + self::register(new Gravel()); + self::register(new HardenedClay(Block::HARDENED_CLAY, 0, "Hardened Clay")); + self::register(new HardenedGlass(Block::HARD_GLASS, 0, "Hardened Glass")); + self::register(new HardenedGlassPane(Block::HARD_GLASS_PANE, 0, "Hardened Glass Pane")); + self::register(new HayBale()); + self::register(new Ice()); + self::register(new InfoUpdate(Block::INFO_UPDATE, 0, "update!")); + self::register(new InfoUpdate(Block::INFO_UPDATE2, 0, "ate!upd")); + self::register(new InvisibleBedrock()); + self::register(new Iron()); + self::register(new IronBars()); + self::register(new IronDoor()); + self::register(new IronOre()); + self::register(new IronTrapdoor()); + self::register(new ItemFrame()); + self::register(new Ladder()); + self::register(new Lapis()); + self::register(new LapisOre()); + self::register(new Lava()); + self::register((new Lava())->setStill()); //flattening hack + self::register(new Lever()); + self::register(new LitPumpkin()); + self::register(new Magma()); + self::register(new Melon()); + self::register(new MelonStem()); + self::register(new MonsterSpawner()); + self::register(new MossyCobblestone()); + self::register(new Mycelium()); + self::register(new NetherBrick(Block::NETHER_BRICK_BLOCK, 0, "Nether Bricks")); + self::register(new NetherBrick(Block::RED_NETHER_BRICK, 0, "Red Nether Bricks")); + self::register(new NetherBrickFence()); + self::register(new NetherBrickStairs()); + self::register(new NetherQuartzOre()); + self::register(new NetherReactor()); + self::register(new NetherWartBlock()); + self::register(new NetherWartPlant()); + self::register(new Netherrack()); + self::register(new NoteBlock()); + self::register(new Obsidian()); + self::register(new PackedIce()); + self::register(new Podzol()); + self::register(new Potato()); + self::register(new PoweredRail()); + self::register(new Prismarine(Block::PRISMARINE, Prismarine::BRICKS, "Prismarine Bricks")); + self::register(new Prismarine(Block::PRISMARINE, Prismarine::DARK, "Dark Prismarine")); + self::register(new Prismarine(Block::PRISMARINE, Prismarine::NORMAL, "Prismarine")); + self::register(new Pumpkin()); + self::register(new PumpkinStem()); + self::register(new Purpur(Block::PURPUR_BLOCK, 0, "Purpur Block")); + self::register(new class(Block::PURPUR_BLOCK, 2, "Purpur Pillar") extends Purpur{ use PillarRotationTrait; }); - self::registerBlock(new PurpurStairs()); - self::registerBlock(new Quartz(Block::QUARTZ_BLOCK, Quartz::NORMAL, "Quartz Block")); - self::registerBlock(new class(Block::QUARTZ_BLOCK, Quartz::CHISELED, "Chiseled Quartz Block") extends Quartz{ + self::register(new PurpurStairs()); + self::register(new Quartz(Block::QUARTZ_BLOCK, Quartz::NORMAL, "Quartz Block")); + self::register(new class(Block::QUARTZ_BLOCK, Quartz::CHISELED, "Chiseled Quartz Block") extends Quartz{ use PillarRotationTrait; }); - self::registerBlock(new class(Block::QUARTZ_BLOCK, Quartz::PILLAR, "Quartz Pillar") extends Quartz{ + self::register(new class(Block::QUARTZ_BLOCK, Quartz::PILLAR, "Quartz Pillar") extends Quartz{ use PillarRotationTrait; }); - self::registerBlock(new Quartz(Block::QUARTZ_BLOCK, Quartz::SMOOTH, "Smooth Quartz Block")); //TODO: this has axis rotation in 1.9, unsure if a bug (https://bugs.mojang.com/browse/MCPE-39074) - self::registerBlock(new QuartzStairs()); - self::registerBlock(new Rail()); - self::registerBlock(new RedMushroom()); - self::registerBlock(new RedMushroomBlock()); - self::registerBlock(new RedSandstoneStairs()); - self::registerBlock(new Redstone()); - self::registerBlock(new RedstoneLamp()); - self::registerBlock((new RedstoneLamp())->setLit()); //flattening hack - self::registerBlock(new RedstoneOre()); - self::registerBlock((new RedstoneOre())->setLit()); //flattening hack - self::registerBlock(new RedstoneRepeater()); - self::registerBlock((new RedstoneRepeater())->setPowered()); - self::registerBlock(new RedstoneTorch()); - self::registerBlock((new RedstoneTorch())->setLit(false)); //flattening hack - self::registerBlock(new RedstoneWire()); - self::registerBlock(new Reserved6(Block::RESERVED6, 0, "reserved6")); - self::registerBlock(new Sand(Block::SAND, 0, "Sand")); - self::registerBlock(new Sand(Block::SAND, 1, "Red Sand")); - self::registerBlock(new SandstoneStairs()); - self::registerBlock(new SeaLantern()); - self::registerBlock(new SignPost()); - self::registerBlock(new Skull()); - self::registerBlock(new SmoothStone(Block::STONE, Stone::NORMAL, "Stone")); - self::registerBlock(new Snow()); - self::registerBlock(new SnowLayer()); - self::registerBlock(new SoulSand()); - self::registerBlock(new Sponge()); - self::registerBlock(new StandingBanner()); - self::registerBlock(new Stone(Block::STONE, Stone::ANDESITE, "Andesite")); - self::registerBlock(new Stone(Block::STONE, Stone::DIORITE, "Diorite")); - self::registerBlock(new Stone(Block::STONE, Stone::GRANITE, "Granite")); - self::registerBlock(new Stone(Block::STONE, Stone::POLISHED_ANDESITE, "Polished Andesite")); - self::registerBlock(new Stone(Block::STONE, Stone::POLISHED_DIORITE, "Polished Diorite")); - self::registerBlock(new Stone(Block::STONE, Stone::POLISHED_GRANITE, "Polished Granite")); - self::registerBlock(new StoneBrickStairs()); - self::registerBlock(new StoneBricks(Block::STONE_BRICKS, StoneBricks::CHISELED, "Chiseled Stone Bricks")); - self::registerBlock(new StoneBricks(Block::STONE_BRICKS, StoneBricks::CRACKED, "Cracked Stone Bricks")); - self::registerBlock(new StoneBricks(Block::STONE_BRICKS, StoneBricks::MOSSY, "Mossy Stone Bricks")); - self::registerBlock(new StoneBricks(Block::STONE_BRICKS, StoneBricks::NORMAL, "Stone Bricks")); - self::registerBlock(new StoneButton()); - self::registerBlock(new StonePressurePlate()); - self::registerBlock(new Stonecutter()); - self::registerBlock(new Sugarcane()); - self::registerBlock(new TNT()); - self::registerBlock(new TallGrass(Block::TALL_GRASS, 0, "Fern")); - self::registerBlock(new TallGrass(Block::TALL_GRASS, 1, "Tall Grass")); - self::registerBlock(new TallGrass(Block::TALL_GRASS, 2, "Fern")); - self::registerBlock(new TallGrass(Block::TALL_GRASS, 3, "Fern")); - self::registerBlock(new Torch(Block::COLORED_TORCH_BP, 0, "Blue Torch")); - self::registerBlock(new Torch(Block::COLORED_TORCH_BP, 8, "Purple Torch")); - self::registerBlock(new Torch(Block::COLORED_TORCH_RG, 0, "Red Torch")); - self::registerBlock(new Torch(Block::COLORED_TORCH_RG, 8, "Green Torch")); - self::registerBlock(new Torch(Block::TORCH, 0, "Torch")); - self::registerBlock(new Trapdoor()); - self::registerBlock(new TrappedChest()); - self::registerBlock(new Tripwire()); - self::registerBlock(new TripwireHook()); - self::registerBlock(new UnderwaterTorch(Block::UNDERWATER_TORCH, 0, "Underwater Torch")); - self::registerBlock(new Vine()); - self::registerBlock(new WallBanner()); - self::registerBlock(new WallSign()); - self::registerBlock(new Water()); - self::registerBlock((new Water())->setStill()); //flattening hack - self::registerBlock(new WaterLily()); - self::registerBlock(new WeightedPressurePlateHeavy()); - self::registerBlock(new WeightedPressurePlateLight()); - self::registerBlock(new Wheat()); - self::registerBlock(new WoodenButton()); - self::registerBlock(new WoodenDoor(Block::ACACIA_DOOR_BLOCK, 0, "Acacia Door", Item::ACACIA_DOOR)); - self::registerBlock(new WoodenDoor(Block::BIRCH_DOOR_BLOCK, 0, "Birch Door", Item::BIRCH_DOOR)); - self::registerBlock(new WoodenDoor(Block::DARK_OAK_DOOR_BLOCK, 0, "Dark Oak Door", Item::DARK_OAK_DOOR)); - self::registerBlock(new WoodenDoor(Block::JUNGLE_DOOR_BLOCK, 0, "Jungle Door", Item::JUNGLE_DOOR)); - self::registerBlock(new WoodenDoor(Block::OAK_DOOR_BLOCK, 0, "Oak Door", Item::OAK_DOOR)); - self::registerBlock(new WoodenDoor(Block::SPRUCE_DOOR_BLOCK, 0, "Spruce Door", Item::SPRUCE_DOOR)); - self::registerBlock(new WoodenPressurePlate()); - self::registerBlock(new WoodenStairs(Block::ACACIA_STAIRS, 0, "Acacia Stairs")); - self::registerBlock(new WoodenStairs(Block::BIRCH_STAIRS, 0, "Birch Stairs")); - self::registerBlock(new WoodenStairs(Block::DARK_OAK_STAIRS, 0, "Dark Oak Stairs")); - self::registerBlock(new WoodenStairs(Block::JUNGLE_STAIRS, 0, "Jungle Stairs")); - self::registerBlock(new WoodenStairs(Block::OAK_STAIRS, 0, "Oak Stairs")); - self::registerBlock(new WoodenStairs(Block::SPRUCE_STAIRS, 0, "Spruce Stairs")); + self::register(new Quartz(Block::QUARTZ_BLOCK, Quartz::SMOOTH, "Smooth Quartz Block")); //TODO: this has axis rotation in 1.9, unsure if a bug (https://bugs.mojang.com/browse/MCPE-39074) + self::register(new QuartzStairs()); + self::register(new Rail()); + self::register(new RedMushroom()); + self::register(new RedMushroomBlock()); + self::register(new RedSandstoneStairs()); + self::register(new Redstone()); + self::register(new RedstoneLamp()); + self::register((new RedstoneLamp())->setLit()); //flattening hack + self::register(new RedstoneOre()); + self::register((new RedstoneOre())->setLit()); //flattening hack + self::register(new RedstoneRepeater()); + self::register((new RedstoneRepeater())->setPowered()); + self::register(new RedstoneTorch()); + self::register((new RedstoneTorch())->setLit(false)); //flattening hack + self::register(new RedstoneWire()); + self::register(new Reserved6(Block::RESERVED6, 0, "reserved6")); + self::register(new Sand(Block::SAND, 0, "Sand")); + self::register(new Sand(Block::SAND, 1, "Red Sand")); + self::register(new SandstoneStairs()); + self::register(new SeaLantern()); + self::register(new SignPost()); + self::register(new Skull()); + self::register(new SmoothStone(Block::STONE, Stone::NORMAL, "Stone")); + self::register(new Snow()); + self::register(new SnowLayer()); + self::register(new SoulSand()); + self::register(new Sponge()); + self::register(new StandingBanner()); + self::register(new Stone(Block::STONE, Stone::ANDESITE, "Andesite")); + self::register(new Stone(Block::STONE, Stone::DIORITE, "Diorite")); + self::register(new Stone(Block::STONE, Stone::GRANITE, "Granite")); + self::register(new Stone(Block::STONE, Stone::POLISHED_ANDESITE, "Polished Andesite")); + self::register(new Stone(Block::STONE, Stone::POLISHED_DIORITE, "Polished Diorite")); + self::register(new Stone(Block::STONE, Stone::POLISHED_GRANITE, "Polished Granite")); + self::register(new StoneBrickStairs()); + self::register(new StoneBricks(Block::STONE_BRICKS, StoneBricks::CHISELED, "Chiseled Stone Bricks")); + self::register(new StoneBricks(Block::STONE_BRICKS, StoneBricks::CRACKED, "Cracked Stone Bricks")); + self::register(new StoneBricks(Block::STONE_BRICKS, StoneBricks::MOSSY, "Mossy Stone Bricks")); + self::register(new StoneBricks(Block::STONE_BRICKS, StoneBricks::NORMAL, "Stone Bricks")); + self::register(new StoneButton()); + self::register(new StonePressurePlate()); + self::register(new Stonecutter()); + self::register(new Sugarcane()); + self::register(new TNT()); + self::register(new TallGrass(Block::TALL_GRASS, 0, "Fern")); + self::register(new TallGrass(Block::TALL_GRASS, 1, "Tall Grass")); + self::register(new TallGrass(Block::TALL_GRASS, 2, "Fern")); + self::register(new TallGrass(Block::TALL_GRASS, 3, "Fern")); + self::register(new Torch(Block::COLORED_TORCH_BP, 0, "Blue Torch")); + self::register(new Torch(Block::COLORED_TORCH_BP, 8, "Purple Torch")); + self::register(new Torch(Block::COLORED_TORCH_RG, 0, "Red Torch")); + self::register(new Torch(Block::COLORED_TORCH_RG, 8, "Green Torch")); + self::register(new Torch(Block::TORCH, 0, "Torch")); + self::register(new Trapdoor()); + self::register(new TrappedChest()); + self::register(new Tripwire()); + self::register(new TripwireHook()); + self::register(new UnderwaterTorch(Block::UNDERWATER_TORCH, 0, "Underwater Torch")); + self::register(new Vine()); + self::register(new WallBanner()); + self::register(new WallSign()); + self::register(new Water()); + self::register((new Water())->setStill()); //flattening hack + self::register(new WaterLily()); + self::register(new WeightedPressurePlateHeavy()); + self::register(new WeightedPressurePlateLight()); + self::register(new Wheat()); + self::register(new WoodenButton()); + self::register(new WoodenDoor(Block::ACACIA_DOOR_BLOCK, 0, "Acacia Door", Item::ACACIA_DOOR)); + self::register(new WoodenDoor(Block::BIRCH_DOOR_BLOCK, 0, "Birch Door", Item::BIRCH_DOOR)); + self::register(new WoodenDoor(Block::DARK_OAK_DOOR_BLOCK, 0, "Dark Oak Door", Item::DARK_OAK_DOOR)); + self::register(new WoodenDoor(Block::JUNGLE_DOOR_BLOCK, 0, "Jungle Door", Item::JUNGLE_DOOR)); + self::register(new WoodenDoor(Block::OAK_DOOR_BLOCK, 0, "Oak Door", Item::OAK_DOOR)); + self::register(new WoodenDoor(Block::SPRUCE_DOOR_BLOCK, 0, "Spruce Door", Item::SPRUCE_DOOR)); + self::register(new WoodenPressurePlate()); + self::register(new WoodenStairs(Block::ACACIA_STAIRS, 0, "Acacia Stairs")); + self::register(new WoodenStairs(Block::BIRCH_STAIRS, 0, "Birch Stairs")); + self::register(new WoodenStairs(Block::DARK_OAK_STAIRS, 0, "Dark Oak Stairs")); + self::register(new WoodenStairs(Block::JUNGLE_STAIRS, 0, "Jungle Stairs")); + self::register(new WoodenStairs(Block::OAK_STAIRS, 0, "Oak Stairs")); + self::register(new WoodenStairs(Block::SPRUCE_STAIRS, 0, "Spruce Stairs")); foreach(TreeType::getAll() as $treeType){ $magicNumber = $treeType->getMagicNumber(); $name = $treeType->getDisplayName(); - self::registerBlock(new Planks(Block::PLANKS, $magicNumber, $name . " Planks")); - self::registerBlock(new Sapling(Block::SAPLING, $magicNumber, $treeType, $name . " Sapling")); - self::registerBlock(new WoodenFence(Block::FENCE, $magicNumber, $name . " Fence")); + self::register(new Planks(Block::PLANKS, $magicNumber, $name . " Planks")); + self::register(new Sapling(Block::SAPLING, $magicNumber, $treeType, $name . " Sapling")); + self::register(new WoodenFence(Block::FENCE, $magicNumber, $name . " Fence")); //TODO: find a better way to deal with this split - self::registerBlock(new Leaves($magicNumber >= 4 ? Block::LEAVES2 : Block::LEAVES, $magicNumber & 0x03, $treeType, $name . " Leaves")); - self::registerBlock(new Log($magicNumber >= 4 ? Block::WOOD2 : Block::WOOD, $magicNumber & 0x03, $treeType, $name . " Log")); - self::registerBlock(new Wood($magicNumber >= 4 ? Block::WOOD2 : Block::WOOD, ($magicNumber & 0x03) | 0b1100, $treeType, $name . " Wood")); + self::register(new Leaves($magicNumber >= 4 ? Block::LEAVES2 : Block::LEAVES, $magicNumber & 0x03, $treeType, $name . " Leaves")); + self::register(new Log($magicNumber >= 4 ? Block::WOOD2 : Block::WOOD, $magicNumber & 0x03, $treeType, $name . " Log")); + self::register(new Wood($magicNumber >= 4 ? Block::WOOD2 : Block::WOOD, ($magicNumber & 0x03) | 0b1100, $treeType, $name . " Wood")); } static $sandstoneTypes = [ @@ -335,20 +335,20 @@ class BlockFactory{ Sandstone::SMOOTH => "Smooth " ]; foreach($sandstoneTypes as $variant => $prefix){ - self::registerBlock(new Sandstone(Block::SANDSTONE, $variant, $prefix . "Sandstone")); - self::registerBlock(new Sandstone(Block::RED_SANDSTONE, $variant, $prefix . "Red Sandstone")); + self::register(new Sandstone(Block::SANDSTONE, $variant, $prefix . "Sandstone")); + self::register(new Sandstone(Block::RED_SANDSTONE, $variant, $prefix . "Red Sandstone")); } foreach(DyeColor::getAll() as $color){ - self::registerBlock(new Carpet(Block::CARPET, $color->getMagicNumber(), $color->getDisplayName() . " Carpet")); - self::registerBlock(new Concrete(Block::CONCRETE, $color->getMagicNumber(), $color->getDisplayName() . " Concrete")); - self::registerBlock(new ConcretePowder(Block::CONCRETE_POWDER, $color->getMagicNumber(), $color->getDisplayName() . " Concrete Powder")); - self::registerBlock(new Glass(Block::STAINED_GLASS, $color->getMagicNumber(), $color->getDisplayName() . " Stained Glass")); - self::registerBlock(new GlassPane(Block::STAINED_GLASS_PANE, $color->getMagicNumber(), $color->getDisplayName() . " Stained Glass Pane")); - self::registerBlock(new HardenedClay(Block::STAINED_CLAY, $color->getMagicNumber(), $color->getDisplayName() . " Stained Clay")); - self::registerBlock(new HardenedGlass(Block::HARD_STAINED_GLASS, $color->getMagicNumber(), "Hardened " . $color->getDisplayName() . " Stained Glass")); - self::registerBlock(new HardenedGlassPane(Block::HARD_STAINED_GLASS_PANE, $color->getMagicNumber(), "Hardened " . $color->getDisplayName() . " Stained Glass Pane")); - self::registerBlock(new Wool(Block::WOOL, $color->getMagicNumber(), $color->getDisplayName() . " Wool")); + self::register(new Carpet(Block::CARPET, $color->getMagicNumber(), $color->getDisplayName() . " Carpet")); + self::register(new Concrete(Block::CONCRETE, $color->getMagicNumber(), $color->getDisplayName() . " Concrete")); + self::register(new ConcretePowder(Block::CONCRETE_POWDER, $color->getMagicNumber(), $color->getDisplayName() . " Concrete Powder")); + self::register(new Glass(Block::STAINED_GLASS, $color->getMagicNumber(), $color->getDisplayName() . " Stained Glass")); + self::register(new GlassPane(Block::STAINED_GLASS_PANE, $color->getMagicNumber(), $color->getDisplayName() . " Stained Glass Pane")); + self::register(new HardenedClay(Block::STAINED_CLAY, $color->getMagicNumber(), $color->getDisplayName() . " Stained Clay")); + self::register(new HardenedGlass(Block::HARD_STAINED_GLASS, $color->getMagicNumber(), "Hardened " . $color->getDisplayName() . " Stained Glass")); + self::register(new HardenedGlassPane(Block::HARD_STAINED_GLASS_PANE, $color->getMagicNumber(), "Hardened " . $color->getDisplayName() . " Stained Glass Pane")); + self::register(new Wool(Block::WOOL, $color->getMagicNumber(), $color->getDisplayName() . " Wool")); } /** @var Slab[] $slabTypes */ @@ -374,8 +374,8 @@ class BlockFactory{ $slabTypes[] = new WoodenSlab(Block::WOODEN_SLAB, Block::DOUBLE_WOODEN_SLAB, $woodType->getMagicNumber(), $woodType->getDisplayName()); } foreach($slabTypes as $type){ - self::registerBlock($type); - self::registerBlock((clone $type)->setSlabType(SlabType::double())); //flattening hack + self::register($type); + self::register((clone $type)->setSlabType(SlabType::double())); //flattening hack } static $wallTypes = [ @@ -395,7 +395,7 @@ class BlockFactory{ CobblestoneWall::STONE_BRICK_WALL => "Stone Brick" ]; foreach($wallTypes as $magicNumber => $prefix){ - self::registerBlock(new CobblestoneWall(Block::COBBLESTONE_WALL, $magicNumber, $prefix . " Wall")); + self::register(new CobblestoneWall(Block::COBBLESTONE_WALL, $magicNumber, $prefix . " Wall")); } //TODO: minecraft:acacia_button @@ -531,7 +531,7 @@ class BlockFactory{ * @throws \RuntimeException if something attempted to override an already-registered block without specifying the * $override parameter. */ - public static function registerBlock(Block $block, bool $override = false) : void{ + public static function register(Block $block, bool $override = false) : void{ $id = $block->getId(); $variant = $block->getVariant(); diff --git a/src/pocketmine/item/ItemFactory.php b/src/pocketmine/item/ItemFactory.php index 3192cdd7c5..7bd81f3801 100644 --- a/src/pocketmine/item/ItemFactory.php +++ b/src/pocketmine/item/ItemFactory.php @@ -53,226 +53,226 @@ class ItemFactory{ public static function init(){ self::$list = []; //in case of re-initializing - self::registerItem(new Shovel(Item::IRON_SHOVEL, "Iron Shovel", TieredTool::TIER_IRON)); - self::registerItem(new Pickaxe(Item::IRON_PICKAXE, "Iron Pickaxe", TieredTool::TIER_IRON)); - self::registerItem(new Axe(Item::IRON_AXE, "Iron Axe", TieredTool::TIER_IRON)); - self::registerItem(new FlintSteel()); - self::registerItem(new Apple()); - self::registerItem(new Bow()); - self::registerItem(new Arrow()); - self::registerItem(new Coal(Item::COAL, 0, "Coal")); - self::registerItem(new Coal(Item::COAL, 1, "Charcoal")); - self::registerItem(new Item(Item::DIAMOND, 0, "Diamond")); - self::registerItem(new Item(Item::IRON_INGOT, 0, "Iron Ingot")); - self::registerItem(new Item(Item::GOLD_INGOT, 0, "Gold Ingot")); - self::registerItem(new Sword(Item::IRON_SWORD, "Iron Sword", TieredTool::TIER_IRON)); - self::registerItem(new Sword(Item::WOODEN_SWORD, "Wooden Sword", TieredTool::TIER_WOODEN)); - self::registerItem(new Shovel(Item::WOODEN_SHOVEL, "Wooden Shovel", TieredTool::TIER_WOODEN)); - self::registerItem(new Pickaxe(Item::WOODEN_PICKAXE, "Wooden Pickaxe", TieredTool::TIER_WOODEN)); - self::registerItem(new Axe(Item::WOODEN_AXE, "Wooden Axe", TieredTool::TIER_WOODEN)); - self::registerItem(new Sword(Item::STONE_SWORD, "Stone Sword", TieredTool::TIER_STONE)); - self::registerItem(new Shovel(Item::STONE_SHOVEL, "Stone Shovel", TieredTool::TIER_STONE)); - self::registerItem(new Pickaxe(Item::STONE_PICKAXE, "Stone Pickaxe", TieredTool::TIER_STONE)); - self::registerItem(new Axe(Item::STONE_AXE, "Stone Axe", TieredTool::TIER_STONE)); - self::registerItem(new Sword(Item::DIAMOND_SWORD, "Diamond Sword", TieredTool::TIER_DIAMOND)); - self::registerItem(new Shovel(Item::DIAMOND_SHOVEL, "Diamond Shovel", TieredTool::TIER_DIAMOND)); - self::registerItem(new Pickaxe(Item::DIAMOND_PICKAXE, "Diamond Pickaxe", TieredTool::TIER_DIAMOND)); - self::registerItem(new Axe(Item::DIAMOND_AXE, "Diamond Axe", TieredTool::TIER_DIAMOND)); - self::registerItem(new Stick()); - self::registerItem(new Bowl()); - self::registerItem(new MushroomStew()); - self::registerItem(new Sword(Item::GOLDEN_SWORD, "Gold Sword", TieredTool::TIER_GOLD)); - self::registerItem(new Shovel(Item::GOLDEN_SHOVEL, "Gold Shovel", TieredTool::TIER_GOLD)); - self::registerItem(new Pickaxe(Item::GOLDEN_PICKAXE, "Gold Pickaxe", TieredTool::TIER_GOLD)); - self::registerItem(new Axe(Item::GOLDEN_AXE, "Gold Axe", TieredTool::TIER_GOLD)); - self::registerItem(new StringItem()); - self::registerItem(new Item(Item::FEATHER, 0, "Feather")); - self::registerItem(new Item(Item::GUNPOWDER, 0, "Gunpowder")); - self::registerItem(new Hoe(Item::WOODEN_HOE, "Wooden Hoe", TieredTool::TIER_WOODEN)); - self::registerItem(new Hoe(Item::STONE_HOE, "Stone Hoe", TieredTool::TIER_STONE)); - self::registerItem(new Hoe(Item::IRON_HOE, "Iron Hoe", TieredTool::TIER_IRON)); - self::registerItem(new Hoe(Item::DIAMOND_HOE, "Diamond Hoe", TieredTool::TIER_DIAMOND)); - self::registerItem(new Hoe(Item::GOLDEN_HOE, "Golden Hoe", TieredTool::TIER_GOLD)); - self::registerItem(new WheatSeeds()); - self::registerItem(new Item(Item::WHEAT, 0, "Wheat")); - self::registerItem(new Bread()); - self::registerItem(new LeatherCap()); - self::registerItem(new LeatherTunic()); - self::registerItem(new LeatherPants()); - self::registerItem(new LeatherBoots()); - self::registerItem(new ChainHelmet()); - self::registerItem(new ChainChestplate()); - self::registerItem(new ChainLeggings()); - self::registerItem(new ChainBoots()); - self::registerItem(new IronHelmet()); - self::registerItem(new IronChestplate()); - self::registerItem(new IronLeggings()); - self::registerItem(new IronBoots()); - self::registerItem(new DiamondHelmet()); - self::registerItem(new DiamondChestplate()); - self::registerItem(new DiamondLeggings()); - self::registerItem(new DiamondBoots()); - self::registerItem(new GoldHelmet()); - self::registerItem(new GoldChestplate()); - self::registerItem(new GoldLeggings()); - self::registerItem(new GoldBoots()); - self::registerItem(new Item(Item::FLINT, 0, "Flint")); - self::registerItem(new RawPorkchop()); - self::registerItem(new CookedPorkchop()); - self::registerItem(new PaintingItem()); - self::registerItem(new GoldenApple()); - self::registerItem(new Sign()); - self::registerItem(new ItemBlock(Block::OAK_DOOR_BLOCK, 0, Item::OAK_DOOR)); + self::register(new Shovel(Item::IRON_SHOVEL, "Iron Shovel", TieredTool::TIER_IRON)); + self::register(new Pickaxe(Item::IRON_PICKAXE, "Iron Pickaxe", TieredTool::TIER_IRON)); + self::register(new Axe(Item::IRON_AXE, "Iron Axe", TieredTool::TIER_IRON)); + self::register(new FlintSteel()); + self::register(new Apple()); + self::register(new Bow()); + self::register(new Arrow()); + self::register(new Coal(Item::COAL, 0, "Coal")); + self::register(new Coal(Item::COAL, 1, "Charcoal")); + self::register(new Item(Item::DIAMOND, 0, "Diamond")); + self::register(new Item(Item::IRON_INGOT, 0, "Iron Ingot")); + self::register(new Item(Item::GOLD_INGOT, 0, "Gold Ingot")); + self::register(new Sword(Item::IRON_SWORD, "Iron Sword", TieredTool::TIER_IRON)); + self::register(new Sword(Item::WOODEN_SWORD, "Wooden Sword", TieredTool::TIER_WOODEN)); + self::register(new Shovel(Item::WOODEN_SHOVEL, "Wooden Shovel", TieredTool::TIER_WOODEN)); + self::register(new Pickaxe(Item::WOODEN_PICKAXE, "Wooden Pickaxe", TieredTool::TIER_WOODEN)); + self::register(new Axe(Item::WOODEN_AXE, "Wooden Axe", TieredTool::TIER_WOODEN)); + self::register(new Sword(Item::STONE_SWORD, "Stone Sword", TieredTool::TIER_STONE)); + self::register(new Shovel(Item::STONE_SHOVEL, "Stone Shovel", TieredTool::TIER_STONE)); + self::register(new Pickaxe(Item::STONE_PICKAXE, "Stone Pickaxe", TieredTool::TIER_STONE)); + self::register(new Axe(Item::STONE_AXE, "Stone Axe", TieredTool::TIER_STONE)); + self::register(new Sword(Item::DIAMOND_SWORD, "Diamond Sword", TieredTool::TIER_DIAMOND)); + self::register(new Shovel(Item::DIAMOND_SHOVEL, "Diamond Shovel", TieredTool::TIER_DIAMOND)); + self::register(new Pickaxe(Item::DIAMOND_PICKAXE, "Diamond Pickaxe", TieredTool::TIER_DIAMOND)); + self::register(new Axe(Item::DIAMOND_AXE, "Diamond Axe", TieredTool::TIER_DIAMOND)); + self::register(new Stick()); + self::register(new Bowl()); + self::register(new MushroomStew()); + self::register(new Sword(Item::GOLDEN_SWORD, "Gold Sword", TieredTool::TIER_GOLD)); + self::register(new Shovel(Item::GOLDEN_SHOVEL, "Gold Shovel", TieredTool::TIER_GOLD)); + self::register(new Pickaxe(Item::GOLDEN_PICKAXE, "Gold Pickaxe", TieredTool::TIER_GOLD)); + self::register(new Axe(Item::GOLDEN_AXE, "Gold Axe", TieredTool::TIER_GOLD)); + self::register(new StringItem()); + self::register(new Item(Item::FEATHER, 0, "Feather")); + self::register(new Item(Item::GUNPOWDER, 0, "Gunpowder")); + self::register(new Hoe(Item::WOODEN_HOE, "Wooden Hoe", TieredTool::TIER_WOODEN)); + self::register(new Hoe(Item::STONE_HOE, "Stone Hoe", TieredTool::TIER_STONE)); + self::register(new Hoe(Item::IRON_HOE, "Iron Hoe", TieredTool::TIER_IRON)); + self::register(new Hoe(Item::DIAMOND_HOE, "Diamond Hoe", TieredTool::TIER_DIAMOND)); + self::register(new Hoe(Item::GOLDEN_HOE, "Golden Hoe", TieredTool::TIER_GOLD)); + self::register(new WheatSeeds()); + self::register(new Item(Item::WHEAT, 0, "Wheat")); + self::register(new Bread()); + self::register(new LeatherCap()); + self::register(new LeatherTunic()); + self::register(new LeatherPants()); + self::register(new LeatherBoots()); + self::register(new ChainHelmet()); + self::register(new ChainChestplate()); + self::register(new ChainLeggings()); + self::register(new ChainBoots()); + self::register(new IronHelmet()); + self::register(new IronChestplate()); + self::register(new IronLeggings()); + self::register(new IronBoots()); + self::register(new DiamondHelmet()); + self::register(new DiamondChestplate()); + self::register(new DiamondLeggings()); + self::register(new DiamondBoots()); + self::register(new GoldHelmet()); + self::register(new GoldChestplate()); + self::register(new GoldLeggings()); + self::register(new GoldBoots()); + self::register(new Item(Item::FLINT, 0, "Flint")); + self::register(new RawPorkchop()); + self::register(new CookedPorkchop()); + self::register(new PaintingItem()); + self::register(new GoldenApple()); + self::register(new Sign()); + self::register(new ItemBlock(Block::OAK_DOOR_BLOCK, 0, Item::OAK_DOOR)); //TODO: fix metadata for buckets with still liquid in them //the meta values are intentionally hardcoded because block IDs will change in the future - self::registerItem(new Bucket(Item::BUCKET, 0, "Bucket")); - self::registerItem(new MilkBucket(Item::BUCKET, 1, "Milk Bucket")); - self::registerItem(new LiquidBucket(Item::BUCKET, 8, "Water Bucket", Block::FLOWING_WATER)); - self::registerItem(new LiquidBucket(Item::BUCKET, 10, "Lava Bucket", Block::FLOWING_LAVA)); + self::register(new Bucket(Item::BUCKET, 0, "Bucket")); + self::register(new MilkBucket(Item::BUCKET, 1, "Milk Bucket")); + self::register(new LiquidBucket(Item::BUCKET, 8, "Water Bucket", Block::FLOWING_WATER)); + self::register(new LiquidBucket(Item::BUCKET, 10, "Lava Bucket", Block::FLOWING_LAVA)); - self::registerItem(new Minecart()); + self::register(new Minecart()); - self::registerItem(new ItemBlock(Block::IRON_DOOR_BLOCK, 0, Item::IRON_DOOR)); - self::registerItem(new Redstone()); - self::registerItem(new Snowball()); + self::register(new ItemBlock(Block::IRON_DOOR_BLOCK, 0, Item::IRON_DOOR)); + self::register(new Redstone()); + self::register(new Snowball()); - self::registerItem(new Boat()); - self::registerItem(new Item(Item::LEATHER, 0, "Leather")); + self::register(new Boat()); + self::register(new Item(Item::LEATHER, 0, "Leather")); - self::registerItem(new Item(Item::BRICK, 0, "Brick")); - self::registerItem(new Item(Item::CLAY_BALL, 0, "Clay")); - self::registerItem(new ItemBlock(Block::SUGARCANE_BLOCK, 0, Item::SUGARCANE)); - self::registerItem(new Item(Item::PAPER, 0, "Paper")); - self::registerItem(new Book()); - self::registerItem(new Item(Item::SLIME_BALL, 0, "Slimeball")); + self::register(new Item(Item::BRICK, 0, "Brick")); + self::register(new Item(Item::CLAY_BALL, 0, "Clay")); + self::register(new ItemBlock(Block::SUGARCANE_BLOCK, 0, Item::SUGARCANE)); + self::register(new Item(Item::PAPER, 0, "Paper")); + self::register(new Book()); + self::register(new Item(Item::SLIME_BALL, 0, "Slimeball")); - self::registerItem(new Egg()); - self::registerItem(new Compass()); - self::registerItem(new FishingRod()); - self::registerItem(new Clock()); - self::registerItem(new Item(Item::GLOWSTONE_DUST, 0, "Glowstone Dust")); - self::registerItem(new RawFish()); - self::registerItem(new CookedFish()); + self::register(new Egg()); + self::register(new Compass()); + self::register(new FishingRod()); + self::register(new Clock()); + self::register(new Item(Item::GLOWSTONE_DUST, 0, "Glowstone Dust")); + self::register(new RawFish()); + self::register(new CookedFish()); foreach(DyeColor::getAll() as $color){ //TODO: use colour object directly //TODO: add interface to dye-colour objects //TODO: new dedicated dyes - self::registerItem(new Dye($color->getInvertedMagicNumber(), $color->getDisplayName() . " Dye")); - self::registerItem(new Bed($color->getMagicNumber(), $color->getDisplayName() . " Bed")); - self::registerItem(new Banner($color->getInvertedMagicNumber(), $color->getDisplayName() . " Banner")); + self::register(new Dye($color->getInvertedMagicNumber(), $color->getDisplayName() . " Dye")); + self::register(new Bed($color->getMagicNumber(), $color->getDisplayName() . " Bed")); + self::register(new Banner($color->getInvertedMagicNumber(), $color->getDisplayName() . " Banner")); } - self::registerItem(new Item(Item::BONE, 0, "Bone")); - self::registerItem(new Item(Item::SUGAR, 0, "Sugar")); - self::registerItem(new ItemBlock(Block::CAKE_BLOCK, 0, Item::CAKE)); + self::register(new Item(Item::BONE, 0, "Bone")); + self::register(new Item(Item::SUGAR, 0, "Sugar")); + self::register(new ItemBlock(Block::CAKE_BLOCK, 0, Item::CAKE)); - self::registerItem(new ItemBlock(Block::REPEATER_BLOCK, 0, Item::REPEATER)); - self::registerItem(new Cookie()); + self::register(new ItemBlock(Block::REPEATER_BLOCK, 0, Item::REPEATER)); + self::register(new Cookie()); - self::registerItem(new Shears()); - self::registerItem(new Melon()); - self::registerItem(new PumpkinSeeds()); - self::registerItem(new MelonSeeds()); - self::registerItem(new RawBeef()); - self::registerItem(new Steak()); - self::registerItem(new RawChicken()); - self::registerItem(new CookedChicken()); - self::registerItem(new RottenFlesh()); - self::registerItem(new EnderPearl()); - self::registerItem(new BlazeRod()); - self::registerItem(new Item(Item::GHAST_TEAR, 0, "Ghast Tear")); - self::registerItem(new Item(Item::GOLD_NUGGET, 0, "Gold Nugget")); - self::registerItem(new ItemBlock(Block::NETHER_WART_PLANT, 0, Item::NETHER_WART)); + self::register(new Shears()); + self::register(new Melon()); + self::register(new PumpkinSeeds()); + self::register(new MelonSeeds()); + self::register(new RawBeef()); + self::register(new Steak()); + self::register(new RawChicken()); + self::register(new CookedChicken()); + self::register(new RottenFlesh()); + self::register(new EnderPearl()); + self::register(new BlazeRod()); + self::register(new Item(Item::GHAST_TEAR, 0, "Ghast Tear")); + self::register(new Item(Item::GOLD_NUGGET, 0, "Gold Nugget")); + self::register(new ItemBlock(Block::NETHER_WART_PLANT, 0, Item::NETHER_WART)); foreach(Potion::ALL as $type){ - self::registerItem(new Potion($type)); - self::registerItem(new SplashPotion($type)); + self::register(new Potion($type)); + self::register(new SplashPotion($type)); } - self::registerItem(new GlassBottle()); - self::registerItem(new SpiderEye()); - self::registerItem(new Item(Item::FERMENTED_SPIDER_EYE, 0, "Fermented Spider Eye")); - self::registerItem(new Item(Item::BLAZE_POWDER, 0, "Blaze Powder")); - self::registerItem(new Item(Item::MAGMA_CREAM, 0, "Magma Cream")); - self::registerItem(new ItemBlock(Block::BREWING_STAND_BLOCK, 0, Item::BREWING_STAND)); - self::registerItem(new ItemBlock(Block::CAULDRON_BLOCK, 0, Item::CAULDRON)); + self::register(new GlassBottle()); + self::register(new SpiderEye()); + self::register(new Item(Item::FERMENTED_SPIDER_EYE, 0, "Fermented Spider Eye")); + self::register(new Item(Item::BLAZE_POWDER, 0, "Blaze Powder")); + self::register(new Item(Item::MAGMA_CREAM, 0, "Magma Cream")); + self::register(new ItemBlock(Block::BREWING_STAND_BLOCK, 0, Item::BREWING_STAND)); + self::register(new ItemBlock(Block::CAULDRON_BLOCK, 0, Item::CAULDRON)); - self::registerItem(new Item(Item::GLISTERING_MELON, 0, "Glistering Melon")); + self::register(new Item(Item::GLISTERING_MELON, 0, "Glistering Melon")); foreach(EntityFactory::getKnownTypes() as $className){ /** @var Living|string $className */ if(is_a($className, Living::class, true) and $className::NETWORK_ID !== -1){ - self::registerItem(new SpawnEgg(Item::SPAWN_EGG, $className::NETWORK_ID, $className, "Spawn Egg")); + self::register(new SpawnEgg(Item::SPAWN_EGG, $className::NETWORK_ID, $className, "Spawn Egg")); } } - self::registerItem(new ExperienceBottle()); + self::register(new ExperienceBottle()); - self::registerItem(new WritableBook()); - self::registerItem(new WrittenBook()); - self::registerItem(new Item(Item::EMERALD, 0, "Emerald")); - self::registerItem(new ItemBlock(Block::ITEM_FRAME_BLOCK, 0, Item::ITEM_FRAME)); - self::registerItem(new ItemBlock(Block::FLOWER_POT_BLOCK, 0, Item::FLOWER_POT)); - self::registerItem(new Carrot()); - self::registerItem(new Potato()); - self::registerItem(new BakedPotato()); - self::registerItem(new PoisonousPotato()); + self::register(new WritableBook()); + self::register(new WrittenBook()); + self::register(new Item(Item::EMERALD, 0, "Emerald")); + self::register(new ItemBlock(Block::ITEM_FRAME_BLOCK, 0, Item::ITEM_FRAME)); + self::register(new ItemBlock(Block::FLOWER_POT_BLOCK, 0, Item::FLOWER_POT)); + self::register(new Carrot()); + self::register(new Potato()); + self::register(new BakedPotato()); + self::register(new PoisonousPotato()); - self::registerItem(new GoldenCarrot()); + self::register(new GoldenCarrot()); - self::registerItem(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_SKELETON, Item::SKULL)); - self::registerItem(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_WITHER, Item::SKULL)); - self::registerItem(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_ZOMBIE, Item::SKULL)); - self::registerItem(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_HUMAN, Item::SKULL)); - self::registerItem(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_CREEPER, Item::SKULL)); - self::registerItem(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_DRAGON, Item::SKULL)); + self::register(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_SKELETON, Item::SKULL)); + self::register(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_WITHER, Item::SKULL)); + self::register(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_ZOMBIE, Item::SKULL)); + self::register(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_HUMAN, Item::SKULL)); + self::register(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_CREEPER, Item::SKULL)); + self::register(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_DRAGON, Item::SKULL)); - self::registerItem(new Item(Item::NETHER_STAR, 0, "Nether Star")); - self::registerItem(new PumpkinPie()); + self::register(new Item(Item::NETHER_STAR, 0, "Nether Star")); + self::register(new PumpkinPie()); - self::registerItem(new ItemBlock(Block::COMPARATOR_BLOCK, 0, Item::COMPARATOR)); - self::registerItem(new Item(Item::NETHER_BRICK, 0, "Nether Brick")); - self::registerItem(new Item(Item::NETHER_QUARTZ, 0, "Nether Quartz")); + self::register(new ItemBlock(Block::COMPARATOR_BLOCK, 0, Item::COMPARATOR)); + self::register(new Item(Item::NETHER_BRICK, 0, "Nether Brick")); + self::register(new Item(Item::NETHER_QUARTZ, 0, "Nether Quartz")); - self::registerItem(new Item(Item::PRISMARINE_SHARD, 0, "Prismarine Shard")); - self::registerItem(new ItemBlock(Block::HOPPER_BLOCK, 0, Item::HOPPER)); - self::registerItem(new RawRabbit()); - self::registerItem(new CookedRabbit()); - self::registerItem(new RabbitStew()); - self::registerItem(new Item(Item::RABBIT_FOOT, 0, "Rabbit's Foot")); - self::registerItem(new Item(Item::RABBIT_HIDE, 0, "Rabbit Hide")); + self::register(new Item(Item::PRISMARINE_SHARD, 0, "Prismarine Shard")); + self::register(new ItemBlock(Block::HOPPER_BLOCK, 0, Item::HOPPER)); + self::register(new RawRabbit()); + self::register(new CookedRabbit()); + self::register(new RabbitStew()); + self::register(new Item(Item::RABBIT_FOOT, 0, "Rabbit's Foot")); + self::register(new Item(Item::RABBIT_HIDE, 0, "Rabbit Hide")); - self::registerItem(new Item(Item::PRISMARINE_CRYSTALS, 0, "Prismarine Crystals")); - self::registerItem(new RawMutton()); - self::registerItem(new CookedMutton()); + self::register(new Item(Item::PRISMARINE_CRYSTALS, 0, "Prismarine Crystals")); + self::register(new RawMutton()); + self::register(new CookedMutton()); - self::registerItem(new ItemBlock(Block::SPRUCE_DOOR_BLOCK, 0, Item::SPRUCE_DOOR)); - self::registerItem(new ItemBlock(Block::BIRCH_DOOR_BLOCK, 0, Item::BIRCH_DOOR)); - self::registerItem(new ItemBlock(Block::JUNGLE_DOOR_BLOCK, 0, Item::JUNGLE_DOOR)); - self::registerItem(new ItemBlock(Block::ACACIA_DOOR_BLOCK, 0, Item::ACACIA_DOOR)); - self::registerItem(new ItemBlock(Block::DARK_OAK_DOOR_BLOCK, 0, Item::DARK_OAK_DOOR)); - self::registerItem(new ChorusFruit()); - self::registerItem(new Item(Item::CHORUS_FRUIT_POPPED, 0, "Popped Chorus Fruit")); + self::register(new ItemBlock(Block::SPRUCE_DOOR_BLOCK, 0, Item::SPRUCE_DOOR)); + self::register(new ItemBlock(Block::BIRCH_DOOR_BLOCK, 0, Item::BIRCH_DOOR)); + self::register(new ItemBlock(Block::JUNGLE_DOOR_BLOCK, 0, Item::JUNGLE_DOOR)); + self::register(new ItemBlock(Block::ACACIA_DOOR_BLOCK, 0, Item::ACACIA_DOOR)); + self::register(new ItemBlock(Block::DARK_OAK_DOOR_BLOCK, 0, Item::DARK_OAK_DOOR)); + self::register(new ChorusFruit()); + self::register(new Item(Item::CHORUS_FRUIT_POPPED, 0, "Popped Chorus Fruit")); - self::registerItem(new Item(Item::DRAGON_BREATH, 0, "Dragon's Breath")); + self::register(new Item(Item::DRAGON_BREATH, 0, "Dragon's Breath")); - self::registerItem(new Item(Item::SHULKER_SHELL, 0, "Shulker Shell")); + self::register(new Item(Item::SHULKER_SHELL, 0, "Shulker Shell")); - self::registerItem(new Totem()); - self::registerItem(new Item(Item::BLEACH, 0, "Bleach")); //EDU - self::registerItem(new Item(Item::IRON_NUGGET, 0, "Iron Nugget")); + self::register(new Totem()); + self::register(new Item(Item::BLEACH, 0, "Bleach")); //EDU + self::register(new Item(Item::IRON_NUGGET, 0, "Iron Nugget")); - self::registerItem(new Beetroot()); - self::registerItem(new BeetrootSeeds()); - self::registerItem(new BeetrootSoup()); - self::registerItem(new RawSalmon()); - self::registerItem(new Clownfish()); - self::registerItem(new Pufferfish()); - self::registerItem(new CookedSalmon()); - self::registerItem(new DriedKelp()); - self::registerItem(new Item(Item::NAUTILUS_SHELL, 0, "Nautilus Shell")); - self::registerItem(new GoldenAppleEnchanted()); - self::registerItem(new Item(Item::HEART_OF_THE_SEA, 0, "Heart of the Sea")); - self::registerItem(new Item(Item::TURTLE_SHELL_PIECE, 0, "Scute")); + self::register(new Beetroot()); + self::register(new BeetrootSeeds()); + self::register(new BeetrootSoup()); + self::register(new RawSalmon()); + self::register(new Clownfish()); + self::register(new Pufferfish()); + self::register(new CookedSalmon()); + self::register(new DriedKelp()); + self::register(new Item(Item::NAUTILUS_SHELL, 0, "Nautilus Shell")); + self::register(new GoldenAppleEnchanted()); + self::register(new Item(Item::HEART_OF_THE_SEA, 0, "Heart of the Sea")); + self::register(new Item(Item::TURTLE_SHELL_PIECE, 0, "Scute")); //TODO: minecraft:acacia_sign //TODO: minecraft:armor_stand @@ -342,7 +342,7 @@ class ItemFactory{ * @throws \RuntimeException if something attempted to override an already-registered item without specifying the * $override parameter. */ - public static function registerItem(Item $item, bool $override = false){ + public static function register(Item $item, bool $override = false){ $id = $item->getId(); $variant = $item->getDamage();