ItemFactory: Sort items lexicographically ascending

This commit is contained in:
Dylan K. Taylor 2019-02-22 11:52:22 +00:00
parent 3037f45a0c
commit 461233db09

View File

@ -53,112 +53,188 @@ class ItemFactory{
public static function init(){
self::$list = []; //in case of re-initializing
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 Axe(Item::DIAMOND_AXE, "Diamond Axe", TieredTool::TIER_DIAMOND));
self::register(new Axe(Item::GOLDEN_AXE, "Gold Axe", TieredTool::TIER_GOLD));
self::register(new Axe(Item::IRON_AXE, "Iron Axe", TieredTool::TIER_IRON));
self::register(new Axe(Item::STONE_AXE, "Stone Axe", TieredTool::TIER_STONE));
self::register(new Axe(Item::WOODEN_AXE, "Wooden Axe", TieredTool::TIER_WOODEN));
self::register(new BakedPotato());
self::register(new Beetroot());
self::register(new BeetrootSeeds());
self::register(new BeetrootSoup());
self::register(new BlazeRod());
self::register(new Boat());
self::register(new Book());
self::register(new Bow());
self::register(new Bowl());
self::register(new Bread());
self::register(new Bucket(Item::BUCKET, 0, "Bucket"));
self::register(new Carrot());
self::register(new ChainBoots());
self::register(new ChainChestplate());
self::register(new ChainHelmet());
self::register(new ChainLeggings());
self::register(new ChorusFruit());
self::register(new Clock());
self::register(new Clownfish());
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 CocoaBeans(Item::DYE, 3, "Cocoa Beans"));
self::register(new Compass());
self::register(new CookedChicken());
self::register(new CookedFish());
self::register(new CookedMutton());
self::register(new CookedPorkchop());
self::register(new CookedRabbit());
self::register(new CookedSalmon());
self::register(new Cookie());
self::register(new DiamondBoots());
self::register(new DiamondChestplate());
self::register(new DiamondHelmet());
self::register(new DiamondLeggings());
self::register(new DriedKelp());
self::register(new Egg());
self::register(new EnderPearl());
self::register(new ExperienceBottle());
self::register(new Fertilizer(Item::DYE, 15, "Bone Meal"));
self::register(new FishingRod());
self::register(new FlintSteel());
self::register(new GlassBottle());
self::register(new GoldBoots());
self::register(new GoldChestplate());
self::register(new GoldHelmet());
self::register(new GoldLeggings());
self::register(new GoldenApple());
self::register(new GoldenAppleEnchanted());
self::register(new GoldenCarrot());
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 Hoe(Item::IRON_HOE, "Iron Hoe", TieredTool::TIER_IRON));
self::register(new Hoe(Item::STONE_HOE, "Stone Hoe", TieredTool::TIER_STONE));
self::register(new Hoe(Item::WOODEN_HOE, "Wooden Hoe", TieredTool::TIER_WOODEN));
self::register(new 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 IronChestplate());
self::register(new IronHelmet());
self::register(new IronLeggings());
self::register(new Item(Item::BLAZE_POWDER, 0, "Blaze Powder"));
self::register(new Item(Item::BLEACH, 0, "Bleach")); //EDU
self::register(new Item(Item::BONE, 0, "Bone"));
self::register(new Item(Item::BRICK, 0, "Brick"));
self::register(new Item(Item::CHORUS_FRUIT_POPPED, 0, "Popped Chorus Fruit"));
self::register(new Item(Item::CLAY_BALL, 0, "Clay"));
self::register(new Item(Item::DIAMOND, 0, "Diamond"));
self::register(new Item(Item::DRAGON_BREATH, 0, "Dragon's Breath"));
self::register(new Item(Item::DYE, 0, "Ink Sac"));
self::register(new Item(Item::DYE, 4, "Lapis Lazuli"));
self::register(new Item(Item::EMERALD, 0, "Emerald"));
self::register(new Item(Item::FEATHER, 0, "Feather"));
self::register(new Item(Item::FERMENTED_SPIDER_EYE, 0, "Fermented Spider Eye"));
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 Item(Item::GHAST_TEAR, 0, "Ghast Tear"));
self::register(new Item(Item::GLISTERING_MELON, 0, "Glistering Melon"));
self::register(new Item(Item::GLOWSTONE_DUST, 0, "Glowstone Dust"));
self::register(new Item(Item::GOLD_INGOT, 0, "Gold Ingot"));
self::register(new Item(Item::GOLD_NUGGET, 0, "Gold Nugget"));
self::register(new Item(Item::GUNPOWDER, 0, "Gunpowder"));
self::register(new Item(Item::HEART_OF_THE_SEA, 0, "Heart of the Sea"));
self::register(new Item(Item::IRON_INGOT, 0, "Iron Ingot"));
self::register(new Item(Item::IRON_NUGGET, 0, "Iron Nugget"));
self::register(new Item(Item::LEATHER, 0, "Leather"));
self::register(new Item(Item::MAGMA_CREAM, 0, "Magma Cream"));
self::register(new Item(Item::NAUTILUS_SHELL, 0, "Nautilus Shell"));
self::register(new Item(Item::NETHER_BRICK, 0, "Nether Brick"));
self::register(new Item(Item::NETHER_QUARTZ, 0, "Nether Quartz"));
self::register(new Item(Item::NETHER_STAR, 0, "Nether Star"));
self::register(new Item(Item::PAPER, 0, "Paper"));
self::register(new Item(Item::PRISMARINE_CRYSTALS, 0, "Prismarine Crystals"));
self::register(new Item(Item::PRISMARINE_SHARD, 0, "Prismarine Shard"));
self::register(new Item(Item::RABBIT_FOOT, 0, "Rabbit's Foot"));
self::register(new Item(Item::RABBIT_HIDE, 0, "Rabbit Hide"));
self::register(new Item(Item::SHULKER_SHELL, 0, "Shulker Shell"));
self::register(new Item(Item::SLIME_BALL, 0, "Slimeball"));
self::register(new Item(Item::SUGAR, 0, "Sugar"));
self::register(new Item(Item::TURTLE_SHELL_PIECE, 0, "Scute"));
self::register(new Item(Item::WHEAT, 0, "Wheat"));
self::register(new ItemBlock(Block::ACACIA_DOOR_BLOCK, 0, Item::ACACIA_DOOR));
self::register(new ItemBlock(Block::BIRCH_DOOR_BLOCK, 0, Item::BIRCH_DOOR));
self::register(new ItemBlock(Block::BREWING_STAND_BLOCK, 0, Item::BREWING_STAND));
self::register(new ItemBlock(Block::CAKE_BLOCK, 0, Item::CAKE));
self::register(new ItemBlock(Block::CAULDRON_BLOCK, 0, Item::CAULDRON));
self::register(new ItemBlock(Block::COMPARATOR_BLOCK, 0, Item::COMPARATOR));
self::register(new ItemBlock(Block::DARK_OAK_DOOR_BLOCK, 0, Item::DARK_OAK_DOOR));
self::register(new ItemBlock(Block::FLOWER_POT_BLOCK, 0, Item::FLOWER_POT));
self::register(new ItemBlock(Block::HOPPER_BLOCK, 0, Item::HOPPER));
self::register(new ItemBlock(Block::IRON_DOOR_BLOCK, 0, Item::IRON_DOOR));
self::register(new ItemBlock(Block::ITEM_FRAME_BLOCK, 0, Item::ITEM_FRAME));
self::register(new ItemBlock(Block::JUNGLE_DOOR_BLOCK, 0, Item::JUNGLE_DOOR));
self::register(new ItemBlock(Block::NETHER_WART_PLANT, 0, Item::NETHER_WART));
self::register(new ItemBlock(Block::OAK_DOOR_BLOCK, 0, Item::OAK_DOOR));
self::register(new ItemBlock(Block::REPEATER_BLOCK, 0, Item::REPEATER));
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::register(new ItemBlock(Block::SKULL_BLOCK, Skull::TYPE_HUMAN, 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::SPRUCE_DOOR_BLOCK, 0, Item::SPRUCE_DOOR));
self::register(new ItemBlock(Block::SUGARCANE_BLOCK, 0, Item::SUGARCANE));
self::register(new LeatherBoots());
self::register(new LeatherCap());
self::register(new LeatherPants());
self::register(new LeatherTunic());
//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::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::register(new LiquidBucket(Item::BUCKET, 8, "Water Bucket", Block::FLOWING_WATER));
self::register(new Melon());
self::register(new MelonSeeds());
self::register(new MilkBucket(Item::BUCKET, 1, "Milk Bucket"));
self::register(new Minecart());
self::register(new ItemBlock(Block::IRON_DOOR_BLOCK, 0, Item::IRON_DOOR));
self::register(new Redstone());
self::register(new Snowball());
self::register(new Boat());
self::register(new Item(Item::LEATHER, 0, "Leather"));
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::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 MushroomStew());
self::register(new PaintingItem());
self::register(new Pickaxe(Item::DIAMOND_PICKAXE, "Diamond Pickaxe", TieredTool::TIER_DIAMOND));
self::register(new Pickaxe(Item::GOLDEN_PICKAXE, "Gold Pickaxe", TieredTool::TIER_GOLD));
self::register(new Pickaxe(Item::IRON_PICKAXE, "Iron Pickaxe", TieredTool::TIER_IRON));
self::register(new Pickaxe(Item::STONE_PICKAXE, "Stone Pickaxe", TieredTool::TIER_STONE));
self::register(new Pickaxe(Item::WOODEN_PICKAXE, "Wooden Pickaxe", TieredTool::TIER_WOODEN));
self::register(new PoisonousPotato());
self::register(new Potato());
self::register(new Pufferfish());
self::register(new PumpkinPie());
self::register(new PumpkinSeeds());
self::register(new RabbitStew());
self::register(new RawBeef());
self::register(new RawChicken());
self::register(new RawFish());
self::register(new CookedFish());
self::register(new Item(Item::DYE, 0, "Ink Sac"));
self::register(new CocoaBeans(Item::DYE, 3, "Cocoa Beans"));
self::register(new Item(Item::DYE, 4, "Lapis Lazuli"));
self::register(new Fertilizer(Item::DYE, 15, "Bone Meal"));
self::register(new RawMutton());
self::register(new RawPorkchop());
self::register(new RawRabbit());
self::register(new RawSalmon());
self::register(new Redstone());
self::register(new RottenFlesh());
self::register(new Shears());
self::register(new Shovel(Item::DIAMOND_SHOVEL, "Diamond Shovel", TieredTool::TIER_DIAMOND));
self::register(new Shovel(Item::GOLDEN_SHOVEL, "Gold Shovel", TieredTool::TIER_GOLD));
self::register(new Shovel(Item::IRON_SHOVEL, "Iron Shovel", TieredTool::TIER_IRON));
self::register(new Shovel(Item::STONE_SHOVEL, "Stone Shovel", TieredTool::TIER_STONE));
self::register(new Shovel(Item::WOODEN_SHOVEL, "Wooden Shovel", TieredTool::TIER_WOODEN));
self::register(new Sign());
self::register(new Snowball());
self::register(new SpiderEye());
self::register(new Steak());
self::register(new Stick());
self::register(new StringItem());
self::register(new Sword(Item::DIAMOND_SWORD, "Diamond Sword", TieredTool::TIER_DIAMOND));
self::register(new Sword(Item::GOLDEN_SWORD, "Gold Sword", TieredTool::TIER_GOLD));
self::register(new Sword(Item::IRON_SWORD, "Iron Sword", TieredTool::TIER_IRON));
self::register(new Sword(Item::STONE_SWORD, "Stone Sword", TieredTool::TIER_STONE));
self::register(new Sword(Item::WOODEN_SWORD, "Wooden Sword", TieredTool::TIER_WOODEN));
self::register(new Totem());
self::register(new WheatSeeds());
self::register(new WritableBook());
self::register(new WrittenBook());
/** @var int[]|\SplObjectStorage $dyeMap */
$dyeMap = new \SplObjectStorage();
@ -173,41 +249,11 @@ class ItemFactory{
self::register(new Bed($color->getMagicNumber(), $color->getDisplayName() . " Bed"));
self::register(new Banner($color->getInvertedMagicNumber(), $color->getDisplayName() . " Banner"));
}
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::register(new ItemBlock(Block::REPEATER_BLOCK, 0, Item::REPEATER));
self::register(new Cookie());
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::register(new Potion($type));
self::register(new SplashPotion($type));
}
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::register(new Item(Item::GLISTERING_MELON, 0, "Glistering Melon"));
foreach(EntityFactory::getKnownTypes() as $className){
/** @var Living|string $className */
@ -216,75 +262,6 @@ class ItemFactory{
}
}
self::register(new ExperienceBottle());
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::register(new GoldenCarrot());
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::register(new Item(Item::NETHER_STAR, 0, "Nether Star"));
self::register(new PumpkinPie());
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::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::register(new Item(Item::PRISMARINE_CRYSTALS, 0, "Prismarine Crystals"));
self::register(new RawMutton());
self::register(new CookedMutton());
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::register(new Item(Item::DRAGON_BREATH, 0, "Dragon's Breath"));
self::register(new Item(Item::SHULKER_SHELL, 0, "Shulker Shell"));
self::register(new Totem());
self::register(new Item(Item::BLEACH, 0, "Bleach")); //EDU
self::register(new Item(Item::IRON_NUGGET, 0, "Iron Nugget"));
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
//TODO: minecraft:balloon