From 1b820de08a05070909a267e17f033fcf58ac8710 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Mon, 2 Sep 2024 23:17:17 +0200 Subject: The Great Renaming (#3014) * move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names --- .../loaders/postload/BlockResistanceLoader.java | 43 + .../loaders/postload/BookAndLootLoader.java | 337 ++ .../loaders/postload/CraftingRecipeLoader.java | 2011 +++++++++ .../java/gregtech/loaders/postload/CropLoader.java | 1055 +++++ .../loaders/postload/FakeRecipeLoader.java | 23 + .../java/gregtech/loaders/postload/GTPostLoad.java | 537 +++ .../loaders/postload/GTWorldgenloader.java | 33 + .../loaders/postload/GT_BlockResistanceLoader.java | 43 - .../loaders/postload/GT_BookAndLootLoader.java | 369 -- .../loaders/postload/GT_CraftingRecipeLoader.java | 2013 --------- .../gregtech/loaders/postload/GT_CropLoader.java | 1055 ----- .../loaders/postload/GT_FakeRecipeLoader.java | 23 - .../postload/GT_ItemMaxStacksizeLoader.java | 138 - .../loaders/postload/GT_MachineRecipeLoader.java | 126 - .../loaders/postload/GT_MachineTooltipsLoader.java | 36 - .../loaders/postload/GT_MinableRegistrator.java | 16 - .../postload/GT_PCBFactoryMaterialLoader.java | 19 - .../gregtech/loaders/postload/GT_PostLoad.java | 542 --- .../postload/GT_ProcessingArrayRecipeLoader.java | 168 - .../postload/GT_RecyclerBlacklistLoader.java | 107 - .../loaders/postload/GT_ScrapboxDropLoader.java | 100 - .../loaders/postload/GT_Worldgenloader.java | 33 - .../loaders/postload/ItemMaxStacksizeLoader.java | 138 + .../loaders/postload/MachineRecipeLoader.java | 126 + .../loaders/postload/MachineTooltipsLoader.java | 36 + .../loaders/postload/MinableRegistrator.java | 16 + .../loaders/postload/PCBFactoryMaterialLoader.java | 19 + .../gregtech/loaders/postload/PartP2PGTPower.java | 6 +- .../loaders/postload/PosteaTransformers.java | 16 +- .../postload/ProcessingArrayRecipeLoader.java | 156 + .../loaders/postload/RecyclerBlacklistLoader.java | 107 + .../loaders/postload/ScrapboxDropLoader.java | 100 + .../postload/chains/BauxiteRefineChain.java | 297 ++ .../postload/chains/GT_BauxiteRefineChain.java | 297 -- .../loaders/postload/chains/GT_NaniteChain.java | 267 -- .../postload/chains/GT_PCBFactoryRecipes.java | 694 ---- .../postload/chains/GT_PurifiedWaterRecipes.java | 324 -- .../loaders/postload/chains/NaniteChain.java | 266 ++ .../loaders/postload/chains/PCBFactoryRecipes.java | 687 +++ .../postload/chains/PurifiedWaterRecipes.java | 320 ++ .../postload/recipes/AlloySmelterRecipes.java | 36 +- .../postload/recipes/ArcFurnaceRecipes.java | 292 +- .../loaders/postload/recipes/AssemblerRecipes.java | 4362 ++++++++++---------- .../postload/recipes/AssemblyLineRecipes.java | 441 +- .../loaders/postload/recipes/AutoclaveRecipes.java | 118 +- .../loaders/postload/recipes/BenderRecipes.java | 228 +- .../postload/recipes/BlastFurnaceRecipes.java | 235 +- .../loaders/postload/recipes/BreweryRecipes.java | 208 +- .../loaders/postload/recipes/CannerRecipes.java | 118 +- .../postload/recipes/CentrifugeRecipes.java | 452 +- .../postload/recipes/ChemicalBathRecipes.java | 205 +- .../loaders/postload/recipes/ChemicalRecipes.java | 2659 ++++++------ .../postload/recipes/CircuitAssemblerRecipes.java | 198 +- .../postload/recipes/CompressorRecipes.java | 129 +- .../postload/recipes/CropProcessingRecipes.java | 28 +- .../loaders/postload/recipes/CuttingRecipes.java | 48 +- .../postload/recipes/DistilleryRecipes.java | 378 +- .../postload/recipes/ElectrolyzerRecipes.java | 194 +- .../recipes/ElectromagneticSeparatorRecipes.java | 8 +- .../loaders/postload/recipes/ExtractorRecipes.java | 72 +- .../loaders/postload/recipes/ExtruderRecipes.java | 10 +- .../loaders/postload/recipes/FermenterRecipes.java | 86 +- .../postload/recipes/FluidCannerRecipes.java | 22 +- .../postload/recipes/FluidExtractorRecipes.java | 188 +- .../postload/recipes/FluidHeaterRecipes.java | 46 +- .../postload/recipes/FluidSolidifierRecipes.java | 170 +- .../postload/recipes/ForgeHammerRecipes.java | 60 +- .../postload/recipes/FormingPressRecipes.java | 76 +- .../loaders/postload/recipes/FuelRecipes.java | 82 +- .../postload/recipes/FusionReactorRecipes.java | 82 +- .../recipes/ImplosionCompressorRecipes.java | 42 +- .../postload/recipes/LaserEngraverRecipes.java | 16 +- .../loaders/postload/recipes/LatheRecipes.java | 22 +- .../postload/recipes/MatterAmplifierRecipes.java | 8 +- .../loaders/postload/recipes/MixerRecipes.java | 1077 +++-- .../loaders/postload/recipes/NEIHiding.java | 4 +- .../postload/recipes/OreDictUnification.java | 6 +- .../loaders/postload/recipes/PackagerRecipes.java | 28 +- .../postload/recipes/PlasmaForgeRecipes.java | 26 +- .../loaders/postload/recipes/PrinterRecipes.java | 24 +- .../loaders/postload/recipes/Pulverizer.java | 340 +- .../loaders/postload/recipes/PyrolyseRecipes.java | 70 +- .../loaders/postload/recipes/RecipeRemover.java | 118 +- .../loaders/postload/recipes/SifterRecipes.java | 18 +- .../loaders/postload/recipes/SlicerRecipes.java | 14 +- .../loaders/postload/recipes/SmelterRecipes.java | 64 +- .../postload/recipes/ThaumcraftRecipes.java | 908 ++-- .../postload/recipes/ThermalCentrifugeRecipes.java | 58 +- .../recipes/TranscendentPlasmaMixerRecipes.java | 38 +- .../postload/recipes/VacuumFreezerRecipes.java | 250 +- .../loaders/postload/recipes/WiremillRecipes.java | 20 +- 91 files changed, 13485 insertions(+), 13596 deletions(-) create mode 100644 src/main/java/gregtech/loaders/postload/BlockResistanceLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/BookAndLootLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/CraftingRecipeLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/CropLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/FakeRecipeLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/GTPostLoad.java create mode 100644 src/main/java/gregtech/loaders/postload/GTWorldgenloader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_CropLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_FakeRecipeLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_MachineTooltipsLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_PCBFactoryMaterialLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_PostLoad.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java delete mode 100644 src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java create mode 100644 src/main/java/gregtech/loaders/postload/ItemMaxStacksizeLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/MachineRecipeLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/MachineTooltipsLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/MinableRegistrator.java create mode 100644 src/main/java/gregtech/loaders/postload/PCBFactoryMaterialLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/ProcessingArrayRecipeLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/RecyclerBlacklistLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/ScrapboxDropLoader.java create mode 100644 src/main/java/gregtech/loaders/postload/chains/BauxiteRefineChain.java delete mode 100644 src/main/java/gregtech/loaders/postload/chains/GT_BauxiteRefineChain.java delete mode 100644 src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java delete mode 100644 src/main/java/gregtech/loaders/postload/chains/GT_PCBFactoryRecipes.java delete mode 100644 src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java create mode 100644 src/main/java/gregtech/loaders/postload/chains/NaniteChain.java create mode 100644 src/main/java/gregtech/loaders/postload/chains/PCBFactoryRecipes.java create mode 100644 src/main/java/gregtech/loaders/postload/chains/PurifiedWaterRecipes.java (limited to 'src/main/java/gregtech/loaders/postload') diff --git a/src/main/java/gregtech/loaders/postload/BlockResistanceLoader.java b/src/main/java/gregtech/loaders/postload/BlockResistanceLoader.java new file mode 100644 index 0000000000..264cd9e6b9 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/BlockResistanceLoader.java @@ -0,0 +1,43 @@ +package gregtech.loaders.postload; + +import java.util.Set; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemPickaxe; + +import gregtech.api.util.GTUtility; + +public class BlockResistanceLoader implements Runnable { + + @Override + @SuppressWarnings("unchecked") + public void run() { + Blocks.stone.setResistance(10.0F); + Blocks.cobblestone.setResistance(10.0F); + Blocks.stonebrick.setResistance(10.0F); + Blocks.brick_block.setResistance(20.0F); + Blocks.hardened_clay.setResistance(15.0F); + Blocks.stained_hardened_clay.setResistance(15.0F); + + Blocks.bed.setHarvestLevel("axe", 0); + Blocks.hay_block.setHarvestLevel("axe", 0); + Blocks.tnt.setHarvestLevel("pickaxe", 0); + Blocks.sponge.setHarvestLevel("axe", 0); + Blocks.monster_egg.setHarvestLevel("pickaxe", 0); + + GTUtility.callMethod(Material.tnt, "func_85158_p", true, false, false); + GTUtility.callMethod(Material.tnt, "setAdventureModeExempt", true, false, false); + + Set tSet = (Set) GTUtility.getFieldContent(ItemAxe.class, "field_150917_c", true, true); + tSet.add(Blocks.bed); + tSet.add(Blocks.hay_block); + tSet.add(Blocks.sponge); + + tSet = (Set) GTUtility.getFieldContent(ItemPickaxe.class, "field_150915_c", true, true); + tSet.add(Blocks.monster_egg); + tSet.add(Blocks.tnt); + } +} diff --git a/src/main/java/gregtech/loaders/postload/BookAndLootLoader.java b/src/main/java/gregtech/loaders/postload/BookAndLootLoader.java new file mode 100644 index 0000000000..e227d7f21a --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/BookAndLootLoader.java @@ -0,0 +1,337 @@ +package gregtech.loaders.postload; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandomChestContent; +import net.minecraftforge.common.ChestGenHooks; + +import gregtech.GTMod; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GTLog; +import gregtech.api.util.GTOreDictUnificator; + +public class BookAndLootLoader implements Runnable { + + @Override + public void run() { + GTLog.out.println("GTMod: Adding worldgenerated Chest Content."); + if (GTMod.gregtechproxy.mIncreaseDungeonLoot) { + ChestGenHooks tChest = ChestGenHooks.getInfo("bonusChest"); + tChest.setMax(tChest.getMax() + 8); + tChest.setMin(tChest.getMin() + 4); + tChest = ChestGenHooks.getInfo("dungeonChest"); + tChest.setMax(tChest.getMax() + 6); + tChest.setMin(tChest.getMin() + 3); + tChest = ChestGenHooks.getInfo("pyramidDesertyChest"); + tChest.setMax(tChest.getMax() + 8); + tChest.setMin(tChest.getMin() + 4); + tChest = ChestGenHooks.getInfo("pyramidJungleChest"); + tChest.setMax(tChest.getMax() + 16); + tChest.setMin(tChest.getMin() + 8); + tChest = ChestGenHooks.getInfo("pyramidJungleDispenser"); + tChest.setMax(tChest.getMax() + 2); + tChest.setMin(tChest.getMin() + 1); + tChest = ChestGenHooks.getInfo("mineshaftCorridor"); + tChest.setMax(tChest.getMax() + 4); + tChest.setMin(tChest.getMin() + 2); + tChest = ChestGenHooks.getInfo("villageBlacksmith"); + tChest.setMax(tChest.getMax() + 12); + tChest.setMin(tChest.getMin() + 6); + tChest = ChestGenHooks.getInfo("strongholdCrossing"); + tChest.setMax(tChest.getMax() + 8); + tChest.setMin(tChest.getMin() + 4); + tChest = ChestGenHooks.getInfo("strongholdCorridor"); + tChest.setMax(tChest.getMax() + 6); + tChest.setMin(tChest.getMin() + 3); + tChest = ChestGenHooks.getInfo("strongholdLibrary"); + tChest.setMax(tChest.getMax() + 16); + tChest.setMin(tChest.getMin() + 8); + } + ChestGenHooks + .addItem("bonusChest", new WeightedRandomChestContent(ItemList.Bottle_Purple_Drink.get(1L), 8, 16, 2)); + + ChestGenHooks + .addItem("dungeonChest", new WeightedRandomChestContent(ItemList.Bottle_Holy_Water.get(1L), 4, 8, 20)); + ChestGenHooks + .addItem("dungeonChest", new WeightedRandomChestContent(ItemList.Bottle_Purple_Drink.get(1L), 8, 16, 80)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), + 1, + 6, + 120)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), 1, 6, 30)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 1, 6, 60)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 1, 6, 60)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Manganese, 1L), + 1, + 6, + 60)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.ingot, Materials.DamascusSteel, 1L), + 1, + 6, + 10)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), 1, 6, 20)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 1, 6, 20)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 1, 6, 20)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), + 1, + 6, + 20)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 1, 6, 20)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), + 1, + 6, + 40)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), + 1, + 6, + 40)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.dust, Materials.Neodymium, 1L), + 1, + 6, + 40)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L), 1, 3, 40)); + + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent(ItemList.Bottle_Holy_Water.get(1L), 4, 8, 2)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), + 4, + 16, + 12)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Platinum, 1L), + 2, + 8, + 4)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), + 2, + 8, + 2)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 2, 8, 4)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), + 2, + 8, + 4)); + + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent(ItemList.Coin_Gold_Ancient.get(1L), 16, 64, 10)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent(ItemList.ZPM.getWithCharge(1L, 2147483647), 1, 1, 1)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), + 4, + 16, + 12)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), + 2, + 8, + 2)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 2, 8, 4)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), + 2, + 8, + 4)); + + ChestGenHooks.addItem( + "pyramidJungleDispenser", + new WeightedRandomChestContent(new ItemStack(Items.fire_charge, 1), 2, 8, 30)); + + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), 1, 4, 12)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), 1, 4, 3)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 1, 4, 6)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 1, 4, 6)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 1, 4, 2)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), + 1, + 4, + 2)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 1, 4, 2)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 1, 4, 4)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), + 1, + 4, + 4)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 1, 4, 2)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), 1, 4, 2)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.DamascusSteel, 1L), + 1, + 4, + 1)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.DamascusSteel, 1L), + 1, + 4, + 1)); + + ChestGenHooks + .addItem("villageBlacksmith", new WeightedRandomChestContent(ItemList.McGuffium_239.get(1L), 1, 1, 1)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L), 1, 4, 6)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.dust, Materials.Neodymium, 1L), + 2, + 8, + 6)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Manganese, 1L), + 2, + 8, + 12)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 4, 12, 12)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), + 4, + 12, + 12)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Brass, 1L), 4, 12, 12)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.ingot, Materials.DamascusSteel, 1L), + 4, + 12, + 1)); + + ChestGenHooks + .addItem("strongholdCrossing", new WeightedRandomChestContent(ItemList.Bottle_Holy_Water.get(1L), 4, 8, 6)); + ChestGenHooks + .addItem("strongholdCrossing", new WeightedRandomChestContent(ItemList.McGuffium_239.get(1L), 1, 1, 10)); + + ChestGenHooks.addItem( + "strongholdCorridor", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.DamascusSteel, 1L), + 1, + 4, + 6)); + ChestGenHooks.addItem( + "strongholdCorridor", + new WeightedRandomChestContent( + GTOreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.DamascusSteel, 1L), + 1, + 4, + 6)); + } +} diff --git a/src/main/java/gregtech/loaders/postload/CraftingRecipeLoader.java b/src/main/java/gregtech/loaders/postload/CraftingRecipeLoader.java new file mode 100644 index 0000000000..ae41a07e97 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/CraftingRecipeLoader.java @@ -0,0 +1,2011 @@ +package gregtech.loaders.postload; + +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.GraviSuite; +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.enums.Mods.NotEnoughItems; +import static gregtech.api.util.GTModHandler.getModItem; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import bartworks.system.material.WerkstoffLoader; +import gregtech.GTMod; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GTValues; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OreDictNames; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.ToolDictNames; +import gregtech.api.util.GTLog; +import gregtech.api.util.GTModHandler; +import gregtech.api.util.GTOreDictUnificator; +import gregtech.api.util.GTUtility; +import ic2.core.Ic2Items; + +public class CraftingRecipeLoader implements Runnable { + + private static final String aTextIron1 = "X X"; + private static final String aTextIron2 = "XXX"; + private static final long bits_no_remove_buffered = GTModHandler.RecipeBits.NOT_REMOVABLE + | GTModHandler.RecipeBits.BUFFERED; + private static final long bits = GTModHandler.RecipeBits.NOT_REMOVABLE | GTModHandler.RecipeBits.REVERSIBLE + | GTModHandler.RecipeBits.BUFFERED; + private static final String aTextPlateWrench = "PwP"; + + @Override + public void run() { + GTLog.out.println("GTMod: Adding nerfed Vanilla Recipes."); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.bucket, 1), + bits_no_remove_buffered | GTModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "XhX", " X ", 'X', OrePrefixes.plate.get(Materials.AnyIron) }); + ItemStack tMat = new ItemStack(Items.iron_ingot); + { + ItemStack tStack; + if (null != (tStack = GTModHandler.removeRecipe(tMat, tMat, null, null, null, null, null, null, null))) { + GTModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GTModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, + new Object[] { "ShS", "XZX", "SdS", 'X', OrePrefixes.plate.get(Materials.AnyIron), 'S', + OrePrefixes.screw.get(Materials.Steel), 'Z', OrePrefixes.spring.get(Materials.Steel) }); + } + } + { + ItemStack tStack; + if (null != (tStack = GTModHandler.removeRecipe(tMat, tMat, null, tMat, tMat, null, tMat, tMat, null))) { + GTModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GTModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, + new Object[] { "XX ", "XXh", "XX ", 'X', OrePrefixes.plate.get(Materials.AnyIron), 'S', + OrePrefixes.stick.get(Materials.Wood), 'I', OrePrefixes.ingot.get(Materials.AnyIron) }); + } + } + { + ItemStack tStack; + if (null != (tStack = GTModHandler.removeRecipe(tMat, null, tMat, tMat, null, tMat, tMat, tMat, tMat))) { + GTModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GTModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, + new Object[] { aTextIron1, "XhX", aTextIron2, 'X', OrePrefixes.plate.get(Materials.AnyIron), 'S', + OrePrefixes.stick.get(Materials.Wood), 'I', OrePrefixes.ingot.get(Materials.AnyIron) }); + } + } + { + ItemStack tStack; + if (null != (tStack = GTModHandler + .removeRecipe(tMat, null, tMat, tMat, new ItemStack(Blocks.chest, 1, 0), tMat, null, tMat, null))) { + GTModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GTModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, + new Object[] { "XwX", "XCX", " X ", 'X', OrePrefixes.plate.get(Materials.AnyIron), 'S', + OrePrefixes.stick.get(Materials.Wood), 'I', OrePrefixes.ingot.get(Materials.AnyIron), 'C', + "craftingChest" }); + } + } + { + ItemStack tStack; + if (null != (tStack = GTModHandler.removeRecipe(tMat, tMat, tMat, tMat, tMat, tMat, null, null, null))) { + tStack.stackSize /= 2; + GTModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GTModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, + new Object[] { " w ", aTextIron2, aTextIron2, 'X', OrePrefixes.stick.get(Materials.AnyIron), 'S', + OrePrefixes.stick.get(Materials.Wood), 'I', OrePrefixes.ingot.get(Materials.AnyIron) }); + } + } + + GTModHandler.addCraftingRecipe( + GTModHandler.getIC2Item("ironFence", 6L), + bits_no_remove_buffered | GTModHandler.RecipeBits.REVERSIBLE, + new Object[] { aTextIron2, aTextIron2, " w ", 'X', OrePrefixes.stick.get(Materials.AnyIron), 'S', + OrePrefixes.stick.get(Materials.Wood), 'I', OrePrefixes.ingot.get(Materials.AnyIron) }); + + tMat = new ItemStack(Items.gold_ingot); + { + ItemStack tStack; + if (null != (tStack = GTModHandler.removeRecipe(tMat, tMat, null, null, null, null, null, null, null))) { + GTModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GTModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, + new Object[] { "ShS", "XZX", "SdS", 'X', OrePrefixes.plate.get(Materials.Gold), 'S', + OrePrefixes.screw.get(Materials.Steel), 'Z', OrePrefixes.spring.get(Materials.Steel) }); + } + } + tMat = GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1L); + { + ItemStack tStack; + if (null != (tStack = GTModHandler.removeRecipe(tMat, tMat, tMat, tMat, tMat, tMat, null, null, null))) { + GTModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GTModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, + new Object[] { aTextIron2, aTextIron2, 'X', OrePrefixes.plate.get(Materials.Rubber) }); + } + } + GTModHandler.removeRecipeByOutputDelayed(ItemList.Bottle_Empty.get(1L)); + GTModHandler.removeRecipeByOutputDelayed(ItemList.IC2_Spray_WeedEx.get(1L)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getIC2Item("reBattery", 1L)); + GTModHandler.removeRecipeByOutputDelayed(new ItemStack(Blocks.tnt)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getIC2Item("dynamite", 1L)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getIC2Item("industrialTnt", 1L)); + + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "stamps", 1L, 0)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "stamps", 1L, 1)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "stamps", 1L, 2)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "stamps", 1L, 3)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "stamps", 1L, 4)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "stamps", 1L, 5)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "stamps", 1L, 6)); + + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "engine", 1L, 0)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "engine", 1L, 1)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "engine", 1L, 2)); + GTModHandler.removeRecipeByOutputDelayed(GTModHandler.getModItem(Forestry.ID, "engine", 1L, 4)); + + ItemStack tStack = GTModHandler + .removeRecipe(new ItemStack(Blocks.planks, 1, 0), null, null, new ItemStack(Blocks.planks, 1, 0)); + if (tStack != null) { + GTModHandler.addCraftingRecipe( + GTUtility.copyAmount( + GTMod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, + tStack), + bits_no_remove_buffered, + new Object[] { "s", "P", "P", 'P', OrePrefixes.plank.get(Materials.Wood) }); + GTModHandler.addCraftingRecipe( + GTUtility + .copyAmount(GTMod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize / 2 : tStack.stackSize, tStack), + bits_no_remove_buffered, + new Object[] { "P", "P", 'P', OrePrefixes.plank.get(Materials.Wood) }); + } + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.stone_button, 2, 0), + bits_no_remove_buffered, + new Object[] { "S", "S", 'S', OrePrefixes.stone }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.stone_button, 1, 0), + bits_no_remove_buffered, + new Object[] { OrePrefixes.stone }); + + GTLog.out.println("GTMod: Adding Vanilla Convenience Recipes."); + + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.stonebrick, 1, 3), + bits_no_remove_buffered, + new Object[] { "f", "X", 'X', new ItemStack(Blocks.double_stone_slab, 1, 8) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.gravel, 1, 0), + bits_no_remove_buffered, + new Object[] { "h", "X", 'X', new ItemStack(Blocks.cobblestone, 1, 0) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.sand, 1, 0), + bits_no_remove_buffered, + new Object[] { "h", "X", 'X', new ItemStack(Blocks.gravel, 1, 0) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.cobblestone, 1, 0), + bits_no_remove_buffered, + new Object[] { "h", "X", 'X', new ItemStack(Blocks.stone, 1, 0) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.stonebrick, 1, 2), + bits_no_remove_buffered, + new Object[] { "h", "X", 'X', new ItemStack(Blocks.stonebrick, 1, 0) }); + + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.double_stone_slab, 1, 8), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.double_stone_slab, 1, 0) }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.double_stone_slab, 1, 0), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.double_stone_slab, 1, 8) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.double_stone_slab, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 0) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.cobblestone, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 3) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.brick_block, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 4) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.stonebrick, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 5) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.nether_brick, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 6) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.quartz_block, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 7) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.double_stone_slab, 1, 8), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 8) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 0) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 1), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 1) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 2), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 2) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 3), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 3) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 4), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 4) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 5), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 5) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 6), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 6) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 7), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 7) }); + + GTModHandler.addCraftingRecipe( + new ItemStack(Items.stick, 2, 0), + bits_no_remove_buffered, + new Object[] { "s", "X", 'X', new ItemStack(Blocks.deadbush, 1, 32767) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.stick, 2, 0), + bits_no_remove_buffered, + new Object[] { "s", "X", 'X', new ItemStack(Blocks.tallgrass, 1, 0) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.stick, 1, 0), + bits_no_remove_buffered, + new Object[] { "s", "X", 'X', OrePrefixes.treeSapling }); + + GTModHandler.addCraftingRecipe( + new ItemStack(Items.comparator, 1, 0), + bits_no_remove_buffered, + new Object[] { " T ", "TQT", "SSS", 'Q', OreDictNames.craftingQuartz, 'S', OrePrefixes.stoneSmooth, 'T', + OreDictNames.craftingRedstoneTorch }); + + GTLog.out.println("GTMod: Adding Tool Recipes."); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.minecart, 1), + bits_no_remove_buffered | GTModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { " h ", "PwP", "WPW", 'P', OrePrefixes.plate.get(Materials.AnyIron), 'W', + ItemList.Component_Minecart_Wheels_Iron }); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.minecart, 1), + bits_no_remove_buffered, + new Object[] { " h ", "PwP", "WPW", 'P', OrePrefixes.plate.get(Materials.Steel), 'W', + ItemList.Component_Minecart_Wheels_Steel }); + + GTModHandler.addCraftingRecipe( + new ItemStack(Items.chest_minecart, 1), + bits_no_remove_buffered | GTModHandler.RecipeBits.REVERSIBLE + | GTModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "X", "C", 'C', new ItemStack(Items.minecart, 1), 'X', OreDictNames.craftingChest }); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.furnace_minecart, 1), + bits_no_remove_buffered | GTModHandler.RecipeBits.REVERSIBLE + | GTModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "X", "C", 'C', new ItemStack(Items.minecart, 1), 'X', OreDictNames.craftingFurnace }); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.hopper_minecart, 1), + bits_no_remove_buffered | GTModHandler.RecipeBits.REVERSIBLE + | GTModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "X", "C", 'C', new ItemStack(Items.minecart, 1), 'X', + new ItemStack(Blocks.hopper, 1, 32767) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.tnt_minecart, 1), + bits_no_remove_buffered | GTModHandler.RecipeBits.REVERSIBLE + | GTModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "X", "C", 'C', new ItemStack(Items.minecart, 1), 'X', new ItemStack(Blocks.tnt, 1, 32767) }); + + GTModHandler.addCraftingRecipe( + new ItemStack(Items.chainmail_helmet, 1), + bits_no_remove_buffered | GTModHandler.RecipeBits.REVERSIBLE + | GTModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "RRR", "RhR", 'R', OrePrefixes.ring.get(Materials.Steel) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.chainmail_chestplate, 1), + bits_no_remove_buffered | GTModHandler.RecipeBits.REVERSIBLE + | GTModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "RhR", "RRR", "RRR", 'R', OrePrefixes.ring.get(Materials.Steel) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.chainmail_leggings, 1), + bits_no_remove_buffered | GTModHandler.RecipeBits.REVERSIBLE + | GTModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "RRR", "RhR", "R R", 'R', OrePrefixes.ring.get(Materials.Steel) }); + GTModHandler.addCraftingRecipe( + new ItemStack(Items.chainmail_boots, 1), + bits_no_remove_buffered | GTModHandler.RecipeBits.REVERSIBLE + | GTModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "R R", "RhR", 'R', OrePrefixes.ring.get(Materials.Steel) }); + + GTLog.out.println("GTMod: Adding Wool and Color releated Recipes."); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 1), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeOrange }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 2), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeMagenta }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 3), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLightBlue }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 4), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeYellow }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 5), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLime }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 6), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyePink }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 7), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeGray }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 8), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLightGray }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 9), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeCyan }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 10), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyePurple }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 11), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBlue }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 12), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBrown }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 13), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeGreen }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 14), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeRed }); + GTModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 15), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBlack }); + + GTModHandler.addCraftingRecipe( + new ItemStack(Blocks.stained_glass, 8, 0), + bits_no_remove_buffered, + new Object[] { "GGG", "GDG", "GGG", 'G', new ItemStack(Blocks.glass, 1), 'D', Dyes.dyeWhite }); + + GTLog.out.println("GTMod: Putting a Potato on a Stick."); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Packaged_PotatoChips.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.foil.get(Materials.Aluminium), ItemList.Food_PotatoChips }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Packaged_ChiliChips.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.foil.get(Materials.Aluminium), ItemList.Food_ChiliChips }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Packaged_Fries.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.plateDouble.get(Materials.Paper), ItemList.Food_Fries }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Chum_On_Stick.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Chum }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Potato_On_Stick.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Raw_Potato }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Potato_On_Stick_Roasted.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Baked_Potato }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Dough.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.bucket.get(Materials.Water), OrePrefixes.dust.get(Materials.Wheat) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Dough_Sugar.get(2L), + bits_no_remove_buffered, + new Object[] { "foodDough", OrePrefixes.dust.get(Materials.Sugar) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Dough_Chocolate.get(2L), + bits_no_remove_buffered, + new Object[] { "foodDough", OrePrefixes.dust.get(Materials.Cocoa) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Dough_Chocolate.get(2L), + bits_no_remove_buffered, + new Object[] { "foodDough", OrePrefixes.dust.get(Materials.Chocolate) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Flat_Dough.get(1L), + bits_no_remove_buffered, + new Object[] { "foodDough", ToolDictNames.craftingToolRollingPin }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Bun.get(1L), + bits_no_remove_buffered, + new Object[] { "foodDough" }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Bread.get(1L), + bits_no_remove_buffered, + new Object[] { "foodDough", "foodDough" }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Baguette.get(1L), + bits_no_remove_buffered, + new Object[] { "foodDough", "foodDough", "foodDough" }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Cake.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Dough_Sugar, ItemList.Food_Dough_Sugar, ItemList.Food_Dough_Sugar, + ItemList.Food_Dough_Sugar }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_ChiliChips.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_PotatoChips, OrePrefixes.dust.get(Materials.Chili) }); + + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Buns.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Breads.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Baguettes.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Bun.get(2L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Buns }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Bread.get(2L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Breads }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Baguette.get(2L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguettes }); + + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Veggie.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Buns, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, + ItemList.Food_Sliced_Onion }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Cheese.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Buns, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, + ItemList.Food_Sliced_Cheese }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Meat.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Buns, OrePrefixes.dust.get(Materials.MeatCooked) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Chum.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Buns, ItemList.Food_Chum }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Veggie.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Cucumber, + ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Cheese.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Cheese, + ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Meat.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, + OrePrefixes.dust.get(Materials.MeatCooked) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Chum.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, ItemList.Food_Chum }); + + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sandwich_Veggie.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Breads, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, + ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sandwich_Cheese.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Breads, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, + ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sandwich_Bacon.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Breads, new ItemStack(Items.cooked_porkchop, 1) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sandwich_Steak.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Breads, new ItemStack(Items.cooked_beef, 1) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sandwich_Veggie.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Cucumber, + ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, + ItemList.Food_Sliced_Onion }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sandwich_Cheese.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Cheese, + ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, + ItemList.Food_Sliced_Cheese }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sandwich_Bacon.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, + new ItemStack(Items.cooked_porkchop, 1) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sandwich_Steak.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, + new ItemStack(Items.cooked_beef, 1) }); + + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Large_Sandwich_Veggie.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguettes, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, + ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, + ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Large_Sandwich_Cheese.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguettes, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, + ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, + ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Large_Sandwich_Bacon.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguettes, new ItemStack(Items.cooked_porkchop, 1), + new ItemStack(Items.cooked_porkchop, 1) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Large_Sandwich_Steak.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguettes, new ItemStack(Items.cooked_beef, 1), + new ItemStack(Items.cooked_beef, 1) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Large_Sandwich_Veggie.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Cucumber, + ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, + ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Large_Sandwich_Cheese.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Cheese, + ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, + ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Large_Sandwich_Bacon.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, + new ItemStack(Items.cooked_porkchop, 1), new ItemStack(Items.cooked_porkchop, 1) }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Large_Sandwich_Steak.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, + new ItemStack(Items.cooked_beef, 1), new ItemStack(Items.cooked_beef, 1) }); + + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Pizza_Veggie.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Flat_Dough, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, + ItemList.Food_Sliced_Onion }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Pizza_Cheese.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Flat_Dough, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, + ItemList.Food_Sliced_Cheese }); + GTModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Pizza_Meat.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Flat_Dough, OrePrefixes.dust.get(Materials.MeatCooked) }); + + GTModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Cheese.get(4L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', "foodCheese" }); + GTModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Lemon.get(4L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', "cropLemon" }); + GTModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Tomato.get(4L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', "cropTomato" }); + GTModHandler.addCraftingRecipe( +