diff options
Diffstat (limited to 'src/main/java/gregtech/loaders')
145 files changed, 67768 insertions, 0 deletions
diff --git a/src/main/java/gregtech/loaders/ExtraIcons.java b/src/main/java/gregtech/loaders/ExtraIcons.java new file mode 100644 index 0000000000..e682ec6046 --- /dev/null +++ b/src/main/java/gregtech/loaders/ExtraIcons.java @@ -0,0 +1,46 @@ +package gregtech.loaders; + +import static gregtech.api.enums.Mods.GregTech; + +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.util.IIcon; +import net.minecraftforge.client.event.TextureStitchEvent; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class ExtraIcons { + + private static final String LARGE_FLUID_CELL_CUSTOM = "large_fluid_cell_custom"; + public static IIcon steelLargeCellInner; + public static IIcon aluminiumLargeCellInner; + public static IIcon stainlesssteelLargeCellInner; + public static IIcon tungstensteelLargeCellInner; + public static IIcon titaniumLargeCellInner; + public static IIcon chromiumLargeCellInner; + public static IIcon iridiumLargeCellInner; + public static IIcon osmiumLargeCellInner; + public static IIcon neutroniumLargeCellInner; + + @SubscribeEvent + public void regIcons(TextureStitchEvent.Pre event) { + TextureMap reg = event.map; + if (reg.getTextureType() == 1) { // are for items + steelLargeCellInner = reg.registerIcon(GregTech.getResourcePath(LARGE_FLUID_CELL_CUSTOM, "steel_inner")); + aluminiumLargeCellInner = reg + .registerIcon(GregTech.getResourcePath(LARGE_FLUID_CELL_CUSTOM, "aluminium_inner")); + stainlesssteelLargeCellInner = reg + .registerIcon(GregTech.getResourcePath(LARGE_FLUID_CELL_CUSTOM, "stainlesssteel_inner")); + tungstensteelLargeCellInner = reg + .registerIcon(GregTech.getResourcePath(LARGE_FLUID_CELL_CUSTOM, "tungstensteel_inner")); + titaniumLargeCellInner = reg + .registerIcon(GregTech.getResourcePath(LARGE_FLUID_CELL_CUSTOM, "titanium_inner")); + chromiumLargeCellInner = reg + .registerIcon(GregTech.getResourcePath(LARGE_FLUID_CELL_CUSTOM, "chromium_inner")); + iridiumLargeCellInner = reg + .registerIcon(GregTech.getResourcePath(LARGE_FLUID_CELL_CUSTOM, "iridium_inner")); + osmiumLargeCellInner = reg.registerIcon(GregTech.getResourcePath(LARGE_FLUID_CELL_CUSTOM, "osmium_inner")); + neutroniumLargeCellInner = reg + .registerIcon(GregTech.getResourcePath(LARGE_FLUID_CELL_CUSTOM, "neutronium_inner")); + } + } +} diff --git a/src/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java b/src/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java new file mode 100644 index 0000000000..37f626ef90 --- /dev/null +++ b/src/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java @@ -0,0 +1,11 @@ +package gregtech.loaders.load; + +import gregtech.api.util.GT_Log; + +public class GT_CoverBehaviorLoader implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Adding Cover Behaviors"); + } +} diff --git a/src/main/java/gregtech/loaders/load/GT_FuelLoader.java b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java new file mode 100644 index 0000000000..0343362c77 --- /dev/null +++ b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java @@ -0,0 +1,180 @@ +package gregtech.loaders.load; + +import static gregtech.api.enums.Mods.BloodMagic; +import static gregtech.api.enums.Mods.EnderIO; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.FluidState; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.fluid.GT_FluidFactory; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_RecipeConstants; + +public class GT_FuelLoader implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Initializing various Fuels."); + ItemList.sBlueVitriol = GT_FluidFactory + .of("solution.bluevitriol", "Blue Vitriol water solution", null, FluidState.LIQUID, 295); + ItemList.sNickelSulfate = GT_FluidFactory + .of("solution.nickelsulfate", "Nickel sulfate water solution", null, FluidState.LIQUID, 295); + ItemList.sGreenVitriol = GT_FluidFactory + .of("solution.greenvitriol", "Green Vitriol water solution", null, FluidState.LIQUID, 295); + ItemList.sIndiumConcentrate = GT_FluidFactory + .of("indiumconcentrate", "Indium Concentrate", null, FluidState.LIQUID, 295); // TODO CHECK NEW x3 + ItemList.sLeadZincSolution = GT_FluidFactory + .of("leadzincsolution", "Lead-Zinc solution", null, FluidState.LIQUID, 295); + ItemList.sRocketFuel = GT_FluidFactory.of("rocket_fuel", "Rocket Fuel", null, FluidState.LIQUID, 295); + new GT_Recipe( + new ItemStack(Items.lava_bucket), + new ItemStack(Blocks.obsidian), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Electrum, 1L), + 30, + 2); + + RecipeMaps.smallNaquadahReactorFuels.addRecipe( + true, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.NaquadahEnriched, 1L) }, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Naquadah, 1L) }, + null, + null, + null, + 0, + 0, + 50000); + RecipeMaps.largeNaquadahReactorFuels.addRecipe( + true, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, Materials.NaquadahEnriched, 1L) }, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Naquadah, 1L) }, + null, + null, + null, + 0, + 0, + 250000); + RecipeMaps.hugeNaquadahReactorFuels.addRecipe( + true, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.NaquadahEnriched, 1L) }, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Naquadah, 1L) }, + null, + null, + null, + 0, + 0, + 500000); + RecipeMaps.extremeNaquadahReactorFuels.addRecipe( + true, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Naquadria, 1L) }, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Naquadah, 1L) }, + null, + null, + null, + 0, + 0, + 250000); + RecipeMaps.ultraHugeNaquadahReactorFuels.addRecipe( + true, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Naquadria, 1L) }, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Naquadah, 1L) }, + null, + null, + null, + 0, + 0, + 1000000); + RecipeMaps.fluidNaquadahReactorFuels.addRecipe( + true, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NaquadahEnriched, 1L) }, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Naquadah, 1L) }, + null, + null, + null, + 0, + 0, + 1400000); + + // BloodMagic + RecipeMaps.magicFuels.addRecipe( + true, + new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "reinforcedSlate", 1L) }, + new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "blankSlate", 1L) }, + null, + null, + null, + 0, + 0, + 400); + RecipeMaps.magicFuels.addRecipe( + true, + new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "imbuedSlate", 1L) }, + new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "reinforcedSlate", 1L) }, + null, + null, + null, + 0, + 0, + 1000); + RecipeMaps.magicFuels.addRecipe( + true, + new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "demonicSlate", 1L) }, + new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "imbuedSlate", 1L) }, + null, + null, + null, + 0, + 0, + 8000); + RecipeMaps.magicFuels.addRecipe( + true, + new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "bloodMagicBaseItems", 1L, 27) }, + new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "demonicSlate", 1L) }, + null, + null, + null, + 0, + 0, + 20000); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1L, 4)) + .metadata(FUEL_VALUE, 4) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.experience_bottle, 1)) + .metadata(FUEL_VALUE, 10) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.ghast_tear, 1)) + .metadata(FUEL_VALUE, 50) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.beacon, 1)) + .metadata(FUEL_VALUE, Materials.NetherStar.mFuelPower * 2) + .metadata(FUEL_TYPE, Materials.NetherStar.mFuelType) + .addTo(GT_RecipeConstants.Fuel); + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getModItem(EnderIO.ID, "bucketRocket_fuel", 1)) + .metadata(FUEL_VALUE, 250) + .metadata(FUEL_TYPE, 1) + .addTo(GT_RecipeConstants.Fuel); + } +} diff --git a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java new file mode 100644 index 0000000000..26534f5414 --- /dev/null +++ b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java @@ -0,0 +1,309 @@ +package gregtech.loaders.load; + +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.WILDCARD; +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.IFluidContainerItem; + +import buildcraft.api.tools.IToolWrench; +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OreDictNames; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.items.GT_Generic_Item; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_RecipeConstants; +import gregtech.api.util.GT_Utility; +import mods.railcraft.api.core.items.IToolCrowbar; + +public class GT_ItemIterator implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Scanning for certain kinds of compatible Machineblocks."); + ItemStack tStack2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L); + ItemStack tStack = GT_ModHandler + .getRecipeOutput(tStack2, tStack2, tStack2, tStack2, null, tStack2, tStack2, tStack2, tStack2); + + if (null != tStack) { + GT_Values.RA.stdBuilder() + .itemInputs(tStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 8L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_ModHandler.addSmeltingRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 8L)); + } + tStack2 = GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Bronze, 1L); + tStack = GT_ModHandler + .getRecipeOutput(tStack2, tStack2, tStack2, tStack2, null, tStack2, tStack2, tStack2, tStack2); + + if (null != tStack) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingRawMachineTier00, tStack); + + GT_Values.RA.stdBuilder() + .itemInputs(tStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 8L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + GT_ModHandler.addSmeltingRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 8L)); + } + + ItemStack tStack3 = new ItemStack(Blocks.glass, 1, 0); + tStack2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L); + tStack = GT_ModHandler.getRecipeOutput( + tStack2, + tStack3, + tStack2, + tStack3, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 1L), + tStack3, + tStack2, + tStack3, + tStack2); + + if (null != (tStack)) { + GT_Values.RA.stdBuilder() + .itemInputs(tStack) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L)) + .outputChances(10000, 1000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } + + tStack2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L); + tStack3 = new ItemStack(Blocks.glass, 1, 0); + tStack = GT_ModHandler.getRecipeOutput( + tStack2, + tStack3, + tStack2, + tStack3, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 1L), + tStack3, + tStack2, + tStack3, + tStack2); + if (null != tStack) { + GT_Values.RA.stdBuilder() + .itemInputs(tStack) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L)) + .outputChances(10000, 1000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } + GT_Log.out.println("GT_Mod: Registering various Tools to be usable on GregTech Machines"); + GregTech_API.registerScrewdriver( + GT_ModHandler + .getRecipeOutput(null, new ItemStack(Items.iron_ingot, 1), null, new ItemStack(Items.stick, 1))); + GregTech_API.registerScrewdriver( + GT_ModHandler + .getRecipeOutput(new ItemStack(Items.iron_ingot, 1), null, null, null, new ItemStack(Items.stick, 1))); + + GT_Log.out.println( + "GT_Mod: Adding Food Recipes to the Automatic Canning Machine. (also during the following Item Iteration)"); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.rotten_flesh, 2, WILDCARD), ItemList.IC2_Food_Can_Empty.get(1L)) + .itemOutputs(ItemList.IC2_Food_Can_Spoiled.get(1L)) + .duration(10 * SECONDS) + .eut(1) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.spider_eye, 2, WILDCARD), ItemList.IC2_Food_Can_Empty.get(1L)) + .itemOutputs(ItemList.IC2_Food_Can_Spoiled.get(1L)) + .duration(5 * SECONDS) + .eut(1) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Poisonous_Potato.get(2L), ItemList.IC2_Food_Can_Empty.get(1L)) + .itemOutputs(ItemList.IC2_Food_Can_Spoiled.get(1L)) + .duration(5 * SECONDS) + .eut(1) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.cake, 1, WILDCARD), ItemList.IC2_Food_Can_Empty.get(12L)) + .itemOutputs(ItemList.IC2_Food_Can_Filled.get(12L)) + .duration(30 * SECONDS) + .eut(1) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.mushroom_stew, 1, WILDCARD), ItemList.IC2_Food_Can_Empty.get(6L)) + .itemOutputs(ItemList.IC2_Food_Can_Filled.get(6L), new ItemStack(Items.bowl, 1)) + .duration(15 * SECONDS) + .eut(1) + .addTo(cannerRecipes); + + GT_Log.out.println("GT_Mod: Scanning ItemList."); + + try { + /* (tName.equals("tile.sedimentaryStone")) || **/ + for (Object o : Item.itemRegistry) { + Object tObject; + + if (!(((tObject = o) instanceof Item) && (!(tObject instanceof GT_Generic_Item)))) { + continue; + } + + Item tItem = (Item) tObject; + String tName; + if ((tName = tItem.getUnlocalizedName()) == null) { + continue; + } + + if ((tItem instanceof IToolCrowbar)) { + if ((tItem.isDamageable()) || (GT_ModHandler.isElectricItem(new ItemStack(tItem, 1, 0)))) { + if (GregTech_API.registerCrowbar(new ItemStack(tItem, 1, WILDCARD))) { + GT_Log.out.println("GT_Mod: Registered valid RC Crowbar: " + tName); + } + } + } + if ((tItem instanceof IToolWrench)) { + if ((tItem.isDamageable()) || (GT_ModHandler.isElectricItem(new ItemStack(tItem, 1, 0)))) { + if (GregTech_API.registerWrench(new ItemStack(tItem, 1, WILDCARD))) { + GT_Log.out.println("GT_Mod: Registered valid BC Wrench: " + tName); + } + } + } + Block tBlock = GT_Utility.getBlockFromStack(new ItemStack(tItem, 1, 0)); + if (tBlock != null) { + if (tName.endsWith("beehives")) { + tBlock.setHarvestLevel("scoop", 0); + gregtech.common.tools.GT_Tool_Scoop.sBeeHiveMaterial = tBlock.getMaterial(); + } + if (OrePrefixes.stone.mDefaultStackSize < tItem.getItemStackLimit(new ItemStack(tItem, 1, 0))) { + if ((tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.stone)) + || (tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.netherrack)) + || (tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.end_stone))) { + tItem.setMaxStackSize(OrePrefixes.stone.mDefaultStackSize); + } + } + } + if (((tItem instanceof ItemFood)) && (tItem != ItemList.IC2_Food_Can_Filled.getItem()) + && (tItem != ItemList.IC2_Food_Can_Spoiled.getItem())) { + int tFoodValue = ((ItemFood) tItem).func_150905_g(new ItemStack(tItem, 1, 0)); + if (tFoodValue > 0) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder + .itemInputs(new ItemStack(tItem, 1, WILDCARD), ItemList.IC2_Food_Can_Empty.get(tFoodValue)); + if (GT_Utility.getContainerItem(new ItemStack(tItem, 1, 0), true) == null) { + recipeBuilder.itemOutputs(ItemList.IC2_Food_Can_Filled.get(tFoodValue)); + } else { + recipeBuilder.itemOutputs( + ItemList.IC2_Food_Can_Filled.get(tFoodValue), + GT_Utility.getContainerItem(new ItemStack(tItem, 1, 0), true)); + } + recipeBuilder.duration(tFoodValue * 5 * SECONDS) + .eut(1) + .addTo(cannerRecipes); + } + } + if ((tItem instanceof IFluidContainerItem)) { + GT_OreDictUnificator.addToBlacklist(new ItemStack(tItem, 1, WILDCARD)); + } + + switch (tName) { + // twilight forest + case "item.fieryBlood", "item.fieryTears" -> GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(tItem, 1, 0)) + .metadata(FUEL_VALUE, 2048) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + // twilight forest + case "tile.TFRoots" -> { + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(tItem, 1, 0)) + .itemOutputs(new ItemStack(Items.stick, 2), new ItemStack(Items.stick, 1)) + .outputChances(10000, 3000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + GT_ModHandler.addSawmillRecipe( + new ItemStack(tItem, 1, 0), + new ItemStack(Items.stick, 4), + new ItemStack(Items.stick, 2)); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(tItem, 1, 1)) + .itemOutputs(new ItemStack(Items.stick, 4)) + .metadata(FUEL_VALUE, 32) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + } + + // tinker construct + case "item.tconstruct.manual" -> GT_OreDictUnificator + .registerOre("bookTinkersManual", new ItemStack(tItem, 1, WILDCARD)); + + // buildcraft + case "item.blueprintItem" -> GT_OreDictUnificator + .registerOre("paperBlueprint", new ItemStack(tItem, 1, WILDCARD)); + + // Thaumcraft + case "item.ItemThaumonomicon" -> GT_OreDictUnificator + .registerOre("bookThaumonomicon", new ItemStack(tItem, 1, WILDCARD)); + + // BoP + case "tile.bop.redRocks" -> { + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 0)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 1)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 2)); + } + + // Thaumcraft + case "tile.blockCosmeticSolid" -> { + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 0)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 1)); + GT_OreDictUnificator + .registerOre(OrePrefixes.block, Materials.Thaumium, new ItemStack(tItem, 1, 4)); + } + + // minecraft + case "tile.enderchest" -> GT_OreDictUnificator + .registerOre(OreDictNames.enderChest, new ItemStack(tItem, 1, WILDCARD)); + + // buildcraft + case "tile.autoWorkbenchBlock" -> GT_OreDictUnificator + .registerOre(OreDictNames.craftingWorkBench, new ItemStack(tItem, 1, 0)); + + // buildcraft + case "tile.pumpBlock" -> GT_OreDictUnificator + .registerOre(OreDictNames.craftingPump, new ItemStack(tItem, 1, 0)); + + // buildcraft + case "tile.tankBlock" -> GT_OreDictUnificator + .registerOre(OreDictNames.craftingTank, new ItemStack(tItem, 1, 0)); + + } + } + } catch (Throwable e) { + /**/ + } + } +} diff --git a/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java b/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java new file mode 100644 index 0000000000..6fe3d273f6 --- /dev/null +++ b/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java @@ -0,0 +1,7148 @@ +package gregtech.loaders.load; + +import static gregtech.api.enums.MetaTileEntityIDs.ALLOY_SMELTER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ALLOY_SMELTER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ALLOY_SMELTER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ALLOY_SMELTER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ALLOY_SMELTER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ARC_FURNACE_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ARC_FURNACE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ARC_FURNACE_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ARC_FURNACE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ARC_FURNACE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ASSEMBLER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ASSEMBLER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ASSEMBLER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ASSEMBLER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ASSEMBLER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.AUTOCLAVE_EV; +import static gregtech.api.enums.MetaTileEntityIDs.AUTOCLAVE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.AUTOCLAVE_IV; +import static gregtech.api.enums.MetaTileEntityIDs.AUTOCLAVE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.AUTOCLAVE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.BENDING_MACHINE_EV; +import static gregtech.api.enums.MetaTileEntityIDs.BENDING_MACHINE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.BENDING_MACHINE_IV; +import static gregtech.api.enums.MetaTileEntityIDs.BENDING_MACHINE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.BENDING_MACHINE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.CANNER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.CANNER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.CANNER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.CANNER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.CANNER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.CENTRIFUGE_EV; +import static gregtech.api.enums.MetaTileEntityIDs.CENTRIFUGE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.CENTRIFUGE_IV; +import static gregtech.api.enums.MetaTileEntityIDs.CENTRIFUGE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.CENTRIFUGE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEMICAL_BATH_EV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEMICAL_BATH_HV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEMICAL_BATH_IV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEMICAL_BATH_LV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEMICAL_BATH_MV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEMICAL_REACTOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEMICAL_REACTOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEMICAL_REACTOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEMICAL_REACTOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEMICAL_REACTOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.CIRCUIT_ASSEMBLER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.CIRCUIT_ASSEMBLER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.CIRCUIT_ASSEMBLER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.CIRCUIT_ASSEMBLER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.CIRCUIT_ASSEMBLER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.CIRCUIT_ASSEMBLER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.CIRCUIT_ASSEMBLER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.CIRCUIT_ASSEMBLER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.COMPRESSOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.COMPRESSOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.COMPRESSOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.COMPRESSOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.COMPRESSOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.CUTTING_MACHINE_EV; +import static gregtech.api.enums.MetaTileEntityIDs.CUTTING_MACHINE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.CUTTING_MACHINE_IV; +import static gregtech.api.enums.MetaTileEntityIDs.CUTTING_MACHINE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.CUTTING_MACHINE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.DISTILLERY_EV; +import static gregtech.api.enums.MetaTileEntityIDs.DISTILLERY_HV; +import static gregtech.api.enums.MetaTileEntityIDs.DISTILLERY_IV; +import static gregtech.api.enums.MetaTileEntityIDs.DISTILLERY_LV; +import static gregtech.api.enums.MetaTileEntityIDs.DISTILLERY_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTRIC_FURNACE_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTRIC_FURNACE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTRIC_FURNACE_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTRIC_FURNACE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTRIC_FURNACE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTROLYSER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTROLYSER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTROLYSER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTROLYSER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTROLYSER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTROMAGNETIC_SEPARATOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTROMAGNETIC_SEPARATOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTROMAGNETIC_SEPARATOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTROMAGNETIC_SEPARATOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ELECTROMAGNETIC_SEPARATOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.EXTRACTOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.EXTRACTOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.EXTRACTOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.EXTRACTOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.EXTRACTOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.EXTRUDER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.EXTRUDER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.EXTRUDER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.EXTRUDER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.EXTRUDER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.FERMENTER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.FERMENTER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.FERMENTER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.FERMENTER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.FERMENTER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_CANNER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_CANNER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_CANNER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_CANNER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_CANNER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_EXTRACTOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_EXTRACTOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_EXTRACTOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_EXTRACTOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_EXTRACTOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_HEATER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_HEATER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_HEATER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_HEATER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_HEATER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_SOLIDIFIER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_SOLIDIFIER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_SOLIDIFIER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_SOLIDIFIER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.FLUID_SOLIDIFIER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.FORGE_HAMMER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.FORGE_HAMMER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.FORGE_HAMMER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.FORGE_HAMMER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.FORGE_HAMMER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.FORMING_PRESS_EV; +import static gregtech.api.enums.MetaTileEntityIDs.FORMING_PRESS_HV; +import static gregtech.api.enums.MetaTileEntityIDs.FORMING_PRESS_IV; +import static gregtech.api.enums.MetaTileEntityIDs.FORMING_PRESS_LV; +import static gregtech.api.enums.MetaTileEntityIDs.FORMING_PRESS_MV; +import static gregtech.api.enums.MetaTileEntityIDs.LASER_ENGRAVER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.LASER_ENGRAVER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.LASER_ENGRAVER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.LASER_ENGRAVER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.LASER_ENGRAVER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.LATHE_EV; +import static gregtech.api.enums.MetaTileEntityIDs.LATHE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.LATHE_IV; +import static gregtech.api.enums.MetaTileEntityIDs.LATHE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.LATHE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.MACERATOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.MACERATOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MACERATOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.MACERATOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.MACERATOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.MATTER_AMPLIFIER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.MATTER_AMPLIFIER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MATTER_AMPLIFIER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.MATTER_AMPLIFIER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.MATTER_AMPLIFIER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_OVEN_EV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_OVEN_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_OVEN_IV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_OVEN_LV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_OVEN_MV; +import static gregtech.api.enums.MetaTileEntityIDs.MIXER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.MIXER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MIXER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.MIXER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.MIXER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ORE_WASHER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ORE_WASHER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ORE_WASHER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ORE_WASHER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ORE_WASHER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.OVEN_EV; +import static gregtech.api.enums.MetaTileEntityIDs.OVEN_HV; +import static gregtech.api.enums.MetaTileEntityIDs.OVEN_IV; +import static gregtech.api.enums.MetaTileEntityIDs.OVEN_LV; +import static gregtech.api.enums.MetaTileEntityIDs.OVEN_MV; +import static gregtech.api.enums.MetaTileEntityIDs.PLASMA_ARC_FURNACE_EV; +import static gregtech.api.enums.MetaTileEntityIDs.PLASMA_ARC_FURNACE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.PLASMA_ARC_FURNACE_IV; +import static gregtech.api.enums.MetaTileEntityIDs.PLASMA_ARC_FURNACE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.PLASMA_ARC_FURNACE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.POLARIZER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.POLARIZER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.POLARIZER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.POLARIZER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.POLARIZER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.PRINTER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.PRINTER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.PRINTER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.PRINTER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.PRINTER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.PRINTER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.PRINTER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.PRINTER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.RECYCLER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.RECYCLER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.RECYCLER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.RECYCLER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.RECYCLER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.SIFTER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.SIFTER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.SIFTER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.SIFTER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.SIFTER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.SLICER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.SLICER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.SLICER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.SLICER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.SLICER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.THERMAL_CENTRIFUGE_EV; +import static gregtech.api.enums.MetaTileEntityIDs.THERMAL_CENTRIFUGE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.THERMAL_CENTRIFUGE_IV; +import static gregtech.api.enums.MetaTileEntityIDs.THERMAL_CENTRIFUGE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.THERMAL_CENTRIFUGE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.UNPACKAGER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.UNPACKAGER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.UNPACKAGER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.UNPACKAGER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.UNPACKAGER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.UNPACKAGER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.UNPACKAGER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.UNPACKAGER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.WIREMILL_EV; +import static gregtech.api.enums.MetaTileEntityIDs.WIREMILL_HV; +import static gregtech.api.enums.MetaTileEntityIDs.WIREMILL_IV; +import static gregtech.api.enums.MetaTileEntityIDs.WIREMILL_LV; +import static gregtech.api.enums.MetaTileEntityIDs.WIREMILL_MV; +import static gregtech.api.enums.Mods.BuildCraftFactory; +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.GalacticraftCore; +import static gregtech.api.enums.Mods.Gendustry; +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.enums.Mods.NotEnoughItems; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import codechicken.nei.api.API; +import gregtech.GT_Mod; +import gregtech.api.GregTech_API; +import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.MachineType; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OreDictNames; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SoundResource; +import gregtech.api.enums.TierEU; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_GT_Recipe; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_GT_Recipe.SpecialEffects; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.ExternalMaterials; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.loaders.postload.GT_PCBFactoryMaterialLoader; +import gregtech.loaders.postload.GT_ProcessingArrayRecipeLoader; +import ic2.core.Ic2Items; + +public class GT_Loader_MetaTileEntities_Recipes implements Runnable { + + private static final String aTextPlate = "PPP"; + private static final String aTextPlateWrench = "PwP"; + private static final String aTextPlateMotor = "PMP"; + private static final String aTextCableHull = "CMC"; + private static final String aTextWireHull = "WMW"; + private static final String aTextWireChest = "WTW"; + private static final String aTextWireCoil = "WCW"; + private static final String aTextMotorWire = "EWE"; + private static final String aTextWirePump = "WPW"; + + private static final long bits = GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.BUFFERED; + private static final long bitsd = GT_ModHandler.RecipeBits.DISMANTLEABLE | bits; + + private static void registerMachineTypes() { + registerAlloySmelter(); + registerArcFurnace(); + registerAutoclave(); + registerAssembler(); + registerBendingMachine(); + registerCanner(); + registerCentrifuge(); + registerCompressor(); + registerChemicalBath(); + registerChemicalReactor(); + registerCircuitAssembler(); + registerCuttingMachine(); + registerDistillery(); + registerElectricFurnace(); + registerElectrolyser(); + registerElectromagneticSeparator(); + registerExtractor(); + registerExtruder(); + registerFermenter(); + registerFluidCanner(); + registerFluidExtractor(); + registerFluidHeater(); + registerFluidSolidifier(); + registerForgeHammer(); + registerFormingPress(); + registerLathe(); + registerLaserEngraver(); + registerMacerator(); + registerMatterAmplifier(); + registerMicrowave(); + registerMixer(); + registerOreWasher(); + registerOven(); + registerPlasmaArcFurnace(); + registerPolarizer(); + registerPrinter(); + registerRecycler(); + registerSifter(); + registerSlicer(); + registerThermalCentrifuge(); + registerUnpackager(); + registerWiremill(); + } + + private static void registerAlloySmelter() { + ItemList.Machine_LV_AlloySmelter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ALLOY_SMELTER_LV.ID, + "basicmachine.alloysmelter.tier.01", + "Basic Alloy Smelter", + 1, + MachineType.ALLOY_SMELTER.tooltipDescription(), + RecipeMaps.alloySmelterRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "ALLOY_SMELTER", + new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_MV_AlloySmelter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ALLOY_SMELTER_MV.ID, + "basicmachine.alloysmelter.tier.02", + "Advanced Alloy Smelter", + 2, + MachineType.ALLOY_SMELTER.tooltipDescription(), + RecipeMaps.alloySmelterRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "ALLOY_SMELTER", + new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_HV_AlloySmelter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ALLOY_SMELTER_HV.ID, + "basicmachine.alloysmelter.tier.03", + "Advanced Alloy Smelter II", + 3, + MachineType.ALLOY_SMELTER.tooltipDescription(), + RecipeMaps.alloySmelterRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "ALLOY_SMELTER", + new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_EV_AlloySmelter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ALLOY_SMELTER_EV.ID, + "basicmachine.alloysmelter.tier.04", + "Advanced Alloy Smelter III", + 4, + MachineType.ALLOY_SMELTER.tooltipDescription(), + RecipeMaps.alloySmelterRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "ALLOY_SMELTER", + new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_IV_AlloySmelter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ALLOY_SMELTER_IV.ID, + "basicmachine.alloysmelter.tier.05", + "Advanced Alloy Smelter IV", + 5, + MachineType.ALLOY_SMELTER.tooltipDescription(), + RecipeMaps.alloySmelterRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "ALLOY_SMELTER", + new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + } + + private static void registerArcFurnace() { + ItemList.Machine_LV_ArcFurnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ARC_FURNACE_LV.ID, + "basicmachine.arcfurnace.tier.01", + "Basic Arc Furnace", + 1, + MachineType.ARC_FURNACE.tooltipDescription(), + RecipeMaps.arcFurnaceRecipes, + 1, + 4, + true, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "ARC_FURNACE", + new Object[] { "WGW", aTextCableHull, aTextPlate, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, + 'P', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'G', OrePrefixes.cell.get(Materials.Graphite) }) + .getStackForm(1L)); + + ItemList.Machine_MV_ArcFurnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ARC_FURNACE_MV.ID, + "basicmachine.arcfurnace.tier.02", + "Advanced Arc Furnace", + 2, + MachineType.ARC_FURNACE.tooltipDescription(), + RecipeMaps.arcFurnaceRecipes, + 1, + 4, + true, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "ARC_FURNACE", + new Object[] { "WGW", aTextCableHull, aTextPlate, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, + 'P', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'G', OrePrefixes.cell.get(Materials.Graphite) }) + .getStackForm(1L)); + ItemList.Machine_HV_ArcFurnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ARC_FURNACE_HV.ID, + "basicmachine.arcfurnace.tier.03", + "Advanced Arc Furnace II", + 3, + MachineType.ARC_FURNACE.tooltipDescription(), + RecipeMaps.arcFurnaceRecipes, + 1, + 4, + true, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "ARC_FURNACE", + new Object[] { "WGW", aTextCableHull, aTextPlate, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, + 'P', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'G', OrePrefixes.cell.get(Materials.Graphite) }) + .getStackForm(1L)); + + ItemList.Machine_EV_ArcFurnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ARC_FURNACE_EV.ID, + "basicmachine.arcfurnace.tier.04", + "Advanced Arc Furnace III", + 4, + MachineType.ARC_FURNACE.tooltipDescription(), + RecipeMaps.arcFurnaceRecipes, + 1, + 9, + true, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "ARC_FURNACE", + new Object[] { "WGW", aTextCableHull, aTextPlate, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, + 'P', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'G', OrePrefixes.cell.get(Materials.Graphite) }) + .getStackForm(1L)); + + ItemList.Machine_IV_ArcFurnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ARC_FURNACE_IV.ID, + "basicmachine.arcfurnace.tier.05", + "Advanced Arc Furnace IV", + 5, + MachineType.ARC_FURNACE.tooltipDescription(), + RecipeMaps.arcFurnaceRecipes, + 1, + 9, + true, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "ARC_FURNACE", + new Object[] { "WGW", aTextCableHull, aTextPlate, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, + 'P', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'G', OrePrefixes.cell.get(Materials.Graphite) }) + .getStackForm(1L)); + } + + private static void registerAssembler() { + ItemList.Machine_LV_Assembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ASSEMBLER_LV.ID, + "basicmachine.assembler.tier.01", + "Basic Assembling Machine", + 1, + MachineType.ASSEMBLER.tooltipDescription(), + RecipeMaps.assemblerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ASSEMBLER", + new Object[] { "ACA", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_Assembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ASSEMBLER_MV.ID, + "basicmachine.assembler.tier.02", + "Advanced Assembling Machine", + 2, + MachineType.ASSEMBLER.tooltipDescription(), + RecipeMaps.assemblerRecipes, + 9, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ASSEMBLER", + new Object[] { "ACA", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_Assembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ASSEMBLER_HV.ID, + "basicmachine.assembler.tier.03", + "Advanced Assembling Machine II", + 3, + MachineType.ASSEMBLER.tooltipDescription(), + RecipeMaps.assemblerRecipes, + 9, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ASSEMBLER", + new Object[] { "ACA", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_Assembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ASSEMBLER_EV.ID, + "basicmachine.assembler.tier.04", + "Advanced Assembling Machine III", + 4, + MachineType.ASSEMBLER.tooltipDescription(), + RecipeMaps.assemblerRecipes, + 9, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ASSEMBLER", + new Object[] { "ACA", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_Assembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ASSEMBLER_IV.ID, + "basicmachine.assembler.tier.05", + "Advanced Assembling Machine IV", + 5, + MachineType.ASSEMBLER.tooltipDescription(), + RecipeMaps.assemblerRecipes, + 9, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ASSEMBLER", + new Object[] { "ACA", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerAutoclave() { + ItemList.Machine_LV_Autoclave.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + AUTOCLAVE_LV.ID, + "basicmachine.autoclave.tier.01", + "Basic Autoclave", + 1, + MachineType.AUTOCLAVE.tooltipDescription(), + RecipeMaps.autoclaveRecipes, + 2, + 2, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "AUTOCLAVE", + new Object[] { "IGI", "IMI", "CPC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'I', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_Autoclave.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + AUTOCLAVE_MV.ID, + "basicmachine.autoclave.tier.02", + "Advanced Autoclave", + 2, + MachineType.AUTOCLAVE.tooltipDescription(), + RecipeMaps.autoclaveRecipes, + 2, + 2, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "AUTOCLAVE", + new Object[] { "IGI", "IMI", "CPC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'I', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_Autoclave.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + AUTOCLAVE_HV.ID, + "basicmachine.autoclave.tier.03", + "Advanced Autoclave II", + 3, + MachineType.AUTOCLAVE.tooltipDescription(), + RecipeMaps.autoclaveRecipes, + 2, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "AUTOCLAVE", + new Object[] { "IGI", "IMI", "CPC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'I', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_Autoclave.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + AUTOCLAVE_EV.ID, + "basicmachine.autoclave.tier.04", + "Advanced Autoclave III", + 4, + MachineType.AUTOCLAVE.tooltipDescription(), + RecipeMaps.autoclaveRecipes, + 2, + 4, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "AUTOCLAVE", + new Object[] { "IGI", "IMI", "CPC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'I', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_Autoclave.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + AUTOCLAVE_IV.ID, + "basicmachine.autoclave.tier.05", + "Advanced Autoclave IV", + 5, + MachineType.AUTOCLAVE.tooltipDescription(), + RecipeMaps.autoclaveRecipes, + 2, + 4, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "AUTOCLAVE", + new Object[] { "IGI", "IMI", "CPC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'I', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + } + + private static void registerBendingMachine() { + ItemList.Machine_LV_Bender.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + BENDING_MACHINE_LV.ID, + "basicmachine.bender.tier.01", + "Basic Bending Machine", + 1, + MachineType.BENDING_MACHINE.tooltipDescription(), + RecipeMaps.benderRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "BENDER", + new Object[] { aTextPlateWrench, aTextCableHull, aTextMotorWire, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_Bender.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + BENDING_MACHINE_MV.ID, + "basicmachine.bender.tier.02", + "Advanced Bending Machine", + 2, + MachineType.BENDING_MACHINE.tooltipDescription(), + RecipeMaps.benderRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "BENDER", + new Object[] { aTextPlateWrench, aTextCableHull, aTextMotorWire, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_Bender.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + BENDING_MACHINE_HV.ID, + "basicmachine.bender.tier.03", + "Advanced Bending Machine II", + 3, + MachineType.BENDING_MACHINE.tooltipDescription(), + RecipeMaps.benderRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "BENDER", + new Object[] { aTextPlateWrench, aTextCableHull, aTextMotorWire, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_Bender.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + BENDING_MACHINE_EV.ID, + "basicmachine.bender.tier.04", + "Advanced Bending Machine III", + 4, + MachineType.BENDING_MACHINE.tooltipDescription(), + RecipeMaps.benderRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "BENDER", + new Object[] { aTextPlateWrench, aTextCableHull, aTextMotorWire, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_Bender.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + BENDING_MACHINE_IV.ID, + "basicmachine.bender.tier.05", + "Advanced Bending Machine IV", + 5, + MachineType.BENDING_MACHINE.tooltipDescription(), + RecipeMaps.benderRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "BENDER", + new Object[] { aTextPlateWrench, aTextCableHull, aTextMotorWire, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerCanner() { + ItemList.Machine_LV_Canner.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CANNER_LV.ID, + "basicmachine.canner.tier.01", + "Basic Canning Machine", + 1, + MachineType.CANNER.tooltipDescription(), + RecipeMaps.cannerRecipes, + 2, + 2, + false, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "CANNER", + new Object[] { aTextWirePump, aTextCableHull, "GGG", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_Canner.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CANNER_MV.ID, + "basicmachine.canner.tier.02", + "Advanced Canning Machine", + 2, + MachineType.CANNER.tooltipDescription(), + RecipeMaps.cannerRecipes, + 2, + 2, + false, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "CANNER", + new Object[] { aTextWirePump, aTextCableHull, "GGG", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_Canner.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CANNER_HV.ID, + "basicmachine.canner.tier.03", + "Advanced Canning Machine II", + 3, + MachineType.CANNER.tooltipDescription(), + RecipeMaps.cannerRecipes, + 2, + 2, + false, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "CANNER", + new Object[] { aTextWirePump, aTextCableHull, "GGG", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_Canner.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CANNER_EV.ID, + "basicmachine.canner.tier.04", + "Advanced Canning Machine III", + 4, + MachineType.CANNER.tooltipDescription(), + RecipeMaps.cannerRecipes, + 2, + 2, + false, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "CANNER", + new Object[] { aTextWirePump, aTextCableHull, "GGG", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_Canner.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CANNER_IV.ID, + "basicmachine.canner.tier.05", + "Advanced Canning Machine IV", + 5, + MachineType.CANNER.tooltipDescription(), + RecipeMaps.cannerRecipes, + 2, + 2, + false, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "CANNER", + new Object[] { aTextWirePump, aTextCableHull, "GGG", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + } + + private static void registerCentrifuge() { + ItemList.Machine_LV_Centrifuge.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CENTRIFUGE_LV.ID, + "basicmachine.centrifuge.tier.01", + "Basic Centrifuge", + 1, + MachineType.CENTRIFUGE.tooltipDescription(), + RecipeMaps.centrifugeRecipes, + 2, + 6, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CENTRIFUGE", + new Object[] { "CEC", aTextWireHull, "CEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_Centrifuge.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CENTRIFUGE_MV.ID, + "basicmachine.centrifuge.tier.02", + "Advanced Centrifuge", + 2, + MachineType.CENTRIFUGE.tooltipDescription(), + RecipeMaps.centrifugeRecipes, + 2, + 6, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CENTRIFUGE", + new Object[] { "CEC", aTextWireHull, "CEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_Centrifuge.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CENTRIFUGE_HV.ID, + "basicmachine.centrifuge.tier.03", + "Turbo Centrifuge", + 3, + MachineType.CENTRIFUGE.tooltipDescription(), + RecipeMaps.centrifugeRecipes, + 2, + 6, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CENTRIFUGE", + new Object[] { "CEC", aTextWireHull, "CEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_Centrifuge.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CENTRIFUGE_EV.ID, + "basicmachine.centrifuge.tier.04", + "Molecular Separator", + 4, + MachineType.CENTRIFUGE.tooltipDescription(), + RecipeMaps.centrifugeRecipes, + 2, + 6, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CENTRIFUGE", + new Object[] { "CEC", aTextWireHull, "CEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_Centrifuge.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CENTRIFUGE_IV.ID, + "basicmachine.centrifuge.tier.05", + "Molecular Cyclone", + 5, + MachineType.CENTRIFUGE.tooltipDescription(), + RecipeMaps.centrifugeRecipes, + 2, + 6, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CENTRIFUGE", + new Object[] { "CEC", aTextWireHull, "CEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerChemicalBath() { + ItemList.Machine_LV_ChemicalBath.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CHEMICAL_BATH_LV.ID, + "basicmachine.chemicalbath.tier.01", + "Basic Chemical Bath", + 1, + MachineType.CHEMICAL_BATH.tooltipDescription(), + RecipeMaps.chemicalBathRecipes, + 1, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CHEMICAL_BATH", + new Object[] { "VGW", "PGV", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_ChemicalBath.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CHEMICAL_BATH_MV.ID, + "basicmachine.chemicalbath.tier.02", + "Advanced Chemical Bath", + 2, + MachineType.CHEMICAL_BATH.tooltipDescription(), + RecipeMaps.chemicalBathRecipes, + 1, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CHEMICAL_BATH", + new Object[] { "VGW", "PGV", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_ChemicalBath.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CHEMICAL_BATH_HV.ID, + "basicmachine.chemicalbath.tier.03", + "Advanced Chemical Bath II", + 3, + MachineType.CHEMICAL_BATH.tooltipDescription(), + RecipeMaps.chemicalBathRecipes, + 1, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CHEMICAL_BATH", + new Object[] { "VGW", "PGV", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_ChemicalBath.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CHEMICAL_BATH_EV.ID, + "basicmachine.chemicalbath.tier.04", + "Advanced Chemical Bath III", + 4, + MachineType.CHEMICAL_BATH.tooltipDescription(), + RecipeMaps.chemicalBathRecipes, + 1, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CHEMICAL_BATH", + new Object[] { "VGW", "PGV", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_ChemicalBath.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CHEMICAL_BATH_IV.ID, + "basicmachine.chemicalbath.tier.05", + "Advanced Chemical Bath IV", + 5, + MachineType.CHEMICAL_BATH.tooltipDescription(), + RecipeMaps.chemicalBathRecipes, + 1, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CHEMICAL_BATH", + new Object[] { "VGW", "PGV", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + } + + private static void registerChemicalReactor() { + ItemList.Machine_LV_ChemicalReactor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CHEMICAL_REACTOR_LV.ID, + "basicmachine.chemicalreactor.tier.01", + "Basic Chemical Reactor", + 1, + MachineType.CHEMICAL_REACTOR.tooltipDescription(), + RecipeMaps.chemicalReactorRecipes, + 2, + 2, + true, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "CHEMICAL_REACTOR", + new Object[] { "GRG", "WEW", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_ChemicalReactor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CHEMICAL_REACTOR_MV.ID, + "basicmachine.chemicalreactor.tier.02", + "Advanced Chemical Reactor", + 2, + MachineType.CHEMICAL_REACTOR.tooltipDescription(), + RecipeMaps.chemicalReactorRecipes, + 2, + 2, + true, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "CHEMICAL_REACTOR", + new Object[] { "GRG", "WEW", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_ChemicalReactor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CHEMICAL_REACTOR_HV.ID, + "basicmachine.chemicalreactor.tier.03", + "Advanced Chemical Reactor II", + 3, + MachineType.CHEMICAL_REACTOR.tooltipDescription(), + RecipeMaps.chemicalReactorRecipes, + 2, + 2, + true, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "CHEMICAL_REACTOR", + new Object[] { "GRG", "WEW", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + OrePrefixes.pipeMedium.get(Materials.Plastic) }).getStackForm(1L)); + ItemList.Machine_EV_ChemicalReactor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CHEMICAL_REACTOR_EV.ID, + "basicmachine.chemicalreactor.tier.04", + "Advanced Chemical Reactor III", + 4, + MachineType.CHEMICAL_REACTOR.tooltipDescription(), + RecipeMaps.chemicalReactorRecipes, + 2, + 2, + true, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "CHEMICAL_REACTOR", + new Object[] { "GRG", "WEW", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + OrePrefixes.pipeLarge.get(Materials.Plastic) }).getStackForm(1L)); + ItemList.Machine_IV_ChemicalReactor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CHEMICAL_REACTOR_IV.ID, + "basicmachine.chemicalreactor.tier.05", + "Advanced Chemical Reactor IV", + 5, + MachineType.CHEMICAL_REACTOR.tooltipDescription(), + RecipeMaps.chemicalReactorRecipes, + 2, + 2, + true, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "CHEMICAL_REACTOR", + new Object[] { "GRG", "WEW", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', OrePrefixes.pipeHuge.get(Materials.Plastic) }) + .getStackForm(1L)); + } + + private static void registerCircuitAssembler() { + ItemList.Machine_LV_CircuitAssembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CIRCUIT_ASSEMBLER_LV.ID, + "basicmachine.circuitassembler.tier.01", + "Basic Circuit Assembler", + 1, + MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), + RecipeMaps.circuitAssemblerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CIRCUITASSEMBLER", + new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER }).getStackForm(1L)); + ItemList.Machine_MV_CircuitAssembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CIRCUIT_ASSEMBLER_MV.ID, + "basicmachine.circuitassembler.tier.02", + "Advanced Circuit Assembler", + 2, + MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), + RecipeMaps.circuitAssemblerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CIRCUITASSEMBLER", + new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER }).getStackForm(1L)); + ItemList.Machine_HV_CircuitAssembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CIRCUIT_ASSEMBLER_HV.ID, + "basicmachine.circuitassembler.tier.03", + "Advanced Circuit Assembler II", + 3, + MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), + RecipeMaps.circuitAssemblerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CIRCUITASSEMBLER", + new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER }).getStackForm(1L)); + ItemList.Machine_EV_CircuitAssembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CIRCUIT_ASSEMBLER_EV.ID, + "basicmachine.circuitassembler.tier.04", + "Advanced Circuit Assembler III", + 4, + MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), + RecipeMaps.circuitAssemblerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CIRCUITASSEMBLER", + new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER }).getStackForm(1L)); + ItemList.Machine_IV_CircuitAssembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CIRCUIT_ASSEMBLER_IV.ID, + "basicmachine.circuitassembler.tier.05", + "Advanced Circuit Assembler IV", + 5, + MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), + RecipeMaps.circuitAssemblerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CIRCUITASSEMBLER", + new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER }).getStackForm(1L)); + ItemList.Machine_LuV_CircuitAssembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CIRCUIT_ASSEMBLER_LuV.ID, + "basicmachine.circuitassembler.tier.06", + "Advanced Circuit Assembler V", + 6, + MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), + RecipeMaps.circuitAssemblerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CIRCUITASSEMBLER", + new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER }).getStackForm(1L)); + ItemList.Machine_ZPM_CircuitAssembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CIRCUIT_ASSEMBLER_ZPM.ID, + "basicmachine.circuitassembler.tier.07", + "Advanced Circuit Assembler VI", + 7, + MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), + RecipeMaps.circuitAssemblerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CIRCUITASSEMBLER", + new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER }).getStackForm(1L)); + ItemList.Machine_UV_CircuitAssembler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CIRCUIT_ASSEMBLER_UV.ID, + "basicmachine.circuitassembler.tier.08", + "Advanced Circuit Assembler VII", + 8, + MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), + RecipeMaps.circuitAssemblerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CIRCUITASSEMBLER", + new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'A', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER }).getStackForm(1L)); + } + + private static void registerCompressor() { + ItemList.Machine_LV_Compressor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + COMPRESSOR_LV.ID, + "basicmachine.compressor.tier.01", + "Basic Compressor", + 1, + MachineType.COMPRESSOR.tooltipDescription(), + RecipeMaps.compressorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "COMPRESSOR", + new Object[] { aTextWireCoil, aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_Compressor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + COMPRESSOR_MV.ID, + "basicmachine.compressor.tier.02", + "Advanced Compressor", + 2, + MachineType.COMPRESSOR.tooltipDescription(), + RecipeMaps.compressorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "COMPRESSOR", + new Object[] { aTextWireCoil, aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_Compressor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + COMPRESSOR_HV.ID, + "basicmachine.compressor.tier.03", + "Advanced Compressor II", + 3, + MachineType.COMPRESSOR.tooltipDescription(), + RecipeMaps.compressorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "COMPRESSOR", + new Object[] { aTextWireCoil, aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_Compressor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + COMPRESSOR_EV.ID, + "basicmachine.compressor.tier.04", + "Advanced Compressor III", + 4, + MachineType.COMPRESSOR.tooltipDescription(), + RecipeMaps.compressorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "COMPRESSOR", + new Object[] { aTextWireCoil, aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_Compressor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + COMPRESSOR_IV.ID, + "basicmachine.compressor.tier.05", + "Singularity Compressor", + 5, + MachineType.COMPRESSOR.tooltipDescription(), + RecipeMaps.compressorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "COMPRESSOR", + new Object[] { aTextWireCoil, aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerCuttingMachine() { + ItemList.Machine_LV_Cutter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CUTTING_MACHINE_LV.ID, + "basicmachine.cutter.tier.01", + "Basic Cutting Machine", + 1, + MachineType.CUTTING_MACHINE.tooltipDescription(), + RecipeMaps.cutterRecipes, + 1, + 2, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CUTTER", + new Object[] { "WCG", "VMB", "CWE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, 'B', OreDictNames.craftingDiamondBlade }) + .getStackForm(1L)); + ItemList.Machine_MV_Cutter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CUTTING_MACHINE_MV.ID, + "basicmachine.cutter.tier.02", + "Advanced Cutting Machine", + 2, + MachineType.CUTTING_MACHINE.tooltipDescription(), + RecipeMaps.cutterRecipes, + 2, + 2, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CUTTER", + new Object[] { "WCG", "VMB", "CWE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, 'B', OreDictNames.craftingDiamondBlade }) + .getStackForm(1L)); + ItemList.Machine_HV_Cutter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CUTTING_MACHINE_HV.ID, + "basicmachine.cutter.tier.03", + "Advanced Cutting Machine II", + 3, + MachineType.CUTTING_MACHINE.tooltipDescription(), + RecipeMaps.cutterRecipes, + 2, + 4, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CUTTER", + new Object[] { "WCG", "VMB", "CWE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, 'B', OreDictNames.craftingDiamondBlade }) + .getStackForm(1L)); + ItemList.Machine_EV_Cutter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CUTTING_MACHINE_EV.ID, + "basicmachine.cutter.tier.04", + "Advanced Cutting Machine III", + 4, + MachineType.CUTTING_MACHINE.tooltipDescription(), + RecipeMaps.cutterRecipes, + 2, + 4, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CUTTER", + new Object[] { "WCG", "VMB", "CWE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, 'B', OreDictNames.craftingDiamondBlade }) + .getStackForm(1L)); + ItemList.Machine_IV_Cutter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + CUTTING_MACHINE_IV.ID, + "basicmachine.cutter.tier.05", + "Advanced Cutting Machine IV", + 5, + MachineType.CUTTING_MACHINE.tooltipDescription(), + RecipeMaps.cutterRecipes, + 2, + 4, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "CUTTER", + new Object[] { "WCG", "VMB", "CWE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, 'B', OreDictNames.craftingDiamondBlade }) + .getStackForm(1L)); + } + + private static void registerDistillery() { + ItemList.Machine_LV_Distillery.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + DISTILLERY_LV.ID, + "basicmachine.distillery.tier.01", + "Basic Distillery", + 1, + MachineType.DISTILLERY.tooltipDescription(), + RecipeMaps.distilleryRecipes, + 1, + 1, + true, + SoundResource.GT_MACHINES_DISTILLERY_LOOP, + SpecialEffects.NONE, + "DISTILLERY", + new Object[] { "GBG", aTextCableHull, aTextWirePump, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'B', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_Distillery.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + DISTILLERY_MV.ID, + "basicmachine.distillery.tier.02", + "Advanced Distillery", + 2, + MachineType.DISTILLERY.tooltipDescription(), + RecipeMaps.distilleryRecipes, + 1, + 1, + true, + SoundResource.GT_MACHINES_DISTILLERY_LOOP, + SpecialEffects.NONE, + "DISTILLERY", + new Object[] { "GBG", aTextCableHull, aTextWirePump, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'B', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_Distillery.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + DISTILLERY_HV.ID, + "basicmachine.distillery.tier.03", + "Advanced Distillery II", + 3, + MachineType.DISTILLERY.tooltipDescription(), + RecipeMaps.distilleryRecipes, + 1, + 1, + true, + SoundResource.GT_MACHINES_DISTILLERY_LOOP, + SpecialEffects.NONE, + "DISTILLERY", + new Object[] { "GBG", aTextCableHull, aTextWirePump, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'B', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_Distillery.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + DISTILLERY_EV.ID, + "basicmachine.distillery.tier.04", + "Advanced Distillery III", + 4, + MachineType.DISTILLERY.tooltipDescription(), + RecipeMaps.distilleryRecipes, + 1, + 1, + true, + SoundResource.GT_MACHINES_DISTILLERY_LOOP, + SpecialEffects.NONE, + "DISTILLERY", + new Object[] { "GBG", aTextCableHull, aTextWirePump, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'B', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_Distillery.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + DISTILLERY_IV.ID, + "basicmachine.distillery.tier.05", + "Advanced Distillery IV", + 5, + MachineType.DISTILLERY.tooltipDescription(), + RecipeMaps.distilleryRecipes, + 1, + 1, + true, + SoundResource.GT_MACHINES_DISTILLERY_LOOP, + SpecialEffects.NONE, + "DISTILLERY", + new Object[] { "GBG", aTextCableHull, aTextWirePump, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'B', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + } + + private static void registerElectricFurnace() { + ItemList.Machine_LV_E_Furnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTRIC_FURNACE_LV.ID, + "basicmachine.e_furnace.tier.01", + "Basic Electric Furnace", + 1, + MachineType.ELECTRIC_FURNACE.tooltipDescription(), + RecipeMaps.furnaceRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "ELECTRIC_FURNACE", + new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).setProgressBarTextureName("E_Furnace") + .getStackForm(1L)); + ItemList.Machine_MV_E_Furnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTRIC_FURNACE_MV.ID, + "basicmachine.e_furnace.tier.02", + "Advanced Electric Furnace", + 2, + MachineType.ELECTRIC_FURNACE.tooltipDescription(), + RecipeMaps.furnaceRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "ELECTRIC_FURNACE", + new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).setProgressBarTextureName("E_Furnace") + .getStackForm(1L)); + ItemList.Machine_HV_E_Furnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTRIC_FURNACE_HV.ID, + "basicmachine.e_furnace.tier.03", + "Advanced Electric Furnace II", + 3, + MachineType.ELECTRIC_FURNACE.tooltipDescription(), + RecipeMaps.furnaceRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "ELECTRIC_FURNACE", + new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).setProgressBarTextureName("E_Furnace") + .getStackForm(1L)); + ItemList.Machine_EV_E_Furnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTRIC_FURNACE_EV.ID, + "basicmachine.e_furnace.tier.04", + "Advanced Electric Furnace III", + 4, + MachineType.ELECTRIC_FURNACE.tooltipDescription(), + RecipeMaps.furnaceRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "ELECTRIC_FURNACE", + new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).setProgressBarTextureName("E_Furnace") + .getStackForm(1L)); + ItemList.Machine_IV_E_Furnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTRIC_FURNACE_IV.ID, + "basicmachine.e_furnace.tier.05", + "Electron Exitement Processor", + 5, + MachineType.ELECTRIC_FURNACE.tooltipDescription(), + RecipeMaps.furnaceRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "ELECTRIC_FURNACE", + new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).setProgressBarTextureName("E_Furnace") + .getStackForm(1L)); + + } + + private static void registerElectrolyser() { + ItemList.Machine_LV_Electrolyzer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTROLYSER_LV.ID, + "basicmachine.electrolyzer.tier.01", + "Basic Electrolyzer", + 1, + MachineType.ELECTROLYZER.tooltipDescription(), + RecipeMaps.electrolyzerRecipes, + 2, + 6, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ELECTROLYZER", + new Object[] { "IGI", "IMI", "CWC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'I', OrePrefixes.wireGt01.get(Materials.Gold), 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_Electrolyzer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTROLYSER_MV.ID, + "basicmachine.electrolyzer.tier.02", + "Advanced Electrolyzer", + 2, + MachineType.ELECTROLYZER.tooltipDescription(), + RecipeMaps.electrolyzerRecipes, + 2, + 6, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ELECTROLYZER", + new Object[] { "IGI", "IMI", "CWC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'I', OrePrefixes.wireGt01.get(Materials.Silver), + 'G', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_Electrolyzer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTROLYSER_HV.ID, + "basicmachine.electrolyzer.tier.03", + "Advanced Electrolyzer II", + 3, + MachineType.ELECTROLYZER.tooltipDescription(), + RecipeMaps.electrolyzerRecipes, + 2, + 6, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ELECTROLYZER", + new Object[] { "IGI", "IMI", "CWC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'I', OrePrefixes.wireGt01.get(Materials.Electrum), + 'G', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_Electrolyzer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTROLYSER_EV.ID, + "basicmachine.electrolyzer.tier.04", + "Advanced Electrolyzer III", + 4, + MachineType.ELECTROLYZER.tooltipDescription(), + RecipeMaps.electrolyzerRecipes, + 2, + 6, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ELECTROLYZER", + new Object[] { "IGI", "IMI", "CWC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'I', OrePrefixes.wireGt01.get(Materials.Platinum), + 'G', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_Electrolyzer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTROLYSER_IV.ID, + "basicmachine.electrolyzer.tier.05", + "Molecular Disintegrator E-4908", + 5, + MachineType.ELECTROLYZER.tooltipDescription(), + RecipeMaps.electrolyzerRecipes, + 2, + 6, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ELECTROLYZER", + new Object[] { "IGI", "IMI", "CWC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'I', OrePrefixes.wireGt01.get(Materials.HSSG), 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + } + + private static void registerElectromagneticSeparator() { + ItemList.Machine_LV_ElectromagneticSeparator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTROMAGNETIC_SEPARATOR_LV.ID, + "basicmachine.electromagneticseparator.tier.01", + "Basic Electromagnetic Separator", + 1, + MachineType.ELECTROMAGNETIC_SEPARATOR.tooltipDescription(), + RecipeMaps.electroMagneticSeparatorRecipes, + 1, + 3, + false, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "ELECTROMAGNETIC_SEPARATOR", + new Object[] { "VWZ", "WMS", "CWZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, 'Z', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_ElectromagneticSeparator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTROMAGNETIC_SEPARATOR_MV.ID, + "basicmachine.electromagneticseparator.tier.02", + "Advanced Electromagnetic Separator", + 2, + MachineType.ELECTROMAGNETIC_SEPARATOR.tooltipDescription(), + RecipeMaps.electroMagneticSeparatorRecipes, + 1, + 3, + false, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "ELECTROMAGNETIC_SEPARATOR", + new Object[] { "VWZ", "WMS", "CWZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, 'Z', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_ElectromagneticSeparator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTROMAGNETIC_SEPARATOR_HV.ID, + "basicmachine.electromagneticseparator.tier.03", + "Advanced Electromagnetic Separator II", + 3, + MachineType.ELECTROMAGNETIC_SEPARATOR.tooltipDescription(), + RecipeMaps.electroMagneticSeparatorRecipes, + 1, + 3, + false, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "ELECTROMAGNETIC_SEPARATOR", + new Object[] { "VWZ", "WMS", "CWZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, 'Z', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_ElectromagneticSeparator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTROMAGNETIC_SEPARATOR_EV.ID, + "basicmachine.electromagneticseparator.tier.04", + "Advanced Electromagnetic Separator III", + 4, + MachineType.ELECTROMAGNETIC_SEPARATOR.tooltipDescription(), + RecipeMaps.electroMagneticSeparatorRecipes, + 1, + 3, + false, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "ELECTROMAGNETIC_SEPARATOR", + new Object[] { "VWZ", "WMS", "CWZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, 'Z', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_ElectromagneticSeparator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ELECTROMAGNETIC_SEPARATOR_IV.ID, + "basicmachine.electromagneticseparator.tier.05", + "Advanced Electromagnetic Separator IV", + 5, + MachineType.ELECTROMAGNETIC_SEPARATOR.tooltipDescription(), + RecipeMaps.electroMagneticSeparatorRecipes, + 1, + 3, + false, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "ELECTROMAGNETIC_SEPARATOR", + new Object[] { "VWZ", "WMS", "CWZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, 'Z', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerExtractor() { + ItemList.Machine_LV_Extractor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + EXTRACTOR_LV.ID, + "basicmachine.extractor.tier.01", + "Basic Extractor", + 1, + MachineType.EXTRACTOR.tooltipDescription(), + RecipeMaps.extractorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "EXTRACTOR", + new Object[] { "GCG", "EMP", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_Extractor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + EXTRACTOR_MV.ID, + "basicmachine.extractor.tier.02", + "Advanced Extractor", + 2, + MachineType.EXTRACTOR.tooltipDescription(), + RecipeMaps.extractorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "EXTRACTOR", + new Object[] { "GCG", "EMP", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_Extractor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + EXTRACTOR_HV.ID, + "basicmachine.extractor.tier.03", + "Advanced Extractor II", + 3, + MachineType.EXTRACTOR.tooltipDescription(), + RecipeMaps.extractorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "EXTRACTOR", + new Object[] { "GCG", "EMP", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_Extractor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + EXTRACTOR_EV.ID, + "basicmachine.extractor.tier.04", + "Advanced Extractor III", + 4, + MachineType.EXTRACTOR.tooltipDescription(), + RecipeMaps.extractorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "EXTRACTOR", + new Object[] { "GCG", "EMP", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_Extractor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + EXTRACTOR_IV.ID, + "basicmachine.extractor.tier.05", + "Vacuum Extractor", + 5, + MachineType.EXTRACTOR.tooltipDescription(), + RecipeMaps.extractorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "EXTRACTOR", + new Object[] { "GCG", "EMP", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + } + + private static void registerExtruder() { + ItemList.Machine_LV_Extruder.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + EXTRUDER_LV.ID, + "basicmachine.extruder.tier.01", + "Basic Extruder", + 1, + MachineType.EXTRUDER.tooltipDescription(), + RecipeMaps.extruderRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "EXTRUDER", + new Object[] { "CCE", "XMP", "CCE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'X', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_MV_Extruder.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + EXTRUDER_MV.ID, + "basicmachine.extruder.tier.02", + "Advanced Extruder", + 2, + MachineType.EXTRUDER.tooltipDescription(), + RecipeMaps.extruderRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "EXTRUDER", + new Object[] { "CCE", "XMP", "CCE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'X', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_HV_Extruder.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + EXTRUDER_HV.ID, + "basicmachine.extruder.tier.03", + "Advanced Extruder II", + 3, + MachineType.EXTRUDER.tooltipDescription(), + RecipeMaps.extruderRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "EXTRUDER", + new Object[] { "CCE", "XMP", "CCE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'X', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_EV_Extruder.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + EXTRUDER_EV.ID, + "basicmachine.extruder.tier.04", + "Advanced Extruder III", + 4, + MachineType.EXTRUDER.tooltipDescription(), + RecipeMaps.extruderRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "EXTRUDER", + new Object[] { "CCE", "XMP", "CCE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'X', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_IV_Extruder.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + EXTRUDER_IV.ID, + "basicmachine.extruder.tier.05", + "Advanced Extruder IV", + 5, + MachineType.EXTRUDER.tooltipDescription(), + RecipeMaps.extruderRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "EXTRUDER", + new Object[] { "CCE", "XMP", "CCE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'X', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + } + + private static void registerFermenter() { + ItemList.Machine_LV_Fermenter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FERMENTER_LV.ID, + "basicmachine.fermenter.tier.01", + "Basic Fermenter", + 1, + MachineType.FERMENTER.tooltipDescription(), + RecipeMaps.fermentingRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FERMENTER", + new Object[] { aTextWirePump, "GMG", aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_Fermenter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FERMENTER_MV.ID, + "basicmachine.fermenter.tier.02", + "Advanced Fermenter", + 2, + MachineType.FERMENTER.tooltipDescription(), + RecipeMaps.fermentingRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FERMENTER", + new Object[] { aTextWirePump, "GMG", aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_Fermenter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FERMENTER_HV.ID, + "basicmachine.fermenter.tier.03", + "Advanced Fermenter II", + 3, + MachineType.FERMENTER.tooltipDescription(), + RecipeMaps.fermentingRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FERMENTER", + new Object[] { aTextWirePump, "GMG", aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_Fermenter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FERMENTER_EV.ID, + "basicmachine.fermenter.tier.04", + "Advanced Fermenter III", + 4, + MachineType.FERMENTER.tooltipDescription(), + RecipeMaps.fermentingRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FERMENTER", + new Object[] { aTextWirePump, "GMG", aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_Fermenter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FERMENTER_IV.ID, + "basicmachine.fermenter.tier.05", + "Advanced Fermenter IV", + 5, + MachineType.FERMENTER.tooltipDescription(), + RecipeMaps.fermentingRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FERMENTER", + new Object[] { aTextWirePump, "GMG", aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + } + + private static void registerFluidCanner() { + ItemList.Machine_LV_FluidCanner.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_CANNER_LV.ID, + "basicmachine.fluidcanner.tier.01", + "Basic Fluid Canner", + 1, + MachineType.FLUID_CANNER.tooltipDescription(), + RecipeMaps.fluidCannerRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_CANNER", + new Object[] { "GCG", "GMG", "WPW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_FluidCanner.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_CANNER_MV.ID, + "basicmachine.fluidcanner.tier.02", + "Advanced Fluid Canner", + 2, + MachineType.FLUID_CANNER.tooltipDescription(), + RecipeMaps.fluidCannerRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_CANNER", + new Object[] { "GCG", "GMG", "WPW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_FluidCanner.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_CANNER_HV.ID, + "basicmachine.fluidcanner.tier.03", + "Quick Fluid Canner", + 3, + MachineType.FLUID_CANNER.tooltipDescription(), + RecipeMaps.fluidCannerRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_CANNER", + new Object[] { "GCG", "GMG", "WPW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_FluidCanner.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_CANNER_EV.ID, + "basicmachine.fluidcanner.tier.04", + "Turbo Fluid Canner", + 4, + MachineType.FLUID_CANNER.tooltipDescription(), + RecipeMaps.fluidCannerRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_CANNER", + new Object[] { "GCG", "GMG", "WPW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_FluidCanner.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_CANNER_IV.ID, + "basicmachine.fluidcanner.tier.05", + "Instant Fluid Canner", + 5, + MachineType.FLUID_CANNER.tooltipDescription(), + RecipeMaps.fluidCannerRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_CANNER", + new Object[] { "GCG", "GMG", "WPW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + } + + private static void registerFluidExtractor() { + ItemList.Machine_LV_FluidExtractor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_EXTRACTOR_LV.ID, + "basicmachine.fluidextractor.tier.01", + "Basic Fluid Extractor", + 1, + MachineType.FLUID_EXTRACTOR.tooltipDescription(), + RecipeMaps.fluidExtractionRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "FLUID_EXTRACTOR", + new Object[] { "GEG", "TPT", "CMC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'T', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_FluidExtractor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_EXTRACTOR_MV.ID, + "basicmachine.fluidextractor.tier.02", + "Advanced Fluid Extractor", + 2, + MachineType.FLUID_EXTRACTOR.tooltipDescription(), + RecipeMaps.fluidExtractionRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "FLUID_EXTRACTOR", + new Object[] { "GEG", "TPT", "CMC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'T', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_FluidExtractor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_EXTRACTOR_HV.ID, + "basicmachine.fluidextractor.tier.03", + "Advanced Fluid Extractor II", + 3, + MachineType.FLUID_EXTRACTOR.tooltipDescription(), + RecipeMaps.fluidExtractionRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "FLUID_EXTRACTOR", + new Object[] { "GEG", "TPT", "CMC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'T', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_FluidExtractor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_EXTRACTOR_EV.ID, + "basicmachine.fluidextractor.tier.04", + "Advanced Fluid Extractor III", + 4, + MachineType.FLUID_EXTRACTOR.tooltipDescription(), + RecipeMaps.fluidExtractionRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "FLUID_EXTRACTOR", + new Object[] { "GEG", "TPT", "CMC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'T', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_FluidExtractor.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_EXTRACTOR_IV.ID, + "basicmachine.fluidextractor.tier.05", + "Advanced Fluid Extractor IV", + 5, + MachineType.FLUID_EXTRACTOR.tooltipDescription(), + RecipeMaps.fluidExtractionRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "FLUID_EXTRACTOR", + new Object[] { "GEG", "TPT", "CMC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'T', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + + } + + private static void registerFluidHeater() { + ItemList.Machine_LV_FluidHeater.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_HEATER_LV.ID, + "basicmachine.fluidheater.tier.01", + "Basic Fluid Heater", + 1, + MachineType.FLUID_HEATER.tooltipDescription(), + RecipeMaps.fluidHeaterRecipes, + 1, + 0, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_HEATER", + new Object[] { "OGO", aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_FluidHeater.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_HEATER_MV.ID, + "basicmachine.fluidheater.tier.02", + "Advanced Fluid Heater", + 2, + MachineType.FLUID_HEATER.tooltipDescription(), + RecipeMaps.fluidHeaterRecipes, + 1, + 0, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_HEATER", + new Object[] { "OGO", aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_FluidHeater.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_HEATER_HV.ID, + "basicmachine.fluidheater.tier.03", + "Advanced Fluid Heater II", + 3, + MachineType.FLUID_HEATER.tooltipDescription(), + RecipeMaps.fluidHeaterRecipes, + 1, + 0, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_HEATER", + new Object[] { "OGO", aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_FluidHeater.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_HEATER_EV.ID, + "basicmachine.fluidheater.tier.04", + "Advanced Fluid Heater III", + 4, + MachineType.FLUID_HEATER.tooltipDescription(), + RecipeMaps.fluidHeaterRecipes, + 1, + 0, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_HEATER", + new Object[] { "OGO", aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_FluidHeater.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_HEATER_IV.ID, + "basicmachine.fluidheater.tier.05", + "Advanced Fluid Heater IV", + 5, + MachineType.FLUID_HEATER.tooltipDescription(), + RecipeMaps.fluidHeaterRecipes, + 1, + 0, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_HEATER", + new Object[] { "OGO", aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + } + + private static void registerFluidSolidifier() { + ItemList.Machine_LV_FluidSolidifier.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_SOLIDIFIER_LV.ID, + "basicmachine.fluidsolidifier.tier.01", + "Basic Fluid Solidifier", + 1, + MachineType.FLUID_SOLIDIFIER.tooltipDescription(), + RecipeMaps.fluidSolidifierRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_SOLIDIFIER", + new Object[] { "PGP", aTextWireHull, "CBC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_MV_FluidSolidifier.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_SOLIDIFIER_MV.ID, + "basicmachine.fluidsolidifier.tier.02", + "Advanced Fluid Solidifier", + 2, + MachineType.FLUID_SOLIDIFIER.tooltipDescription(), + RecipeMaps.fluidSolidifierRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_SOLIDIFIER", + new Object[] { "PGP", aTextWireHull, "CBC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_HV_FluidSolidifier.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_SOLIDIFIER_HV.ID, + "basicmachine.fluidsolidifier.tier.03", + "Advanced Fluid Solidifier II", + 3, + MachineType.FLUID_SOLIDIFIER.tooltipDescription(), + RecipeMaps.fluidSolidifierRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_SOLIDIFIER", + new Object[] { "PGP", aTextWireHull, "CBC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_EV_FluidSolidifier.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_SOLIDIFIER_EV.ID, + "basicmachine.fluidsolidifier.tier.04", + "Advanced Fluid Solidifier III", + 4, + MachineType.FLUID_SOLIDIFIER.tooltipDescription(), + RecipeMaps.fluidSolidifierRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_SOLIDIFIER", + new Object[] { "PGP", aTextWireHull, "CBC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_IV_FluidSolidifier.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FLUID_SOLIDIFIER_IV.ID, + "basicmachine.fluidsolidifier.tier.05", + "Advanced Fluid Solidifier IV", + 5, + MachineType.FLUID_SOLIDIFIER.tooltipDescription(), + RecipeMaps.fluidSolidifierRecipes, + 1, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "FLUID_SOLIDIFIER", + new Object[] { "PGP", aTextWireHull, "CBC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + } + + private static void registerForgeHammer() { + ItemList.Machine_LV_Hammer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FORGE_HAMMER_LV.ID, + "basicmachine.hammer.tier.01", + "Basic Forge Hammer", + 1, + MachineType.FORGE_HAMMER.tooltipDescription(), + RecipeMaps.hammerRecipes, + 1, + 1, + true, + SoundResource.RANDOM_ANVIL_USE, + SpecialEffects.MAIN_RANDOM_SPARKS, + "HAMMER", + new Object[] { aTextWirePump, aTextCableHull, "WAW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, 'A', OreDictNames.craftingAnvil }) + .getStackForm(1L)); + ItemList.Machine_MV_Hammer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FORGE_HAMMER_MV.ID, + "basicmachine.hammer.tier.02", + "Advanced Forge Hammer", + 2, + MachineType.FORGE_HAMMER.tooltipDescription(), + RecipeMaps.hammerRecipes, + 1, + 1, + true, + SoundResource.RANDOM_ANVIL_USE, + SpecialEffects.MAIN_RANDOM_SPARKS, + "HAMMER", + new Object[] { aTextWirePump, aTextCableHull, "WAW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, 'A', OreDictNames.craftingAnvil }) + .getStackForm(1L)); + ItemList.Machine_HV_Hammer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FORGE_HAMMER_HV.ID, + "basicmachine.hammer.tier.03", + "Advanced Forge Hammer II", + 3, + MachineType.FORGE_HAMMER.tooltipDescription(), + RecipeMaps.hammerRecipes, + 1, + 1, + true, + SoundResource.RANDOM_ANVIL_USE, + SpecialEffects.MAIN_RANDOM_SPARKS, + "HAMMER", + new Object[] { aTextWirePump, aTextCableHull, "WAW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, 'A', OreDictNames.craftingAnvil }) + .getStackForm(1L)); + ItemList.Machine_EV_Hammer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FORGE_HAMMER_EV.ID, + "basicmachine.hammer.tier.04", + "Advanced Forge Hammer III", + 4, + MachineType.FORGE_HAMMER.tooltipDescription(), + RecipeMaps.hammerRecipes, + 1, + 1, + true, + SoundResource.RANDOM_ANVIL_USE, + SpecialEffects.MAIN_RANDOM_SPARKS, + "HAMMER", + new Object[] { aTextWirePump, aTextCableHull, "WAW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, 'A', OreDictNames.craftingAnvil }) + .getStackForm(1L)); + ItemList.Machine_IV_Hammer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FORGE_HAMMER_IV.ID, + "basicmachine.hammer.tier.05", + "Advanced Forge Hammer IV", + 5, + MachineType.FORGE_HAMMER.tooltipDescription(), + RecipeMaps.hammerRecipes, + 1, + 1, + true, + SoundResource.RANDOM_ANVIL_USE, + SpecialEffects.MAIN_RANDOM_SPARKS, + "HAMMER", + new Object[] { aTextWirePump, aTextCableHull, "WAW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, 'A', OreDictNames.craftingAnvil }) + .getStackForm(1L)); + } + + private static void registerFormingPress() { + ItemList.Machine_LV_Press.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FORMING_PRESS_LV.ID, + "basicmachine.press.tier.01", + "Basic Forming Press", + 1, + MachineType.FORMING_PRESS.tooltipDescription(), + RecipeMaps.formingPressRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "PRESS", + new Object[] { aTextWirePump, aTextCableHull, aTextWirePump, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_Press.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FORMING_PRESS_MV.ID, + "basicmachine.press.tier.02", + "Advanced Forming Press", + 2, + MachineType.FORMING_PRESS.tooltipDescription(), + RecipeMaps.formingPressRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "PRESS", + new Object[] { aTextWirePump, aTextCableHull, aTextWirePump, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_Press.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FORMING_PRESS_HV.ID, + "basicmachine.press.tier.03", + "Advanced Forming Press II", + 3, + MachineType.FORMING_PRESS.tooltipDescription(), + RecipeMaps.formingPressRecipes, + 4, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "PRESS", + new Object[] { aTextWirePump, aTextCableHull, aTextWirePump, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_Press.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FORMING_PRESS_EV.ID, + "basicmachine.press.tier.04", + "Advanced Forming Press III", + 4, + MachineType.FORMING_PRESS.tooltipDescription(), + RecipeMaps.formingPressRecipes, + 4, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "PRESS", + new Object[] { aTextWirePump, aTextCableHull, aTextWirePump, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_Press.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + FORMING_PRESS_IV.ID, + "basicmachine.press.tier.05", + "Advanced Forming Press IV", + 5, + MachineType.FORMING_PRESS.tooltipDescription(), + RecipeMaps.formingPressRecipes, + 6, + 1, + false, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.NONE, + "PRESS", + new Object[] { aTextWirePump, aTextCableHull, aTextWirePump, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerLaserEngraver() { + ItemList.Machine_LV_LaserEngraver.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + LASER_ENGRAVER_LV.ID, + "basicmachine.laserengraver.tier.01", + "Basic Precision Laser Engraver", + 1, + MachineType.LASER_ENGRAVER.tooltipDescription(), + RecipeMaps.laserEngraverRecipes, + 2, + 1, + true, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "LASER_ENGRAVER", + new Object[] { "PEP", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_LaserEngraver.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + LASER_ENGRAVER_MV.ID, + "basicmachine.laserengraver.tier.02", + "Advanced Precision Laser Engraver", + 2, + MachineType.LASER_ENGRAVER.tooltipDescription(), + RecipeMaps.laserEngraverRecipes, + 2, + 1, + true, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "LASER_ENGRAVER", + new Object[] { "PEP", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_LaserEngraver.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + LASER_ENGRAVER_HV.ID, + "basicmachine.laserengraver.tier.03", + "Advanced Precision Laser Engraver II", + 3, + MachineType.LASER_ENGRAVER.tooltipDescription(), + RecipeMaps.laserEngraverRecipes, + 2, + 1, + true, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "LASER_ENGRAVER", + new Object[] { "PEP", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_LaserEngraver.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + LASER_ENGRAVER_EV.ID, + "basicmachine.laserengraver.tier.04", + "Advanced Precision Laser Engraver III", + 4, + MachineType.LASER_ENGRAVER.tooltipDescription(), + RecipeMaps.laserEngraverRecipes, + 4, + 1, + true, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "LASER_ENGRAVER", + new Object[] { "PEP", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_LaserEngraver.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + LASER_ENGRAVER_IV.ID, + "basicmachine.laserengraver.tier.05", + "Advanced Precision Laser Engraver IV", + 5, + MachineType.LASER_ENGRAVER.tooltipDescription(), + RecipeMaps.laserEngraverRecipes, + 4, + 1, + true, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "LASER_ENGRAVER", + new Object[] { "PEP", aTextCableHull, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerLathe() { + ItemList.Machine_LV_Lathe.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + LATHE_LV.ID, + "basicmachine.lathe.tier.01", + "Basic Lathe", + 1, + MachineType.LATHE.tooltipDescription(), + RecipeMaps.latheRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "LATHE", + new Object[] { aTextWireCoil, "EMD", "CWP", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'D', OrePrefixes.gem.get(Materials.Diamond) }) + .getStackForm(1L)); + ItemList.Machine_MV_Lathe.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + LATHE_MV.ID, + "basicmachine.lathe.tier.02", + "Advanced Lathe", + 2, + MachineType.LATHE.tooltipDescription(), + RecipeMaps.latheRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "LATHE", + new Object[] { aTextWireCoil, "EMD", "CWP", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'D', + OrePrefixes.gemFlawless.get(Materials.Diamond) }).getStackForm(1L)); + ItemList.Machine_HV_Lathe.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + LATHE_HV.ID, + "basicmachine.lathe.tier.03", + "Advanced Lathe II", + 3, + MachineType.LATHE.tooltipDescription(), + RecipeMaps.latheRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "LATHE", + new Object[] { aTextWireCoil, "EMD", "CWP", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'D', OreDictNames.craftingIndustrialDiamond }) + .getStackForm(1L)); + ItemList.Machine_EV_Lathe.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + LATHE_EV.ID, + "basicmachine.lathe.tier.04", + "Advanced Lathe III", + 4, + MachineType.LATHE.tooltipDescription(), + RecipeMaps.latheRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "LATHE", + new Object[] { aTextWireCoil, "EMD", "CWP", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'D', OreDictNames.craftingIndustrialDiamond }) + .getStackForm(1L)); + ItemList.Machine_IV_Lathe.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + LATHE_IV.ID, + "basicmachine.lathe.tier.05", + "Advanced Lathe IV", + 5, + MachineType.LATHE.tooltipDescription(), + RecipeMaps.latheRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "LATHE", + new Object[] { aTextWireCoil, "EMD", "CWP", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'D', OreDictNames.craftingIndustrialDiamond }) + .getStackForm(1L)); + } + + private static void registerMacerator() { + ItemList.Machine_LV_Macerator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MACERATOR_LV.ID, + "basicmachine.macerator.tier.01", + "Basic Macerator", + 1, + MachineType.MACERATOR.tooltipDescription(), + RecipeMaps.maceratorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_MACERATOR_OP, + SpecialEffects.TOP_SMOKE, + "MACERATOR", + new Object[] { "PEG", "WWM", "CCW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', OrePrefixes.gem.get(Materials.Diamond) }) + .getStackForm(1L)); + ItemList.Machine_MV_Macerator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MACERATOR_MV.ID, + "basicmachine.macerator.tier.02", + "Advanced Macerator", + 2, + MachineType.MACERATOR.tooltipDescription(), + RecipeMaps.maceratorRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_MACERATOR_OP, + SpecialEffects.TOP_SMOKE, + "MACERATOR", + new Object[] { "PEG", "WWM", "CCW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + OrePrefixes.gemFlawless.get(Materials.Diamond) }).getStackForm(1L)); + ItemList.Machine_HV_Macerator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MACERATOR_HV.ID, + "basicmachine.macerator.tier.03", + "Universal Macerator", + 3, + MachineType.MACERATOR_PULVERIZER.tooltipDescription(), + RecipeMaps.maceratorRecipes, + 1, + 2, + false, + SoundResource.IC2_MACHINES_MACERATOR_OP, + SpecialEffects.TOP_SMOKE, + "PULVERIZER", + new Object[] { "PEG", "WWM", "CCW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', OreDictNames.craftingGrinder }) + .getStackForm(1L)); + ItemList.Machine_EV_Macerator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MACERATOR_EV.ID, + "basicmachine.macerator.tier.04", + "Universal Pulverizer", + 4, + MachineType.MACERATOR_PULVERIZER.tooltipDescription(), + RecipeMaps.maceratorRecipes, + 1, + 3, + false, + SoundResource.IC2_MACHINES_MACERATOR_OP, + SpecialEffects.TOP_SMOKE, + "PULVERIZER", + new Object[] { "PEG", "WWM", "CCW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', OreDictNames.craftingGrinder }) + .getStackForm(1L)); + ItemList.Machine_IV_Macerator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MACERATOR_IV.ID, + "basicmachine.macerator.tier.05", + "Blend-O-Matic 9001", + 5, + MachineType.MACERATOR_PULVERIZER.tooltipDescription(), + RecipeMaps.maceratorRecipes, + 1, + 4, + false, + SoundResource.IC2_MACHINES_MACERATOR_OP, + SpecialEffects.TOP_SMOKE, + "PULVERIZER", + new Object[] { "PEG", "WWM", "CCW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', OreDictNames.craftingGrinder }) + .getStackForm(1L)); + } + + private static void registerMatterAmplifier() { + ItemList.Machine_LV_Amplifab.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MATTER_AMPLIFIER_LV.ID, + "basicmachine.amplifab.tier.01", + "Basic Amplifabricator", + 1, + MachineType.MATTER_AMPLIFIER.tooltipDescription(), + RecipeMaps.amplifierRecipes, + 1, + 1, + 1000, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "AMPLIFAB", + new Object[] { aTextWirePump, aTextPlateMotor, "CPC", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4 }).getStackForm(1L)); + ItemList.Machine_MV_Amplifab.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MATTER_AMPLIFIER_MV.ID, + "basicmachine.amplifab.tier.02", + "Advanced Amplifabricator", + 2, + MachineType.MATTER_AMPLIFIER.tooltipDescription(), + RecipeMaps.amplifierRecipes, + 1, + 1, + 1000, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "AMPLIFAB", + new Object[] { aTextWirePump, aTextPlateMotor, "CPC", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4 }).getStackForm(1L)); + ItemList.Machine_HV_Amplifab.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MATTER_AMPLIFIER_HV.ID, + "basicmachine.amplifab.tier.03", + "Advanced Amplifabricator II", + 3, + MachineType.MATTER_AMPLIFIER.tooltipDescription(), + RecipeMaps.amplifierRecipes, + 1, + 1, + 1000, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "AMPLIFAB", + new Object[] { aTextWirePump, aTextPlateMotor, "CPC", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4 }).getStackForm(1L)); + ItemList.Machine_EV_Amplifab.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MATTER_AMPLIFIER_EV.ID, + "basicmachine.amplifab.tier.04", + "Advanced Amplifabricator III", + 4, + MachineType.MATTER_AMPLIFIER.tooltipDescription(), + RecipeMaps.amplifierRecipes, + 1, + 1, + 1000, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "AMPLIFAB", + new Object[] { aTextWirePump, aTextPlateMotor, "CPC", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4 }).getStackForm(1L)); + ItemList.Machine_IV_Amplifab.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MATTER_AMPLIFIER_IV.ID, + "basicmachine.amplifab.tier.05", + "Advanced Amplifabricator IV", + 5, + MachineType.MATTER_AMPLIFIER.tooltipDescription(), + RecipeMaps.amplifierRecipes, + 1, + 1, + 1000, + SoundResource.IC2_MACHINES_EXTRACTOR_OP, + SpecialEffects.NONE, + "AMPLIFAB", + new Object[] { aTextWirePump, aTextPlateMotor, "CPC", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4 }).getStackForm(1L)); + } + + private static void registerMicrowave() { + ItemList.Machine_LV_Microwave.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MICROWAVE_OVEN_LV.ID, + "basicmachine.microwave.tier.01", + "Basic Microwave", + 1, + MachineType.MICROWAVE.tooltipDescription(), + RecipeMaps.microwaveRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "MICROWAVE", + new Object[] { "LWC", "LMR", "LEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'L', OrePrefixes.plate.get(Materials.Lead) }) + .getStackForm(1L)); + ItemList.Machine_MV_Microwave.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MICROWAVE_OVEN_MV.ID, + "basicmachine.microwave.tier.02", + "Advanced Microwave", + 2, + MachineType.MICROWAVE.tooltipDescription(), + RecipeMaps.microwaveRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "MICROWAVE", + new Object[] { "LWC", "LMR", "LEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'L', OrePrefixes.plate.get(Materials.Lead) }) + .getStackForm(1L)); + ItemList.Machine_HV_Microwave.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MICROWAVE_OVEN_HV.ID, + "basicmachine.microwave.tier.03", + "Advanced Microwave II", + 3, + MachineType.MICROWAVE.tooltipDescription(), + RecipeMaps.microwaveRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "MICROWAVE", + new Object[] { "LWC", "LMR", "LEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'L', OrePrefixes.plate.get(Materials.Lead) }) + .getStackForm(1L)); + ItemList.Machine_EV_Microwave.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MICROWAVE_OVEN_EV.ID, + "basicmachine.microwave.tier.04", + "Advanced Microwave III", + 4, + MachineType.MICROWAVE.tooltipDescription(), + RecipeMaps.microwaveRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "MICROWAVE", + new Object[] { "LWC", "LMR", "LEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'L', OrePrefixes.plate.get(Materials.Lead) }) + .getStackForm(1L)); + ItemList.Machine_IV_Microwave.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MICROWAVE_OVEN_IV.ID, + "basicmachine.microwave.tier.05", + "Advanced Microwave IV", + 5, + MachineType.MICROWAVE.tooltipDescription(), + RecipeMaps.microwaveRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "MICROWAVE", + new Object[] { "LWC", "LMR", "LEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'L', OrePrefixes.plate.get(Materials.Lead) }) + .getStackForm(1L)); + } + + private static void registerMixer() { + ItemList.Machine_LV_Mixer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MIXER_LV.ID, + "basicmachine.mixer.tier.01", + "Basic Mixer", + 1, + MachineType.MIXER.tooltipDescription(), + RecipeMaps.mixerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "MIXER", + new Object[] { "GRG", "GEG", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_MV_Mixer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MIXER_MV.ID, + "basicmachine.mixer.tier.02", + "Advanced Mixer", + 2, + MachineType.MIXER.tooltipDescription(), + RecipeMaps.mixerRecipes, + 6, + 1, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "MIXER", + new Object[] { "GRG", "GEG", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_HV_Mixer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MIXER_HV.ID, + "basicmachine.mixer.tier.03", + "Advanced Mixer II", + 3, + MachineType.MIXER.tooltipDescription(), + RecipeMaps.mixerRecipes, + 6, + 4, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "MIXER", + new Object[] { "GRG", "GEG", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_EV_Mixer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MIXER_EV.ID, + "basicmachine.mixer.tier.04", + "Advanced Mixer III", + 4, + MachineType.MIXER.tooltipDescription(), + RecipeMaps.mixerRecipes, + 9, + 4, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "MIXER", + new Object[] { "GRG", "GEG", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + ItemList.Machine_IV_Mixer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + MIXER_IV.ID, + "basicmachine.mixer.tier.05", + "Advanced Mixer IV", + 5, + MachineType.MIXER.tooltipDescription(), + RecipeMaps.mixerRecipes, + 9, + 4, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "MIXER", + new Object[] { "GRG", "GEG", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); + } + + private static void registerOreWasher() { + ItemList.Machine_LV_OreWasher.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ORE_WASHER_LV.ID, + "basicmachine.orewasher.tier.01", + "Basic Ore Washing Plant", + 1, + MachineType.ORE_WASHER.tooltipDescription(), + RecipeMaps.oreWasherRecipes, + 1, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ORE_WASHER", + new Object[] { "RGR", "CEC", aTextWireHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP }).getStackForm(1L)); + ItemList.Machine_MV_OreWasher.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ORE_WASHER_MV.ID, + "basicmachine.orewasher.tier.02", + "Advanced Ore Washing Plant", + 2, + MachineType.ORE_WASHER.tooltipDescription(), + RecipeMaps.oreWasherRecipes, + 1, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ORE_WASHER", + new Object[] { "RGR", "CEC", aTextWireHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP }).getStackForm(1L)); + ItemList.Machine_HV_OreWasher.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ORE_WASHER_HV.ID, + "basicmachine.orewasher.tier.03", + "Advanced Ore Washing Plant II", + 3, + MachineType.ORE_WASHER.tooltipDescription(), + RecipeMaps.oreWasherRecipes, + 1, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ORE_WASHER", + new Object[] { "RGR", "CEC", aTextWireHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP }).getStackForm(1L)); + ItemList.Machine_EV_OreWasher.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ORE_WASHER_EV.ID, + "basicmachine.orewasher.tier.04", + "Advanced Ore Washing Plant III", + 4, + MachineType.ORE_WASHER.tooltipDescription(), + RecipeMaps.oreWasherRecipes, + 1, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ORE_WASHER", + new Object[] { "RGR", "CEC", aTextWireHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP }).getStackForm(1L)); + ItemList.Machine_IV_OreWasher.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + ORE_WASHER_IV.ID, + "basicmachine.orewasher.tier.05", + "Repurposed Laundry-Washer I-360", + 5, + MachineType.ORE_WASHER.tooltipDescription(), + RecipeMaps.oreWasherRecipes, + 1, + 3, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "ORE_WASHER", + new Object[] { "RGR", "CEC", aTextWireHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP }).getStackForm(1L)); + } + + private static void registerOven() { + ItemList.Machine_LV_Oven.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + OVEN_LV.ID, + "basicmachine.e_oven.tier.01", + "Basic Electric Oven", + 1, + MachineType.OVEN.tooltipDescription(), + RecipeMaps.furnaceRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "ELECTRIC_OVEN", + new Object[] { "CEC", aTextCableHull, "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).setProgressBarTextureName("E_Oven") + .getStackForm(1L)); + ItemList.Machine_MV_Oven.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + OVEN_MV.ID, + "basicmachine.e_oven.tier.02", + "Advanced Electric Oven", + 2, + MachineType.OVEN.tooltipDescription(), + RecipeMaps.furnaceRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "ELECTRIC_OVEN", + new Object[] { "CEC", aTextCableHull, "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).setProgressBarTextureName("E_Oven") + .getStackForm(1L)); + ItemList.Machine_HV_Oven.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + OVEN_HV.ID, + "basicmachine.e_oven.tier.03", + "Advanced Electric Oven II", + 3, + MachineType.OVEN.tooltipDescription(), + RecipeMaps.furnaceRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "ELECTRIC_OVEN", + new Object[] { "CEC", aTextCableHull, "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).setProgressBarTextureName("E_Oven") + .getStackForm(1L)); + ItemList.Machine_EV_Oven.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + OVEN_EV.ID, + "basicmachine.e_oven.tier.04", + "Advanced Electric Oven III", + 4, + MachineType.OVEN.tooltipDescription(), + RecipeMaps.furnaceRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "ELECTRIC_OVEN", + new Object[] { "CEC", aTextCableHull, "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).setProgressBarTextureName("E_Oven") + .getStackForm(1L)); + ItemList.Machine_IV_Oven.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + OVEN_IV.ID, + "basicmachine.e_oven.tier.05", + "Advanced Electric Oven IV", + 5, + MachineType.OVEN.tooltipDescription(), + RecipeMaps.furnaceRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, + SpecialEffects.NONE, + "ELECTRIC_OVEN", + new Object[] { "CEC", aTextCableHull, "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).setProgressBarTextureName("E_Oven") + .getStackForm(1L)); + } + + private static void registerPlasmaArcFurnace() { + ItemList.Machine_LV_PlasmaArcFurnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PLASMA_ARC_FURNACE_LV.ID, + "basicmachine.plasmaarcfurnace.tier.01", + "Basic Plasma Arc Furnace", + 1, + MachineType.PLASMA_ARC_FURNACE.tooltipDescription(), + RecipeMaps.plasmaArcFurnaceRecipes, + 1, + 4, + true, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "PLASMA_ARC_FURNACE", + new Object[] { "WGW", aTextCableHull, "TPT", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'T', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'G', OrePrefixes.cell.get(Materials.Graphite) }) + .getStackForm(1L)); + ItemList.Machine_MV_PlasmaArcFurnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PLASMA_ARC_FURNACE_MV.ID, + "basicmachine.plasmaarcfurnace.tier.02", + "Advanced Plasma Arc Furnace", + 2, + MachineType.PLASMA_ARC_FURNACE.tooltipDescription(), + RecipeMaps.plasmaArcFurnaceRecipes, + 1, + 4, + true, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "PLASMA_ARC_FURNACE", + new Object[] { "WGW", aTextCableHull, "TPT", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'T', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'G', OrePrefixes.cell.get(Materials.Graphite) }) + .getStackForm(1L)); + ItemList.Machine_HV_PlasmaArcFurnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PLASMA_ARC_FURNACE_HV.ID, + "basicmachine.plasmaarcfurnace.tier.03", + "Advanced Plasma Arc Furnace II", + 3, + MachineType.PLASMA_ARC_FURNACE.tooltipDescription(), + RecipeMaps.plasmaArcFurnaceRecipes, + 1, + 4, + true, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "PLASMA_ARC_FURNACE", + new Object[] { "WGW", aTextCableHull, "TPT", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'T', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'G', OrePrefixes.cell.get(Materials.Graphite) }) + .getStackForm(1L)); + ItemList.Machine_EV_PlasmaArcFurnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PLASMA_ARC_FURNACE_EV.ID, + "basicmachine.plasmaarcfurnace.tier.04", + "Advanced Plasma Arc Furnace III", + 4, + MachineType.PLASMA_ARC_FURNACE.tooltipDescription(), + RecipeMaps.plasmaArcFurnaceRecipes, + 1, + 9, + true, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "PLASMA_ARC_FURNACE", + new Object[] { "WGW", aTextCableHull, "TPT", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'T', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'G', OrePrefixes.cell.get(Materials.Graphite) }) + .getStackForm(1L)); + ItemList.Machine_IV_PlasmaArcFurnace.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PLASMA_ARC_FURNACE_IV.ID, + "basicmachine.plasmaarcfurnace.tier.05", + "Advanced Plasma Arc Furnace IV", + 5, + MachineType.PLASMA_ARC_FURNACE.tooltipDescription(), + RecipeMaps.plasmaArcFurnaceRecipes, + 1, + 9, + true, + SoundResource.IC2_MACHINES_INDUCTION_LOOP, + SpecialEffects.NONE, + "PLASMA_ARC_FURNACE", + new Object[] { "WGW", aTextCableHull, "TPT", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'T', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, 'G', OrePrefixes.cell.get(Materials.Graphite) }) + .getStackForm(1L)); + } + + private static void registerPolarizer() { + ItemList.Machine_LV_Polarizer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + POLARIZER_LV.ID, + "basicmachine.polarizer.tier.01", + "Basic Polarizer", + 1, + MachineType.POLARIZER.tooltipDescription(), + RecipeMaps.polarizerRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "POLARIZER", + new Object[] { "ZSZ", aTextWireHull, "ZSZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, 'Z', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_Polarizer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + POLARIZER_MV.ID, + "basicmachine.polarizer.tier.02", + "Advanced Polarizer", + 2, + MachineType.POLARIZER.tooltipDescription(), + RecipeMaps.polarizerRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "POLARIZER", + new Object[] { "ZSZ", aTextWireHull, "ZSZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, 'Z', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_Polarizer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + POLARIZER_HV.ID, + "basicmachine.polarizer.tier.03", + "Advanced Polarizer II", + 3, + MachineType.POLARIZER.tooltipDescription(), + RecipeMaps.polarizerRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "POLARIZER", + new Object[] { "ZSZ", aTextWireHull, "ZSZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, 'Z', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_Polarizer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + POLARIZER_EV.ID, + "basicmachine.polarizer.tier.04", + "Advanced Polarizer III", + 4, + MachineType.POLARIZER.tooltipDescription(), + RecipeMaps.polarizerRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "POLARIZER", + new Object[] { "ZSZ", aTextWireHull, "ZSZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, 'Z', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_Polarizer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + POLARIZER_IV.ID, + "basicmachine.polarizer.tier.05", + "Advanced Polarizer IV", + 5, + MachineType.POLARIZER.tooltipDescription(), + RecipeMaps.polarizerRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, + SpecialEffects.NONE, + "POLARIZER", + new Object[] { "ZSZ", aTextWireHull, "ZSZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, 'Z', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + + } + + private static void registerPrinter() { + ItemList.Machine_LV_Printer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PRINTER_LV.ID, + "basicmachine.printer.tier.01", + "Basic Printer", + 1, + MachineType.PRINTER.tooltipDescription(), + RecipeMaps.printerRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.TOP_SMOKE, + "PRINTER", + new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_Printer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PRINTER_MV.ID, + "basicmachine.printer.tier.02", + "Advanced Printer", + 2, + MachineType.PRINTER.tooltipDescription(), + RecipeMaps.printerRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.TOP_SMOKE, + "PRINTER", + new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_Printer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PRINTER_HV.ID, + "basicmachine.printer.tier.03", + "Advanced Printer II", + 3, + MachineType.PRINTER.tooltipDescription(), + RecipeMaps.printerRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.TOP_SMOKE, + "PRINTER", + new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_Printer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PRINTER_EV.ID, + "basicmachine.printer.tier.04", + "Advanced Printer III", + 4, + MachineType.PRINTER.tooltipDescription(), + RecipeMaps.printerRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.TOP_SMOKE, + "PRINTER", + new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_Printer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PRINTER_IV.ID, + "basicmachine.printer.tier.05", + "Advanced Printer IV", + 5, + MachineType.PRINTER.tooltipDescription(), + RecipeMaps.printerRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.TOP_SMOKE, + "PRINTER", + new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_LuV_Printer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PRINTER_LuV.ID, + "basicmachine.printer.tier.06", + "Advanced Printer V", + 6, + MachineType.PRINTER.tooltipDescription(), + RecipeMaps.printerRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.TOP_SMOKE, + "PRINTER", + new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_ZPM_Printer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PRINTER_ZPM.ID, + "basicmachine.printer.tier.07", + "Advanced Printer VI", + 7, + MachineType.PRINTER.tooltipDescription(), + RecipeMaps.printerRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.TOP_SMOKE, + "PRINTER", + new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_UV_Printer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + PRINTER_UV.ID, + "basicmachine.printer.tier.08", + "Advanced Printer VII", + 8, + MachineType.PRINTER.tooltipDescription(), + RecipeMaps.printerRecipes, + 1, + 1, + true, + SoundResource.IC2_MACHINES_COMPRESSOR_OP, + SpecialEffects.TOP_SMOKE, + "PRINTER", + new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerRecycler() { + ItemList.Machine_LV_Recycler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + RECYCLER_LV.ID, + "basicmachine.recycler.tier.01", + "Basic Recycler", + 1, + MachineType.RECYCLER.tooltipDescription(), + RecipeMaps.recyclerRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_RECYCLER_OP, + SpecialEffects.NONE, + "RECYCLER", + new Object[] { "GCG", aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', OrePrefixes.dust.get(Materials.Glowstone) }) + .getStackForm(1L)); + ItemList.Machine_MV_Recycler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + RECYCLER_MV.ID, + "basicmachine.recycler.tier.02", + "Advanced Recycler", + 2, + MachineType.RECYCLER.tooltipDescription(), + RecipeMaps.recyclerRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_RECYCLER_OP, + SpecialEffects.NONE, + "RECYCLER", + new Object[] { "GCG", aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', OrePrefixes.dust.get(Materials.Glowstone) }) + .getStackForm(1L)); + ItemList.Machine_HV_Recycler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + RECYCLER_HV.ID, + "basicmachine.recycler.tier.03", + "Advanced Recycler II", + 3, + MachineType.RECYCLER.tooltipDescription(), + RecipeMaps.recyclerRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_RECYCLER_OP, + SpecialEffects.NONE, + "RECYCLER", + new Object[] { "GCG", aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', OrePrefixes.dust.get(Materials.Glowstone) }) + .getStackForm(1L)); + ItemList.Machine_EV_Recycler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + RECYCLER_EV.ID, + "basicmachine.recycler.tier.04", + "Advanced Recycler III", + 4, + MachineType.RECYCLER.tooltipDescription(), + RecipeMaps.recyclerRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_RECYCLER_OP, + SpecialEffects.NONE, + "RECYCLER", + new Object[] { "GCG", aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', OrePrefixes.dust.get(Materials.Glowstone) }) + .getStackForm(1L)); + ItemList.Machine_IV_Recycler.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + RECYCLER_IV.ID, + "basicmachine.recycler.tier.05", + "The Oblitterator", + 5, + MachineType.RECYCLER.tooltipDescription(), + RecipeMaps.recyclerRecipes, + 1, + 1, + false, + SoundResource.IC2_MACHINES_RECYCLER_OP, + SpecialEffects.NONE, + "RECYCLER", + new Object[] { "GCG", aTextPlateMotor, aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'G', OrePrefixes.dust.get(Materials.Glowstone) }) + .getStackForm(1L)); + } + + private static void registerSifter() { + ItemList.Machine_LV_Sifter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + SIFTER_LV.ID, + "basicmachine.sifter.tier.01", + "Basic Sifting Machine", + 1, + MachineType.SIFTER.tooltipDescription(), + RecipeMaps.sifterRecipes, + 1, + 9, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "SIFTER", + new Object[] { "WFW", aTextPlateMotor, "CFC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'F', OreDictNames.craftingFilter, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_Sifter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + SIFTER_MV.ID, + "basicmachine.sifter.tier.02", + "Advanced Sifting Machine", + 2, + MachineType.SIFTER.tooltipDescription(), + RecipeMaps.sifterRecipes, + 1, + 9, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "SIFTER", + new Object[] { "WFW", aTextPlateMotor, "CFC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'F', OreDictNames.craftingFilter, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_Sifter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + SIFTER_HV.ID, + "basicmachine.sifter.tier.03", + "Advanced Sifting Machine II", + 3, + MachineType.SIFTER.tooltipDescription(), + RecipeMaps.sifterRecipes, + 1, + 9, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "SIFTER", + new Object[] { "WFW", aTextPlateMotor, "CFC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'F', OreDictNames.craftingFilter, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_Sifter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + SIFTER_EV.ID, + "basicmachine.sifter.tier.04", + "Advanced Sifting Machine III", + 4, + MachineType.SIFTER.tooltipDescription(), + RecipeMaps.sifterRecipes, + 1, + 9, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "SIFTER", + new Object[] { "WFW", aTextPlateMotor, "CFC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'F', OreDictNames.craftingFilter, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_Sifter.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + SIFTER_IV.ID, + "basicmachine.sifter.tier.05", + "Advanced Sifting Machine IV", + 5, + MachineType.SIFTER.tooltipDescription(), + RecipeMaps.sifterRecipes, + 1, + 9, + true, + SoundResource.NONE, + SpecialEffects.NONE, + "SIFTER", + new Object[] { "WFW", aTextPlateMotor, "CFC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'F', OreDictNames.craftingFilter, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerSlicer() { + ItemList.Machine_LV_Slicer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + SLICER_LV.ID, + "basicmachine.slicer.tier.01", + "Basic Slicing Machine", + 1, + MachineType.SLICER.tooltipDescription(), + RecipeMaps.slicerRecipes, + 2, + 1, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "SLICER", + new Object[] { aTextWireCoil, "PMV", aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_Slicer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + SLICER_MV.ID, + "basicmachine.slicer.tier.02", + "Advanced Slicing Machine", + 2, + MachineType.SLICER.tooltipDescription(), + RecipeMaps.slicerRecipes, + 2, + 1, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "SLICER", + new Object[] { aTextWireCoil, "PMV", aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_Slicer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + SLICER_HV.ID, + "basicmachine.slicer.tier.03", + "Advanced Slicing Machine II", + 3, + MachineType.SLICER.tooltipDescription(), + RecipeMaps.slicerRecipes, + 2, + 1, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "SLICER", + new Object[] { aTextWireCoil, "PMV", aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_Slicer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + SLICER_EV.ID, + "basicmachine.slicer.tier.04", + "Advanced Slicing Machine III", + 4, + MachineType.SLICER.tooltipDescription(), + RecipeMaps.slicerRecipes, + 2, + 1, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "SLICER", + new Object[] { aTextWireCoil, "PMV", aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_Slicer.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + SLICER_IV.ID, + "basicmachine.slicer.tier.05", + "Advanced Slicing Machine IV", + 5, + MachineType.SLICER.tooltipDescription(), + RecipeMaps.slicerRecipes, + 2, + 1, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "SLICER", + new Object[] { aTextWireCoil, "PMV", aTextWireCoil, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerThermalCentrifuge() { + ItemList.Machine_LV_ThermalCentrifuge.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + THERMAL_CENTRIFUGE_LV.ID, + "basicmachine.thermalcentrifuge.tier.01", + "Basic Thermal Centrifuge", + 1, + MachineType.THERMAL_CENTRIFUGE.tooltipDescription(), + RecipeMaps.thermalCentrifugeRecipes, + 1, + 3, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "THERMAL_CENTRIFUGE", + new Object[] { "CEC", "OMO", "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_MV_ThermalCentrifuge.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + THERMAL_CENTRIFUGE_MV.ID, + "basicmachine.thermalcentrifuge.tier.02", + "Advanced Thermal Centrifuge", + 2, + MachineType.THERMAL_CENTRIFUGE.tooltipDescription(), + RecipeMaps.thermalCentrifugeRecipes, + 1, + 3, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "THERMAL_CENTRIFUGE", + new Object[] { "CEC", "OMO", "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_HV_ThermalCentrifuge.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + THERMAL_CENTRIFUGE_HV.ID, + "basicmachine.thermalcentrifuge.tier.03", + "Advanced Thermal Centrifuge II", + 3, + MachineType.THERMAL_CENTRIFUGE.tooltipDescription(), + RecipeMaps.thermalCentrifugeRecipes, + 1, + 3, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "THERMAL_CENTRIFUGE", + new Object[] { "CEC", "OMO", "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_EV_ThermalCentrifuge.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + THERMAL_CENTRIFUGE_EV.ID, + "basicmachine.thermalcentrifuge.tier.04", + "Advanced Thermal Centrifuge III", + 4, + MachineType.THERMAL_CENTRIFUGE.tooltipDescription(), + RecipeMaps.thermalCentrifugeRecipes, + 1, + 3, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "THERMAL_CENTRIFUGE", + new Object[] { "CEC", "OMO", "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + ItemList.Machine_IV_ThermalCentrifuge.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + THERMAL_CENTRIFUGE_IV.ID, + "basicmachine.thermalcentrifuge.tier.05", + "Blaze Sweatshop T-6350", + 5, + MachineType.THERMAL_CENTRIFUGE.tooltipDescription(), + RecipeMaps.thermalCentrifugeRecipes, + 1, + 3, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "THERMAL_CENTRIFUGE", + new Object[] { "CEC", "OMO", "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'O', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); + } + + private static void registerUnpackager() { + ItemList.Machine_LV_Unboxinator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + UNPACKAGER_LV.ID, + "basicmachine.unboxinator.tier.01", + "Basic Unpackager", + 1, + MachineType.UNPACKAGER.tooltipDescription(), + RecipeMaps.unpackagerRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "UNBOXINATOR", + new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_MV_Unboxinator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + UNPACKAGER_MV.ID, + "basicmachine.unboxinator.tier.02", + "Advanced Unpackager", + 2, + MachineType.UNPACKAGER.tooltipDescription(), + RecipeMaps.unpackagerRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "UNBOXINATOR", + new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_HV_Unboxinator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + UNPACKAGER_HV.ID, + "basicmachine.unboxinator.tier.03", + "Advanced Unpackager II", + 3, + MachineType.UNPACKAGER.tooltipDescription(), + RecipeMaps.unpackagerRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "UNBOXINATOR", + new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_EV_Unboxinator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + UNPACKAGER_EV.ID, + "basicmachine.unboxinator.tier.04", + "Advanced Unpackager III", + 4, + MachineType.UNPACKAGER.tooltipDescription(), + RecipeMaps.unpackagerRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "UNBOXINATOR", + new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_IV_Unboxinator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + UNPACKAGER_IV.ID, + "basicmachine.unboxinator.tier.05", + "Unboxinator", + 5, + MachineType.UNPACKAGER.tooltipDescription(), + RecipeMaps.unpackagerRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "UNBOXINATOR", + new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_LuV_Unboxinator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + UNPACKAGER_LuV.ID, + "basicmachine.unboxinator.tier.06", + "Unboxinator", + 6, + MachineType.UNPACKAGER.tooltipDescription(), + RecipeMaps.unpackagerRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "UNBOXINATOR", + new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_ZPM_Unboxinator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + UNPACKAGER_ZPM.ID, + "basicmachine.unboxinator.tier.07", + "Unboxinator", + 7, + MachineType.UNPACKAGER.tooltipDescription(), + RecipeMaps.unpackagerRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "UNBOXINATOR", + new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + ItemList.Machine_UV_Unboxinator.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + UNPACKAGER_UV.ID, + "basicmachine.unboxinator.tier.08", + "Unboxinator", + 8, + MachineType.UNPACKAGER.tooltipDescription(), + RecipeMaps.unpackagerRecipes, + 1, + 2, + false, + SoundResource.NONE, + SpecialEffects.NONE, + "UNBOXINATOR", + new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, 'V', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, 'B', OreDictNames.craftingChest }) + .getStackForm(1L)); + } + + private static void registerWiremill() { + ItemList.Machine_LV_Wiremill.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + WIREMILL_LV.ID, + "basicmachine.wiremill.tier.01", + "Basic Wiremill", + 1, + MachineType.WIREMILL.tooltipDescription(), + RecipeMaps.wiremillRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_RECYCLER_OP, + SpecialEffects.NONE, + "WIREMILL", + new Object[] { aTextMotorWire, aTextCableHull, aTextMotorWire, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_MV_Wiremill.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + WIREMILL_MV.ID, + "basicmachine.wiremill.tier.02", + "Advanced Wiremill", + 2, + MachineType.WIREMILL.tooltipDescription(), + RecipeMaps.wiremillRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_RECYCLER_OP, + SpecialEffects.NONE, + "WIREMILL", + new Object[] { aTextMotorWire, aTextCableHull, aTextMotorWire, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_HV_Wiremill.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + WIREMILL_HV.ID, + "basicmachine.wiremill.tier.03", + "Advanced Wiremill II", + 3, + MachineType.WIREMILL.tooltipDescription(), + RecipeMaps.wiremillRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_RECYCLER_OP, + SpecialEffects.NONE, + "WIREMILL", + new Object[] { aTextMotorWire, aTextCableHull, aTextMotorWire, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_EV_Wiremill.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + WIREMILL_EV.ID, + "basicmachine.wiremill.tier.04", + "Advanced Wiremill III", + 4, + MachineType.WIREMILL.tooltipDescription(), + RecipeMaps.wiremillRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_RECYCLER_OP, + SpecialEffects.NONE, + "WIREMILL", + new Object[] { aTextMotorWire, aTextCableHull, aTextMotorWire, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + ItemList.Machine_IV_Wiremill.set( + new GT_MetaTileEntity_BasicMachine_GT_Recipe( + WIREMILL_IV.ID, + "basicmachine.wiremill.tier.05", + "Advanced Wiremill IV", + 5, + MachineType.WIREMILL.tooltipDescription(), + RecipeMaps.wiremillRecipes, + 2, + 1, + false, + SoundResource.IC2_MACHINES_RECYCLER_OP, + SpecialEffects.NONE, + "WIREMILL", + new Object[] { aTextMotorWire, aTextCableHull, aTextMotorWire, 'M', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, 'C', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W', + GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); + } + + private static void registerShapedCraftingRecipes() { + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Pipe_Polytetrafluoroethylene.get(1L), + bits, + new Object[] { "PIP", "IFI", "PIP", 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene), 'F', + OrePrefixes.frameGt.get(Materials.Polytetrafluoroethylene), 'I', + OrePrefixes.pipeMedium.get(Materials.Polytetrafluoroethylene) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Pipe_Polybenzimidazole.get(1L), + bits, + new Object[] { "PIP", "IFI", "PIP", 'P', OrePrefixes.plate.get(Materials.Polybenzimidazole), 'F', + OrePrefixes.frameGt.get(Materials.Polybenzimidazole), 'I', + OrePrefixes.pipeMedium.get(Materials.Polybenzimidazole) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_ULV.get(1L), + bits, + new Object[] { aTextPlate, aTextPlateWrench, aTextPlate, 'P', + OrePrefixes.plate.get(Materials.WroughtIron) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_LV.get(1L), + bits, + new Object[] { aTextPlate, aTextPlateWrench, aTextPlate, 'P', OrePrefixes.plate.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_MV.get(1L), + bits, + new Object[] { aTextPlate, aTextPlateWrench, aTextPlate, 'P', OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_HV.get(1L), + bits, + new Object[] { aTextPlate, aTextPlateWrench, aTextPlate, 'P', + OrePrefixes.plate.get(Materials.StainlessSteel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_EV.get(1L), + bits, + new Object[] { aTextPlate, aTextPlateWrench, aTextPlate, 'P', OrePrefixes.plate.get(Materials.Titanium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_IV.get(1L), + bits, + new Object[] { aTextPlate, aTextPlateWrench, aTextPlate, 'P', + OrePrefixes.plate.get(Materials.TungstenSteel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_LuV.get(1L), + bits, + new Object[] { aTextPlate, aTextPlateWrench, aTextPlate, 'P', + OrePrefixes.plate.get(ExternalMaterials.getRhodiumPlatedPalladium()) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_ZPM.get(1L), + bits, + new Object[] { aTextPlate, aTextPlateWrench, aTextPlate, 'P', OrePrefixes.plate.get(Materials.Iridium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_UV.get(1L), + bits, + new Object[] { aTextPlate, aTextPlateWrench, aTextPlate, 'P', OrePrefixes.plate.get(Materials.Osmium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_MAX.get(1L), + bits, + new Object[] { aTextPlate, aTextPlateWrench, aTextPlate, 'P', + OrePrefixes.plate.get(Materials.Neutronium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_BronzePlatedBricks.get(1L), + bits, + new Object[] { "PhP", "PBP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Bronze), 'B', + new ItemStack(Blocks.brick_block, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Steel), 'F', + OrePrefixes.frameGt.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_StableTitanium.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Titanium), 'F', + OrePrefixes.frameGt.get(Materials.Titanium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_HeatProof.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Invar), 'F', + OrePrefixes.frameGt.get(Materials.Invar) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_FrostProof.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Aluminium), 'F', + OrePrefixes.frameGt.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_CleanStainlessSteel.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.StainlessSteel), 'F', + OrePrefixes.frameGt.get(Materials.StainlessSteel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_RobustTungstenSteel.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.TungstenSteel), 'F', + OrePrefixes.frameGt.get(Materials.TungstenSteel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_MiningOsmiridium.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Osmiridium), 'F', + OrePrefixes.frameGt.get(Materials.Osmiridium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_MiningNeutronium.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Neutronium), 'F', + OrePrefixes.frameGt.get(Materials.Neutronium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_MiningBlackPlutonium.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.BlackPlutonium), 'F', + OrePrefixes.frameGt.get(Materials.BlackPlutonium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Turbine.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Magnalium), 'F', + OrePrefixes.frameGt.get(Materials.BlueSteel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Turbine1.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.StainlessSteel), 'F', + ItemList.Casing_Turbine }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Turbine2.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Titanium), 'F', + ItemList.Casing_Turbine }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Turbine3.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.TungstenSteel), 'F', + ItemList.Casing_Turbine }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_TurbineGasAdvanced.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.HSSS), 'F', + ItemList.Casing_Turbine }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Pipe_Bronze.get(1L), + bits, + new Object[] { "PIP", "IFI", "PIP", 'P', OrePrefixes.plate.get(Materials.Bronze), 'F', + OrePrefixes.frameGt.get(Materials.Bronze), 'I', OrePrefixes.pipeMedium.get(Materials.Bronze) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Pipe_Steel.get(1L), + bits, + new Object[] { "PIP", "IFI", "PIP", 'P', OrePrefixes.plate.get(Materials.Steel), 'F', + OrePrefixes.frameGt.get(Materials.Steel), 'I', OrePrefixes.pipeMedium.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Pipe_Titanium.get(1L), + bits, + new Object[] { "PIP", "IFI", "PIP", 'P', OrePrefixes.plate.get(Materials.Titanium), 'F', + OrePrefixes.frameGt.get(Materials.Titanium), 'I', OrePrefixes.pipeMedium.get(Materials.Titanium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Pipe_TungstenSteel.get(1L), + bits, + new Object[] { "PIP", "IFI", "PIP", 'P', OrePrefixes.plate.get(Materials.TungstenSteel), 'F', + OrePrefixes.frameGt.get(Materials.TungstenSteel), 'I', + OrePrefixes.pipeMedium.get(Materials.TungstenSteel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Gearbox_Bronze.get(1L), + bits, + new Object[] { "PhP", "GFG", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Bronze), 'F', + OrePrefixes.frameGt.get(Materials.Bronze), 'G', OrePrefixes.gearGt.get(Materials.Bronze) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Gearbox_Steel.get(1L), + bits, + new Object[] { "PhP", "GFG", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Steel), 'F', + OrePrefixes.frameGt.get(Materials.Steel), 'G', OrePrefixes.gearGt.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Gearbox_Titanium.get(1L), + bits, + new Object[] { "PhP", "GFG", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Steel), 'F', + OrePrefixes.frameGt.get(Materials.Titanium), 'G', OrePrefixes.gearGt.get(Materials.Titanium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Gearbox_TungstenSteel.get(1L), + bits, + new Object[] { "PhP", "GFG", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Steel), 'F', + OrePrefixes.frameGt.get(Materials.TungstenSteel), 'G', ItemList.Robot_Arm_IV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Grate.get(1L), + bits, + new Object[] { "PVP", "PFP", aTextPlateMotor, 'P', new ItemStack(Blocks.iron_bars, 1), 'F', + OrePrefixes.frameGt.get(Materials.Steel), 'M', ItemList.Electric_Motor_MV, 'V', + OrePrefixes.rotor.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Assembler.get(1L), + bits, + new Object[] { "PVP", "PFP", aTextPlateMotor, 'P', OrePrefixes.circuit.get(Materials.Ultimate), 'F', + OrePrefixes.frameGt.get(Materials.TungstenSteel), 'M', ItemList.Electric_Motor_IV, 'V', + OrePrefixes.circuit.get(Materials.Master) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Firebox_Bronze.get(1L), + bits, + new Object[] { "PSP", "SFS", "PSP", 'P', OrePrefixes.plate.get(Materials.Bronze), 'F', + OrePrefixes.frameGt.get(Materials.Bronze), 'S', OrePrefixes.stick.get(Materials.Bronze) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Firebox_Steel.get(1L), + bits, + new Object[] { "PSP", "SFS", "PSP", 'P', OrePrefixes.plate.get(Materials.Steel), 'F', + OrePrefixes.frameGt.get(Materials.Steel), 'S', OrePrefixes.stick.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Firebox_Titanium.get(1L), + bits, + new Object[] { "PSP", "SFS", "PSP", 'P', OrePrefixes.plate.get(Materials.Titanium), 'F', + OrePrefixes.frameGt.get(Materials.Titanium), 'S', OrePrefixes.stick.get(Materials.Titanium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Firebox_TungstenSteel.get(1L), + bits, + new Object[] { "PSP", "SFS", "PSP", 'P', OrePrefixes.plate.get(Materials.TungstenSteel), 'F', + OrePrefixes.frameGt.get(Materials.TungstenSteel), 'S', + OrePrefixes.stick.get(Materials.TungstenSteel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Stripes_A.get(1L), + bits, + new Object[] { "Y ", " M ", " B", 'M', ItemList.Casing_SolidSteel, 'Y', Dyes.dyeYellow, 'B', + Dyes.dyeBlack }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Stripes_B.get(1L), + bits, + new Object[] { " Y", " M ", "B ", 'M', ItemList.Casing_SolidSteel, 'Y', Dyes.dyeYellow, 'B', + Dyes.dyeBlack }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_RadioactiveHazard.get(1L), + bits, + new Object[] { " YB", " M ", " ", 'M', ItemList.Casing_SolidSteel, 'Y', Dyes.dyeYellow, 'B', + Dyes.dyeBlack }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_BioHazard.get(1L), + bits, + new Object[] { " Y ", " MB", " ", 'M', ItemList.Casing_SolidSteel, 'Y', Dyes.dyeYellow, 'B', + Dyes.dyeBlack }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_ExplosionHazard.get(1L), + bits, + new Object[] { " Y ", " M ", " B", 'M', ItemList.Casing_SolidSteel, 'Y', Dyes.dyeYellow, 'B', + Dyes.dyeBlack }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_FireHazard.get(1L), + bits, + new Object[] { " Y ", " M ", " B ", 'M', ItemList.Casing_SolidSteel, 'Y', Dyes.dyeYellow, 'B', + Dyes.dyeBlack }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_AcidHazard.get(1L), + bits, + new Object[] { " Y ", " M ", "B ", 'M', ItemList.Casing_SolidSteel, 'Y', Dyes.dyeYellow, 'B', + Dyes.dyeBlack }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_MagicHazard.get(1L), + bits, + new Object[] { " Y ", "BM ", " ", 'M', ItemList.Casing_SolidSteel, 'Y', Dyes.dyeYellow, 'B', + Dyes.dyeBlack }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_FrostHazard.get(1L), + bits, + new Object[] { "BY ", " M ", " ", 'M', ItemList.Casing_SolidSteel, 'Y', Dyes.dyeYellow, 'B', + Dyes.dyeBlack }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_NoiseHazard.get(1L), + bits, + new Object[] { " ", " M ", "BY ", 'M', ItemList.Casing_SolidSteel, 'Y', Dyes.dyeYellow, 'B', + Dyes.dyeBlack }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Advanced_Iridium.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', OrePrefixes.plate.get(Materials.Iridium), 'F', + OrePrefixes.frameGt.get(Materials.Iridium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Bricked_BlastFurnace.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "BFB", "FwF", "BFB", 'B', ItemList.Casing_Firebricks, 'F', + OreDictNames.craftingIronFurnace }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_Bronze.get(1L), + bits, + new Object[] { aTextPlate, "PhP", aTextPlate, 'P', OrePrefixes.plate.get(Materials.Bronze) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_Bronze_Bricks.get(1L), + bits, + new Object[] { aTextPlate, "PhP", "BBB", 'P', OrePrefixes.plate.get(Materials.Bronze), 'B', + new ItemStack(Blocks.brick_block, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_HP.get(1L), + bits, + new Object[] { aTextPlate, "PhP", aTextPlate, 'P', OrePrefixes.plate.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_HP_Bricks.get(1L), + bits, + new Object[] { aTextPlate, "PhP", "BBB", 'P', OrePrefixes.plate.get(Materials.WroughtIron), 'B', + new ItemStack(Blocks.brick_block, 1) }); + + // hull crafting recipes. (They can't be used for recycling as that would create an exploit loop with the + // assembler recipes.) + if (GT_Mod.gregtechproxy.mHardMachineCasings) { + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_ULV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", aTextCableHull, 'M', ItemList.Casing_ULV, 'C', + OrePrefixes.cableGt01.get(Materials.Lead), 'H', OrePrefixes.plate.get(Materials.WroughtIron), 'P', + OrePrefixes.plate.get(Materials.Wood) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_LV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", aTextCableHull, 'M', ItemList.Casing_LV, 'C', + OrePrefixes.cableGt01.get(Materials.Tin), 'H', OrePrefixes.plate.get(Materials.Steel), 'P', + OrePrefixes.plate.get(Materials.WroughtIron) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_MV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", aTextCableHull, 'M', ItemList.Casing_MV, 'C', + OrePrefixes.cableGt01.get(Materials.Copper), 'H', OrePrefixes.plate.get(Materials.Aluminium), 'P', + OrePrefixes.plate.get(Materials.WroughtIron) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_HV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", aTextCableHull, 'M', ItemList.Casing_HV, 'C', + OrePrefixes.cableGt01.get(Materials.Gold), 'H', OrePrefixes.plate.get(Materials.StainlessSteel), + 'P', OrePrefixes.plate.get(Materials.Plastic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_EV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", aTextCableHull, 'M', ItemList.Casing_EV, 'C', + OrePrefixes.cableGt01.get(Materials.Aluminium), 'H', OrePrefixes.plate.get(Materials.Titanium), 'P', + OrePrefixes.plate.get(Materials.Plastic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_IV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", aTextCableHull, 'M', ItemList.Casing_IV, 'C', + OrePrefixes.cableGt01.get(Materials.Tungsten), 'H', OrePrefixes.plate.get(Materials.TungstenSteel), + 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_LuV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", aTextCableHull, 'M', ItemList.Casing_LuV, 'C', + OrePrefixes.cableGt01.get(Materials.VanadiumGallium), 'H', + OrePrefixes.plate.get(ExternalMaterials.getRhodiumPlatedPalladium()), 'P', + OrePrefixes.plate.get(Materials.Polytetrafluoroethylene) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_ZPM.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", aTextCableHull, 'M', ItemList.Casing_ZPM, 'C', + OrePrefixes.cableGt01.get(Materials.Naquadah), 'H', OrePrefixes.plate.get(Materials.Iridium), 'P', + OrePrefixes.plate.get(Materials.Polybenzimidazole) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_UV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", aTextCableHull, 'M', ItemList.Casing_UV, 'C', + OrePrefixes.wireGt04.get(Materials.NaquadahAlloy), 'H', OrePrefixes.plate.get(Materials.Osmium), + 'P', OrePrefixes.plate.get(Materials.Polybenzimidazole) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_MAX.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", aTextCableHull, 'M', ItemList.Casing_MAX, 'C', + OrePrefixes.wireGt04.get(Materials.SuperconductorUV), 'H', + OrePrefixes.plate.get(Materials.Neutronium), 'P', + OrePrefixes.plate.get(Materials.Polybenzimidazole) }); + } else { + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_ULV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aTextCableHull, 'M', ItemList.Casing_ULV, 'C', + OrePrefixes.cableGt01.get(Materials.Lead) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_LV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aTextCableHull, 'M', ItemList.Casing_LV, 'C', + OrePrefixes.cableGt01.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_MV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aTextCableHull, 'M', ItemList.Casing_MV, 'C', + OrePrefixes.cableGt01.get(Materials.Copper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_HV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aTextCableHull, 'M', ItemList.Casing_HV, 'C', + OrePrefixes.cableGt01.get(Materials.Gold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_EV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aTextCableHull, 'M', ItemList.Casing_EV, 'C', + OrePrefixes.cableGt01.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_IV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aTextCableHull, 'M', ItemList.Casing_IV, 'C', + OrePrefixes.cableGt01.get(Materials.Tungsten) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_LuV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aTextCableHull, 'M', ItemList.Casing_LuV, 'C', + OrePrefixes.cableGt01.get(Materials.VanadiumGallium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_ZPM.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aTextCableHull, 'M', ItemList.Casing_ZPM, 'C', + OrePrefixes.cableGt01.get(Materials.Naquadah) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_UV.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aTextCableHull, 'M', ItemList.Casing_UV, 'C', + OrePrefixes.wireGt04.get(Materials.NaquadahAlloy) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hull_MAX.get(1L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aTextCableHull, 'M', ItemList.Casing_MAX, 'C', + OrePrefixes.wireGt04.get(Materials.SuperconductorUV) }); + } + // hull recycling data + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hull_ULV.get(1L), + ItemList.Casing_ULV.get(1), + OrePrefixes.cableGt01.get(Materials.Lead), + OrePrefixes.cableGt01.get(Materials.Lead)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hull_LV.get(1L), + ItemList.Casing_LV.get(1), + OrePrefixes.cableGt01.get(Materials.Tin), + OrePrefixes.cableGt01.get(Materials.Tin)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hull_MV.get(1L), + ItemList.Casing_MV.get(1), + OrePrefixes.cableGt01.get(Materials.AnyCopper), + OrePrefixes.cableGt01.get(Materials.AnyCopper)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hull_HV.get(1L), + ItemList.Casing_HV.get(1), + OrePrefixes.cableGt01.get(Materials.Gold), + OrePrefixes.cableGt01.get(Materials.Gold)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hull_EV.get(1L), + ItemList.Casing_EV.get(1), + OrePrefixes.cableGt01.get(Materials.Aluminium), + OrePrefixes.cableGt01.get(Materials.Aluminium)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hull_IV.get(1L), + ItemList.Casing_IV.get(1), + OrePrefixes.cableGt01.get(Materials.Tungsten), + OrePrefixes.cableGt01.get(Materials.Tungsten)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hull_LuV.get(1L), + ItemList.Casing_LuV.get(1), + OrePrefixes.cableGt01.get(Materials.VanadiumGallium), + OrePrefixes.cableGt01.get(Materials.VanadiumGallium)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hull_ZPM.get(1L), + ItemList.Casing_ZPM.get(1), + OrePrefixes.cableGt02.get(Materials.Naquadah), + OrePrefixes.cableGt02.get(Materials.Naquadah)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hull_UV.get(1L), + ItemList.Casing_UV.get(1), + OrePrefixes.cableGt04.get(Materials.NaquadahAlloy), + OrePrefixes.cableGt04.get(Materials.NaquadahAlloy)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hull_MAX.get(1L), + ItemList.Casing_MAX.get(1), + OrePrefixes.cableGt04.get(Materials.SuperconductorUV), + OrePrefixes.cableGt04.get(Materials.SuperconductorUV)); + + GT_ModHandler.addCraftingRecipe( + ItemList.Transformer_LV_ULV.get(1L), + bitsd, + new Object[] { " BB", "CM ", " BB", 'M', ItemList.Hull_ULV, 'C', OrePrefixes.cableGt01.get(Materials.Tin), + 'B', OrePrefixes.cableGt01.get(Materials.Lead) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Transformer_MV_LV.get(1L), + bitsd, + new Object[] { " BB", "CM ", " BB", 'M', ItemList.Hull_LV, 'C', + OrePrefixes.cableGt01.get(Materials.AnyCopper), 'B', OrePrefixes.cableGt01.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Transformer_HV_MV.get(1L), + bitsd, + new Object[] { "KBB", "CM ", "KBB", 'M', ItemList.Hull_MV, 'C', OrePrefixes.cableGt01.get(Materials.Gold), + 'B', OrePrefixes.cableGt01.get(Materials.AnyCopper), 'K', + OrePrefixes.componentCircuit.get(Materials.Inductor) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Transformer_EV_HV.get(1L), + bitsd, + new Object[] { "KBB", "CM ", "KBB", 'M', ItemList.Hull_HV, 'C', + OrePrefixes.cableGt01.get(Materials.Aluminium), 'B', OrePrefixes.cableGt01.get(Materials.Gold), 'K', + ItemList.Circuit_Chip_ULPIC }); + GT_ModHandler.addCraftingRecipe( + ItemList.Transformer_IV_EV.get(1L), + bitsd, + new Object[] { "KBB", "CM ", "KBB", 'M', ItemList.Hull_EV, 'C', + OrePrefixes.cableGt01.get(Materials.Tungsten), 'B', OrePrefixes.cableGt01.get(Materials.Aluminium), 'K', + ItemList.Circuit_Chip_LPIC }); + GT_ModHandler.addCraftingRecipe( + ItemList.Transformer_LuV_IV.get(1L), + bitsd, + new Object[] { "KBB", "CM ", "KBB", 'M', ItemList.Hull_IV, 'C', + OrePrefixes.cableGt01.get(Materials.VanadiumGallium), 'B', + OrePrefixes.cableGt01.get(Materials.Tungsten), 'K', ItemList.Circuit_Chip_PIC }); + GT_ModHandler.addCraftingRecipe( + ItemList.Transformer_ZPM_LuV.get(1L), + bitsd, + new Object[] { "KBB", "CM ", "KBB", 'M', ItemList.Hull_LuV, 'C', + OrePrefixes.cableGt01.get(Materials.Naquadah), 'B', + OrePrefixes.cableGt01.get(Materials.VanadiumGallium), 'K', ItemList.Circuit_Chip_HPIC }); + GT_ModHandler.addCraftingRecipe( + ItemList.Transformer_UV_ZPM.get(1L), + bitsd, + new Object[] { "KBB", "CM ", "KBB", 'M', ItemList.Hull_ZPM, 'C', + OrePrefixes.cableGt01.get(Materials.NaquadahAlloy), 'B', OrePrefixes.cableGt01.get(Materials.Naquadah), + 'K', ItemList.Circuit_Chip_UHPIC }); + GT_ModHandler.addCraftingRecipe( + ItemList.Transformer_MAX_UV.get(1L), + bitsd, + new Object[] { "KBB", "CM ", "KBB", 'M', ItemList.Hull_UV, 'C', + OrePrefixes.wireGt01.get(Materials.Bedrockium), 'B', OrePrefixes.cableGt01.get(Materials.NaquadahAlloy), + 'K', ItemList.Circuit_Chip_NPIC }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_Dynamo_ULV.get(1L), + bitsd, + new Object[] { "XOL", "SMP", "XOL", 'M', ItemList.Hull_ULV, 'S', OrePrefixes.spring.get(Materials.Lead), + 'X', OrePrefixes.circuit.get(Materials.Primitive), 'O', ItemList.ULV_Coil, 'L', + OrePrefixes.cell.get(Materials.Lubricant), 'P', OrePrefixes.rotor.get(Materials.Lead) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_Dynamo_LV.get(1L), + bitsd, + new Object[] { "XOL", "SMP", "XOL", 'M', ItemList.Hull_LV, 'S', OrePrefixes.spring.get(Materials.Tin), 'X', + OrePrefixes.circuit.get(Materials.Basic), 'O', ItemList.LV_Coil, 'L', + OrePrefixes.cell.get(Materials.Lubricant), 'P', ItemList.Electric_Pump_LV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_Dynamo_MV.get(1L), + bitsd, + new Object[] { "XOL", "SMP", "XOL", 'M', ItemList.Hull_MV, 'S', OrePrefixes.spring.get(Materials.Copper), + 'X', ItemList.Circuit_Chip_ULPIC, 'O', ItemList.MV_Coil, 'L', OrePrefixes.cell.get(Materials.Lubricant), + 'P', ItemList.Electric_Pump_MV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_Energy_ULV.get(1L), + bitsd, + new Object[] { "COL", "XMP", "COL", 'M', ItemList.Hull_ULV, 'C', OrePrefixes.cableGt01.get(Materials.Lead), + 'X', OrePrefixes.circuit.get(Materials.Primitive), 'O', ItemList.ULV_Coil, 'L', + OrePrefixes.cell.get(Materials.Lubricant), 'P', OrePrefixes.rotor.get(Materials.Lead) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_Energy_LV.get(1L), + bitsd, + new Object[] { "COL", "XMP", "COL", 'M', ItemList.Hull_LV, 'C', OrePrefixes.cableGt01.get(Materials.Tin), + 'X', OrePrefixes.circuit.get(Materials.Basic), 'O', ItemList.LV_Coil, 'L', + OrePrefixes.cell.get(Materials.Lubricant), 'P', ItemList.Electric_Pump_LV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_Energy_MV.get(1L), + bitsd, + new Object[] { "XOL", "CMP", "XOL", 'M', ItemList.Hull_MV, 'C', OrePrefixes.cableGt01.get(Materials.Copper), + 'X', ItemList.Circuit_Chip_ULPIC, 'O', ItemList.MV_Coil, 'L', OrePrefixes.cell.get(Materials.Lubricant), + 'P', ItemList.Electric_Pump_MV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_Maintenance.get(1L), + bitsd, + new Object[] { "dwx", "hMc", "fsr", 'M', ItemList.Hull_LV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_DataAccess_EV.get(1L), + bitsd, + new Object[] { "COC", "OMO", "COC", 'M', ItemList.Hull_EV, 'O', ItemList.Tool_DataStick, 'C', + OrePrefixes.circuit.get(Materials.Elite) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_DataAccess_LuV.get(1L), + bitsd, + new Object[] { "COC", "OMO", "COC", 'M', ItemList.Hull_LuV, 'O', ItemList.Tool_DataOrb, 'C', + OrePrefixes.circuit.get(Materials.Ultimate) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_DataAccess_UV.get(1L), + bitsd, + new Object[] { "CRC", "OMO", "CRC", 'M', ItemList.Hull_UV, 'O', ItemList.Tool_DataOrb, 'C', + OrePrefixes.circuit.get(Materials.Infinite), 'R', ItemList.Robot_Arm_UV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_AutoMaintenance.get(1L), + bitsd, + new Object[] { "CHC", "AMA", "CHC", 'M', ItemList.Hull_LuV, 'H', ItemList.Hatch_Maintenance, 'A', + ItemList.Robot_Arm_LuV, 'C', OrePrefixes.circuit.get(Materials.Ultimate) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_Muffler_LV.get(1L), + bitsd, + new Object[] { "MX ", "PR ", 'M', ItemList.Hull_LV, 'P', OrePrefixes.pipeMedium.get(Materials.Bronze), 'R', + OrePrefixes.rotor.get(Materials.Bronze), 'X', ItemList.Electric_Motor_LV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_Muffler_MV.get(1L), + bitsd, + new Object[] { "MX ", "PR ", 'M', ItemList.Hull_MV, 'P', OrePrefixes.pipeMedium.get(Materials.Steel), 'R', + OrePrefixes.rotor.get(Materials.Steel), 'X', ItemList.Electric_Motor_MV }); + + // recycling data for the other mufflers, recipes are in assembler + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hatch_Muffler_HV.get(1L), + ItemList.Hull_HV.get(1), + OrePrefixes.pipeLarge.get(Materials.StainlessSteel), + OrePrefixes.rotor.get(Materials.StainlessSteel), + ItemList.Electric_Motor_HV.get(1)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hatch_Muffler_EV.get(1L), + ItemList.Hull_EV.get(1), + OrePrefixes.pipeLarge.get(Materials.Titanium), + OrePrefixes.rotor.get(Materials.Titanium), + ItemList.Electric_Motor_EV.get(1)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hatch_Muffler_IV.get(1L), + ItemList.Hull_IV.get(1), + OrePrefixes.pipeLarge.get(Materials.TungstenSteel), + OrePrefixes.rotor.get(Materials.TungstenSteel), + ItemList.Electric_Motor_IV.get(1)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hatch_Muffler_LuV.get(1L), + ItemList.Hull_LuV.get(1), + OrePrefixes.pipeLarge.get(Materials.Enderium), + OrePrefixes.rotor.get(Materials.Enderium), + ItemList.Electric_Motor_LuV.get(1)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hatch_Muffler_ZPM.get(1L), + ItemList.Hull_ZPM.get(1), + OrePrefixes.pipeLarge.get(Materials.Naquadah), + OrePrefixes.rotor.get(Materials.NaquadahAlloy), + ItemList.Electric_Motor_ZPM.get(1)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hatch_Muffler_UV.get(1L), + ItemList.Hull_UV.get(1), + OrePrefixes.pipeLarge.get(Materials.NetherStar), + OrePrefixes.rotor.get(Materials.Neutronium), + ItemList.Electric_Motor_UV.get(1)); + GT_OreDictUnificator.addItemDataFromInputs( + ItemList.Hatch_Muffler_MAX.get(1L), + ItemList.Hull_MAX.get(1), + OrePrefixes.pipeLarge.get(Materials.MysteriousCrystal), + OrePrefixes.rotor.get(Materials.CosmicNeutronium), + ItemList.Electric_Motor_UHV.get(1)); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Bronze_Boiler.get(1L), + bitsd, + new Object[] { aTextPlate, "PwP", "BFB", 'F', OreDictNames.craftingIronFurnace, 'P', + OrePrefixes.plate.get(Materials.Bronze), 'B', new ItemStack(Blocks.brick_block, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Steel_Boiler.get(1L), + bitsd, + new Object[] { aTextPlate, "PwP", "BFB", 'F', OreDictNames.craftingIronFurnace, 'P', + OrePrefixes.plate.get(Materials.Steel), 'B', new ItemStack(Blocks.brick_block, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Steel_Boiler_Lava.get(1L), + bitsd, + new Object[] { aTextPlate, "PTP", aTextPlateMotor, 'M', ItemList.Hull_HP, 'P', + OrePrefixes.plate.get(Materials.Steel), 'T', + GT_ModHandler.getModItem(BuildCraftFactory.ID, "tankBlock", 1L, 0) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Bronze_Boiler_Solar.get(1L), + bitsd, + new Object[] { "GGG", "SSS", aTextPlateMotor, 'M', ItemList.Hull_Bronze_Bricks, 'P', + OrePrefixes.pipeSmall.get(Materials.Bronze), 'S', OrePrefixes.plateDouble.get(Materials.Silver), 'G', + new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HP_Solar.get(1L), + bitsd, + new Object[] { "GGG", "SSS", aTextPlateMotor, 'M', ItemList.Hull_HP_Bricks, 'P', + OrePrefixes.pipeSmall.get(Materials.Steel), 'S', OrePrefixes.plateTriple.get(Materials.Silver), 'G', + GT_ModHandler.getModItem(IndustrialCraft2.ID, "blockAlloyGlass", 1L) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Bronze_Furnace.get(1L), + bitsd, + new Object[] { "XXX", "XMX", "XFX", 'M', ItemList.Hull_Bronze_Bricks, 'X', + OrePrefixes.pipeSmall.get(Materials.Bronze), 'F', OreDictNames.craftingFurnace }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HP_Furnace.get(1L), + bitsd, + new Object[] { "XSX", "PMP", "XXX", 'M', ItemList.Machine_Bronze_Furnace, 'X', + OrePrefixes.pipeSmall.get(Materials.WroughtIron), 'P', OrePrefixes.plate.get(Materials.WroughtIron), + 'S', OrePrefixes.plate.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Bronze_Macerator.get(1L), + bitsd, + new Object[] { "DXD", "XMX", "PXP", 'M', ItemList.Hull_Bronze, 'X', + OrePrefixes.pipeSmall.get(Materials.Bronze), 'P', OreDictNames.craftingPiston, 'D', + OrePrefixes.gem.get(Materials.Diamond) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HP_Macerator.get(1L), + bitsd, + new Object[] { "PSP", "XMX", "PPP", 'M', ItemList.Machine_Bronze_Macerator, 'X', + OrePrefixes.pipeSmall.get(Materials.WroughtIron), 'P', OrePrefixes.plate.get(Materials.WroughtIron), + 'S', OrePrefixes.plate.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Bronze_Extractor.get(1L), + bitsd, + new Object[] { "XXX", "PMG", "XXX", 'M', ItemList.Hull_Bronze, 'X', + OrePrefixes.pipeSmall.get(Materials.Bronze), 'P', OreDictNames.craftingPiston, 'G', + new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HP_Extractor.get(1L), + bitsd, + new Object[] { "XSX", "PMP", "XXX", 'M', ItemList.Machine_Bronze_Extractor, 'X', + OrePrefixes.pipeSmall.get(Materials.WroughtIron), 'P', OrePrefixes.plate.get(Materials.WroughtIron), + 'S', OrePrefixes.plate.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Bronze_Hammer.get(1L), + bitsd, + new Object[] { "XPX", "XMX", "XAX", 'M', ItemList.Hull_Bronze, 'X', + OrePrefixes.pipeSmall.get(Materials.Bronze), 'P', OreDictNames.craftingPiston, 'A', + OreDictNames.craftingAnvil }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HP_Hammer.get(1L), + bitsd, + new Object[] { "PSP", "XMX", "PPP", 'M', ItemList.Machine_Bronze_Hammer, 'X', + OrePrefixes.pipeSmall.get(Materials.WroughtIron), 'P', OrePrefixes.plate.get(Materials.WroughtIron), + 'S', OrePrefixes.plate.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Bronze_Compressor.get(1L), + bitsd, + new Object[] { "XXX", aTextPlateMotor, "XXX", 'M', ItemList.Hull_Bronze, 'X', + OrePrefixes.pipeSmall.get(Materials.Bronze), 'P', OreDictNames.craftingPiston }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HP_Compressor.get(1L), + bitsd, + new Object[] { "XSX", "PMP", "XXX", 'M', ItemList.Machine_Bronze_Compressor, 'X', + OrePrefixes.pipeSmall.get(Materials.WroughtIron), 'P', OrePrefixes.plate.get(Materials.WroughtIron), + 'S', OrePrefixes.plate.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Bronze_AlloySmelter.get(1L), + bitsd, + new Object[] { "XXX", "FMF", "XXX", 'M', ItemList.Hull_Bronze_Bricks, 'X', + OrePrefixes.pipeSmall.get(Materials.Bronze), 'F', OreDictNames.craftingFurnace }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HP_AlloySmelter.get(1L), + bitsd, + new Object[] { "PSP", "PMP", "PXP", 'M', ItemList.Machine_Bronze_AlloySmelter, 'X', + OrePrefixes.pipeSmall.get(Materials.WroughtIron), 'P', OrePrefixes.plate.get(Materials.WroughtIron), + 'S', OrePrefixes.plate.get(Materials.Steel) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_1by1_ULV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_ULV, 'W', + OrePrefixes.wireGt01.get(Materials.Lead), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_1by1_LV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_LV, 'W', + OrePrefixes.wireGt01.get(Materials.Tin), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_1by1_MV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_MV, 'W', + OrePrefixes.wireGt01.get(Materials.AnyCopper), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_1by1_HV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_HV, 'W', + OrePrefixes.wireGt01.get(Materials.Gold), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_1by1_EV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_EV, 'W', + OrePrefixes.wireGt01.get(Materials.Aluminium), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_1by1_IV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_IV, 'W', + OrePrefixes.wireGt01.get(Materials.Tungsten), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_1by1_LuV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_LuV, 'W', + OrePrefixes.wireGt01.get(Materials.VanadiumGallium), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_1by1_ZPM.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_ZPM, 'W', + OrePrefixes.wireGt01.get(Materials.Naquadah), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_1by1_UV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_UV, 'W', + OrePrefixes.wireGt01.get(Materials.NaquadahAlloy), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_1by1_MAX.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_MAX, 'W', + OrePrefixes.wireGt01.get(Materials.SuperconductorUHV), 'T', OreDictNames.craftingChest }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_2by2_ULV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_ULV, 'W', + OrePrefixes.wireGt04.get(Materials.Lead), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_2by2_LV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_LV, 'W', + OrePrefixes.wireGt04.get(Materials.Tin), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_2by2_MV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_MV, 'W', + OrePrefixes.wireGt04.get(Materials.AnyCopper), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_2by2_HV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_HV, 'W', + OrePrefixes.wireGt04.get(Materials.Gold), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_2by2_EV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_EV, 'W', + OrePrefixes.wireGt04.get(Materials.Aluminium), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_2by2_IV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_IV, 'W', + OrePrefixes.wireGt04.get(Materials.Tungsten), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_2by2_LuV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_LuV, 'W', + OrePrefixes.wireGt04.get(Materials.VanadiumGallium), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_2by2_ZPM.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_ZPM, 'W', + OrePrefixes.wireGt04.get(Materials.Naquadah), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_2by2_UV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_UV, 'W', + OrePrefixes.wireGt04.get(Materials.NaquadahAlloy), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_2by2_MAX.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_MAX, 'W', + OrePrefixes.wireGt04.get(Materials.SuperconductorUHV), 'T', OreDictNames.craftingChest }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_3by3_ULV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_ULV, 'W', + OrePrefixes.wireGt08.get(Materials.Lead), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_3by3_LV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_LV, 'W', + OrePrefixes.wireGt08.get(Materials.Tin), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_3by3_MV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_MV, 'W', + OrePrefixes.wireGt08.get(Materials.AnyCopper), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_3by3_HV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_HV, 'W', + OrePrefixes.wireGt08.get(Materials.Gold), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_3by3_EV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_EV, 'W', + OrePrefixes.wireGt08.get(Materials.Aluminium), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_3by3_IV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_IV, 'W', + OrePrefixes.wireGt08.get(Materials.Tungsten), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_3by3_LuV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_LuV, 'W', + OrePrefixes.wireGt08.get(Materials.VanadiumGallium), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_3by3_ZPM.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_ZPM, 'W', + OrePrefixes.wireGt08.get(Materials.Naquadah), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_3by3_UV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_UV, 'W', + OrePrefixes.wireGt08.get(Materials.NaquadahAlloy), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_3by3_MAX.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_MAX, 'W', + OrePrefixes.wireGt08.get(Materials.SuperconductorUHV), 'T', OreDictNames.craftingChest }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_4by4_ULV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_ULV, 'W', + OrePrefixes.wireGt16.get(Materials.Lead), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_4by4_LV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_LV, 'W', + OrePrefixes.wireGt16.get(Materials.Tin), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_4by4_MV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_MV, 'W', + OrePrefixes.wireGt16.get(Materials.AnyCopper), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_4by4_HV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_HV, 'W', + OrePrefixes.wireGt16.get(Materials.Gold), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_4by4_EV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_EV, 'W', + OrePrefixes.wireGt16.get(Materials.Aluminium), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_4by4_IV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_IV, 'W', + OrePrefixes.wireGt16.get(Materials.Tungsten), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_4by4_LuV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_LuV, 'W', + OrePrefixes.wireGt16.get(Materials.VanadiumGallium), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_4by4_ZPM.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_ZPM, 'W', + OrePrefixes.wireGt16.get(Materials.Naquadah), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_4by4_UV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_UV, 'W', + OrePrefixes.wireGt16.get(Materials.NaquadahAlloy), 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Buffer_4by4_MAX.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, 'M', ItemList.Hull_MAX, 'W', + OrePrefixes.wireGt16.get(Materials.SuperconductorUHV), 'T', OreDictNames.craftingChest }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Charger_4by4_ULV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, "BCB", 'M', ItemList.Hull_ULV, 'W', + OrePrefixes.wireGt16.get(Materials.Lead), 'T', OreDictNames.craftingChest, 'B', + ItemList.Battery_RE_ULV_Tantalum, 'C', OrePrefixes.circuit.get(Materials.Primitive) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Charger_4by4_LV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, "BCB", 'M', ItemList.Hull_LV, 'W', + OrePrefixes.wireGt16.get(Materials.Tin), 'T', OreDictNames.craftingChest, 'B', + ItemList.Battery_RE_LV_Lithium, 'C', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Charger_4by4_MV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, "BCB", 'M', ItemList.Hull_MV, 'W', + OrePrefixes.wireGt16.get(Materials.AnyCopper), 'T', OreDictNames.craftingChest, 'B', + ItemList.Battery_RE_MV_Lithium, 'C', OrePrefixes.circuit.get(Materials.Good) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Charger_4by4_HV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, "BCB", 'M', ItemList.Hull_HV, 'W', + OrePrefixes.wireGt16.get(Materials.Gold), 'T', OreDictNames.craftingChest, 'B', + ItemList.Battery_RE_HV_Lithium, 'C', OrePrefixes.circuit.get(Materials.Advanced) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Charger_4by4_EV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, "BCB", 'M', ItemList.Hull_EV, 'W', + OrePrefixes.wireGt16.get(Materials.Aluminium), 'T', OreDictNames.craftingChest, 'B', + OrePrefixes.battery.get(Materials.Master), 'C', OrePrefixes.circuit.get(Materials.Data) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Charger_4by4_IV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, "BCB", 'M', ItemList.Hull_IV, 'W', + OrePrefixes.wireGt16.get(Materials.Tungsten), 'T', OreDictNames.craftingChest, 'B', + ItemList.Energy_LapotronicOrb, 'C', OrePrefixes.circuit.get(Materials.Elite) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Charger_4by4_LuV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, "BCB", 'M', ItemList.Hull_LuV, 'W', + OrePrefixes.wireGt16.get(Materials.VanadiumGallium), 'T', OreDictNames.craftingChest, 'B', + ItemList.Energy_LapotronicOrb2, 'C', OrePrefixes.circuit.get(Materials.Master) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Charger_4by4_ZPM.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, "BCB", 'M', ItemList.Hull_ZPM, 'W', + OrePrefixes.wireGt16.get(Materials.Naquadah), 'T', OreDictNames.craftingChest, 'B', + ItemList.Energy_LapotronicOrb2, 'C', OrePrefixes.circuit.get(Materials.Ultimate) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Charger_4by4_UV.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, "BCB", 'M', ItemList.Hull_UV, 'W', + OrePrefixes.wireGt16.get(Materials.NaquadahAlloy), 'T', OreDictNames.craftingChest, 'B', ItemList.ZPM2, + 'C', OrePrefixes.circuit.get(Materials.SuperconductorUHV) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Battery_Charger_4by4_MAX.get(1L), + bitsd, + new Object[] { aTextWireChest, aTextWireHull, "BCB", 'M', ItemList.Hull_MAX, 'W', + OrePrefixes.wireGt16.get(Materials.SuperconductorUHV), 'T', OreDictNames.craftingChest, 'B', + ItemList.ZPM2, 'C', OrePrefixes.circuit.get(Materials.Infinite) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Locker_ULV.get(1L), + bitsd, + new Object[] { "T", "M", 'M', ItemList.Battery_Buffer_2by2_ULV, 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Locker_LV.get(1L), + bitsd, + new Object[] { "T", "M", 'M', ItemList.Battery_Buffer_2by2_LV, 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Locker_MV.get(1L), + bitsd, + new Object[] { "T", "M", 'M', ItemList.Battery_Buffer_2by2_MV, 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Locker_HV.get(1L), + bitsd, + new Object[] { "T", "M", 'M', ItemList.Battery_Buffer_2by2_HV, 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Locker_EV.get(1L), + bitsd, + new Object[] { "T", "M", 'M', ItemList.Battery_Buffer_2by2_EV, 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Locker_IV.get(1L), + bitsd, + new Object[] { "T", "M", 'M', ItemList.Battery_Buffer_2by2_IV, 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Locker_LuV.get(1L), + bitsd, + new Object[] { "T", "M", 'M', ItemList.Battery_Buffer_2by2_LuV, 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Locker_ZPM.get(1L), + bitsd, + new Object[] { "T", "M", 'M', ItemList.Battery_Buffer_2by2_ZPM, 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Locker_UV.get(1L), + bitsd, + new Object[] { "T", "M", 'M', ItemList.Battery_Buffer_2by2_UV, 'T', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Locker_MAX.get(1L), + bitsd, + new Object[] { "T", "M", 'M', ItemList.Battery_Buffer_2by2_MAX, 'T', OreDictNames.craftingChest }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_LV_Scanner.get(1L), + bitsd, + new Object[] { "CTC", aTextWireHull, "CRC", 'M', ItemList.Hull_LV, 'T', ItemList.Emitter_LV, 'R', + ItemList.Sensor_LV, 'C', OrePrefixes.circuit.get(Materials.Good), 'W', + OrePrefixes.cableGt01.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_MV_Scanner.get(1L), + bitsd, + new Object[] { "CTC", aTextWireHull, "CRC", 'M', ItemList.Hull_MV, 'T', ItemList.Emitter_MV, 'R', + ItemList.Sensor_MV, 'C', OrePrefixes.circuit.get(Materials.Advanced), 'W', + OrePrefixes.cableGt01.get(Materials.AnyCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HV_Scanner.get(1L), + bitsd, + new Object[] { "CTC", aTextWireHull, "CRC", 'M', ItemList.Hull_HV, 'T', ItemList.Emitter_HV, 'R', + ItemList.Sensor_HV, 'C', OrePrefixes.circuit.get(Materials.Data), 'W', + OrePrefixes.cableGt01.get(Materials.Gold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_EV_Scanner.get(1L), + bitsd, + new Object[] { "CTC", aTextWireHull, "CRC", 'M', ItemList.Hull_EV, 'T', ItemList.Emitter_EV, 'R', + ItemList.Sensor_EV, 'C', OrePrefixes.circuit.get(Materials.Elite), 'W', + OrePrefixes.cableGt01.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_IV_Scanner.get(1L), + bitsd, + new Object[] { "CTC", aTextWireHull, "CRC", 'M', ItemList.Hull_IV, 'T', ItemList.Emitter_IV, 'R', + ItemList.Sensor_IV, 'C', OrePrefixes.circuit.get(Materials.Master), 'W', + OrePrefixes.cableGt01.get(Materials.Tungsten) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_LV_Boxinator.get(1L), + bitsd, + new Object[] { "BCB", "RMV", aTextWireCoil, 'M', ItemList.Hull_LV, 'R', ItemList.Robot_Arm_LV, 'V', + ItemList.Conveyor_Module_LV, 'C', OrePrefixes.circuit.get(Materials.Basic), 'W', + OrePrefixes.cableGt01.get(Materials.Tin), 'B', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_MV_Boxinator.get(1L), + bitsd, + new Object[] { "BCB", "RMV", aTextWireCoil, 'M', ItemList.Hull_MV, 'R', ItemList.Robot_Arm_MV, 'V', + ItemList.Conveyor_Module_MV, 'C', OrePrefixes.circuit.get(Materials.Good), 'W', + OrePrefixes.cableGt01.get(Materials.AnyCopper), 'B', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HV_Boxinator.get(1L), + bitsd, + new Object[] { "BCB", "RMV", aTextWireCoil, 'M', ItemList.Hull_HV, 'R', ItemList.Robot_Arm_HV, 'V', + ItemList.Conveyor_Module_HV, 'C', OrePrefixes.circuit.get(Materials.Advanced), 'W', + OrePrefixes.cableGt01.get(Materials.Gold), 'B', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_EV_Boxinator.get(1L), + bitsd, + new Object[] { "BCB", "RMV", aTextWireCoil, 'M', ItemList.Hull_EV, 'R', ItemList.Robot_Arm_EV, 'V', + ItemList.Conveyor_Module_EV, 'C', OrePrefixes.circuit.get(Materials.Data), 'W', + OrePrefixes.cableGt01.get(Materials.Aluminium), 'B', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_IV_Boxinator.get(1L), + bitsd, + new Object[] { "BCB", "RMV", aTextWireCoil, 'M', ItemList.Hull_IV, 'R', ItemList.Robot_Arm_IV, 'V', + ItemList.Conveyor_Module_IV, 'C', OrePrefixes.circuit.get(Materials.Elite), 'W', + OrePrefixes.cableGt01.get(Materials.Tungsten), 'B', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_LuV_Boxinator.get(1L), + bitsd, + new Object[] { "BCB", "RMV", aTextWireCoil, 'M', ItemList.Hull_LuV, 'R', ItemList.Robot_Arm_LuV, 'V', + ItemList.Conveyor_Module_LuV, 'C', OrePrefixes.circuit.get(Materials.Master), 'W', + OrePrefixes.cableGt01.get(Materials.VanadiumGallium), 'B', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_ZPM_Boxinator.get(1L), + bitsd, + new Object[] { "BCB", "RMV", aTextWireCoil, 'M', ItemList.Hull_ZPM, 'R', ItemList.Robot_Arm_ZPM, 'V', + ItemList.Conveyor_Module_ZPM, 'C', OrePrefixes.circuit.get(Materials.Ultimate), 'W', + OrePrefixes.cableGt01.get(Materials.Naquadah), 'B', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_UV_Boxinator.get(1L), + bitsd, + new Object[] { "BCB", "RMV", aTextWireCoil, 'M', ItemList.Hull_UV, 'R', ItemList.Robot_Arm_UV, 'V', + ItemList.Conveyor_Module_UV, 'C', OrePrefixes.circuit.get(Materials.SuperconductorUHV), 'W', + OrePrefixes.cableGt01.get(Materials.NaquadahAlloy), 'B', OreDictNames.craftingChest }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_LV_RockBreaker.get(1L), + bitsd, + new Object[] { "PED", aTextWireHull, "GGG", 'M', ItemList.Hull_LV, 'D', OreDictNames.craftingGrinder, 'E', + ItemList.Electric_Motor_LV, 'P', ItemList.Electric_Piston_LV, 'C', + OrePrefixes.circuit.get(Materials.Basic), 'W', OrePrefixes.cableGt01.get(Materials.Tin), 'G', + new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_MV_RockBreaker.get(1L), + bitsd, + new Object[] { "PED", aTextWireHull, "GGG", 'M', ItemList.Hull_MV, 'D', OreDictNames.craftingGrinder, 'E', + ItemList.Electric_Motor_MV, 'P', ItemList.Electric_Piston_MV, 'C', + OrePrefixes.circuit.get(Materials.Good), 'W', OrePrefixes.cableGt01.get(Materials.AnyCopper), 'G', + new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HV_RockBreaker.get(1L), + bitsd, + new Object[] { "PED", aTextWireHull, "GGG", 'M', ItemList.Hull_HV, 'D', OreDictNames.craftingGrinder, 'E', + ItemList.Electric_Motor_HV, 'P', ItemList.Electric_Piston_HV, 'C', + OrePrefixes.circuit.get(Materials.Advanced), 'W', OrePrefixes.cableGt01.get(Materials.Gold), 'G', + new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_EV_RockBreaker.get(1L), + bitsd, + new Object[] { "PED", aTextWireHull, "GGG", 'M', ItemList.Hull_EV, 'D', OreDictNames.craftingGrinder, 'E', + ItemList.Electric_Motor_EV, 'P', ItemList.Electric_Piston_EV, 'C', + OrePrefixes.circuit.get(Materials.Data), 'W', OrePrefixes.cableGt01.get(Materials.Aluminium), 'G', + new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_IV_RockBreaker.get(1L), + bitsd, + new Object[] { "PED", aTextWireHull, "GGG", 'M', ItemList.Hull_IV, 'D', OreDictNames.craftingGrinder, 'E', + ItemList.Electric_Motor_IV, 'P', ItemList.Electric_Piston_IV, 'C', + OrePrefixes.circuit.get(Materials.Elite), 'W', OrePrefixes.cableGt01.get(Materials.Tungsten), 'G', + new ItemStack(Blocks.glass, 1) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_LV_Massfab.get(1L), + bitsd, + new Object[] { "CFC", aTextWireHull, "CFC", 'M', ItemList.Hull_LV, 'F', ItemList.Field_Generator_LV, 'C', + OrePrefixes.circuit.get(Materials.Good), 'W', OrePrefixes.cableGt04.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_MV_Massfab.get(1L), + bitsd, + new Object[] { "CFC", aTextWireHull, "CFC", 'M', ItemList.Hull_MV, 'F', ItemList.Field_Generator_MV, 'C', + OrePrefixes.circuit.get(Materials.Advanced), 'W', OrePrefixes.cableGt04.get(Materials.AnyCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HV_Massfab.get(1L), + bitsd, + new Object[] { "CFC", aTextWireHull, "CFC", 'M', ItemList.Hull_HV, 'F', ItemList.Field_Generator_HV, 'C', + OrePrefixes.circuit.get(Materials.Data), 'W', OrePrefixes.cableGt04.get(Materials.Gold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_EV_Massfab.get(1L), + bitsd, + new Object[] { "CFC", aTextWireHull, "CFC", 'M', ItemList.Hull_EV, 'F', ItemList.Field_Generator_EV, 'C', + OrePrefixes.circuit.get(Materials.Elite), 'W', OrePrefixes.cableGt04.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_IV_Massfab.get(1L), + bitsd, + new Object[] { "CFC", aTextWireHull, "CFC", 'M', ItemList.Hull_IV, 'F', ItemList.Field_Generator_IV, 'C', + OrePrefixes.circuit.get(Materials.Master), 'W', OrePrefixes.cableGt04.get(Materials.Tungsten) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_LV_Replicator.get(1L), + bitsd, + new Object[] { "EFE", aTextCableHull, aTextMotorWire, 'M', ItemList.Hull_LV, 'F', + ItemList.Field_Generator_LV, 'E', ItemList.Emitter_LV, 'C', OrePrefixes.circuit.get(Materials.Good), + 'W', OrePrefixes.cableGt04.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_MV_Replicator.get(1L), + bitsd, + new Object[] { "EFE", aTextCableHull, aTextMotorWire, 'M', ItemList.Hull_MV, 'F', + ItemList.Field_Generator_MV, 'E', ItemList.Emitter_MV, 'C', OrePrefixes.circuit.get(Materials.Advanced), + 'W', OrePrefixes.cableGt04.get(Materials.AnyCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HV_Replicator.get(1L), + bitsd, + new Object[] { "EFE", aTextCableHull, aTextMotorWire, 'M', ItemList.Hull_HV, 'F', + ItemList.Field_Generator_HV, 'E', ItemList.Emitter_HV, 'C', OrePrefixes.circuit.get(Materials.Data), + 'W', OrePrefixes.cableGt04.get(Materials.Gold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_EV_Replicator.get(1L), + bitsd, + new Object[] { "EFE", aTextCableHull, aTextMotorWire, 'M', ItemList.Hull_EV, 'F', + ItemList.Field_Generator_EV, 'E', ItemList.Emitter_EV, 'C', OrePrefixes.circuit.get(Materials.Elite), + 'W', OrePrefixes.cableGt04.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_IV_Replicator.get(1L), + bitsd, + new Object[] { "EFE", aTextCableHull, aTextMotorWire, 'M', ItemList.Hull_IV, 'F', + ItemList.Field_Generator_IV, 'E', ItemList.Emitter_IV, 'C', OrePrefixes.circuit.get(Materials.Master), + 'W', OrePrefixes.cableGt04.get(Materials.Tungsten) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_LV_Brewery.get(1L), + bitsd, + new Object[] { "GPG", aTextWireHull, "CBC", 'M', ItemList.Hull_LV, 'P', ItemList.Electric_Pump_LV, 'B', + new ItemStack(Items.brewing_stand, 0), 'C', OrePrefixes.circuit.get(Materials.Basic), 'W', + OrePrefixes.cableGt01.get(Materials.Tin), 'G', new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_MV_Brewery.get(1L), + bitsd, + new Object[] { "GPG", aTextWireHull, "CBC", 'M', ItemList.Hull_MV, 'P', ItemList.Electric_Pump_MV, 'B', + new ItemStack(Items.brewing_stand, 0), 'C', OrePrefixes.circuit.get(Materials.Good), 'W', + OrePrefixes.cableGt01.get(Materials.AnyCopper), 'G', new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HV_Brewery.get(1L), + bitsd, + new Object[] { "GPG", aTextWireHull, "CBC", 'M', ItemList.Hull_HV, 'P', ItemList.Electric_Pump_HV, 'B', + new ItemStack(Items.brewing_stand, 0), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'W', + OrePrefixes.cableGt01.get(Materials.Gold), 'G', new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_EV_Brewery.get(1L), + bitsd, + new Object[] { "GPG", aTextWireHull, "CBC", 'M', ItemList.Hull_EV, 'P', ItemList.Electric_Pump_EV, 'B', + new ItemStack(Items.brewing_stand, 0), 'C', OrePrefixes.circuit.get(Materials.Data), 'W', + OrePrefixes.cableGt01.get(Materials.Aluminium), 'G', new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_IV_Brewery.get(1L), + bitsd, + new Object[] { "GPG", aTextWireHull, "CBC", 'M', ItemList.Hull_IV, 'P', ItemList.Electric_Pump_IV, 'B', + new ItemStack(Items.brewing_stand, 0), 'C', OrePrefixes.circuit.get(Materials.Elite), 'W', + OrePrefixes.cableGt01.get(Materials.Tungsten), 'G', new ItemStack(Blocks.glass, 1) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_LV_Miner.get(1L), + bitsd, + new Object[] { "EEE", aTextWireHull, "CSC", 'M', ItemList.Hull_LV, 'E', ItemList.Electric_Motor_LV, 'C', + OrePrefixes.circuit.get(Materials.Basic), 'W', OrePrefixes.cableGt01.get(Materials.Tin), 'S', + ItemList.Sensor_LV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_MV_Miner.get(1L), + bitsd, + new Object[] { "PEP", aTextWireHull, "CSC", 'M', ItemList.Hull_MV, 'E', ItemList.Electric_Motor_MV, 'P', + ItemList.Electric_Piston_MV, 'C', OrePrefixes.circuit.get(Materials.Good), 'W', + OrePrefixes.cableGt02.get(Materials.Copper), 'S', ItemList.Sensor_MV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HV_Miner.get(1L), + bitsd, + new Object[] { "RPR", aTextWireHull, "CSC", 'M', ItemList.Hull_HV, 'E', ItemList.Electric_Motor_HV, 'P', + ItemList.Electric_Piston_HV, 'R', ItemList.Robot_Arm_HV, 'C', + OrePrefixes.circuit.get(Materials.Advanced), 'W', OrePrefixes.cableGt04.get(Materials.Gold), 'S', + ItemList.Sensor_HV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_BlastFurnace.get(1L), + bitsd, + new Object[] { "FFF", aTextCableHull, aTextWireCoil, 'M', ItemList.Casing_HeatProof, 'F', + OreDictNames.craftingIronFurnace, 'C', OrePrefixes.circuit.get(Materials.Basic), 'W', + OrePrefixes.cableGt01.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_VacuumFreezer.get(1L), + bitsd, + new Object[] { aTextPlate, aTextCableHull, aTextWireCoil, 'M', ItemList.Casing_FrostProof, 'P', + ItemList.Electric_Pump_HV, 'C', OrePrefixes.circuit.get(Materials.Data), 'W', + OrePrefixes.cableGt01.get(Materials.Gold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_ImplosionCompressor.get(1L), + bitsd, + new Object[] { "OOO", aTextCableHull, aTextWireCoil, 'M', ItemList.Casing_SolidSteel, 'O', + Ic2Items.reinforcedStone, 'C', OrePrefixes.circuit.get(Materials.Advanced), 'W', + OrePrefixes.cableGt01.get(Materials.Gold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_Furnace.get(1L), + bitsd, + new Object[] { "FFF", aTextCableHull, aTextWireCoil, 'M', ItemList.Casing_HeatProof, 'F', + OreDictNames.craftingIronFurnace, 'C', OrePrefixes.circuit.get(Materials.Advanced), 'W', + OrePrefixes.cableGt01.get(Materials.AnnealedCopper) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_LargeBoiler_Bronze.get(1L), + bitsd, + new Object[] { aTextWireCoil, aTextCableHull, aTextWireCoil, 'M', ItemList.Casing_Firebox_Bronze, 'C', + OrePrefixes.circuit.get(Materials.Good), 'W', OrePrefixes.cableGt01.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_LargeBoiler_Steel.get(1L), + bitsd, + new Object[] { aTextWireCoil, aTextCableHull, aTextWireCoil, 'M', ItemList.Casing_Firebox_Steel, 'C', + OrePrefixes.circuit.get(Materials.Advanced), 'W', OrePrefixes.cableGt01.get(Materials.AnyCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_LargeBoiler_Titanium.get(1L), + bitsd, + new Object[] { aTextWireCoil, aTextCableHull, aTextWireCoil, 'M', ItemList.Casing_Firebox_Titanium, 'C', + OrePrefixes.circuit.get(Materials.Data), 'W', OrePrefixes.cableGt01.get(Materials.Gold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_LargeBoiler_TungstenSteel.get(1L), + bitsd, + new Object[] { aTextWireCoil, aTextCableHull, aTextWireCoil, 'M', ItemList.Casing_Firebox_TungstenSteel, + 'C', OrePrefixes.circuit.get(Materials.Elite), 'W', OrePrefixes.cableGt01.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Diesel_LV.get(1L), + bitsd, + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_LV, 'P', ItemList.Electric_Piston_LV, 'E', + ItemList.Electric_Motor_LV, 'C', OrePrefixes.circuit.get(Materials.Basic), 'W', + OrePrefixes.cableGt01.get(Materials.Tin), 'G', OrePrefixes.gearGt.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Diesel_MV.get(1L), + bitsd, + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_MV, 'P', ItemList.Electric_Piston_MV, 'E', + ItemList.Electric_Motor_MV, 'C', OrePrefixes.circuit.get(Materials.Good), 'W', + OrePrefixes.cableGt01.get(Materials.AnyCopper), 'G', OrePrefixes.gearGt.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Diesel_HV.get(1L), + bitsd, + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_HV, 'P', ItemList.Electric_Piston_HV, 'E', + ItemList.Electric_Motor_HV, 'C', OrePrefixes.circuit.get(Materials.Advanced), 'W', + OrePrefixes.cableGt01.get(Materials.Gold), 'G', OrePrefixes.gearGt.get(Materials.StainlessSteel) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Gas_Turbine_LV.get(1L), + bitsd, + new Object[] { "CRC", "RMR", aTextMotorWire, 'M', ItemList.Hull_LV, 'E', ItemList.Electric_Motor_LV, 'R', + OrePrefixes.rotor.get(Materials.Tin), 'C', OrePrefixes.circuit.get(Materials.Basic), 'W', + OrePrefixes.cableGt01.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Gas_Turbine_MV.get(1L), + bitsd, + new Object[] { "CRC", "RMR", aTextMotorWire, 'M', ItemList.Hull_MV, 'E', ItemList.Electric_Motor_MV, 'R', + OrePrefixes.rotor.get(Materials.Bronze), 'C', OrePrefixes.circuit.get(Materials.Good), 'W', + OrePrefixes.cableGt01.get(Materials.AnyCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Gas_Turbine_HV.get(1L), + bitsd, + new Object[] { "CRC", "RMR", aTextMotorWire, 'M', ItemList.Hull_HV, 'E', ItemList.Electric_Motor_HV, 'R', + OrePrefixes.rotor.get(Materials.Steel), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'W', + OrePrefixes.cableGt01.get(Materials.Gold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Gas_Turbine_EV.get(1L), + bitsd, + new Object[] { "CRC", "RMR", aTextMotorWire, 'M', ItemList.Hull_EV, 'E', ItemList.Electric_Motor_EV, 'R', + OrePrefixes.rotor.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Data), 'W', + OrePrefixes.cableGt01.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Gas_Turbine_IV.get(1L), + bitsd, + new Object[] { "CRC", "RMR", aTextMotorWire, 'M', ItemList.Hull_IV, 'E', ItemList.Electric_Motor_IV, 'R', + OrePrefixes.rotor.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Elite), 'W', + OrePrefixes.cableGt01.get(Materials.Tungsten) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Steam_Turbine_LV.get(1L), + bitsd, + new Object[] { "PCP", "RMR", aTextMotorWire, 'M', ItemList.Hull_LV, 'E', ItemList.Electric_Motor_LV, 'R', + OrePrefixes.rotor.get(Materials.Tin), 'C', OrePrefixes.circuit.get(Materials.Basic), 'W', + OrePrefixes.cableGt01.get(Materials.Tin), 'P', OrePrefixes.pipeMedium.get(Materials.Bronze) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Steam_Turbine_MV.get(1L), + bitsd, + new Object[] { "PCP", "RMR", aTextMotorWire, 'M', ItemList.Hull_MV, 'E', ItemList.Electric_Motor_MV, 'R', + OrePrefixes.rotor.get(Materials.Bronze), 'C', OrePrefixes.circuit.get(Materials.Good), 'W', + OrePrefixes.cableGt01.get(Materials.AnyCopper), 'P', OrePrefixes.pipeMedium.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Steam_Turbine_HV.get(1L), + bitsd, + new Object[] { "PCP", "RMR", aTextMotorWire, 'M', ItemList.Hull_HV, 'E', ItemList.Electric_Motor_HV, 'R', + OrePrefixes.rotor.get(Materials.Steel), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'W', + OrePrefixes.cableGt01.get(Materials.Gold), 'P', OrePrefixes.pipeMedium.get(Materials.StainlessSteel) }); + + if (!Thaumcraft.isModLoaded()) { + GT_ModHandler.addCraftingRecipe( + ItemList.MagicEnergyConverter_LV.get(1L), + bitsd, + new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Hull_LV, 'B', new ItemStack(Blocks.beacon), 'C', + OrePrefixes.circuit.get(Materials.Advanced), 'T', ItemList.Field_Generator_LV, 'F', + OrePrefixes.plate.get(Materials.Platinum) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MagicEnergyConverter_MV.get(1L), + bitsd, + new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Hull_MV, 'B', new ItemStack(Blocks.beacon), 'C', + OrePrefixes.circuit.get(Materials.Data), 'T', ItemList.Field_Generator_MV, 'F', + OrePrefixes.plate.get(Materials.Iridium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MagicEnergyConverter_HV.get(1L), + bitsd, + new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Hull_HV, 'B', new ItemStack(Blocks.beacon), 'C', + OrePrefixes.circuit.get(Materials.Elite), 'T', ItemList.Field_Generator_HV, 'F', + OrePrefixes.plate.get(Materials.Neutronium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.MagicEnergyAbsorber_LV.get(1L), + bitsd, + new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Hull_LV, 'B', + ItemList.MagicEnergyConverter_LV.get(1L), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'T', + ItemList.Field_Generator_LV, 'F', OrePrefixes.plate.get(Materials.Platinum) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MagicEnergyAbsorber_MV.get(1L), + bitsd, + new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Hull_MV, 'B', + ItemList.MagicEnergyConverter_MV.get(1L), 'C', OrePrefixes.circuit.get(Materials.Data), 'T', + ItemList.Field_Generator_MV, 'F', OrePrefixes.plate.get(Materials.Iridium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MagicEnergyAbsorber_HV.get(1L), + bitsd, + new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Hull_HV, 'B', + ItemList.MagicEnergyConverter_MV.get(1L), 'C', OrePrefixes.circuit.get(Materials.Elite), 'T', + ItemList.Field_Generator_HV, 'F', OrePrefixes.plate.get(Materials.Europium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MagicEnergyAbsorber_EV.get(1L), + bitsd, + new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Hull_HV, 'B', + ItemList.MagicEnergyConverter_HV.get(1L), 'C', OrePrefixes.circuit.get(Materials.Master), 'T', + ItemList.Field_Generator_EV, 'F', OrePrefixes.plate.get(Materials.Neutronium) }); + } + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Fusion_Coil.get(1L), + bitsd, + new Object[] { "CTC", "FMF", "CTC", 'M', ItemList.Casing_Coil_Superconductor, 'C', + OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_MV, 'T', + ItemList.Neutron_Reflector }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Plasma_IV.get(1L), + bitsd, + new Object[] { "UCU", "FMF", aTextWireCoil, 'M', ItemList.Hull_LuV, 'F', ItemList.Field_Generator_HV, 'C', + OrePrefixes.circuit.get(Materials.Elite), 'W', OrePrefixes.cableGt04.get(Materials.Tungsten), 'U', + OrePrefixes.stick.get(Materials.Plutonium241) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Plasma_LuV.get(1L), + bitsd, + new Object[] { "UCU", "FMF", aTextWireCoil, 'M', ItemList.Hull_ZPM, 'F', ItemList.Field_Generator_EV, 'C', + OrePrefixes.circuit.get(Materials.Master), 'W', OrePrefixes.wireGt04.get(Materials.VanadiumGallium), + 'U', OrePrefixes.stick.get(Materials.Europium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Generator_Plasma_ZPMV.get(1L), + bitsd, + new Object[] { "UCU", "FMF", aTextWireCoil, 'M', ItemList.Hull_UV, 'F', ItemList.Field_Generator_IV, 'C', + OrePrefixes.circuit.get(Materials.Ultimate), 'W', OrePrefixes.wireGt04.get(Materials.Naquadah), 'U', + OrePrefixes.stick.get(Materials.Americium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Processing_Array.get(1L), + bitsd, + new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Hull_EV, 'B', + OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Elite), 'F', + ItemList.Robot_Arm_EV, 'T', ItemList.Energy_LapotronicOrb }); + + GT_ProcessingArrayRecipeLoader.registerDefaultGregtechMaps(); + GT_ModHandler.addCraftingRecipe( + ItemList.Distillation_Tower.get(1L), + bitsd, + new Object[] { "CBC", "FMF", "CBC", 'M', ItemList.Hull_HV, 'B', + OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Data), 'F', + ItemList.Electric_Pump_HV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.LargeSteamTurbine.get(1L), + bitsd, + new Object[] { "CPC", aTextPlateMotor, "BPB", 'M', ItemList.Hull_HV, 'B', + OrePrefixes.pipeLarge.get(Materials.Steel), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', + OrePrefixes.gearGt.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.LargeGasTurbine.get(1L), + bitsd, + new Object[] { "CPC", aTextPlateMotor, "BPB", 'M', ItemList.Hull_EV, 'B', + OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Data), 'P', + OrePrefixes.gearGt.get(Materials.StainlessSteel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.LargeAdvancedGasTurbine.get(1L), + bitsd, + new Object[] { "CPC", aTextPlateMotor, "BPB", 'M', ItemList.Hull_IV, 'B', + OrePrefixes.pipeLarge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'P', + OrePrefixes.gearGt.get(Materials.HSSG) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Pump_LV.get(1L), + bitsd, + new Object[] { "CPC", aTextPlateMotor, "BPB", 'M', ItemList.Hull_LV, 'B', + OrePrefixes.pipeLarge.get(Materials.Bronze), 'C', OrePrefixes.circuit.get(Materials.Basic), 'P', + ItemList.Electric_Pump_LV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Pump_MV.get(1L), + bitsd, + new Object[] { "CPC", aTextPlateMotor, "BPB", 'M', ItemList.Hull_MV, 'B', + OrePrefixes.pipeLarge.get(Materials.Steel), 'C', OrePrefixes.circuit.get(Materials.Good), 'P', + ItemList.Electric_Pump_MV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Pump_HV.get(1L), + bitsd, + new Object[] { "CPC", aTextPlateMotor, "BPB", 'M', ItemList.Hull_HV, 'B', + OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Advanced), + 'P', ItemList.Electric_Pump_HV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Pump_EV.get(1L), + bitsd, + new Object[] { "CPC", aTextPlateMotor, "BPB", 'M', ItemList.Hull_EV, 'B', + OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Data), 'P', + ItemList.Electric_Pump_EV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Pump_IV.get(1L), + bitsd, + new Object[] { "CPC", aTextPlateMotor, "BPB", 'M', ItemList.Hull_IV, 'B', + OrePrefixes.pipeLarge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Elite), 'P', + ItemList.Electric_Pump_IV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.MobRep_LV.get(1L), + bitsd, + new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_LV, 'E', ItemList.Emitter_LV.get(1L), 'C', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MobRep_MV.get(1L), + bitsd, + new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_MV, 'E', ItemList.Emitter_MV.get(1L), 'C', + OrePrefixes.circuit.get(Materials.Good) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MobRep_HV.get(1L), + bitsd, + new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_HV, 'E', ItemList.Emitter_HV.get(1L), 'C', + OrePrefixes.circuit.get(Materials.Advanced) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MobRep_EV.get(1L), + bitsd, + new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_EV, 'E', ItemList.Emitter_EV.get(1L), 'C', + OrePrefixes.circuit.get(Materials.Data) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MobRep_IV.get(1L), + bitsd, + new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_IV, 'E', ItemList.Emitter_IV.get(1L), 'C', + OrePrefixes.circuit.get(Materials.Elite) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MobRep_LuV.get(1L), + bitsd, + new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_LuV, 'E', ItemList.Emitter_LuV.get(1L), 'C', + OrePrefixes.circuit.get(Materials.Master) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MobRep_ZPM.get(1L), + bitsd, + new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_ZPM, 'E', ItemList.Emitter_ZPM.get(1L), 'C', + OrePrefixes.circuit.get(Materials.Ultimate) }); + GT_ModHandler.addCraftingRecipe( + ItemList.MobRep_UV.get(1L), + bitsd, + new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_UV, 'E', ItemList.Emitter_UV.get(1L), 'C', + OrePrefixes.circuit.get(Materials.SuperconductorUHV) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_HeatExchanger.get(1L), + bitsd, + new Object[] { aTextWireCoil, aTextCableHull, aTextWireCoil, 'M', ItemList.Casing_Pipe_Titanium, 'C', + OrePrefixes.pipeMedium.get(Materials.Titanium), 'W', ItemList.Electric_Pump_EV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Charcoal_Pile.get(1L), + bitsd, + new Object[] { "EXE", "EME", "hCw", 'M', ItemList.Hull_HP_Bricks, 'E', + OrePrefixes.plate.get(Materials.AnyBronze), 'C', new ItemStack(Items.flint_and_steel, 1), 'X', + OrePrefixes.rotor.get(Materials.Steel), }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Seismic_Prospector_Adv_LV.get(1L), + bitsd, + new Object[] { "WWW", "EME", "CXC", 'M', ItemList.Hull_LV, 'W', + OrePrefixes.plateDouble.get(Materials.Steel), 'E', OrePrefixes.circuit.get(Materials.Basic), 'C', + ItemList.Sensor_LV, 'X', OrePrefixes.cableGt02.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Seismic_Prospector_Adv_MV.get(1L), + bitsd, + new Object[] { "WWW", "EME", "CXC", 'M', ItemList.Hull_MV, 'W', + OrePrefixes.plateDouble.get(Materials.BlackSteel), 'E', OrePrefixes.circuit.get(Materials.Good), 'C', + ItemList.Sensor_MV, 'X', OrePrefixes.cableGt02.get(Materials.Copper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Seismic_Prospector_Adv_HV.get(1L), + bitsd, + new Object[] { "WWW", "EME", "CXC", 'M', ItemList.Hull_HV, 'W', + OrePrefixes.plateDouble.get(Materials.StainlessSteel), 'E', OrePrefixes.circuit.get(Materials.Advanced), + 'C', ItemList.Sensor_HV, 'X', OrePrefixes.cableGt04.get(Materials.Gold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Seismic_Prospector_Adv_EV.get(1L), + bitsd, + new Object[] { "WWW", "EME", "CXC", 'M', ItemList.Hull_EV, 'W', + OrePrefixes.plateDouble.get(Materials.VanadiumSteel), 'E', OrePrefixes.circuit.get(Materials.Data), 'C', + ItemList.Sensor_EV, 'X', OrePrefixes.cableGt04.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.ConcreteBackfiller1.get(1L), + bitsd, + new Object[] { "WPW", "EME", "CQC", 'M', ItemList.Hull_MV, 'W', OrePrefixes.frameGt.get(Materials.Steel), + 'E', OrePrefixes.circuit.get(Materials.Good), 'C', ItemList.Electric_Motor_MV, 'P', + OrePrefixes.pipeLarge.get(Materials.Steel), 'Q', ItemList.Electric_Pump_MV }); + GT_ModHandler.addCraftingRecipe( + ItemList.ConcreteBackfiller2.get(1L), + bitsd, + new Object[] { "WPW", "EME", "CQC", 'M', ItemList.ConcreteBackfiller1, 'W', + OrePrefixes.frameGt.get(Materials.Titanium), 'E', OrePrefixes.circuit.get(Materials.Data), 'C', + ItemList.Electric_Motor_EV, 'P', OrePrefixes.pipeLarge.get(Materials.Steel), 'Q', + ItemList.Electric_Pump_EV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.PyrolyseOven.get(1L), + bitsd, + new Object[] { "WEP", "EME", "WCP", 'M', ItemList.Hull_MV, 'W', ItemList.Electric_Piston_MV, 'P', + OrePrefixes.wireGt04.get(Materials.Cupronickel), 'E', OrePrefixes.circuit.get(Materials.Good), 'C', + ItemList.Electric_Pump_MV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.OilCracker.get(1L), + bitsd, + new Object[] { aTextWireCoil, "EME", aTextWireCoil, 'M', ItemList.Hull_HV, 'W', + ItemList.Casing_Coil_Cupronickel, 'E', OrePrefixes.circuit.get(Materials.Advanced), 'C', + ItemList.Electric_Pump_HV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.MicroTransmitter_HV.get(1L), + bitsd, + new Object[] { "CPC", aTextCableHull, "GBG", 'M', ItemList.Hull_HV, 'B', ItemList.Battery_RE_HV_Lithium, + 'C', ItemList.Emitter_HV, 'G', OrePrefixes.circuit.get(Materials.Advanced), 'P', + ItemList.Field_Generator_HV }); + GT_ModHandler.addCraftingRecipe( + ItemList.MicroTransmitter_EV.get(1L), + bitsd, + new Object[] { "CPC", aTextCableHull, "GBG", 'M', ItemList.Hull_EV, 'B', + GT_ModHandler.getIC2Item("lapotronCrystal", 1L, GT_Values.W), 'C', ItemList.Emitter_EV, 'G', + OrePrefixes.circuit.get(Materials.Data), 'P', ItemList.Field_Generator_EV }); + GT_ModHandler.addCraftingRecipe( + ItemList.MicroTransmitter_IV.get(1L), + bitsd, + new Object[] { "CPC", aTextCableHull, "GBG", 'M', ItemList.Hull_IV, 'B', ItemList.Energy_LapotronicOrb, 'C', + ItemList.Emitter_IV, 'G', OrePrefixes.circuit.get(Materials.Elite), 'P', ItemList.Field_Generator_IV }); + GT_ModHandler.addCraftingRecipe( + ItemList.MicroTransmitter_LUV.get(1L), + bitsd, + new Object[] { "CPC", aTextCableHull, "GBG", 'M', ItemList.Hull_LuV, 'B', ItemList.Energy_LapotronicOrb2, + 'C', ItemList.Emitter_LuV, 'G', OrePrefixes.circuit.get(Materials.Master), 'P', + ItemList.Field_Generator_LuV }); + GT_ModHandler.addCraftingRecipe( + ItemList.MicroTransmitter_ZPM.get(1L), + bitsd, + new Object[] { "CPC", aTextCableHull, "GBG", 'M', ItemList.Hull_ZPM, 'B', + GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "EnableZPMandUVBatteries", false) + ? ItemList.Energy_Module + : ItemList.ZPM2, + 'C', ItemList.Emitter_ZPM, 'G', OrePrefixes.circuit.get(Materials.Ultimate), 'P', + ItemList.Field_Generator_ZPM }); + GT_ModHandler.addCraftingRecipe( + ItemList.MicroTransmitter_UV.get(1L), + bitsd, + new Object[] { "CPC", aTextCableHull, "GBG", 'M', ItemList.Hull_UV, 'B', + GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "EnableZPMandUVBatteries", false) + ? ItemList.Energy_Module + : ItemList.ZPM3, + 'C', ItemList.Emitter_UV, 'G', OrePrefixes.circuit.get(Materials.SuperconductorUHV), 'P', + ItemList.Field_Generator_UV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_Assemblyline.get(1L), + bitsd, + new Object[] { aTextWireCoil, "EME", aTextWireCoil, 'M', ItemList.Hull_IV, 'W', ItemList.Casing_Assembler, + 'E', OrePrefixes.circuit.get(Materials.Elite), 'C', ItemList.Robot_Arm_IV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_DieselEngine.get(1L), + bitsd, + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_EV, 'P', ItemList.Electric_Piston_EV, 'E', + ItemList.Electric_Motor_EV, 'C', OrePrefixes.circuit.get(Materials.Elite), 'W', + OrePrefixes.cableGt01.get(Materials.TungstenSteel), 'G', OrePrefixes.gearGt.get(Materials.Titanium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_EngineIntake.get(4L), + bitsd, + new Object[] { "PhP", "RFR", aTextPlateWrench, 'R', OrePrefixes.pipeMedium.get(Materials.Titanium), 'F', + ItemList.Casing_StableTitanium, 'P', OrePrefixes.rotor.get(Materials.Titanium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_ExtremeDieselEngine.get(1L), + bitsd, + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_IV, 'P', ItemList.Electric_Piston_IV, 'E', + ItemList.Electric_Motor_IV, 'C', OrePrefixes.circuit.get(Materials.Master), 'W', + OrePrefixes.cableGt01.get(Materials.HSSG), 'G', OrePrefixes.gearGt.get(Materials.TungstenSteel) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_ExtremeEngineIntake.get(4L), + bitsd, + new Object[] { "PhP", "RFR", aTextPlateWrench, 'R', OrePrefixes.pipeMedium.get(Materials.TungstenSteel), + 'F', ItemList.Casing_RobustTungstenSteel, 'P', OrePrefixes.rotor.get(Materials.TungstenSteel) }); + + // If Cleanroom is enabled, add a recipe, else hide from NEI. + if (GT_Mod.gregtechproxy.mEnableCleanroom) { + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_Cleanroom.get(1L), + bitsd, + new Object[] { "FFF", "RHR", "MCM", 'H', ItemList.Hull_HV, 'F', ItemList.Component_Filter, 'R', + OrePrefixes.rotor.get(Materials.StainlessSteel), 'M', ItemList.Electric_Motor_HV, 'C', + OrePrefixes.circuit.get(Materials.Advanced) }); + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1L), + ItemList.Component_Filter.get(2L), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1L), + ItemList.Electric_Motor_HV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Machine_Multi_Cleanroom.get(1L)) + .fluidInputs(Materials.StainlessSteel.getMolten(864L)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + } else { + if (NotEnoughItems.isModLoaded()) { + API.hideItem(ItemList.Machine_Multi_Cleanroom.get(1L)); + } + } + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_HV_LightningRod.get(1L), + bitsd, + new Object[] { "LTL", "TMT", "LTL", 'M', ItemList.Hull_LuV, 'L', ItemList.Energy_LapotronicOrb, 'T', + ItemList.Transformer_ZPM_LuV }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_EV_LightningRod.get(1L), + bitsd, + new Object[] { "LTL", "TMT", "LTL", 'M', ItemList.Hull_ZPM, 'L', ItemList.Energy_LapotronicOrb2, 'T', + ItemList.Transformer_UV_ZPM }); + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_IV_LightningRod.get(1L), + bitsd, + new Object[] { "LTL", "TMT", "LTL", 'M', ItemList.Hull_UV, 'L', ItemList.ZPM2, 'T', + ItemList.Transformer_MAX_UV }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Machine_Multi_LargeChemicalReactor.get(1L), + bitsd, + new Object[] { "CRC", "PMP", "CBC", 'C', OrePrefixes.circuit.get(Materials.Advanced), 'R', + OrePrefixes.rotor.get(Materials.StainlessSteel), 'P', + OrePrefixes.pipeLarge.get(Materials.Polytetrafluoroethylene), 'M', ItemList.Electric_Motor_HV, 'B', + ItemList.Hull_HV }); + + // Add Drone down link hatch + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_DroneDownLink.get(1L), + bits, + new Object[] { " S ", "CMC", "RRR", 'M', ItemList.Hatch_Maintenance, 'S', ItemList.Sensor_IV, 'R', + new ItemStack(GregTech_API.sBlockReinforced, 1, 9), 'C', ItemList.Conveyor_Module_EV }); + + // And Drone Centre + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Casing_Assembler.get(1), + ItemList.Cover_SolarPanel_HV.get(4), + ItemList.Conveyor_Module_IV.get(2), + ItemList.Robot_Arm_IV.get(2), + ItemList.Sensor_IV.get(2), + ItemList.Energy_LapotronicOrb.get(4), + ItemList.Cover_WirelessNeedsMaintainance.get(1), + GalacticraftCore.isModLoaded() ? GT_ModHandler.getModItem(GalacticraftCore.ID, "item.basicItem", 1, 19) + : ItemList.Sensor_EV.get(4)) + .itemOutputs(ItemList.Machine_Multi_DroneCentre.get(1L)) + .fluidInputs(Materials.AdvancedGlue.getFluid(8000L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + } + + private static void registerShapelessCraftingRecipes() { + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { ItemList.Casing_Stripes_A }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { ItemList.Casing_Stripes_B }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { ItemList.Casing_RadioactiveHazard }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { ItemList.Casing_BioHazard }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { ItemList.Casing_ExplosionHazard }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { ItemList.Casing_FireHazard }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { ItemList.Casing_AcidHazard }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { ItemList.Casing_MagicHazard }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { ItemList.Casing_FrostHazard }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Casing_SolidSteel.get(1L), + bits, + new Object[] { ItemList.Casing_NoiseHazard }); + + if (Forestry.isModLoaded() && Gendustry.isModLoaded()) { + /* Conversion recipes */ + // TODO: Move those recipes with the other recipes + + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Machine_IndustrialApiary.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "IndustrialApiary", 1, 0) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_Frame.get(1), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "UpgradeFrame", 1) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_PRODUCTION.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 0) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_PLAINS.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 17) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_LIGHT.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 11) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_FLOWERING.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 2) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_WINTER.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 20) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_DRYER.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 5) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_AUTOMATION.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 14) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_HUMIDIFIER.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 4) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_HELL.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 13) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_POLLEN.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 22) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_DESERT.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 16) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_COOLER.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 7) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_LIFESPAN.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 1) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_SEAL.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 10) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_STABILIZER.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 19) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_JUNGLE.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 18) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_TERRITORY.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 3) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_OCEAN.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 21) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_SKY.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 12) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_HEATER.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 6) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.IndustrialApiary_Upgrade_SIEVE.get(1L), + new Object[] { GT_ModHandler.getModItem(Gendustry.ID, "ApiaryUpgrade", 1, 15) }); + + } + } + + private static void run4() { + long bits = GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.BUFFERED; + + boolean bEC = !GT_Mod.gregtechproxy.mHardcoreCables; + + if (!GT_Mod.gregtechproxy.mDisableIC2Cables) { + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("copperCableItem", 2L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "xP", 'P', OrePrefixes.plate.get(Materials.AnyCopper) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("goldCableItem", 4L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "xP", 'P', OrePrefixes.plate.get(Materials.Gold) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("ironCableItem", 3L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "xP", 'P', OrePrefixes.plate.get(Materials.AnyIron) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("tinCableItem", 3L), + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "xP", 'P', OrePrefixes.plate.get(Materials.Tin) }); + } + + // high pressure fluid pipes + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.TungstenSteel, 1L), + ItemList.Electric_Pump_EV.get(1L), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.Ultimate, 1L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.TungstenSteel, 1L), + ItemList.Electric_Pump_IV.get(1L), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 1L)) + .duration(20 * SECONDS) + .eut(4096) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.TungstenSteel, 1L), + ItemList.Electric_Pump_IV.get(2L), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Ultimate, 1L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ChestBuffer_ULV.get(1L), + bits, + new Object[] { "CMV", " X ", 'M', ItemList.Hull_ULV, 'V', ItemList.Conveyor_Module_LV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Primitive) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ChestBuffer_LV.get(1L), + bits, + new Object[] { "CMV", " X ", 'M', ItemList.Hull_LV, 'V', ItemList.Conveyor_Module_LV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ChestBuffer_MV.get(1L), + bits, + new Object[] { "CMV", " X ", 'M', ItemList.Hull_MV, 'V', ItemList.Conveyor_Module_MV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Good) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ChestBuffer_HV.get(1L), + bits, + new Object[] { "CMV", " X ", 'M', ItemList.Hull_HV, 'V', ItemList.Conveyor_Module_HV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Advanced) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ChestBuffer_EV.get(1L), + bits, + new Object[] { "CMV", " X ", 'M', ItemList.Hull_EV, 'V', ItemList.Conveyor_Module_EV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Data) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ChestBuffer_IV.get(1L), + bits, + new Object[] { "CMV", " X ", 'M', ItemList.Hull_IV, 'V', ItemList.Conveyor_Module_IV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Elite) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ChestBuffer_LuV.get(1L), + bits, + new Object[] { "CMV", " X ", 'M', ItemList.Hull_LuV, 'V', ItemList.Conveyor_Module_LuV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Master) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ChestBuffer_ZPM.get(1L), + bits, + new Object[] { "CMV", " X ", 'M', ItemList.Hull_ZPM, 'V', ItemList.Conveyor_Module_ZPM, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Ultimate) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ChestBuffer_UV.get(1L), + bits, + new Object[] { "CMV", " X ", 'M', ItemList.Hull_UV, 'V', ItemList.Conveyor_Module_UV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.SuperconductorUHV) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ChestBuffer_MAX.get(1L), + bits, + new Object[] { "CMV", " X ", 'M', ItemList.Hull_MAX, 'V', ItemList.Conveyor_Module_UHV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Infinite) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Filter_ULV.get(1L), + bits, + new Object[] { " F ", "CMV", " X ", 'M', ItemList.Hull_ULV, 'V', ItemList.Conveyor_Module_LV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Filter_LV.get(1L), + bits, + new Object[] { " F ", "CMV", " X ", 'M', ItemList.Hull_LV, 'V', ItemList.Conveyor_Module_LV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Filter_MV.get(1L), + bits, + new Object[] { " F ", "CMV", " X ", 'M', ItemList.Hull_MV, 'V', ItemList.Conveyor_Module_MV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Filter_HV.get(1L), + bits, + new Object[] { " F ", "CMV", " X ", 'M', ItemList.Hull_HV, 'V', ItemList.Conveyor_Module_HV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Filter_EV.get(1L), + bits, + new Object[] { " F ", "CMV", " X ", 'M', ItemList.Hull_EV, 'V', ItemList.Conveyor_Module_EV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Filter_IV.get(1L), + bits, + new Object[] { " F ", "CMV", " X ", 'M', ItemList.Hull_IV, 'V', ItemList.Conveyor_Module_IV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Filter_LuV.get(1L), + bits, + new Object[] { " F ", "CMV", " X ", 'M', ItemList.Hull_LuV, 'V', ItemList.Conveyor_Module_LuV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Filter_ZPM.get(1L), + bits, + new Object[] { " F ", "CMV", " X ", 'M', ItemList.Hull_ZPM, 'V', ItemList.Conveyor_Module_ZPM, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Filter_UV.get(1L), + bits, + new Object[] { " F ", "CMV", " X ", 'M', ItemList.Hull_UV, 'V', ItemList.Conveyor_Module_UV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Filter_MAX.get(1L), + bits, + new Object[] { " F ", "CMV", " X ", 'M', ItemList.Hull_MAX, 'V', ItemList.Conveyor_Module_UHV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_TypeFilter_ULV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_ULV, 'V', ItemList.Conveyor_Module_LV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_TypeFilter_LV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_LV, 'V', ItemList.Conveyor_Module_LV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_TypeFilter_MV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_MV, 'V', ItemList.Conveyor_Module_MV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_TypeFilter_HV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_HV, 'V', ItemList.Conveyor_Module_HV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_TypeFilter_EV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_EV, 'V', ItemList.Conveyor_Module_EV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_TypeFilter_IV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_IV, 'V', ItemList.Conveyor_Module_IV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_TypeFilter_LuV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_LuV, 'V', ItemList.Conveyor_Module_LuV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_TypeFilter_ZPM.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_ZPM, 'V', ItemList.Conveyor_Module_ZPM, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_TypeFilter_UV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_UV, 'V', ItemList.Conveyor_Module_UV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_TypeFilter_MAX.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_MAX, 'V', ItemList.Conveyor_Module_UHV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Regulator_ULV.get(1L), + bits, + new Object[] { "XFX", "VMV", "XCX", 'M', ItemList.Hull_ULV, 'V', ItemList.Robot_Arm_LV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Regulator_LV.get(1L), + bits, + new Object[] { "XFX", "VMV", "XCX", 'M', ItemList.Hull_LV, 'V', ItemList.Robot_Arm_LV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Regulator_MV.get(1L), + bits, + new Object[] { "XFX", "VMV", "XCX", 'M', ItemList.Hull_MV, 'V', ItemList.Robot_Arm_MV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Regulator_HV.get(1L), + bits, + new Object[] { "XFX", "VMV", "XCX", 'M', ItemList.Hull_HV, 'V', ItemList.Robot_Arm_HV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Regulator_EV.get(1L), + bits, + new Object[] { "XFX", "VMV", "XCX", 'M', ItemList.Hull_EV, 'V', ItemList.Robot_Arm_EV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Regulator_IV.get(1L), + bits, + new Object[] { "XFX", "VMV", "XCX", 'M', ItemList.Hull_IV, 'V', ItemList.Robot_Arm_IV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Regulator_LuV.get(1L), + bits, + new Object[] { "XFX", "VMV", "XCX", 'M', ItemList.Hull_LuV, 'V', ItemList.Robot_Arm_LuV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Regulator_ZPM.get(1L), + bits, + new Object[] { "XFX", "VMV", "XCX", 'M', ItemList.Hull_ZPM, 'V', ItemList.Robot_Arm_ZPM, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Regulator_UV.get(1L), + bits, + new Object[] { "XFX", "VMV", "XCX", 'M', ItemList.Hull_UV, 'V', ItemList.Robot_Arm_UV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_Regulator_MAX.get(1L), + bits, + new Object[] { "XFX", "VMV", "XCX", 'M', ItemList.Hull_MAX, 'V', ItemList.Robot_Arm_UHV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_ULV.get(1L), + bits, + new Object[] { "DMV", 'M', ItemList.Automation_ChestBuffer_ULV, 'V', ItemList.Conveyor_Module_LV, 'D', + ItemList.Tool_DataOrb }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_LV.get(1L), + bits, + new Object[] { "DMV", 'M', ItemList.Automation_ChestBuffer_LV, 'V', ItemList.Conveyor_Module_LV, 'D', + ItemList.Tool_DataOrb }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_MV.get(1L), + bits, + new Object[] { "DMV", 'M', ItemList.Automation_ChestBuffer_MV, 'V', ItemList.Conveyor_Module_MV, 'D', + ItemList.Tool_DataOrb }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_HV.get(1L), + bits, + new Object[] { "DMV", 'M', ItemList.Automation_ChestBuffer_HV, 'V', ItemList.Conveyor_Module_HV, 'D', + ItemList.Tool_DataOrb }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_EV.get(1L), + bits, + new Object[] { "DMV", 'M', ItemList.Automation_ChestBuffer_EV, 'V', ItemList.Conveyor_Module_EV, 'D', + ItemList.Tool_DataOrb }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_IV.get(1L), + bits, + new Object[] { "DMV", 'M', ItemList.Automation_ChestBuffer_IV, 'V', ItemList.Conveyor_Module_IV, 'D', + ItemList.Tool_DataOrb }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_LuV.get(1L), + bits, + new Object[] { "DMV", 'M', ItemList.Automation_ChestBuffer_LuV, 'V', ItemList.Conveyor_Module_LuV, 'D', + ItemList.Tool_DataOrb }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_ZPM.get(1L), + bits, + new Object[] { "DMV", 'M', ItemList.Automation_ChestBuffer_ZPM, 'V', ItemList.Conveyor_Module_ZPM, 'D', + ItemList.Tool_DataOrb }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_UV.get(1L), + bits, + new Object[] { "DMV", 'M', ItemList.Automation_ChestBuffer_UV, 'V', ItemList.Conveyor_Module_UV, 'D', + ItemList.Tool_DataOrb }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_MAX.get(1L), + bits, + new Object[] { "DMV", 'M', ItemList.Automation_ChestBuffer_MAX, 'V', ItemList.Conveyor_Module_UHV, 'D', + ItemList.Tool_DataOrb }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_ULV.get(1L), + bits, + new Object[] { "DMV", "DDD", 'M', ItemList.Hull_ULV, 'V', ItemList.Conveyor_Module_LV, 'D', + ItemList.Tool_DataStick }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_LV.get(1L), + bits, + new Object[] { "DMV", "DDD", 'M', ItemList.Hull_LV, 'V', ItemList.Conveyor_Module_LV, 'D', + ItemList.Tool_DataStick }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_MV.get(1L), + bits, + new Object[] { "DMV", "DDD", 'M', ItemList.Hull_MV, 'V', ItemList.Conveyor_Module_MV, 'D', + ItemList.Tool_DataStick }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_HV.get(1L), + bits, + new Object[] { "DMV", "DDD", 'M', ItemList.Hull_HV, 'V', ItemList.Conveyor_Module_HV, 'D', + ItemList.Tool_DataStick }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_EV.get(1L), + bits, + new Object[] { "DMV", "DDD", 'M', ItemList.Hull_EV, 'V', ItemList.Conveyor_Module_EV, 'D', + ItemList.Tool_DataStick }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_IV.get(1L), + bits, + new Object[] { "DMV", "DDD", 'M', ItemList.Hull_IV, 'V', ItemList.Conveyor_Module_IV, 'D', + ItemList.Tool_DataStick }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_LuV.get(1L), + bits, + new Object[] { "DMV", "DDD", 'M', ItemList.Hull_LuV, 'V', ItemList.Conveyor_Module_LuV, 'D', + ItemList.Tool_DataStick }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_ZPM.get(1L), + bits, + new Object[] { "DMV", "DDD", 'M', ItemList.Hull_ZPM, 'V', ItemList.Conveyor_Module_ZPM, 'D', + ItemList.Tool_DataStick }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_UV.get(1L), + bits, + new Object[] { "DMV", "DDD", 'M', ItemList.Hull_UV, 'V', ItemList.Conveyor_Module_UV, 'D', + ItemList.Tool_DataStick }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_SuperBuffer_MAX.get(1L), + bits, + new Object[] { "DMV", "DDD", 'M', ItemList.Hull_MAX, 'V', ItemList.Conveyor_Module_UHV, 'D', + ItemList.Tool_DataStick }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ItemDistributor_ULV.get(1L), + bits, + new Object[] { "XCX", "VMV", " V ", 'M', ItemList.Hull_ULV, 'V', ItemList.Conveyor_Module_LV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ItemDistributor_LV.get(1L), + bits, + new Object[] { "XCX", "VMV", " V ", 'M', ItemList.Hull_LV, 'V', ItemList.Conveyor_Module_LV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ItemDistributor_MV.get(1L), + bits, + new Object[] { "XCX", "VMV", " V ", 'M', ItemList.Hull_MV, 'V', ItemList.Conveyor_Module_MV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ItemDistributor_HV.get(1L), + bits, + new Object[] { "XCX", "VMV", " V ", 'M', ItemList.Hull_HV, 'V', ItemList.Conveyor_Module_HV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ItemDistributor_EV.get(1L), + bits, + new Object[] { "XCX", "VMV", " V ", 'M', ItemList.Hull_EV, 'V', ItemList.Conveyor_Module_EV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ItemDistributor_IV.get(1L), + bits, + new Object[] { "XCX", "VMV", " V ", 'M', ItemList.Hull_IV, 'V', ItemList.Conveyor_Module_IV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ItemDistributor_LuV.get(1L), + bits, + new Object[] { "XCX", "VMV", " V ", 'M', ItemList.Hull_LuV, 'V', ItemList.Conveyor_Module_LuV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ItemDistributor_ZPM.get(1L), + bits, + new Object[] { "XCX", "VMV", " V ", 'M', ItemList.Hull_ZPM, 'V', ItemList.Conveyor_Module_ZPM, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ItemDistributor_UV.get(1L), + bits, + new Object[] { "XCX", "VMV", " V ", 'M', ItemList.Hull_UV, 'V', ItemList.Conveyor_Module_UV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_ItemDistributor_MAX.get(1L), + bits, + new Object[] { "XCX", "VMV", " V ", 'M', ItemList.Hull_MAX, 'V', ItemList.Conveyor_Module_UHV, 'C', + OreDictNames.craftingChest, 'X', OrePrefixes.circuit.get(Materials.Basic) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_RecipeFilter_ULV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_ULV, 'V', ItemList.Robot_Arm_LV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_RecipeFilter_LV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_LV, 'V', ItemList.Robot_Arm_LV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_RecipeFilter_MV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_MV, 'V', ItemList.Robot_Arm_MV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_RecipeFilter_HV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_HV, 'V', ItemList.Robot_Arm_HV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_RecipeFilter_EV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_EV, 'V', ItemList.Robot_Arm_EV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_RecipeFilter_IV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_IV, 'V', ItemList.Robot_Arm_IV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_RecipeFilter_LuV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_LuV, 'V', ItemList.Robot_Arm_LuV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_RecipeFilter_ZPM.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_ZPM, 'V', ItemList.Robot_Arm_ZPM, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_RecipeFilter_UV.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_UV, 'V', ItemList.Robot_Arm_UV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Automation_RecipeFilter_MAX.get(1L), + bits, + new Object[] { " F ", "VMC", " X ", 'M', ItemList.Hull_MAX, 'V', ItemList.Robot_Arm_UHV, 'C', + OreDictNames.craftingChest, 'F', OreDictNames.craftingFilter, 'X', + OrePrefixes.circuit.get(Materials.Basic) }); + } + + @Override + public void run() { + registerShapelessCraftingRecipes(); + registerShapedCraftingRecipes(); + GT_Log.out.println("GT_Mod: Recipes for MetaTileEntities."); + registerMachineTypes(); + GT_PCBFactoryMaterialLoader.load(); + run4(); + } +} diff --git a/src/main/java/gregtech/loaders/load/GT_SonictronLoader.java b/src/main/java/gregtech/loaders/load/GT_SonictronLoader.java new file mode 100644 index 0000000000..e5fb8042f7 --- /dev/null +++ b/src/main/java/gregtech/loaders/load/GT_SonictronLoader.java @@ -0,0 +1,159 @@ +package gregtech.loaders.load; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.GT_Mod; +import gregtech.api.enums.SoundResource; +import gregtech.api.util.GT_Log; + +public class GT_SonictronLoader implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Loading Sonictron Sounds"); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.iron_block, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.NOTE_HARP.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(25); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.gold_block, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.NOTE_PLING.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(25); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.stone, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.NOTE_BD.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(25); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.log, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.NOTE_BASSATTACK.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(25); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.planks, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.NOTE_BASS.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(25); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.glass, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.NOTE_HAT.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(25); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.sand, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.NOTE_BASS.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(25); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.record_cat, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("streaming."); + GT_Mod.gregtechproxy.mSoundCounts.add(12); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.tnt, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_EXPLODE.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(3); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.fire, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.FIRE_FIRE.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.flint_and_steel, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.FIRE_IGNITE.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.lava, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.LIQUID_LAVAPOP.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.water, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.LIQUID_WATER.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.water_bucket, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.LIQUID_SPLASH.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.lava_bucket, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_FIZZ.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.portal, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.PORTAL_PORTAL.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.end_portal, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.PORTAL_TRAVEL.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.end_portal_frame, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.PORTAL_TRIGGER.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.glass_pane, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_GLASS.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.ender_pearl, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_ORB.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.ender_eye, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_LEVELUP.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.stone_button, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_CLICK.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.cobblestone, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.DAMAGE_FALLBIG.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.dirt, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.DAMAGE_FALLSMALL.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.iron_sword, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.DAMAGE_HURTFLESH.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.diamond_sword, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_HURT.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.bow, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_BOW.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.arrow, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_DRR.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.fishing_rod, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_BOWHIT.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.iron_shovel, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_BREAK.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.bucket, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_BREATH.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.potionitem, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_DRINK.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.glass_bottle, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_BURP.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems + .add(new ItemStack(Blocks.ender_chest == null ? Blocks.obsidian : Blocks.ender_chest, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_CHESTOPEN.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.chest, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_CHESTCLOSED.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.iron_door, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_DOOR_OPEN.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.wooden_door, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_DOOR_CLOSE.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.porkchop, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.RANDOM_EAT.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.wool, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.STEP_CLOTH.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.grass, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.STEP_GRASS.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.gravel, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.STEP_GRAVEL.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.snow, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.STEP_SNOW.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.piston, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.TILE_PISTON_OUT.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.sticky_piston, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.TILE_PISTON_IN.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.mossy_cobblestone, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.AMBIENT_CAVE_CAVE.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.lapis_block, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.AMBIENT_WEATHER_RAIN.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.diamond_block, 1)); + GT_Mod.gregtechproxy.mSoundNames.add(SoundResource.AMBIENT_WEATHER_THUNDER.toString()); + GT_Mod.gregtechproxy.mSoundCounts.add(1); + } +} diff --git a/src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java b/src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java new file mode 100644 index 0000000000..4fb7388367 --- /dev/null +++ b/src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java @@ -0,0 +1,55 @@ +package gregtech.loaders.materialprocessing; + +import gregtech.api.enums.GTNH_ExtraMaterials; +import gregtech.api.enums.Materials; + +public class ProcessingConfig implements gregtech.api.interfaces.IMaterialHandler { + + public ProcessingConfig() { + new GTNH_ExtraMaterials(); + Materials.add(this); + } + + /** + * To add a new material, please see the following example: + * <blockquote> + * + * <pre> + * int numberOfMaterialSlots = GregTech_API.sMaterialProperties.get("general", "AmountOfCustomMaterialSlots", 16); + * for (int i = 0; i < numberOfMaterialSlots; i++) { + * String aID = (i < 10 ? "0" : "") + i; + * new Materials( + * -1, + * TextureSet.SET_METALLIC, + * 1.0F, + * 0, + * 0, + * 0, + * 255, + * 255, + * 255, + * 0, + * "CustomMat" + aID, + * "CustomMat" + aID, + * 0, + * 0, + * 0, + * 0, + * false, + * false, + * 1, + * 1, + * 1, + * Dyes._NULL, + * "custom", + * true, + * aID); + * } + * </pre> + * + * </blockquote> + */ + @SuppressWarnings("unused") + @Override + public void onMaterialsInit() {} +} diff --git a/src/main/java/gregtech/loaders/materialprocessing/ProcessingModSupport.java b/src/main/java/gregtech/loaders/materialprocessing/ProcessingModSupport.java new file mode 100644 index 0000000000..c7d5aa32e3 --- /dev/null +++ b/src/main/java/gregtech/loaders/materialprocessing/ProcessingModSupport.java @@ -0,0 +1,56 @@ +package gregtech.loaders.materialprocessing; + +import static gregtech.api.enums.Mods.Metallurgy; +import static gregtech.api.enums.Mods.RotaryCraft; +import static gregtech.api.enums.Mods.UndergroundBiomes; + +import gregtech.api.enums.Materials; + +public class ProcessingModSupport implements gregtech.api.interfaces.IMaterialHandler { + + public static boolean aEnableThaumcraftMats = true; + + public ProcessingModSupport() { + Materials.add(this); + } + + @Override + public void onMaterialsInit() { + // Disable Materials if Parent Mod is not loaded + if (!Metallurgy.isModLoaded()) { + Materials.Angmallen.mHasParentMod = false; + Materials.Atlarus.mHasParentMod = false; + Materials.Carmot.mHasParentMod = false; + Materials.Celenegil.mHasParentMod = false; + Materials.Eximite.mHasParentMod = false; + Materials.Haderoth.mHasParentMod = false; + Materials.Hepatizon.mHasParentMod = false; + Materials.Ignatius.mHasParentMod = false; + Materials.Infuscolium.mHasParentMod = false; + Materials.Inolashite.mHasParentMod = false; + Materials.Kalendrite.mHasParentMod = false; + Materials.Lemurite.mHasParentMod = false; + Materials.Meutoite.mHasParentMod = false; + Materials.Oureclase.mHasParentMod = false; + Materials.Prometheum.mHasParentMod = false; + Materials.Sanguinite.mHasParentMod = false; + } + + if (!UndergroundBiomes.isModLoaded()) { + Materials.Blueschist.mHasParentMod = false; + Materials.Chert.mHasParentMod = false; + Materials.Dacite.mHasParentMod = false; + Materials.Eclogite.mHasParentMod = false; + Materials.Gabbro.mHasParentMod = false; + Materials.Gneiss.mHasParentMod = false; + Materials.Greenschist.mHasParentMod = false; + Materials.Greywacke.mHasParentMod = false; + Materials.Komatiite.mHasParentMod = false; + Materials.Rhyolite.mHasParentMod = false; + } + if (!RotaryCraft.isModLoaded()) { + Materials.HSLA.mHasParentMod = false; + } + + } +} diff --git a/src/main/java/gregtech/loaders/misc/GT_Achievements.java b/src/main/java/gregtech/loaders/misc/GT_Achievements.java new file mode 100644 index 0000000000..8d30240012 --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/GT_Achievements.java @@ -0,0 +1,806 @@ +package gregtech.loaders.misc; + +import static gregtech.api.enums.Mods.Thaumcraft; + +import java.util.concurrent.ConcurrentHashMap; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; +import net.minecraft.stats.AchievementList; +import net.minecraft.stats.StatBase; +import net.minecraftforge.common.AchievementPage; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.EntityItemPickupEvent; +import net.minecraftforge.fluids.FluidStack; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.PlayerEvent.ItemCraftedEvent; +import cpw.mods.fml.common.gameevent.PlayerEvent.ItemSmeltedEvent; +import gregtech.GT_Mod; +import gregtech.api.GregTech_API; +import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.objects.ItemData; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; +import gregtech.common.items.GT_MetaGenerated_Tool_01; +import ic2.core.Ic2Items; +import thaumcraft.api.ThaumcraftApiHelper; + +public class GT_Achievements { + + public static int oreReg = -1; + public static int assReg = -1; + public ConcurrentHashMap<String, Achievement> achievementList; + public ConcurrentHashMap<String, Boolean> issuedAchievements; + public int adjX = 5; + public int adjY = 9; + + public GT_Achievements() { + this.achievementList = new ConcurrentHashMap<>(); + this.issuedAchievements = new ConcurrentHashMap<>(); + + for (GT_Recipe recipe : RecipeMaps.assemblylineVisualRecipes.getAllRecipes()) { + registerAssAchievement(recipe); + } + + registerAchievement( + "flintpick", + 0, + 0, + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(2, 1, Materials.Flint, Materials.Wood, null), + "", + false); + registerAchievement("crops", -4, 0, GT_ModHandler.getIC2Item("crop", 1L), "flintpick", false); + registerAchievement("havestlead", -4, 2, ItemList.Crop_Drop_Plumbilia.get(1), "crops", false); + registerAchievement("havestcopper", -2, 1, ItemList.Crop_Drop_Coppon.get(1), "crops", false); + registerAchievement("havesttin", -2, -1, ItemList.Crop_Drop_Tine.get(1), "crops", false); + registerAchievement("havestoil", -4, -4, ItemList.Crop_Drop_OilBerry.get(1), "crops", false); + registerAchievement("havestiron", -2, -3, ItemList.Crop_Drop_Ferru.get(1), "crops", false); + registerAchievement("havestgold", -2, -6, ItemList.Crop_Drop_Aurelia.get(1), "havestiron", false); + registerAchievement("havestsilver", -4, -5, ItemList.Crop_Drop_Argentia.get(1), "havestiron", false); + registerAchievement("havestemeralds", -2, -8, ItemList.Crop_Drop_BobsYerUncleRanks.get(1), "havestgold", false); + + registerAchievement( + "tools", + 0, + 4, + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.HARDHAMMER, 1, Materials.Iron, Materials.Wood, null), + "flintpick", + false); + registerAchievement( + "driltime", + 2, + 4, + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_LV, + 1, + Materials.BlueSteel, + Materials.StainlessSteel, + null), + "tools", + false); + registerAchievement( + "brrrr", + 2, + 6, + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.CHAINSAW_LV, + 1, + Materials.BlueSteel, + Materials.StainlessSteel, + null), + "driltime", + false); + registerAchievement( + "highpowerdrill", + 3, + 5, + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_HV, + 1, + Materials.TungstenSteel, + Materials.TungstenSteel, + null), + "driltime", + false); + registerAchievement( + "hammertime", + 3, + 7, + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.JACKHAMMER, + 1, + Materials.TungstenSteel, + Materials.TungstenSteel, + null), + "highpowerdrill", + false); + + registerAchievement( + "unitool", + -2, + 4, + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.UNIVERSALSPADE, 1, Materials.Steel, Materials.Iron, null), + "tools", + false); + registerAchievement("recycling", -4, 4, ItemList.Machine_LV_ArcFurnace.get(1), "unitool", false); + + registerAchievement( + "crushed", + 0, + 6, + GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Tin, 1L), + "tools", + false); + registerAchievement( + "cleandust", + 0, + 10, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), + "crushed", + false); + registerAchievement( + "washing", + -2, + 6, + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Iron, 1L), + "crushed", + false); + registerAchievement( + "spinit", + -4, + 6, + GT_OreDictUnificator.get(OrePrefixes.crushedCentrifuged, Materials.Redstone, 1L), + "crushed", + false); + + registerAchievement("newfuel", -4, 8, ItemList.ThoriumCell_4.get(1), "spinit", false); + registerAchievement( + "newmetal", + -4, + 10, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 1L), + "newfuel", + false); + registerAchievement("reflect", -2, 9, ItemList.Neutron_Reflector.get(1), "newfuel", false); + + registerAchievement( + "bronze", + 2, + 0, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 1L), + "flintpick", + false); + registerAchievement( + "simplyeco", + 2, + 2, + ItemList.Machine_Bronze_Boiler_Solar.get(1, ItemList.Machine_HP_Solar.get(1L)), + "bronze", + false); + registerAchievement("firststeam", 2, -2, ItemList.Machine_Bronze_Boiler.get(1), "bronze", false); + registerAchievement("alloysmelter", 2, -4, ItemList.Machine_Bronze_AlloySmelter.get(1), "firststeam", false); + registerAchievement("macerator", 0, -2, ItemList.Machine_Bronze_Macerator.get(1), "firststeam", false); + registerAchievement("extract", 0, -4, ItemList.Machine_Bronze_Extractor.get(1), "alloysmelter", false); + + registerAchievement("smallparts", 0, -5, ItemList.Circuit_Primitive.get(1), "alloysmelter", false); + registerAchievement("gtbasiccircuit", 0, -8, Ic2Items.electronicCircuit.copy(), "smallparts", false); + registerAchievement("bettercircuits", 0, -9, ItemList.Circuit_Good.get(1), "gtbasiccircuit", false); + registerAchievement("stepforward", -2, -9, Ic2Items.advancedCircuit.copy(), "bettercircuits", false); + registerAchievement("gtmonosilicon", -5, -10, ItemList.Circuit_Silicon_Ingot.get(1), "stepforward", false); + registerAchievement("gtlogicwafer", -7, -10, ItemList.Circuit_Wafer_ILC.get(1), "gtmonosilicon", false); + registerAchievement("gtlogiccircuit", -9, -10, ItemList.Circuit_Basic.get(1), "gtlogicwafer", false); + registerAchievement("gtcleanroom", -11, -10, ItemList.Machine_Multi_Cleanroom.get(1), "gtlogiccircuit", false); + registerAchievement("energyflow", -13, -10, ItemList.Circuit_Nanoprocessor.get(1), "gtcleanroom", false); + registerAchievement( + "gtquantumprocessor", + -13, + -12, + ItemList.Circuit_Quantumprocessor.get(1), + "energyflow", + false); + registerAchievement( + "gtcrystalprocessor", + -11, + -12, + ItemList.Circuit_Crystalprocessor.get(1), + "gtquantumprocessor", + false); + registerAchievement("gtwetware", -9, -12, ItemList.Circuit_Neuroprocessor.get(1), "gtcrystalprocessor", false); + registerAchievement("gtwetmain", -7, -12, ItemList.Circuit_Wetwaremainframe.get(1), "gtwetware", false); + + registerAchievement("orbs", -10, -14, ItemList.Energy_LapotronicOrb.get(1), "energyflow", false); + registerAchievement("thatspower", -8, -14, ItemList.Energy_LapotronicOrb2.get(1), "orbs", false); + registerAchievement("datasaving", -2, -12, ItemList.Tool_DataOrb.get(1), "stepforward", false); + registerAchievement("superbuffer", 0, -12, ItemList.Automation_SuperBuffer_LV.get(1), "datasaving", false); + registerAchievement("newstorage", -2, -14, ItemList.Quantum_Chest_HV.get(1), "superbuffer", false); + registerAchievement("whereistheocean", 2, -14, ItemList.Quantum_Tank_IV.get(1), "superbuffer", false); + registerAchievement("luck", 2, -6, ItemList.ZPM.get(1), "", false); + + registerAchievement( + "steel", + 4, + 0, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), + "bronze", + false); + registerAchievement("highpressure", 4, 2, ItemList.Machine_Steel_Boiler.get(1), "steel", false); + registerAchievement( + "extremepressure", + 4, + 4, + ItemList.Machine_Multi_LargeBoiler_Steel.get(1), + "highpressure", + false); + registerAchievement("cheapermac", 6, 1, ItemList.Machine_LV_Hammer.get(1), "steel", false); + registerAchievement( + "complexalloys", + 6, + 3, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.BlueSteel, 1L), + "cheapermac", + false); + + registerAchievement( + "magneticiron", + 4, + -2, + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.IronMagnetic, 1L), + "steel", + false); + registerAchievement("lvmotor", 4, -6, ItemList.Electric_Motor_LV.get(1), "magneticiron", false); + registerAchievement("pumpcover", 2, -8, ItemList.Electric_Pump_LV.get(1), "lvmotor", false); + registerAchievement("closeit", 2, -10, ItemList.Cover_Shutter.get(1), "pumpcover", false); + registerAchievement("slurp", 2, -12, ItemList.Pump_HV.get(1), "closeit", false); + registerAchievement("transport", 4, -10, ItemList.Conveyor_Module_LV.get(1), "lvmotor", false); + registerAchievement("manipulation", 4, -12, ItemList.Cover_Controller.get(1), "transport", false); + registerAchievement("buffer", 4, -14, ItemList.Automation_ChestBuffer_LV.get(1), "manipulation", false); + registerAchievement("complexmachines", 6, -9, ItemList.Robot_Arm_LV.get(1), "lvmotor", false); + registerAchievement("avengers", 8, -11, ItemList.Machine_LV_Assembler.get(1), "complexmachines", false); + registerAchievement("filterregulate", 10, -11, ItemList.Component_Filter.get(1), "avengers", false); + + registerAchievement("steampower", 6, -6, ItemList.Generator_Steam_Turbine_LV.get(1), "lvmotor", false); + registerAchievement("batterys", 6, -4, ItemList.Battery_Buffer_2by2_MV.get(1), "steampower", false); + registerAchievement("badweather", 6, -8, ItemList.Casing_FireHazard.get(1), "steampower", false); + registerAchievement("electricproblems", 7, -7, ItemList.Casing_ExplosionHazard.get(1), "steampower", false); + registerAchievement("ebf", 8, -6, ItemList.Machine_Multi_BlastFurnace.get(1), "steampower", false); + registerAchievement("energyhatch", 12, -6, ItemList.Hatch_Energy_LV.get(1), "ebf", false); + + registerAchievement( + "gtaluminium", + 8, + 0, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Aluminium, 1L), + "steel", + false); + registerAchievement("highpowersmelt", 8, 2, ItemList.Machine_Multi_Furnace.get(1), "gtaluminium", false); + registerAchievement("oilplant", 8, 4, ItemList.Distillation_Tower.get(1), "highpowersmelt", false); + registerAchievement("factory", 8, 6, ItemList.Processing_Array.get(1), "oilplant", false); + registerAchievement("upgradeebf", 8, -2, ItemList.Hatch_Energy_MV.get(1), "gtaluminium", false); + registerAchievement("maintainance", 10, -2, ItemList.Hatch_Maintenance.get(1), "upgradeebf", false); + + registerAchievement("upgrade", 10, 0, ItemList.Casing_Coil_Kanthal.get(1), "gtaluminium", false); + registerAchievement( + "titan", + 14, + 0, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L), + "upgrade", + false); + registerAchievement("magic", 14, 3, ItemList.MagicEnergyConverter_LV.get(1), "titan", false); + registerAchievement("highmage", 10, 3, ItemList.MagicEnergyAbsorber_HV.get(1), "magic", false); + registerAchievement("artificaldia", 12, 2, ItemList.IC2_Industrial_Diamond.get(1), "titan", false); + registerAchievement("muchsteam", 13, 1, ItemList.LargeSteamTurbine.get(1), "titan", false); + registerAchievement("efficientsteam", 11, 1, ItemList.LargeSteamTurbine.get(1), "muchsteam", false); + + registerAchievement("upgrade2", 16, 0, ItemList.Casing_Coil_Nichrome.get(1), "titan", false); + registerAchievement( + "tungsten", + 16, + 2, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tungsten, 1L), + "upgrade2", + false); + registerAchievement( + "osmium", + 16, + -2, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Osmium, 1L), + "upgrade2", + false); + registerAchievement("hightech", 15, -3, ItemList.Field_Generator_LV.get(1), "osmium", false); + registerAchievement("amplifier", 16, -5, ItemList.Machine_LV_Amplifab.get(1), "hightech", false); + registerAchievement("scanning", 13, -3, ItemList.Machine_HV_Scanner.get(1), "hightech", false); + registerAchievement("alienpower", 14, -5, ItemList.Generator_Naquadah_Mark_I.get(1), "hightech", false); + registerAchievement("universal", 15, -6, ItemList.Machine_LV_Massfab.get(1), "hightech", false); + registerAchievement("replication", 17, -6, ItemList.Machine_LV_Replicator.get(1), "universal", false); + + registerAchievement( + "tungstensteel", + 16, + 4, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 1L), + "tungsten", + false); + registerAchievement("upgrade3", 15, 5, ItemList.Casing_Coil_TungstenSteel.get(1), "tungstensteel", false); + registerAchievement( + "hssg", + 13, + 5, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.HSSG, 1L), + "upgrade3", + false); + registerAchievement("upgrade4", 11, 5, ItemList.Casing_Coil_HSSG.get(1), "hssg", false); + registerAchievement( + "stargatematerial", + 11, + 7, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 1L), + "upgrade4", + false); + registerAchievement("conducting", 14, 6, ItemList.Casing_Coil_Superconductor.get(1), "upgrade3", false); + registerAchievement("fusion", 15, 7, ItemList.FusionComputer_LuV.get(1), "tungstensteel", false); + registerAchievement("higherefficency", 15, 9, ItemList.Generator_Plasma_IV.get(1), "fusion", false); + registerAchievement("advancing", 13, 7, ItemList.FusionComputer_ZPMV.get(1), "fusion", false); + + registerAchievement("stargateliquid", 11, 9, ItemList.Generator_Plasma_LuV.get(1), "advancing", false); + registerAchievement("tothelimit", 13, 9, ItemList.Generator_Plasma_LuV.get(1), "advancing", false); + registerAchievement("fullefficiency", 12, 10, ItemList.Generator_Plasma_ZPMV.get(1), "tothelimit", false); + registerAchievement("upgrade5", 9, 9, ItemList.Casing_Coil_Naquadah.get(1), "stargateliquid", false); + registerAchievement( + "alienmetallurgy", + 9, + 7, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.NaquadahAlloy, 1L), + "upgrade5", + false); + registerAchievement("over9000", 7, 7, ItemList.Casing_Coil_NaquadahAlloy.get(1), "alienmetallurgy", false); + registerAchievement( + "finalpreparations", + 7, + 9, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadria, 1L), + "over9000", + false); + registerAchievement("denseaspossible", 6, 10, ItemList.FusionComputer_UV.get(1), "finalpreparations", false); + if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "EnableZPMandUVBatteries", false)) { + registerAchievement("zpmage", 8, 10, ItemList.Energy_Module.get(1), "denseaspossible", false); + registerAchievement("uvage", 10, 10, ItemList.Energy_Cluster.get(1), "zpmage", false); + registerAchievement("whatnow", 12, 10, ItemList.ZPM2.get(1), "uvage", false); + } else { + registerAchievement("whatnow", 8, 10, ItemList.ZPM2.get(1), "denseaspossible", false); + } + + if (GT_Mod.gregtechproxy.mAchievements) { + AchievementPage.registerAchievementPage( + new AchievementPage( + "GregTech 5", + this.achievementList.values() + .toArray(new Achievement[0]))); + MinecraftForge.EVENT_BUS.register(this); + FMLCommonHandler.instance() + .bus() + .register(this); + } + } + + public static void registerOre(Materials aMaterial, int min, int max, int chance, boolean overworld, boolean nether, + boolean end) {} + + public Achievement registerAchievement(String textId, int x, int y, ItemStack icon, Achievement requirement, + boolean special) { + if (!GT_Mod.gregtechproxy.mAchievements) { + return null; + } + Achievement achievement = new Achievement(textId, textId, this.adjX + x, this.adjY + y, icon, requirement); + if (special) { + achievement.setSpecial(); + } + ((StatBase) achievement).registerStat(); + if (GT_Values.D2) { + GT_Log.out.println("achievement." + textId + "="); + GT_Log.out.println("achievement." + textId + ".desc="); + } + this.achievementList.put(textId, achievement); + return achievement; + } + + public Achievement registerAchievement(String textId, int x, int y, ItemStack icon, String requirement, + boolean special) { + if (!GT_Mod.gregtechproxy.mAchievements) { + return null; + } + Achievement achievement = new Achievement( + textId, + textId, + this.adjX + x, + this.adjY + y, + icon, + getAchievement(requirement)); + if (special) { + achievement.setSpecial(); + } + ((StatBase) achievement).registerStat(); + if (GT_Values.D2) { + GT_Log.out.println("achievement." + textId + "="); + GT_Log.out.println("achievement." + textId + ".desc="); + } + this.achievementList.put(textId, achievement); + return achievement; + } + + public Achievement registerOreAchievement(Materials aMaterial) { + return null; + } + + public Achievement registerAssAchievement(GT_Recipe recipe) { + if (recipe == null) { + GT_Mod.GT_FML_LOGGER.error("Invalid achievement registration attempt for null recipe", new Exception()); + return null; + } + if (recipe.getOutput(0) == null) { + GT_Mod.GT_FML_LOGGER + .error("Invalid achievement registration attempt for recipe with null output", new Exception()); + return null; + } + if (this.achievementList.get( + recipe.getOutput(0) + .getUnlocalizedName()) + == null) { + assReg++; + return registerAchievement( + recipe.getOutput(0) + .getUnlocalizedName(), + -(11 + assReg % 5), + ((assReg) / 5) - 8, + recipe.getOutput(0), + AchievementList.openInventory, + false); + } + return null; + } + + public void issueAchievement(EntityPlayer entityplayer, String textId) { + if (entityplayer == null || !GT_Mod.gregtechproxy.mAchievements) { + return; + } + entityplayer.triggerAchievement(this.achievementList.get(textId)); + } + + public Achievement getAchievement(String textId) { + if (this.achievementList.containsKey(textId)) { + return this.achievementList.get(textId); + } + return null; + } + + public void issueAchivementHatch(EntityPlayer player, ItemStack stack) { + if (player == null || stack == null) { + return; + } + ItemData data = GT_OreDictUnificator.getItemData(stack); + + if ((data != null) && (data.mPrefix == OrePrefixes.ingot)) { + if (data.mMaterial.mMaterial == Materials.Aluminium) { + issueAchievement(player, "gtaluminium"); + } else if (data.mMaterial.mMaterial == Materials.Titanium) { + issueAchievement(player, "titan"); + } else if (data.mMaterial.mMaterial == Materials.BlueSteel) { + issueAchievement(player, "complexalloys"); + } else if (data.mMaterial.mMaterial == Materials.Tungsten) { + issueAchievement(player, "tungsten"); + } else if (data.mMaterial.mMaterial == Materials.Osmium) { + issueAchievement(player, "osmium"); + } else if (data.mMaterial.mMaterial == Materials.TungstenSteel) { + issueAchievement(player, "tungstensteel"); + } else if (data.mMaterial.mMaterial == Materials.HSSG) { + issueAchievement(player, "hssg"); + } else if (data.mMaterial.mMaterial == Materials.Naquadah) { + issueAchievement(player, "stargatematerial"); + } else if (data.mMaterial.mMaterial == Materials.NaquadahAlloy) { + issueAchievement(player, "alienmetallurgy"); + } else if (data.mMaterial.mMaterial == Materials.Naquadria) { + issueAchievement(player, "finalpreparations"); + } + } + if (stack.getUnlocalizedName() + .equals("ic2.itemPartIndustrialDiamond")) { + issueAchievement(player, "artificaldia"); + issueAchievement(player, "buildCoalDiamond"); + } + } + + public void issueAchivementHatchFluid(EntityPlayer player, FluidStack fluid) { + if (player == null || fluid == null) { + return; + } + switch (fluid.getFluid() + .getUnlocalizedName()) { + case "fluid.plasma.helium" -> issueAchievement(player, "fusion"); + case "fluid.molten.europium" -> issueAchievement(player, "advancing"); + case "fluid.molten.naquadah" -> issueAchievement(player, "stargateliquid"); + case "fluid.molten.americium" -> issueAchievement(player, "tothelimit"); + case "fluid.molten.neutronium" -> issueAchievement(player, "denseaspossible"); + case "fluid.plasma.nitrogen" -> issueAchievement(player, "higherefficency"); + } + } + + @SubscribeEvent + public void onCrafting(ItemCraftedEvent event) { + EntityPlayer player = event.player; + ItemStack stack = event.crafting; + if (player == null || stack == null) { + return; + } + ItemData data = GT_OreDictUnificator.getItemData(stack); + if (data != null) { + if (data.mPrefix == OrePrefixes.dust && data.mMaterial.mMaterial == Materials.Bronze) { + issueAchievement(player, "bronze"); + } + } + switch (stack.getUnlocalizedName()) { + case "gt.metaitem.01.2300" -> issueAchievement(player, "bronze"); + case "gt.metaitem.01.32700" -> issueAchievement(player, "smallparts"); + case "gt.metaitem.01.32702" -> issueAchievement(player, "bettercircuits"); + case "gt.metaitem.01.23354" -> issueAchievement(player, "magneticiron"); + case "gt.metaitem.01.32600" -> { + issueAchievement(player, "lvmotor"); + issueAchievement(player, "buildCable"); + } + case "gt.metaitem.01.32610" -> issueAchievement(player, "pumpcover"); + case "gt.metaitem.01.32630" -> issueAchievement(player, "transport"); + case "gt.metaitem.01.32650" -> issueAchievement(player, "complexmachines"); + case "gt.metaitem.01.32670" -> issueAchievement(player, "hightech"); + case "ic2.blockCrop" -> issueAchievement(player, "crops"); + case "ic2.itemPartCircuit" -> issueAchievement(player, "gtbasiccircuit"); + case "ic2.itemPartCircuitAdv" -> issueAchievement(player, "stepforward"); + case "gt.blockmachines.boiler.solar" -> issueAchievement(player, "simplyeco"); + case "gt.blockmachines.boiler.bronze" -> issueAchievement(player, "firststeam"); + case "gt.blockmachines.boiler.steel" -> issueAchievement(player, "highpressure"); + case "gt.blockmachines.bronzemachine.macerator" -> { + issueAchievement(player, "macerator"); + issueAchievement(player, "buildMacerator"); + } + case "gt.blockmachines.bronzemachine.alloysmelter.tier.3" -> issueAchievement(player, "buildIndFurnace"); + case "gt.blockmachines.bronzemachine.alloysmelter" -> { + issueAchievement(player, "alloysmelter"); + issueAchievement(player, "buildElecFurnace"); + } + + case "gt.blockmachines.bronzemachine.extractor" -> { + issueAchievement(player, "extract"); + issueAchievement(player, "buildCompressor"); + issueAchievement(player, "buildExtractor"); + } + case "gt.blockmachines.basicmachine.pump.tier.03" -> issueAchievement(player, "slurp"); + case "gt.blockmachines.multimachine.blastfurnace" -> issueAchievement(player, "ebf"); + case "gt.blockmachines.hatch.energy.tier.02" -> issueAchievement(player, "upgradeebf"); + case "gt.blockmachines.multimachine.multifurnace" -> issueAchievement(player, "highpowersmelt"); + case "gt.blockmachines.hatch.energy.tier.01" -> issueAchievement(player, "energyhatch"); + case "gt.blockmachines.multimachine.processingarray" -> issueAchievement(player, "factory"); + case "gt.blockmachines.basicgenerator.magicenergyconverter.tier.01" -> issueAchievement(player, "magic"); + case "gt.blockmachines.basicgenerator.magicenergyabsorber.tier.03" -> issueAchievement(player, "highmage"); + case "gt.blockmachines.basicgenerator.plasmagenerator.tier.07" -> issueAchievement( + player, + "fullefficiency"); + case "gt.blockmachines.multimachine.largeturbine" -> issueAchievement(player, "muchsteam"); + case "gt.blockmachines.multimachine.largehpturbine" -> issueAchievement(player, "efficientsteam"); + case "gt.blockmachines.multimachine.cleanroom" -> issueAchievement(player, "gtcleanroom"); + case "gt.neutronreflector" -> issueAchievement(player, "reflect"); + case "gt.blockcasings5.1" -> issueAchievement(player, "upgrade"); + case "gt.blockcasings5.2" -> issueAchievement(player, "upgrade2"); + case "gt.blockcasings5.3" -> issueAchievement(player, "upgrade3"); + case "gt.blockcasings5.4" -> issueAchievement(player, "upgrade4"); + case "gt.blockcasings5.5" -> issueAchievement(player, "upgrade5"); + case "gt.blockcasings5.6" -> issueAchievement(player, "over9000"); + case "gt.blockcasings.15" -> issueAchievement(player, "conducting"); + } + + if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.")) { + if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.basicmachine.arcfurnace.tier.")) { + issueAchievement(player, "recycling"); + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.basicmachine.disassembler.tier.")) { + issueAchievement(player, "repair"); + + } + + else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.automation.superbuffer.tier.")) { + issueAchievement(player, "superbuffer"); + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.quantum.tank.tier.")) { + issueAchievement(player, "whereistheocean"); + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.quantum.chest.tier.")) { + issueAchievement(player, "newstorage"); + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.basicmachine.hammer.tier.")) { + issueAchievement(player, "cheapermac"); + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.automation.chestbuffer.tier.")) { + issueAchievement(player, "buffer"); + issueAchievement(player, "buildBatBox"); + if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.automation.chestbuffer.tier.3")) { + issueAchievement(player, "buildMFE"); + } + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.basicgenerator.steamturbine.tier.")) { + issueAchievement(player, "steampower"); + issueAchievement(player, "buildGenerator"); + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.basicmachine.assembler.tier.")) { + issueAchievement(player, "avengers"); + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.batterybuffer.")) { + issueAchievement(player, "batterys"); + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.basicmachine.amplifab.tier.")) { + issueAchievement(player, "amplifier"); + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.basicmachine.massfab.tier.")) { + issueAchievement(player, "universal"); + issueAchievement(player, "buildMassFab"); + } else if (stack.getUnlocalizedName() + .startsWith("gt.blockmachines.basicgenerator.naquadah.tier.")) { + issueAchievement(player, "alienpower"); + } else if (stack.getUnlocalizedName() + .startsWith( + "gt.blockmachines.basicmachine.replicator.tier.")) { + issueAchievement(player, "replication"); + } + } + } + + @SubscribeEvent + public void onSmelting(ItemSmeltedEvent event) { + EntityPlayer player = event.player; + ItemStack stack = event.smelting; + if (player == null || stack == null) { + return; + } + if (stack.getItem() == Items.bread) { + event.player.triggerAchievement(AchievementList.makeBread); + } + } + + @SubscribeEvent + public void onItemPickup(EntityItemPickupEvent event) { + EntityPlayer player = event.entityPlayer; + ItemStack stack = event.item.getEntityItem(); + if (player == null || stack == null) { + return; + } + ItemData data = GT_OreDictUnificator.getItemData(stack); + if (data != null && data.mPrefix != null) { + if (data.mPrefix == OrePrefixes.dust) { + if (data.mMaterial.mMaterial == Materials.Lutetium) { + issueAchievement(player, "newmetal"); + } + if (data.mMaterial.mMaterial != Materials.Gunpowder) { + issueAchievement(player, "cleandust"); + } + } else if (data.mPrefix.name() + .startsWith("ore")) { + int data_getAllMaterialStacks_sS = data.getAllMaterialStacks() + .size(); + for (int i = 0; i < data_getAllMaterialStacks_sS; i++) { + issueAchievement( + player, + data.getAllMaterialStacks() + .get(i).mMaterial.mName); + if (data.getAllMaterialStacks() + .get(i).mMaterial == Materials.AnyIron) { + issueAchievement(player, "iron"); + } + if (data.getAllMaterialStacks() + .get(i).mMaterial == Materials.Copper + || data.getAllMaterialStacks() + .get(i).mMaterial == Materials.Tin) { + issueAchievement(event.entityPlayer, "mineOre"); + } + } + } else if (data.mPrefix == OrePrefixes.crushed) { + issueAchievement(player, "crushed"); + } else if (data.mPrefix == OrePrefixes.crushedPurified) { + issueAchievement(player, "washing"); + } else if (data.mPrefix == OrePrefixes.crushedCentrifuged) { + issueAchievement(player, "spinit"); + } else if (data.mMaterial.mMaterial == Materials.Steel) { + if (data.mPrefix == OrePrefixes.ingot && stack.stackSize == stack.getMaxStackSize()) { + issueAchievement(player, "steel"); + } else if (data.mPrefix == OrePrefixes.nugget && Thaumcraft.isModLoaded() + && ThaumcraftApiHelper.isResearchComplete(player.getDisplayName(), "GT_IRON_TO_STEEL")) { + issueAchievement(player, "steel"); + } + // } else if (data.mPrefix == OrePrefixes.circuit && data.mMaterial.mMaterial == + // Materials.Advanced) { + // issueAchievement(player, "stepforward"); + } + } + // GT_FML_LOGGER.info(stack.getUnlocalizedName()); + switch (stack.getUnlocalizedName()) { + case "gt.metaitem.02.32500" -> issueAchievement(player, "havestlead"); + case "gt.metaitem.02.32501" -> issueAchievement(player, "havestsilver"); + case "gt.metaitem.02.32503" -> issueAchievement(player, "havestiron"); + case "gt.metaitem.02.32504" -> issueAchievement(player, "havestgold"); + case "gt.metaitem.02.32530" -> issueAchievement(player, "havestcopper"); + case "gt.metaitem.02.32540" -> issueAchievement(player, "havesttin"); + case "gt.metaitem.02.32510" -> issueAchievement(player, "havestoil"); + case "gt.metaitem.02.32511" -> issueAchievement(player, "havestemeralds"); + case "gt.metaitem.03.32082" -> issueAchievement(player, "energyflow"); + case "gt.metaitem.01.32702" -> issueAchievement(player, "bettercircuits"); + case "gt.metaitem.01.32707" -> issueAchievement(player, "datasaving"); + case "gt.metaitem.01.32597" -> issueAchievement(player, "orbs"); + case "gt.metaitem.01.32599" -> issueAchievement(player, "thatspower"); + case "gt.metaitem.01.32598" -> issueAchievement(player, "luck"); + case "gt.metaitem.01.32749" -> issueAchievement(player, "closeit"); + case "gt.metaitem.01.32730" -> issueAchievement(player, "manipulation"); + case "gt.metaitem.01.32729" -> issueAchievement(player, "filterregulate"); + case "gt.metaitem.01.32605" -> issueAchievement(player, "whatnow"); + case "gt.metaitem.01.32736" -> issueAchievement(player, "zpmage"); + case "gt.metaitem.01.32737" -> issueAchievement(player, "uvage"); + case "gt.metaitem.03.32030" -> issueAchievement(player, "gtmonosilicon"); + case "gt.metaitem.03.32036" -> issueAchievement(player, "gtlogicwafer"); + case "gt.metaitem.01.32701" -> issueAchievement(player, "gtlogiccircuit"); + case "gt.metaitem.03.32085" -> issueAchievement(player, "gtquantumprocessor"); + case "gt.metaitem.03.32089" -> issueAchievement(player, "gtcrystalprocessor"); + case "gt.metaitem.03.32092" -> issueAchievement(player, "gtwetware"); + case "gt.metaitem.03.32095" -> issueAchievement(player, "gtwetmain"); + case "gt.Thoriumcell" -> issueAchievement(player, "newfuel"); + case "ic2.itemPartCircuitAdv" -> issueAchievement(player, "stepforward"); + case "gt.blockcasings5.1" -> issueAchievement(player, "upgrade"); + case "gt.blockcasings5.2" -> issueAchievement(player, "upgrade2"); + case "gt.blockcasings5.3" -> issueAchievement(player, "upgrade3"); + case "gt.blockcasings5.4" -> issueAchievement(player, "upgrade4"); + case "gt.blockcasings5.5" -> issueAchievement(player, "upgrade5"); + case "gt.blockcasings5.6" -> issueAchievement(player, "over9000"); + case "gt.blockcasings.15" -> issueAchievement(player, "conducting"); + case "gt.metaitem.01.32761" -> { // Debug Scanner pickup shows all assline recipes. + if (player.capabilities.isCreativeMode) { + for (GT_Recipe recipe : RecipeMaps.assemblylineVisualRecipes.getAllRecipes()) { + issueAchievement( + player, + recipe.getOutput(0) + .getUnlocalizedName()); + recipe.mHidden = false; + } + } + } + } + + if ((stack.getItem() == Ic2Items.quantumBodyarmor.getItem()) + || (stack.getItem() == Ic2Items.quantumBoots.getItem()) + || (stack.getItem() == Ic2Items.quantumHelmet.getItem()) + || (stack.getItem() == Ic2Items.quantumLeggings.getItem())) { + issueAchievement(player, "buildQArmor"); + } + + for (GT_Recipe recipe : RecipeMaps.assemblylineVisualRecipes.getAllRecipes()) { + if (recipe.getOutput(0) + .getUnlocalizedName() + .equals(stack.getUnlocalizedName())) { + issueAchievement( + player, + recipe.getOutput(0) + .getUnlocalizedName()); + recipe.mHidden = false; + } + } + } +} diff --git a/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java b/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java new file mode 100644 index 0000000000..f1afe6c3a2 --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java @@ -0,0 +1,2766 @@ +package gregtech.loaders.misc; + +import static forestry.api.apiculture.EnumBeeChromosome.CAVE_DWELLING; +import static forestry.api.apiculture.EnumBeeChromosome.EFFECT; +import static forestry.api.apiculture.EnumBeeChromosome.FERTILITY; +import static forestry.api.apiculture.EnumBeeChromosome.FLOWERING; +import static forestry.api.apiculture.EnumBeeChromosome.FLOWER_PROVIDER; +import static forestry.api.apiculture.EnumBeeChromosome.HUMIDITY_TOLERANCE; +import static forestry.api.apiculture.EnumBeeChromosome.LIFESPAN; +import static forestry.api.apiculture.EnumBeeChromosome.NOCTURNAL; +import static forestry.api.apiculture.EnumBeeChromosome.SPECIES; +import static forestry.api.apiculture.EnumBeeChromosome.SPEED; +import static forestry.api.apiculture.EnumBeeChromosome.TEMPERATURE_TOLERANCE; +import static forestry.api.apiculture.EnumBeeChromosome.TERRITORY; +import static forestry.api.apiculture.EnumBeeChromosome.TOLERANT_FLYER; +import static forestry.api.core.EnumHumidity.ARID; +import static forestry.api.core.EnumHumidity.DAMP; +import static forestry.api.core.EnumTemperature.COLD; +import static forestry.api.core.EnumTemperature.HELLISH; +import static forestry.api.core.EnumTemperature.HOT; +import static forestry.api.core.EnumTemperature.ICY; +import static forestry.api.core.EnumTemperature.NORMAL; +import static forestry.api.core.EnumTemperature.WARM; +import static forestry.core.genetics.alleles.EnumAllele.Fertility; +import static forestry.core.genetics.alleles.EnumAllele.Flowering; +import static forestry.core.genetics.alleles.EnumAllele.Flowers; +import static forestry.core.genetics.alleles.EnumAllele.Lifespan; +import static forestry.core.genetics.alleles.EnumAllele.Speed; +import static forestry.core.genetics.alleles.EnumAllele.Territory; +import static forestry.core.genetics.alleles.EnumAllele.Tolerance; +import static gregtech.api.enums.Mods.AdvancedSolarPanel; +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.Avaritia; +import static gregtech.api.enums.Mods.AvaritiaAddons; +import static gregtech.api.enums.Mods.BiomesOPlenty; +import static gregtech.api.enums.Mods.CropsPlusPlus; +import static gregtech.api.enums.Mods.EnderStorage; +import static gregtech.api.enums.Mods.ExtraBees; +import static gregtech.api.enums.Mods.ExtraCells2; +import static gregtech.api.enums.Mods.ExtraUtilities; +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.GalacticraftCore; +import static gregtech.api.enums.Mods.GalacticraftMars; +import static gregtech.api.enums.Mods.GalaxySpace; +import static gregtech.api.enums.Mods.GregTech; +import static gregtech.api.enums.Mods.HardcoreEnderExpansion; +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.enums.Mods.MagicBees; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.enums.Mods.PamsHarvestCraft; +import static gregtech.api.enums.Mods.TaintedMagic; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.enums.Mods.ThaumicBases; +import static gregtech.api.enums.Mods.TinkerConstruct; +import static gregtech.loaders.misc.GT_BeeDefinitionReference.EXTRABEES; +import static gregtech.loaders.misc.GT_BeeDefinitionReference.FORESTRY; +import static gregtech.loaders.misc.GT_BeeDefinitionReference.GENDUSTRY; +import static gregtech.loaders.misc.GT_BeeDefinitionReference.GREGTECH; +import static gregtech.loaders.misc.GT_BeeDefinitionReference.MAGICBEES; + +import java.awt.Color; +import java.util.Arrays; +import java.util.Locale; +import java.util.function.Consumer; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import org.apache.commons.lang3.text.WordUtils; + +import cpw.mods.fml.common.registry.GameRegistry; +import forestry.api.apiculture.BeeManager; +import forestry.api.apiculture.EnumBeeType; +import forestry.api.apiculture.IAlleleBeeEffect; +import forestry.api.apiculture.IAlleleBeeSpecies; +import forestry.api.apiculture.IBee; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeMutationCustom; +import forestry.api.core.EnumHumidity; +import forestry.api.core.EnumTemperature; +import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IAlleleFlowers; +import forestry.api.genetics.IMutationCustom; +import forestry.apiculture.genetics.Bee; +import forestry.apiculture.genetics.IBeeDefinition; +import forestry.apiculture.genetics.alleles.AlleleEffect; +import forestry.core.genetics.alleles.AlleleHelper; +import gregtech.api.GregTech_API; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsKevlar; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_JubilanceMegaApiary; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.common.bees.GT_AlleleBeeSpecies; +import gregtech.common.bees.GT_Bee_Mutation; +import gregtech.common.items.CombType; +import gregtech.common.items.DropType; +import gregtech.common.items.PropolisType; + +/** + * Bride Class for Lambdas + */ +class GT_BeeDefinitionReference { + + protected static final byte FORESTRY = 0; + protected static final byte EXTRABEES = 1; + protected static final byte GENDUSTRY = 2; + protected static final byte MAGICBEES = 3; + protected static final byte GREGTECH = 4; + + private GT_BeeDefinitionReference() {} +} + +public enum GT_BeeDefinition implements IBeeDefinition { + + // organic + CLAY(GT_BranchDefinition.ORGANIC, "Clay", true, new Color(0xC8C8DA), new Color(0x0000FF), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 0), 0.30f); + beeSpecies.addProduct(new ItemStack(Items.clay_ball, 1), 0.15f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(BiomesOPlenty.ID, "mudball", 1, 0), 0.05f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, FLOWERING, Flowering.SLOWER); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.VANILLA); + }, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(FORESTRY, "Industrious"), getSpecies(FORESTRY, "Diligent"), 10); + tMutation.requireResource(Blocks.clay, 0); // blockStainedHardenedClay + }), + SLIMEBALL(GT_BranchDefinition.ORGANIC, "SlimeBall", true, new Color(0x4E9E55), new Color(0x00FF15), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 15), 0.30f); + beeSpecies.addProduct(new ItemStack(Items.slime_ball, 1), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.STICKY), 0.05f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + if (TinkerConstruct.isModLoaded()) { + beeSpecies.addProduct(GT_ModHandler.getModItem(TinkerConstruct.ID, "strangeFood", 1, 0), 0.10f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(TinkerConstruct.ID, "slime.gel", 1, 2), 0.02f); + } + }, template -> { + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.MUSHROOMS); + AlleleHelper.instance.set(template, FLOWERING, Flowering.SLOWER); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, getFlowers(EXTRABEES, "water")); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(FORESTRY, "Marshy"), CLAY, 7); + if (TinkerConstruct.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(TinkerConstruct.ID, "slime.gel"), 1); + }), + PEAT(GT_BranchDefinition.ORGANIC, "Peat", true, new Color(0x906237), new Color(0x58300B), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.LIGNIE), 0.30f); + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 0), 0.15f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(Forestry.ID, "peat", 1, 0), 0.15f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(Forestry.ID, "mulch", 1, 0), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTER); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.WHEAT); + AlleleHelper.instance.set(template, FLOWERING, Flowering.FASTER); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.NONE); + }, dis -> dis.registerMutation(getSpecies(FORESTRY, "Rural"), CLAY, 10)), + STICKYRESIN(GT_BranchDefinition.ORGANIC, "StickyResin", true, new Color(0x2E8F5B), new Color(0xDCC289), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 0), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.STICKY), 0.15f); + beeSpecies.addSpecialty(ItemList.IC2_Resin.get(1), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, FLOWERING, Flowering.SLOWER); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.NONE); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(SLIMEBALL, PEAT, 15); + tMutation.requireResource("logRubber"); + }), + COAL(GT_BranchDefinition.ORGANIC, "Coal", true, new Color(0x666666), new Color(0x525252), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.LIGNIE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.COAL), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.CACTI); + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.DOWN_2); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.DOWN_1); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectCreeper); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(FORESTRY, "Industrious"), PEAT, 9); + tMutation.requireResource("blockCoal"); + }), + OIL(GT_BranchDefinition.ORGANIC, "Oil", true, new Color(0x4C4C4C), new Color(0x333333), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 0), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.OIL), 0.75f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, FLOWERING, Flowering.SLOWER); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.NORMAL); + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, getFlowers(EXTRABEES, "water")); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.NONE); + }, dis -> dis.registerMutation(COAL, STICKYRESIN, 4)), + SANDWICH(GT_BranchDefinition.ORGANIC, "Sandwich", true, new Color(0x32CD32), new Color(0xDAA520), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(ExtraBees.ID, "honeyComb", 1, 9), 0.15f); + beeSpecies.addSpecialty(ItemList.Food_Sliced_Cucumber.get(1), 0.05f); + beeSpecies.addSpecialty(ItemList.Food_Sliced_Onion.get(1), 0.05f); + beeSpecies.addSpecialty(ItemList.Food_Sliced_Tomato.get(1), 0.05f); + beeSpecies.addSpecialty(ItemList.Food_Sliced_Cheese.get(1), 0.05f); + beeSpecies.addSpecialty(new ItemStack(Items.cooked_porkchop, 1, 0), 0.05f); + beeSpecies.addSpecialty(new ItemStack(Items.cooked_beef, 1, 0), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOW); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_2); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectFertile); + AlleleHelper.instance.set(template, TERRITORY, Territory.LARGE); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTER); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.WHEAT); + AlleleHelper.instance.set(template, FLOWERING, Flowering.FASTER); + }, dis -> dis.registerMutation(getSpecies(FORESTRY, "Agrarian"), getSpecies(MAGICBEES, "TCBatty"), 10)), + ASH(GT_BranchDefinition.ORGANIC, "Ash", true, new Color(0x1e1a18), new Color(0xc6c6c6), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(ExtraBees.ID, "honeyComb", 1, 9), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ASH), 0.15f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.NORMAL); + AlleleHelper.instance.set(template, TERRITORY, Territory.LARGE); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTER); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.WHEAT); + AlleleHelper.instance.set(template, FLOWERING, Flowering.FASTER); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(COAL, CLAY, 10); + tMutation.restrictTemperature(HELLISH); + }), + APATITE(GT_BranchDefinition.ORGANIC, "Apatite", true, new Color(0xc1c1f6), new Color(0x676784), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(ExtraBees.ID, "honeyComb", 1, 9), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.APATITE), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(WARM); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.WHEAT); + AlleleHelper.instance.set(template, FLOWERING, Flowering.FASTER); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, getFlowers(EXTRABEES, "rock")); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(ASH, COAL, 10); + tMutation.requireResource("blockApatite"); + }), + FERTILIZER(GT_BranchDefinition.ORGANIC, "Fertilizer", true, new Color(0x7fcef5), new Color(0x654525), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(ExtraBees.ID, "honeyComb", 1, 9), 0.15f); + beeSpecies.addSpecialty(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1), 0.2f); + beeSpecies.addSpecialty(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1), 0.2f); + beeSpecies.addSpecialty(ItemList.FR_Fertilizer.get(1), 0.3f); + beeSpecies.addSpecialty(ItemList.IC2_Fertilizer.get(1), 0.3f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(WARM); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.WHEAT); + AlleleHelper.instance.set(template, FLOWERING, Flowering.FASTER); + }, dis -> dis.registerMutation(ASH, APATITE, 8)), + // Phosphorus bee, Humidity: normal, Temperature: Hot, Parents: Apatite & Ash, Mutationrate: 12%, Combrate: 55% + PHOSPHORUS(GT_BranchDefinition.ORGANIC, "Phosphorus", false, new Color(0xFFC826), new Color(0xC1C1F6), + beeSpecies -> { + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.PHOSPHORUS), 0.35f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(HOT); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(APATITE, ASH, 12); + tMutation.restrictTemperature(HOT); + tMutation.requireResource(GameRegistry.findBlock(GregTech.ID, "gt.blockgem2"), 8); + }), + // Tea bee, Humidity: normal, Parents: Ash and Fertilizer, Mutationrate: 10%, combrate: 10% + TEA(GT_BranchDefinition.ORGANIC, "Tea", false, new Color(0x65D13A), new Color(0x9a9679), beeSpecies -> { + beeSpecies.addProduct( + GT_ModHandler.getModItem(PamsHarvestCraft.ID, "tealeafItem", 1, ItemList.Crop_Drop_TeaLeaf.get(1)), + 0.10f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(NORMAL); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), + dis -> dis.registerMutation(FERTILIZER, ASH, 10)), + // Mica bee, Humidity: normal, Parents: Silicon & PEAT, Mutationrate: 15%, Combrate: 25% + MICA(GT_BranchDefinition.ORGANIC, "Mica", false, new Color(0xFFC826), new Color(0xC1C1F6), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.MICA), 0.25f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(HOT); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(PEAT, getSpecies(MAGICBEES, "Silicon"), 15); + tMutation.requireResource(GameRegistry.findBlock(GregTech.ID, "gt.blockcasings5"), 0); + }), + + // gems + REDSTONE(GT_BranchDefinition.GEM, "Redstone", true, new Color(0x7D0F0F), new Color(0xD11919), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.REDSTONE), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.RAREEARTH), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(FORESTRY, "Industrious"), getSpecies(FORESTRY, "Demonic"), 10); + tMutation.requireResource("blockRedstone"); + }), + LAPIS(GT_BranchDefinition.GEM, "Lapis", true, new Color(0x1947D1), new Color(0x476CDA), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.LAPIS), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(FORESTRY, "Demonic"), getSpecies(FORESTRY, "Imperial"), 10); + tMutation.requireResource("blockLapis"); + }), + CERTUS(GT_BranchDefinition.GEM, "CertusQuartz", true, new Color(0x57CFFB), new Color(0xBBEEFF), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.CERTUS), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(FORESTRY, "Hermitic"), LAPIS, 10); + tMutation.requireResource(GameRegistry.findBlock(AppliedEnergistics2.ID, "tile.BlockQuartz"), 0); + }), + FLUIX(GT_BranchDefinition.GEM, "FluixDust", true, new Color(0xA375FF), new Color(0xB591FF), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.FLUIX), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDSTONE, LAPIS, 7); + tMutation.requireResource(GameRegistry.findBlock(AppliedEnergistics2.ID, "tile.BlockFluix"), 0); + }), + DIAMOND(GT_BranchDefinition.GEM, "Diamond", false, new Color(0xCCFFFF), new Color(0xA3CCCC), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.DIAMOND), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(HOT); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(CERTUS, COAL, 3); + tMutation.requireResource("blockDiamond"); + }), + RUBY(GT_BranchDefinition.GEM, "Ruby", false, new Color(0xE6005C), new Color(0xCC0052), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.RUBY), 0.15f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.REDGARNET), 0.05f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDSTONE, DIAMOND, 5); + tMutation.requireResource("blockRuby"); + }), + SAPPHIRE(GT_BranchDefinition.GEM, "Sapphire", true, new Color(0x0033CC), new Color(0x00248F), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SAPPHIRE), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(CERTUS, LAPIS, 5); + tMutation.requireResource(GregTech_API.sBlockGem2, 12); + }), + OLIVINE(GT_BranchDefinition.GEM, "Olivine", true, new Color(0x248F24), new Color(0xCCFFCC), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.OLIVINE), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.MAGNESIUM), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), + dis -> dis.registerMutation(CERTUS, getSpecies(FORESTRY, "Ended"), 5)), + EMERALD(GT_BranchDefinition.GEM, "Emerald", false, new Color(0x248F24), new Color(0x2EB82E), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.EMERALD), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ALUMINIUM), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(OLIVINE, DIAMOND, 4); + tMutation.requireResource("blockEmerald"); + }), + REDGARNET(GT_BranchDefinition.GEM, "RedGarnet", false, new Color(0xBD4C4C), new Color(0xECCECE), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.REDGARNET), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.PYROPE), 0.05f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(WARM); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(DIAMOND, RUBY, 4); + tMutation.requireResource("blockGarnetRed"); + }), + YELLOWGARNET(GT_BranchDefinition.GEM, "YellowGarnet", false, new Color(0xA3A341), new Color(0xEDEDCE), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.YELLOWGARNET), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.GROSSULAR), 0.05f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(WARM); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(EMERALD, REDGARNET, 3); + tMutation.requireResource("blockGarnetYellow"); + }), + FIRESTONE(GT_BranchDefinition.GEM, "Firestone", false, new Color(0xC00000), new Color(0xFF0000), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STONE), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.FIRESTONE), 0.15f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(WARM); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(template, NOCTURNAL, true); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDSTONE, RUBY, 4); + tMutation.requireResource("blockFirestone"); + }), + + // Metal Line + COPPER(GT_BranchDefinition.METAL, "Copper", true, new Color(0xFF6600), new Color(0xE65C00), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.COPPER), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.GOLD), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(FORESTRY, "Majestic"), CLAY, 13); + tMutation.requireResource("blockCopper"); + }), + TIN(GT_BranchDefinition.METAL, "Tin", true, new Color(0xD4D4D4), new Color(0xDDDDDD), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.TIN), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ZINC), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(CLAY, getSpecies(FORESTRY, "Diligent"), 13); + tMutation.requireResource("blockTin"); + }), + LEAD(GT_BranchDefinition.METAL, "Lead", true, new Color(0x666699), new Color(0xA3A3CC), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.LEAD), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SULFUR), 0.05f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(WARM); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(COAL, COPPER, 13); + tMutation.requireResource("blockLead"); + }), + IRON(GT_BranchDefinition.METAL, "Iron", true, new Color(0xDA9147), new Color(0xDE9C59), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.IRON), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.TIN), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(TIN, COPPER, 13); + tMutation.requireResource("blockIron"); + }), + STEEL(GT_BranchDefinition.METAL, "Steel", true, new Color(0x808080), new Color(0x999999), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STEEL), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.IRON), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(WARM); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(IRON, COAL, 10); + tMutation.requireResource(GregTech_API.sBlockMetal6, 13); + }), + NICKEL(GT_BranchDefinition.METAL, "Nickel", true, new Color(0x8585AD), new Color(0x8585AD), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.NICKEL), 0.15f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.PLATINUM), 0.02f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(IRON, COPPER, 13); + tMutation.requireResource("blockNickel"); + }), + ZINC(GT_BranchDefinition.METAL, "Zinc", true, new Color(0xF0DEF0), new Color(0xF2E1F2), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.ZINC), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.GALLIUM), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(IRON, TIN, 13); + tMutation.requireResource("blockZinc"); + }), + SILVER(GT_BranchDefinition.METAL, "Silver", true, new Color(0xC2C2D6), new Color(0xCECEDE), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SILVER), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SULFUR), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(LEAD, TIN, 10); + tMutation.requireResource("blockSilver"); + }), + CRYOLITE(GT_BranchDefinition.METAL, "Cryolite", true, new Color(0xBFEFFF), new Color(0x73B9D0), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.CRYOLITE), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SILVER), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(WARM); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.FASTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(LEAD, SILVER, 9); + tMutation.requireResource("blockCryolite"); + }), + GOLD(GT_BranchDefinition.METAL, "Gold", true, new Color(0xEBC633), new Color(0xEDCC47), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.GOLD), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.NICKEL), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(WARM); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(LEAD, COPPER, 13); + tMutation.requireResource("blockGold"); + tMutation.restrictTemperature(HOT); + }), + ARSENIC(GT_BranchDefinition.METAL, "Arsenic", true, new Color(0x736C52), new Color(0x292412), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.ARSENIC), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(WARM); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(ZINC, SILVER, 10); + tMutation.requireResource("blockArsenic"); + }), + + // Rare Metals + ALUMINIUM(GT_BranchDefinition.RAREMETAL, "Aluminium", true, new Color(0xB8B8FF), new Color(0xD6D6FF), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.ALUMINIUM), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.BAUXITE), 0.05f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(NICKEL, ZINC, 9); + tMutation.requireResource("blockAluminium"); + }), + TITANIUM(GT_BranchDefinition.RAREMETAL, "Titanium", true, new Color(0xCC99FF), new Color(0xDBB8FF), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.TITANIUM), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ALMANDINE), 0.05f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDSTONE, ALUMINIUM, 5); + tMutation.requireResource(GregTech_API.sBlockMetal7, 9); + }), + GLOWSTONE(GT_BranchDefinition.RAREMETAL, "Glowstone", false, new Color(0xE5CA2A), new Color(0xFFBC5E), + beeSpecies -> { + beeSpecies.addSpecialty(Materials.Glowstone.getDust(1), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.NORMAL), + dis -> dis.registerMutation(REDSTONE, GOLD, 10)), + SUNNARIUM(GT_BranchDefinition.RAREMETAL, "Sunnarium", false, new Color(0xFFBC5E), new Color(0xE5CA2A), + beeSpecies -> { + beeSpecies.addProduct(Materials.Glowstone.getDust(1), 0.30f); + beeSpecies.addSpecialty(Materials.Sunnarium.getDust(1), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(GLOWSTONE, GOLD, 5); + tMutation.requireResource(GameRegistry.findBlock(GregTech.ID, "gt.blockcasings"), 15); + }), + CHROME(GT_BranchDefinition.RAREMETAL, "Chrome", true, new Color(0xEBA1EB), new Color(0xF2C3F2), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.CHROME), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.MAGNESIUM), 0.05f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(TITANIUM, RUBY, 5); + tMutation.requireResource(GregTech_API.sBlockMetal2, 3); + }), + MANGANESE(GT_BranchDefinition.RAREMETAL, "Manganese", true, new Color(0xD5D5D5), new Color(0xAAAAAA), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.MANGANESE), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.IRON), 0.05f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(TITANIUM, ALUMINIUM, 5); + tMutation.requireResource(GregTech_API.sBlockMetal4, 6); + }), + TUNGSTEN(GT_BranchDefinition.RAREMETAL, "Tungsten", false, new Color(0x5C5C8A), new Color(0x7D7DA1), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.TUNGSTEN), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.MOLYBDENUM), 0.05f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(FORESTRY, "Heroic"), MANGANESE, 5); + tMutation.requireResource(GregTech_API.sBlockMetal7, 11); + }), + PLATINUM(GT_BranchDefinition.RAREMETAL, "Platinum", false, new Color(0xE6E6E6), new Color(0xFFFFCC), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.PLATINUM), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.IRIDIUM), 0.02f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(DIAMOND, CHROME, 5); + tMutation.requireResource("blockNickel"); + }), + IRIDIUM(GT_BranchDefinition.RAREMETAL, "Iridium", false, new Color(0xDADADA), new Color(0xD1D1E0), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.IRIDIUM), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.OSMIUM), 0.05f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.PALLADIUM), 0.30f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(TUNGSTEN, PLATINUM, 5); + tMutation.requireResource(GregTech_API.sBlockMetal3, 12); + }), + OSMIUM(GT_BranchDefinition.RAREMETAL, "Osmium", false, new Color(0x2B2BDA), new Color(0x8B8B8B), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.OSMIUM), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.IRIDIUM), 0.05f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(COLD); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(TUNGSTEN, PLATINUM, 5); + tMutation.requireResource(GregTech_API.sBlockMetal5, 9); + }), + SALTY(GT_BranchDefinition.RAREMETAL, "Salt", true, new Color(0xF0C8C8), new Color(0xFAFAFA), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SALT), 0.35f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.LITHIUM), 0.05f); + beeSpecies.addSpecialty(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Borax, 1L), 0.1f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(WARM); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(CLAY, ALUMINIUM, 5); + tMutation.requireResource("blockSalt"); + }), + LITHIUM(GT_BranchDefinition.RAREMETAL, "Lithium", false, new Color(0xF0328C), new Color(0xE1DCFF), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.LITHIUM), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SALT), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(SALTY, ALUMINIUM, 5); + tMutation.requireResource("frameGtLithium"); + }), + ELECTROTINE(GT_BranchDefinition.RAREMETAL, "Electrotine", false, new Color(0x1E90FF), new Color(0x3CB4C8), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ELECTROTINE), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.REDSTONE), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWER), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDSTONE, GOLD, 5); + tMutation.requireResource("blockElectrotine"); + }), + // Sulfur bee, Humidity: normal, Temperature: Hot, Parents: PEAT & Ash, Mutationrate: 15%, Combrate: 80% + SULFUR(GT_BranchDefinition.RAREMETAL, "Sulfur", false, new Color(0x1E90FF), new Color(0x3CB4C8), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SULFUR), 0.70f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.FIRESTONE), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.NORMAL), + dis -> dis.registerMutation(ASH, PEAT, 15)), + + INDIUM(GT_BranchDefinition.RAREMETAL, "Indium", false, new Color(0xFFA9FF), new Color(0x8F5D99), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.INDIUM), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(LEAD, OSMIUM, 1); + tMutation.requireResource("blockIndium"); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(39, "Venus")); // Venus Dim + // Harder mutation that isn't dim locked + tMutation = dis.registerMutation(SILVER, OSMIUM, 1); + tMutation.requireResource("blockCinobiteA243"); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(60, "Bedrock")); // Thaumic Tinkerer + // Bedrock Dim + }), + + // IC2 + COOLANT(GT_BranchDefinition.IC2, "Coolant", false, new Color(0x144F5A), new Color(0x2494A2), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 4), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.COOLANT), 0.15f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(COLD); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOW); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.UP_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.SNOW); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectGlacial); + }, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(FORESTRY, "Icy"), getSpecies(FORESTRY, "Glacial"), 10); + tMutation.requireResource( + Block.getBlockFromItem( + GT_ModHandler.getModItem(IndustrialCraft2.ID, "fluidCoolant", 1) + .getItem()), + 0); + tMutation.restrictTemperature(ICY); + }), + ENERGY(GT_BranchDefinition.IC2, "Energy", false, new Color(0xC11F1F), new Color(0xEBB9B9), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(ExtraBees.ID, "honeyComb", 1, 12), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ENERGY), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(WARM); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectIgnition); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.DOWN_2); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.NETHER); + AlleleHelper.instance.set(template, FLOWERING, Flowering.AVERAGE); + }, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(FORESTRY, "Demonic"), getSpecies(EXTRABEES, "volcanic"), 10); + tMutation.requireResource( + Block.getBlockFromItem( + GT_ModHandler.getModItem(IndustrialCraft2.ID, "fluidHotCoolant", 1) + .getItem()), + 0); + tMutation.addMutationCondition(new GT_Bees.BiomeIDMutationCondition(128, "Boneyard Biome")); // Boneyard Biome + }), + LAPOTRON(GT_BranchDefinition.IC2, "Lapotron", false, new Color(0x6478FF), new Color(0x1414FF), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.LAPIS), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ENERGY), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.LAPOTRON), 0.10f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(ICY); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectIgnition); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.UP_1); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.SNOW); + AlleleHelper.instance.set(template, FLOWERING, Flowering.AVERAGE); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(LAPIS, ENERGY, 6); + tMutation.requireResource("blockLapis"); + tMutation.restrictTemperature(ICY); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(28, "Moon")); // moon dim + }), + PYROTHEUM(GT_BranchDefinition.IC2, "Pyrotheum", false, new Color(0xffebc4), new Color(0xe36400), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.ENERGY), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.PYROTHEUM), 0.15f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectIgnition); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.NETHER); + AlleleHelper.instance.set(template, FLOWERING, Flowering.AVERAGE); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDSTONE, ENERGY, 4); + tMutation.restrictTemperature(HELLISH); + }), + CRYOTHEUM(GT_BranchDefinition.IC2, "Cryotheum", false, new Color(0x2660ff), new Color(0x5af7ff), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.BLIZZ), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.CRYOTHEUM), 0.20f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(ICY); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectSnowing); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.SNOW); + AlleleHelper.instance.set(template, FLOWERING, Flowering.AVERAGE); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDSTONE, COOLANT, 4); + tMutation.restrictTemperature(ICY); + }), + Explosive(GT_BranchDefinition.IC2, "explosive", false, new Color(0x7E270F), new Color(0x747474), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getIC2Item("industrialTnt", 1L), 0.2f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectSnowing); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.SNOW); + AlleleHelper.instance.set(template, FLOWERING, Flowering.AVERAGE); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(FIRESTONE, COAL, 4); + tMutation.requireResource(GameRegistry.findBlock(IndustrialCraft2.ID, "blockITNT"), 0); + }), + // Alloy + REDALLOY(GT_BranchDefinition.GTALLOY, "RedAlloy", false, new Color(0xE60000), new Color(0xB80000), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 7), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.REDALLOY), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTER); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(COPPER, REDSTONE, 10); + tMutation.requireResource("blockRedAlloy"); + }), + REDSTONEALLOY(GT_BranchDefinition.GTALLOY, "RedStoneAlloy", false, new Color(0xA50808), new Color(0xE80000), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 7), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.REDSTONEALLOY), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTER); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDSTONE, REDALLOY, 8); + tMutation.requireResource("blockRedstoneAlloy"); + }), + CONDUCTIVEIRON(GT_BranchDefinition.GTALLOY, "ConductiveIron", false, new Color(0xCEADA3), new Color(0x817671), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 7), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.CONDUCTIVEIRON), 0.15f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(WARM); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDSTONEALLOY, IRON, 8); + tMutation.requireResource("blockConductiveIron"); + }), + ENERGETICALLOY(GT_BranchDefinition.GTALLOY, "EnergeticAlloy", false, new Color(0xFF9933), new Color(0xFFAD5C), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 7), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ENERGETICALLOY), 0.15f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDSTONEALLOY, getSpecies(FORESTRY, "Demonic"), 9); + tMutation.requireResource("blockEnergeticAlloy"); + }), + VIBRANTALLOY(GT_BranchDefinition.GTALLOY, "VibrantAlloy", false, new Color(0x86A12D), new Color(0xC4F2AE), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 7), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.VIBRANTALLOY), 0.15f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(template, FLOWERING, Flowering.FAST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(ENERGETICALLOY, getSpecies(FORESTRY, "Phantasmal"), 6); + tMutation.requireResource("blockVibrantAlloy"); + tMutation.restrictTemperature(HOT, HELLISH); + }), + ELECTRICALSTEEL(GT_BranchDefinition.GTALLOY, "ElectricalSteel", false, new Color(0x787878), new Color(0xD8D8D8), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 7), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ELECTRICALSTEEL), 0.15f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTER); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(STEEL, getSpecies(FORESTRY, "Demonic"), 9); + tMutation.requireResource("blockElectricalSteel"); + }), + DARKSTEEL(GT_BranchDefinition.GTALLOY, "DarkSteel", false, new Color(0x252525), new Color(0x443B44), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 7), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.DARKSTEEL), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(ELECTRICALSTEEL, getSpecies(FORESTRY, "Demonic"), 7); + tMutation.requireResource("blockDarkSteel"); + }), + PULSATINGIRON(GT_BranchDefinition.GTALLOY, "PulsatingIron", false, new Color(0x6DD284), new Color(0x006600), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 7), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.PULSATINGIRON), 0.15f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(REDALLOY, getSpecies(FORESTRY, "Ended"), 9); + tMutation.requireResource("blockPulsatingIron"); + }), + STAINLESSSTEEL(GT_BranchDefinition.GTALLOY, "StainlessSteel", false, new Color(0xC8C8DC), new Color(0x778899), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.STEEL), 0.10f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.STAINLESSSTEEL), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.CHROME), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(HOT); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectIgnition); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(CHROME, STEEL, 9); + tMutation.requireResource("blockStainlessSteel"); + }), + ENDERIUM(GT_BranchDefinition.GTALLOY, "Enderium", false, new Color(0x599087), new Color(0x2E8B57), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ENDERIUM), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.CHROME), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(HOT); + }, template -> { + AlleleHelper.instance.set(template, SPEED, GT_Bees.speedBlinding); + AlleleHelper.instance.set(template, EFFECT, getEffect(EXTRABEES, "teleport")); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(PLATINUM, getSpecies(FORESTRY, "Phantasmal"), 3); + tMutation.requireResource("blockEnderium"); + }), + BEDROCKIUM(GT_BranchDefinition.GTALLOY, "Bedrockium", false, new Color(0x0C0C0C), new Color(0xC6C6C6), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.BEDROCKIUM), 0.55f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(HOT); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOW); + AlleleHelper.instance.set(template, EFFECT, getEffect(EXTRABEES, "gravity")); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(Explosive, DIAMOND, 2); + if (ExtraUtilities.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(ExtraUtilities.ID, "block_bedrockium"), 0); + }), + + // thaumic + THAUMIUMDUST(GT_BranchDefinition.THAUMIC, "ThaumiumDust", true, new Color(0x7A007A), new Color(0x5C005C), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 3), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.THAUMIUMDUST), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_2); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectExploration); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.UP_1); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.JUNGLE); + }, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(MAGICBEES, "TCFire"), getSpecies(FORESTRY, "Edenic"), 10); + tMutation.requireResource("blockThaumium"); + tMutation.addMutationCondition(new GT_Bees.BiomeIDMutationCondition(192, "Magical Forest")); // magical + // forest + }), + THAUMIUMSHARD(GT_BranchDefinition.THAUMIC, "ThaumiumShard", true, new Color(0x9966FF), new Color(0xAD85FF), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.THAUMIUMDUST), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.THAUMIUMSHARD), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.UP_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.SNOW); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectGlacial); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(THAUMIUMDUST, getSpecies(MAGICBEES, "TCWater"), 10); + tMutation.addMutationCondition(new GT_Bees.BiomeIDMutationCondition(192, "Magical Forest")); // magical + // forest + }), + AMBER(GT_BranchDefinition.THAUMIC, "Amber", true, new Color(0xEE7700), new Color(0x774B15), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 3), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.AMBER), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.NONE); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(THAUMIUMDUST, STICKYRESIN, 10); + tMutation.requireResource("blockAmber"); + }), + QUICKSILVER(GT_BranchDefinition.THAUMIC, "Quicksilver", true, new Color(0x7A007A), new Color(0x5C005C), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 3), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.QUICKSILVER), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.UP_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.UP_1); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.JUNGLE); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectMiasmic); + }, dis -> dis.registerMutation(THAUMIUMDUST, SILVER, 10)), + SALISMUNDUS(GT_BranchDefinition.THAUMIC, "SalisMundus", true, new Color(0xF7ADDE), new Color(0x592582), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 3), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SALISMUNDUS), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.UP_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.UP_1); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.JUNGLE); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectMiasmic); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(THAUMIUMDUST, THAUMIUMSHARD, 8); + tMutation.addMutationCondition(new GT_Bees.BiomeIDMutationCondition(192, "Magical Forest")); // magical + // forest + }), + TAINTED(GT_BranchDefinition.THAUMIC, "Tainted", true, new Color(0x904BB8), new Color(0xE800FF), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 3), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.TAINTED), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, CAVE_DWELLING, true); + AlleleHelper.instance.set(template, TOLERANT_FLYER, true); + AlleleHelper.instance.set(template, FERTILITY, Fertility.LOW); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, getFlowers(EXTRABEES, "rock")); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(THAUMIUMDUST, THAUMIUMSHARD, 7); + tMutation.addMutationCondition(new GT_Bees.BiomeIDMutationCondition(193, "Tainted Land")); // Tainted Land + }), + MITHRIL(GT_BranchDefinition.THAUMIC, "Mithril", true, new Color(0xF0E68C), new Color(0xFFFFD2), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.PLATINUM), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.MITHRIL), 0.125f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, CAVE_DWELLING, true); + AlleleHelper.instance.set(template, TOLERANT_FLYER, true); + AlleleHelper.instance.set(template, FERTILITY, Fertility.LOW); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, getFlowers(EXTRABEES, "rock")); + }, new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(IO, PLATINUM, 7); + tMutation.requireResource(GregTech_API.sBlockMetal4, 10); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(36, "IO")); // IO Dim + } + }), + ASTRALSILVER(GT_BranchDefinition.THAUMIC, "AstralSilver", true, new Color(0xAFEEEE), new Color(0xE6E6FF), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SILVER), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ASTRALSILVER), 0.125f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, CAVE_DWELLING, true); + AlleleHelper.instance.set(template, TOLERANT_FLYER, true); + AlleleHelper.instance.set(template, FERTILITY, Fertility.LOW); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, getFlowers(EXTRABEES, "rock")); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(SILVER, IRON, 3); + tMutation.requireResource(GregTech_API.sBlockMetal1, 6); + }), + THAUMINITE(GT_BranchDefinition.THAUMIC, "Thauminite", true, new Color(0x2E2D79), new Color(0x7581E0), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(MagicBees.ID, "comb", 1, 19), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.THAUMINITE), 0.125f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, FLOWERING, Flowering.SLOW); + AlleleHelper.instance.set(template, NOCTURNAL, true); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(MAGICBEES, "TCOrder"), THAUMIUMDUST, 8); + if (ThaumicBases.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(ThaumicBases.ID, "thauminiteBlock"), 0); + }), + SHADOWMETAL(GT_BranchDefinition.THAUMIC, "ShadowMetal", true, new Color(0x100322), new Color(0x100342), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(MagicBees.ID, "comb", 1, 20), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SHADOWMETAL), 0.125f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, FLOWERING, Flowering.SLOW); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(template, NOCTURNAL, true); + }, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(MAGICBEES, "TCChaos"), getSpecies(MAGICBEES, "TCVoid"), 6); + if (TaintedMagic.isModLoaded()) { + tMutation.requireResource("blockShadow"); + } + }), + DIVIDED(GT_BranchDefinition.THAUMIC, "Unstable", true, new Color(0xF0F0F0), new Color(0xDCDCDC), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(ExtraBees.ID, "honeyComb", 1, 61), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.DIVIDED), 0.125f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, FLOWERING, Flowering.SLOW); + AlleleHelper.instance.set(template, NOCTURNAL, true); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(DIAMOND, IRON, 3); + if (ExtraUtilities.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(ExtraUtilities.ID, "decorativeBlock1"), 5); + }), + CAELESTIS(GT_BranchDefinition.THAUMIC, "Caelestis", true, new Color(0xF0F0F0), new Color(0xDCDCDC), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.CAELESTISRED), 0.60f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.CAELESTISBLUE), 0.60f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.CAELESTISGREEN), 0.60f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, FLOWERING, Flowering.SLOW); + AlleleHelper.instance.set(template, NOCTURNAL, true); + }, dis -> dis.registerMutation(DIAMOND, DIVIDED, 10)), + SPARKELING(GT_BranchDefinition.THAUMIC, "NetherStar", true, new Color(0x7A007A), new Color(0xFFFFFF), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(MagicBees.ID, "miscResources", 1, 3), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SPARKELING), 0.125f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.DOWN_2); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, CAVE_DWELLING, true); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.NETHER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectAggressive); + AlleleHelper.instance.set(template, FLOWERING, Flowering.AVERAGE); + }, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(MAGICBEES, "Withering"), getSpecies(MAGICBEES, "Draconic"), 1); + tMutation.requireResource(GregTech_API.sBlockGem3, 3); + tMutation.addMutationCondition(new GT_Bees.BiomeIDMutationCondition(9, "END Biome")); // sky end biome + }), + + ESSENTIA(GT_BranchDefinition.THAUMIC, "Essentia", true, new Color(0x7A007A), new Color(0xFFFFFF), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(MagicBees.ID, "miscResources", 1, 3), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + }, template -> { + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.DOWN_2); + AlleleHelper.instance.set(template, CAVE_DWELLING, true); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.VANILLA); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectReanimation); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(SHADOWMETAL, SPARKELING, 5); + if (Thaumcraft.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(Thaumcraft.ID, "blockCrystal"), 6); + }), + + DRAKE(GT_BranchDefinition.THAUMIC, "Drake", true, new Color(0x100322), new Color(0x7A007A), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.DRACONIC), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.AWAKENEDDRACONIUM), 0.20f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setJubilanceProvider(GT_JubilanceMegaApiary.instance); + }, template -> { + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.DOWN_3); + AlleleHelper.instance.set(template, CAVE_DWELLING, false); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.END); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectDrunkard); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(ESSENTIA, THAUMINITE, 5); + tMutation.requireResource(GameRegistry.findBlock(GregTech.ID, "gt.blockcasings5"), 8); + }), + + // radioctive + URANIUM(GT_BranchDefinition.RADIOACTIVE, "Uranium", true, new Color(0x19AF19), new Color(0x169E16), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.URANIUM), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + beeSpecies.setNocturnal(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(FORESTRY, "Avenging"), PLATINUM, 3); + tMutation.requireResource(GregTech_API.sBlockMetal7, 14); + }), + PLUTONIUM(GT_BranchDefinition.RADIOACTIVE, "Plutonium", true, new Color(0x570000), new Color(0x240000), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.LEAD), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.PLUTONIUM), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(URANIUM, EMERALD, 3); + tMutation.requireResource(GregTech_API.sBlockMetal5, 13); + }), + NAQUADAH(GT_BranchDefinition.RADIOACTIVE, "Naquadah", false, new Color(0x003300), new Color(0x002400), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.NAQUADAH), 0.15f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(PLUTONIUM, IRIDIUM, 3); + tMutation.requireResource(GregTech_API.sBlockMetal4, 12); + }), + NAQUADRIA(GT_BranchDefinition.RADIOACTIVE, "Naquadria", false, new Color(0x000000), new Color(0x002400), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SLAG), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.NAQUADAH), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.NAQUADRIA), 0.15f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(PLUTONIUM, IRIDIUM, 8, 10); + tMutation.requireResource(GregTech_API.sBlockMetal4, 15); + }), + DOB(GT_BranchDefinition.RADIOACTIVE, "DOB", false, new Color(0x003300), new Color(0x002400), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.DOB), 0.75f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(NAQUADAH, THAUMIUMSHARD, 2); + if (AdvancedSolarPanel.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(AdvancedSolarPanel.ID, "BlockAdvSolarPanel"), 2); + tMutation.addMutationCondition(new GT_Bees.BiomeIDMutationCondition(9, "END Biome")); // sky end biome + }), + THORIUM(GT_BranchDefinition.RADIOACTIVE, "Thorium", false, new Color(0x005000), new Color(0x001E00), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.THORIUM), 0.75f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + beeSpecies.setNocturnal(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + }, dis -> { + IMutationCustom tMutation = dis.registerMutation(COAL, URANIUM, 3) + .setIsSecret(); + tMutation.requireResource(GregTech_API.sBlockMetal7, 5); + }), + LUTETIUM(GT_BranchDefinition.RADIOACTIVE, "Lutetium", false, new Color(0xE6FFE6), new Color(0xFFFFFF), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.LUTETIUM), 0.15f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + }, dis -> { + IMutationCustom tMutation = dis.registerMutation(THORIUM, getSpecies(EXTRABEES, "rotten"), 1) + .setIsSecret(); + tMutation.requireResource(GregTech_API.sBlockMetal4, 3); + }), + AMERICIUM(GT_BranchDefinition.RADIOACTIVE, "Americium", false, new Color(0xE6E6FF), new Color(0xC8C8C8), + beeSpecies -> { + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.AMERICIUM), 0.075f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + // Makes it only work in the Mega Apiary NOTE: COMB MUST BE SPECIALITY COMB + beeSpecies.setJubilanceProvider(GT_JubilanceMegaApiary.instance); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + }, dis -> { + IMutationCustom tMutation = dis.registerMutation(LUTETIUM, CHROME, 5, 4) + .setIsSecret(); + tMutation.requireResource(GregTech_API.sBlockMetal1, 2); + }), + NEUTRONIUM(GT_BranchDefinition.RADIOACTIVE, "Neutronium", false, new Color(0xFFF0F0), new Color(0xFAFAFA), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.NEUTRONIUM), 0.02f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + AlleleHelper.instance.set(template, NOCTURNAL, true); + }, dis -> { + IMutationCustom tMutation = dis.registerMutation(NAQUADRIA, AMERICIUM, 2, 2) + .setIsSecret(); + tMutation.requireResource(GregTech_API.sBlockMetal5, 2); + }), + // Twilight + NAGA(GT_BranchDefinition.TWILIGHT, "Naga", true, new Color(0x0D5A0D), new Color(0x28874B), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SALISMUNDUS), 0.02f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.NAGA), 0.10f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(MAGICBEES, "Eldritch"), getSpecies(FORESTRY, "Imperial"), 8); + tMutation.restrictHumidity(DAMP); + }), + LICH(GT_BranchDefinition.TWILIGHT, "Lich", true, new Color(0xC5C5C5), new Color(0x5C605E), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SALISMUNDUS), 0.04f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.LICH), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(MAGICBEES, "Supernatural"), NAGA, 7); + tMutation.restrictHumidity(ARID); + }), + HYDRA(GT_BranchDefinition.TWILIGHT, "Hydra", true, new Color(0x872836), new Color(0xB8132C), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SALISMUNDUS), 0.06f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.HYDRA), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(LICH, getSpecies(MAGICBEES, "TCFire"), 6); + tMutation.addMutationCondition(new GT_Bees.BiomeIDMutationCondition(138, "Undergarden")); // undergarden biome + }), + URGHAST(GT_BranchDefinition.TWILIGHT, "UrGhast", true, new Color(0xA7041C), new Color(0x7C0618), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SALISMUNDUS), 0.08f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.URGHAST), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + beeSpecies.setNocturnal(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FAST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(HYDRA, THAUMIUMDUST, 5); + if (Thaumcraft.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(Thaumcraft.ID, "blockCosmeticSolid"), 4); + tMutation.restrictTemperature(HELLISH); + }), + SNOWQUEEN(GT_BranchDefinition.TWILIGHT, "SnowQueen", true, new Color(0xD02001), new Color(0x9C0018), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SALISMUNDUS), 0.15f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SNOWQUEEN), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(ICY); + beeSpecies.setHasEffect(); + beeSpecies.setNocturnal(); + }, template -> {}, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(URGHAST, SALISMUNDUS, 4); + if (ThaumicBases.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(ThaumicBases.ID, "blockSalisMundus"), 0); + tMutation.restrictTemperature(ICY); + }), + // HEE + ENDDUST(GT_BranchDefinition.HEE, "End Dust", true, new Color(0xCC00FA), new Color(0x003A7D), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ENDDUST), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.NORMAL), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(FORESTRY, "Ended"), STAINLESSSTEEL, 8); + + tMutation.restrictHumidity(ARID); + if (HardcoreEnderExpansion.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(HardcoreEnderExpansion.ID, "end_powder_ore"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(1, "End")); // End Dim + }), + ENDIUM(GT_BranchDefinition.HEE, "Endium", true, new Color(0xa0ffff), new Color(0x2F5A6C), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ENDIUM), 0.10f); + beeSpecies.addSpecialty(GT_Bees.propolis.getStackForType(PropolisType.Endium), 0.15f); + beeSpecies.addSpecialty(GT_Bees.drop.getStackForType(DropType.ENDERGOO), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.NORMAL), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(FORESTRY, "Ended"), THAUMIUMDUST, 8); + tMutation.restrictHumidity(ARID); + if (HardcoreEnderExpansion.isModLoaded()) tMutation.requireResource("blockHeeEndium"); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(1, "End")); // End Dim + }), + STARDUST(GT_BranchDefinition.HEE, "Star Dust", true, new Color(0xffff00), new Color(0xDCBE13), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.STARDUST), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, GT_Bees.speedBlinding); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(template, FLOWERING, Flowering.SLOWER); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(FORESTRY, "Ended"), ZINC, 8); + tMutation.restrictHumidity(ARID); + if (HardcoreEnderExpansion.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(HardcoreEnderExpansion.ID, "stardust_ore"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(1, "End")); // End Dim + }), + ECTOPLASMA(GT_BranchDefinition.HEE, "Ectoplasma", true, new Color(0xDCB0E5), new Color(0x381C40), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ECTOPLASMA), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(FORESTRY, "Ended"), ENDDUST, 5); + tMutation.restrictHumidity(ARID); + if (HardcoreEnderExpansion.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(HardcoreEnderExpansion.ID, "spooky_log"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(1, "End")); // End Dim + }), + ARCANESHARDS(GT_BranchDefinition.HEE, "Arcane Shards", true, new Color(0x9010AD), new Color(0x333D82), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ARCANESHARD), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONG); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(THAUMIUMSHARD, ENDDUST, 5); + tMutation.restrictHumidity(ARID); + if (HardcoreEnderExpansion.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(HardcoreEnderExpansion.ID, "laboratory_floor"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(1, "End")); // End Dim + }), + DRAGONESSENCE(GT_BranchDefinition.HEE, "Dragonessence", true, new Color(0xFFA12B), new Color(0x911ECE), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.DRAGONESSENCE), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectBeatific); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_3); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_3); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(ECTOPLASMA, ARCANESHARDS, 4); + tMutation.restrictHumidity(ARID); + if (HardcoreEnderExpansion.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(HardcoreEnderExpansion.ID, "essence_altar"), 1); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(1, "End")); // End Dim + }), + FIREESSENCE(GT_BranchDefinition.HEE, "Fireessence", true, new Color(0xD41238), new Color(0xFFA157), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.FIREESSENSE), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.ELONGATED); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectIgnition); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.UP_3); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.DOWN_3); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(FIRESTONE, ARCANESHARDS, 4); + tMutation.restrictHumidity(ARID); + if (HardcoreEnderExpansion.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(HardcoreEnderExpansion.ID, "essence_altar"), 2); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(1, "End")); // End Dim + }), + ENDERMANHEAD(GT_BranchDefinition.HEE, "Enderman", true, new Color(0x161616), new Color(0x6200e7), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ENDERMAN), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, EFFECT, getEffect(EXTRABEES, "teleport")); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.UP_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.UP_1); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(ENDERIUM, STARDUST, 4); + tMutation.restrictHumidity(ARID); + if (HardcoreEnderExpansion.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(HardcoreEnderExpansion.ID, "ender_goo"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(1, "End")); // End Dim + }), + SILVERFISH(GT_BranchDefinition.HEE, "Silverfisch", true, new Color(0xEE053D), new Color(0x000000), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.SILVERFISH), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, EFFECT, getEffect(MAGICBEES, "SlowSpeed")); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.DOWN_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.DOWN_1); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(ECTOPLASMA, STARDUST, 5); + tMutation.restrictHumidity(ARID); + if (HardcoreEnderExpansion.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(HardcoreEnderExpansion.ID, "ender_goo"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(1, "End")); // End Dim + }), + RUNE(GT_BranchDefinition.HEE, "Rune", true, new Color(0xE31010), new Color(0x0104D9), beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(Forestry.ID, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.RUNEI), 0.025f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.RUNEII), 0.0125f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, LIFESPAN, GT_Bees.superLife); + AlleleHelper.instance.set(template, EFFECT, getEffect(MAGICBEES, "SlowSpeed")); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.NONE); + }, dis -> { + IMutationCustom tMutation = dis.registerMutation(DRAGONESSENCE, STARDUST, 2) + .setIsSecret(); + tMutation.restrictHumidity(ARID); + if (EnderStorage.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(EnderStorage.ID, "enderChest"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(1, "End")); // End Dim + }), + // Walrus Bee, 100% Combchance, Parents: Catty and Watery + WALRUS(GT_BranchDefinition.PLANET, "Walrus", true, new Color(0xD6D580), new Color(0xB5CFC9), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.WALRUS), 1.00f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, NOCTURNAL, true); + }, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(MAGICBEES, "Watery"), getSpecies(MAGICBEES, "Catty"), 45, 2); + if (ExtraCells2.isModLoaded()) { + tMutation.requireResource(GameRegistry.findBlock(ExtraCells2.ID, "walrus"), 0); + } + }), + // Space Bees + SPACE(GT_BranchDefinition.SPACE, "Space", true, new Color(0x003366), new Color(0xC0C0C0), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.02f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + }, template -> {}, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(FORESTRY, "Industrious"), getSpecies(FORESTRY, "Heroic"), 10); + tMutation.restrictTemperature(ICY); + }), + METEORICIRON(GT_BranchDefinition.SPACE, "MeteoricIron", true, new Color(0x321928), new Color(0x643250), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.04f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.METEORICIRON), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + beeSpecies.setNocturnal(); + }, template -> {}, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(SPACE, IRON, 9); + tMutation.requireResource(GregTech_API.sBlockMetal4, 7); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(28, "Moon")); // Moon Dim + }), + DESH(GT_BranchDefinition.SPACE, "Desh", false, new Color(0x323232), new Color(0x282828), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.06f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.DESH), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + beeSpecies.setNocturnal(); + }, template -> AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectIgnition), new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(MARS, TITANIUM, 9); + tMutation.requireResource(GregTech_API.sBlockMetal2, 12); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(29, "Mars")); // Mars Dim + } + }), + LEDOX(GT_BranchDefinition.SPACE, "Ledox", false, new Color(0x0000CD), new Color(0x0074FF), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.10f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.LEDOX), 0.10f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, EFFECT, getEffect(EXTRABEES, "freezing")), new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(CALLISTO, LEAD, 7); + if (NewHorizonsCoreMod.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(NewHorizonsCoreMod.ID, "tile.Ledox"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(35, "Europa")); // Europa Dim + } + }), + CALLISTOICE(GT_BranchDefinition.SPACE, "CallistoIce", false, new Color(0x0074FF), new Color(0x1EB1FF), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.10f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.CALLISTOICE), 0.10f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, EFFECT, getEffect(EXTRABEES, "freezing")), new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(CALLISTO, getSpecies(EXTRABEES, "freezing"), 7); + if (NewHorizonsCoreMod.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(NewHorizonsCoreMod.ID, "tile.CallistoColdIce"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(45, "Callisto")); // Callisto + // Dim + } + }), + MYTRYL(GT_BranchDefinition.SPACE, "Mytryl", false, new Color(0xDAA520), new Color(0xF26404), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.16f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.MYTRYL), 0.10f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> {}, new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(IO, MITHRIL, 6); + if (NewHorizonsCoreMod.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(NewHorizonsCoreMod.ID, "tile.Mytryl"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(36, "IO")); // IO Dim + } + }), + QUANTIUM(GT_BranchDefinition.SPACE, "Quantium", false, new Color(0x00FF00), new Color(0x00D10B), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.16f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.QUANTIUM), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> {}, new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(VENUS, OSMIUM, 6); + if (NewHorizonsCoreMod.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(NewHorizonsCoreMod.ID, "tile.Quantinum"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(39, "Venus")); // Venus Dim + } + }), + ORIHARUKON(GT_BranchDefinition.SPACE, "Oriharukon", false, new Color(0x228B22), new Color(0x677D68), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.26f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.ORIHARUKON), 0.10f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(COLD); + beeSpecies.setHasEffect(); + }, template -> {}, new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(LEAD, OBERON, 5); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "metalsblock"), 6); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(46, "Oberon")); // Oberon Dim + } + }), + INFUSEDGOLD(GT_BranchDefinition.SPACE, "Infused Gold", false, new Color(0x80641E), new Color(0xFFC83C), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.GOLD), 0.20f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.INFUSEDGOLD), 0.30f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> {}, new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(GOLD, HAUMEA, 5); + tMutation.requireResource(GregTech_API.sBlockMetal3, 10); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(83, "Haumea")); // Haumea Dim + } + }), + MYSTERIOUSCRYSTAL(GT_BranchDefinition.SPACE, "MysteriousCrystal", false, new Color(0x3CB371), new Color(0x16856C), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.42f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.MYSTERIOUSCRYSTAL), 0.30f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> {}, new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(ENCELADUS, EMERALD, 3); + if (NewHorizonsCoreMod.isModLoaded()) tMutation + .requireResource(GameRegistry.findBlock(NewHorizonsCoreMod.ID, "tile.MysteriousCrystal"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(41, "Enceladus")); // Enceladus + // Dim + } + }), + BLACKPLUTONIUM(GT_BranchDefinition.SPACE, "BlackPlutonium", false, new Color(0x000000), new Color(0x323232), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.68f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.BLACKPLUTONIUM), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> {}, new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(PLUTO, PLUTONIUM, 2); + if (NewHorizonsCoreMod.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(NewHorizonsCoreMod.ID, "tile.BlackPlutonium"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(49, "Pluto")); // Pluto Dim + } + }), + TRINIUM(GT_BranchDefinition.SPACE, "Trinium", false, new Color(0xB0E0E6), new Color(0xC8C8D2), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.TRINIUM), 0.75f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.QUANTIUM), 0.10f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, SPEED, GT_Bees.speedBlinding), new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(ENCELADUS, IRIDIUM, 4); + tMutation.requireResource(GregTech_API.sBlockMetal4, 9); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(41, "Enceladus")); // Enceladus Dim + } + }), + // Planet Line + MOON(GT_BranchDefinition.PLANET, "Moon", false, new Color(0x373735), new Color(0x7E7E78), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.MOON), 0.35f); + if (NewHorizonsCoreMod.isModLoaded()) + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MoonStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(SPACE, CLAY, 25); + if (GalacticraftCore.isModLoaded()) { + tMutation.requireResource(GameRegistry.findBlock(GalacticraftCore.ID, "tile.moonBlock"), 4); + } + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(28, "Moon")); // Moon Dim + }), + MARS(GT_BranchDefinition.PLANET, "Mars", false, new Color(0x220D05), new Color(0x3A1505), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.MARS), 0.35f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MarsStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(MOON, IRON, 20); + if (GalacticraftMars.isModLoaded()) { + tMutation.requireResource(GameRegistry.findBlock(GalacticraftMars.ID, "tile.mars"), 5); + } + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(29, "Mars")); // Mars Dim + }), + PHOBOS(GT_BranchDefinition.PLANET, "Phobos", true, new Color(0x220D05), new Color(0x7a5706), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.MARS), 0.25f); + if (NewHorizonsCoreMod.isModLoaded()) beeSpecies + .addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PhobosStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + beeSpecies.setNocturnal(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(MARS, MOON, 20); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "phobosblocks"), 2); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(38, "Phobos")); // Phobos Dim + }), + DEIMOS(GT_BranchDefinition.PLANET, "Deimos", true, new Color(0x220D05), new Color(0x7a3206), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.MARS), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.DeimosStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(HOT); + beeSpecies.setNocturnal(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(MARS, SPACE, 20); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "deimosblocks"), 1); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(40, "Deimos")); // Deimos Dim + }), + CERES(GT_BranchDefinition.PLANET, "Ceres", true, new Color(0x3ca5b7), new Color(0x1e7267), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.JUPITER), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CeresStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + beeSpecies.setNocturnal(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(MARS, METEORICIRON, 20); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "ceresblocks"), 1); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(42, "Ceres")); // Ceres Dim + }), + JUPITER(GT_BranchDefinition.PLANET, "Jupiter", false, new Color(0x734B2E), new Color(0xD0CBC4), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.JUPITER), 0.35f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CallistoStoneDust", 1, 0), 0.05f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CallistoIceDust", 1, 0), 0.05f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.IoStoneDust", 1, 0), 0.05f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EuropaStoneDust", 1, 0), 0.05f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EuropaIceDust", 1, 0), 0.05f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.GanymedeStoneDust", 1, 0), 0.05f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(MARS, DESH, 15); + if (NewHorizonsCoreMod.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(NewHorizonsCoreMod.ID, "tile.Ledox"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(30, "Asteroids")); // Asteroid Dim + }), + IO(GT_BranchDefinition.PLANET, "IO", true, new Color(0x734B2E), new Color(0xe5701b), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.JUPITER), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.IoStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(JUPITER, getSpecies(EXTRABEES, "volcanic"), 15); + tMutation.restrictTemperature(HELLISH); + if (GalaxySpace.isModLoaded()) tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "ioblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(36, "IO")); // IO Dim + }), + EUROPA(GT_BranchDefinition.PLANET, "Europa", true, new Color(0x5982ea), new Color(0x0b36a3), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.JUPITER), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EuropaStoneDust", 1, 0), 0.10f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EuropaIceDust", 1, 0), 0.10f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(JUPITER, IRON, 15); + tMutation.restrictTemperature(ICY); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "europagrunt"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(35, "Europa")); // Europa Dim + }), + GANYMEDE(GT_BranchDefinition.PLANET, "Ganymede", true, new Color(0x3d1b10), new Color(0x190c07), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.JUPITER), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.GanymedeStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(COLD); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(JUPITER, TITANIUM, 15); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "ganymedeblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(43, "Ganymede")); // Ganymede Dim + }), + CALLISTO(GT_BranchDefinition.PLANET, "Callisto", true, new Color(0x0f333d), new Color(0x0d84a5), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.JUPITER), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CallistoStoneDust", 1, 0), 0.10f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CallistoIceDust", 1, 0), 0.10f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(JUPITER, getSpecies(EXTRABEES, "artic"), 15); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "callistoblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(45, "Callisto")); // Callisto Dim + }), + SATURN(GT_BranchDefinition.PLANET, "Saturn", false, new Color(0xD2A472), new Color(0xF8C37B), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SATURN), 0.35f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TitanStoneDust", 1, 0), 0.05f); + beeSpecies + .addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EnceladusStoneDust", 1, 0), 0.05f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EnceladusIceDust", 1, 0), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(JUPITER, LEDOX, 25, 2); + if (NewHorizonsCoreMod.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(NewHorizonsCoreMod.ID, "tile.Quantinum"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(30, "Asteriods")); // Asteriods Dim + }), + ENCELADUS(GT_BranchDefinition.PLANET, "Enceladus", true, new Color(0xD2A472), new Color(0x193fa0), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SATURN), 0.25f); + beeSpecies + .addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EnceladusStoneDust", 1, 0), 0.10f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EnceladusIceDust", 1, 0), 0.10f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(SATURN, CHROME, 25, 2); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "enceladusblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(41, "Enceladus")); // Enceladus Dim + }), + TITAN(GT_BranchDefinition.PLANET, "Titan", true, new Color(0xa0641b), new Color(0x7c1024), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SATURN), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TitanStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(SATURN, NICKEL, 25, 2); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "titanblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(44, "Titan")); // Titan Dim + }), + URANUS(GT_BranchDefinition.PLANET, "Uranus", false, new Color(0x75C0C9), new Color(0x84D8EC), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.URANUS), 0.35f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MirandaStoneDust", 1, 0), 0.05f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.OberonStoneDust", 1, 0), 0.05f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(SATURN, TRINIUM, 10); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "metalsblock"), 6); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(30, "Asteroids")); // Asteroids Dim + }), + MIRANDA(GT_BranchDefinition.PLANET, "Miranda", true, new Color(0x75C0C9), new Color(0x0d211c), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.URANUS), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MirandaStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(URANUS, TIN, 10); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "mirandablocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(86, "Miranda")); // Miranda Dim + }), + OBERON(GT_BranchDefinition.PLANET, "Oberon", true, new Color(0x4A4033), new Color(0xB5A288), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.URANUS), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.OberonStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(ICY); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(URANUS, IRIDIUM, 10); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "oberonblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(46, "Oberon")); // Oberon Dim + }), + NEPTUNE(GT_BranchDefinition.PLANET, "Neptune", false, new Color(0x334CFF), new Color(0x576DFF), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.NEPTUN), 0.35f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.ProteusStoneDust", 1, 0), 0.05f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TritonStoneDust", 1, 0), 0.05f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(COLD); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(URANUS, ORIHARUKON, 7); + if (NewHorizonsCoreMod.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(NewHorizonsCoreMod.ID, "tile.MysteriousCrystal"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(30, "Asteroids")); // Asteroids Dim + }), + PROTEUS(GT_BranchDefinition.PLANET, "Proteus", true, new Color(0x334CFF), new Color(0x592610), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.NEPTUN), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.ProteusStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + beeSpecies.setNocturnal(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(NEPTUNE, COPPER, 7); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "proteusblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(47, "Proteus")); // Proteus Dim + }), + TRITON(GT_BranchDefinition.PLANET, "Triton", true, new Color(0x334CFF), new Color(0x421118), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.NEPTUN), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TritonStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(NEPTUNE, GOLD, 7); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "tritonblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(48, "Triton")); // Triton Dim + }), + PLUTO(GT_BranchDefinition.PLANET, "Pluto", false, new Color(0x34271E), new Color(0x69503D), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.PLUTO), 0.35f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PlutoStoneDust", 1, 0), 0.10f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PlutoIceDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(NEPTUNE, PLUTONIUM, 5); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "plutoblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(49, "Pluto")); // Pluto Dim + }), + HAUMEA(GT_BranchDefinition.PLANET, "Haumea", false, new Color(0x1C1413), new Color(0x392B28), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.HAUMEA), 0.35f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.HaumeaStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(ICY); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(PLUTO, NAQUADAH, 7, 2); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "haumeablocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(83, "Haumea")); // Haumea Dim + }), + MAKEMAKE(GT_BranchDefinition.PLANET, "MakeMake", false, new Color(0x301811), new Color(0x120A07), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.MAKEMAKE), 0.35f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MakeMakeStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(PLUTO, NAQUADRIA, 7, 2); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "makemakegrunt"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(25, "MakeMake")); // MakeMake Dim + }), + CENTAURI(GT_BranchDefinition.PLANET, "Centauri", false, new Color(0x2F2A14), new Color(0xB06B32), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.CENTAURI), 0.35f); + beeSpecies + .addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CentauriASurfaceDust", 1, 0), 0.05f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(MAKEMAKE, DESH, 3); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "acentauribbgrunt"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(33, "Kuiper Belt")); // Kuiper Belt Dim + }), + ACENTAURI(GT_BranchDefinition.PLANET, "aCentauri", false, new Color(0x2F2A14), new Color(0xa01e14), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.CENTAURI), 0.25f); + beeSpecies + .addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CentauriASurfaceDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), new Consumer<>() { + + @Override + public void accept(GT_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(CENTAURI, INFINITYCATALYST, 3); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "acentauribbgrunt"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(31, "aCentauri")); // aCentauri Dim + } + }), + TCETI(GT_BranchDefinition.PLANET, "tCeti", false, new Color(0x46241A), new Color(0x7B412F), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.TCETI), 0.35f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TCetiEStoneDust", 1, 0), 0.05f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(MAKEMAKE, HAUMEA, 5, 2); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "tcetieblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(33, "Kuiper Belt")); // Kuiper Belt Dim + }), + TCETIE(GT_BranchDefinition.PLANET, "tCetiE", false, new Color(0x2d561b), new Color(0x0c0f60), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.TCETI), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TCetiEStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(TCETI, getSpecies(MAGICBEES, "TCWater"), 5, 2); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "tcetieblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(85, "tCeti E")); // tCeti E Dim + }), + // Parents: TCETI and TCETIE, 25% combchance, needs Damp Humidity and Normal temperature. Is Mycophilic + SEAWEED(GT_BranchDefinition.PLANET, "SeaWeed", true, new Color(0xCBCBCB), new Color(0x83FF83), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SEAWEED), 0.25f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TCetiEStoneDust", 1, 0), 0.15f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.DOWN_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.DOWN_1); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectMycophilic); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(TCETI, TCETIE, 5, 2); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "tcetieblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(85, "tCeti E")); // tCeti E Dim + }), + + BARNARDA(GT_BranchDefinition.PLANET, "Barnarda", false, new Color(0x0D5A0D), new Color(0xE6C18D), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.BARNARDA), 0.35f); + beeSpecies + .addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.BarnardaEStoneDust", 1, 0), 0.05f); + beeSpecies + .addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.BarnardaFStoneDust", 1, 0), 0.05f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(MAKEMAKE, THORIUM, 3, 2); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "barnardaEgrunt"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(33, "Kuiper Belt")); // Kuiper Belt Dim + }), + BARNARDAC(GT_BranchDefinition.PLANET, "BarnardaC", false, new Color(0x0D5A0D), new Color(0x473f0a), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.BARNARDA), 0.25f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> { + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(template, EFFECT, getEffect(GREGTECH, "Treetwister")); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(BARNARDA, AMERICIUM, 3, 2); + if (GalaxySpace.isModLoaded()) { + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "barnardaEgrunt"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(32, "Barnarda C")); // Barnarda C Dim + } + }), + BARNARDAE(GT_BranchDefinition.PLANET, "BarnardaE", false, new Color(0x0D5A0D), new Color(0x4c1f0a), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.BARNARDA), 0.25f); + beeSpecies + .addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.BarnardaEStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(BARNARDA, DIVIDED, 3, 2); + if (GalaxySpace.isModLoaded()) { + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "barnardaEgrunt"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(81, "Barnard E")); // "Barnard E Dim + } + }), + BARNARDAF(GT_BranchDefinition.PLANET, "BarnardaF", false, new Color(0x0D5A0D), new Color(0x1e0b49), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.BARNARDA), 0.25f); + beeSpecies + .addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.BarnardaFStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(BARNARDA, NEUTRONIUM, 3, 2); + if (GalaxySpace.isModLoaded()) { + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "barnardaFgrunt"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(82, "Barnard F")); // "Barnard F Dim + } + }), + VEGA(GT_BranchDefinition.PLANET, "Vega", false, new Color(0x1A2036), new Color(0xB5C0DE), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.VEGA), 0.35f); + beeSpecies.addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.VegaBStoneDust", 1, 0), 0.05f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(COLD); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(MAKEMAKE, NAQUADAH, 2); + if (GalaxySpace.isModLoaded()) { + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "vegabgrunt"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(33, "Kuiper Belt")); // Kuiper Belt + // Dim + } + }), + VEGAB(GT_BranchDefinition.PLANET, "VegaB", false, new Color(0x1A2036), new Color(0x81e261), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.VEGA), 0.35f); + if (NewHorizonsCoreMod.isModLoaded()) beeSpecies + .addSpecialty(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.VegaBStoneDust", 1, 0), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(COLD); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(VEGA, NAQUADRIA, 2); + if (GalaxySpace.isModLoaded()) { + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "vegabgrunt"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(84, "VegaB")); // VegaB Dim + } + }), + MERCURY(GT_BranchDefinition.PLANET, "Mercury", false, new Color(0x4A4033), new Color(0xB5A288), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.MERCURY), 0.35f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(JUPITER, TUNGSTEN, 25, 2); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "mercuryblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(37, "Mercury")); // Mercury Dim + }), + VENUS(GT_BranchDefinition.PLANET, "Venus", false, new Color(0x4A4033), new Color(0xB5A288), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.VENUS), 0.35f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(JUPITER, MITHRIL, 25, 2); + if (GalaxySpace.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(GalaxySpace.ID, "venusblocks"), 0); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(39, "Venus")); // Venus Dim + }), + + // Infinity Line + COSMICNEUTRONIUM(GT_BranchDefinition.PLANET, "CosmicNeutronium", false, new Color(0x484848), new Color(0x323232), + beeSpecies -> { + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.COSMICNEUTRONIUM), 0.375f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + // Makes it only work in the Mega Apiary NOTE: COMB MUST BE SPECIALITY COMB + beeSpecies.setJubilanceProvider(GT_JubilanceMegaApiary.instance); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(NEUTRONIUM, BARNARDAF, 7, 10); + if (Avaritia.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(Avaritia.ID, "Resource_Block"), 0); + }), + INFINITYCATALYST(GT_BranchDefinition.PLANET, "InfinityCatalyst", false, new Color(0xFFFFFF), new Color(0xFFFFFF), + beeSpecies -> { + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.INFINITYCATALYST), 0.015f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + // Makes it only work in the Mega Apiary NOTE: COMB MUST BE SPECIALITY COMB + beeSpecies.setJubilanceProvider(GT_JubilanceMegaApiary.instance); + }, template -> { + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(template, EFFECT, getEffect(EXTRABEES, "blindness")); + }, dis -> { + IMutationCustom tMutation = dis.registerMutation(DOB, COSMICNEUTRONIUM, 3, 10) + .setIsSecret(); + if (Avaritia.isModLoaded()) { + tMutation.requireResource(GameRegistry.findBlock(Avaritia.ID, "Resource_Block"), 1); + } + }), + INFINITY(GT_BranchDefinition.PLANET, "Infinity", false, new Color(0xFFFFFF), new Color(0xFFFFFF), beeSpecies -> { + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.INFINITY), 0.015f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + // Makes it only work in the Mega Apiary NOTE: COMB MUST BE SPECIALITY COMB + beeSpecies.setJubilanceProvider(GT_JubilanceMegaApiary.instance); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(INFINITYCATALYST, COSMICNEUTRONIUM, 1, 10); + if (AvaritiaAddons.isModLoaded()) { + tMutation.requireResource(GameRegistry.findBlock(AvaritiaAddons.ID, "InfinityChest"), 0); + } + }), + KEVLAR(GT_BranchDefinition.IC2, "Kevlar", false, new Color(0x2d542f), new Color(0xa2baa3), beeSpecies -> { + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.KEVLAR), 0.075f); + beeSpecies.addSpecialty(MaterialsKevlar.Kevlar.getNuggets(1), 0.01f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(COLD); + beeSpecies.setHasEffect(); + beeSpecies.setJubilanceProvider(GT_JubilanceMegaApiary.instance); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectSnowing); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, Flowers.SNOW); + AlleleHelper.instance.set(template, FLOWERING, Flowering.AVERAGE); + }, dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(OIL, INFINITYCATALYST, 4); + // UHV Replicator (UU-Matter) + GregTech_API.sGTCompleteLoad.add(() -> tMutation.requireResource(GregTech_API.sBlockMachines, 11003)); + }), + + // Noble Gas Line + // Helium bee, Humidity: normal, Temperature: Icy, Parents: Space & Mars, Mutationrate: 10%, Combrate: 50% + HELIUM(GT_BranchDefinition.NOBLEGAS, "Helium", false, new Color(0xFFA9FF), new Color(0xC8B8B4), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.HELIUM), 0.35f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(MAGICBEES, "Watery"), ENDDUST, 10); + tMutation.restrictTemperature(ICY); + }), + // Argon bee, Humidity: normal, Temperature: Icy, Parents: Helium & Phobos, Mutationrate: 8%, Combrate: 50% + ARGON(GT_BranchDefinition.NOBLEGAS, "Argon", false, new Color(0x89D9E1), new Color(0xBDA5C2), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.ARGON), 0.35f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(HELIUM, LICH, 8); + tMutation.restrictTemperature(ICY); + }), + // Neon bee, Humidity: normal, Temperature: Icy, Parents: Xenon & Ceres, Mutationrate: 6%, Combrate: 50% + NEON(GT_BranchDefinition.NOBLEGAS, "Neon", false, new Color(0xFFC826), new Color(0xFF7200), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.NEON), 0.35f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(ARGON, HYDRA, 6); + tMutation.restrictTemperature(ICY); + }), + // Krypton bee, Humidity: normal, Temperature: Icy, Parents: Neon & Jupiter, Mutationrate: 4%, Combrate: 50% + KRYPTON(GT_BranchDefinition.NOBLEGAS, "Krypton", false, new Color(0x8A97B0), new Color(0x160822), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.KRYPTON), 0.35f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(NEON, URGHAST, 4); + tMutation.restrictTemperature(ICY); + }), + // Xenon bee, Humidity: normal, Temperature: Icy, Parents: Argon & Deimos, Mutationrate: 6%, Combrate: 50% + XENON(GT_BranchDefinition.NOBLEGAS, "Xenon", false, new Color(0x8A97B0), new Color(0x160822), beeSpecies -> { + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.XENON), 0.525f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + // Makes it only work in the Mega Apiary NOTE: COMB MUST BE SPECIALITY COMB + beeSpecies.setJubilanceProvider(GT_JubilanceMegaApiary.instance); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(KRYPTON, SNOWQUEEN, 2); + tMutation.restrictTemperature(ICY); + }), + // Oxygen bee, Humidity: normal, Temperature: Icy, Parents: Space & Callisto, Mutationrate: 15%, Combrate: 50% + OXYGEN(GT_BranchDefinition.NOBLEGAS, "Oxygen", false, new Color(0xFFFFFF), new Color(0x8F8FFF), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.OXYGEN), 0.45f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.HYDROGEN), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(HELIUM, DRAGONESSENCE, 15); + tMutation.restrictTemperature(ICY); + }), + // Hydrogen bee, Humidity: normal, Temperature: Icy, Parents: Oxygen & Watery, Mutationrate: 15%, Combrate: 50% + HYDROGEN(GT_BranchDefinition.NOBLEGAS, "Oxygen", false, new Color(0xFFFFFF), new Color(0xFF1493), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.HYDROGEN), 0.45f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.NITROGEN), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(OXYGEN, getSpecies(MAGICBEES, "Watery"), 15); + tMutation.restrictTemperature(ICY); + }), + // Nitrogen bee, Humidity: normal, Temperature: Icy, Parents: Oxygen & Hydrogen, Mutationrate: 15%, Combrate: 50% + NITROGEN(GT_BranchDefinition.NOBLEGAS, "Nitrogen", false, new Color(0xFFC832), new Color(0xA52A2A), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.NITROGEN), 0.45f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.FLUORINE), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(OXYGEN, HYDROGEN, 15); + tMutation.restrictTemperature(ICY); + }), + // Fluorine bee, Humidity: normal, Temperature: Icy, Parents: Nitrogen & Hydrogen, Mutationrate: 15%, Combrate: 50% + FLUORINE(GT_BranchDefinition.NOBLEGAS, "Fluorine", false, new Color(0x86AFF0), new Color(0xFF6D00), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.FLUORINE), 0.45f); + beeSpecies.addSpecialty(GT_Bees.combs.getStackForType(CombType.OXYGEN), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(NITROGEN, HYDROGEN, 15); + tMutation.restrictTemperature(ICY); + }), + // infused Shards line + AIR(GT_BranchDefinition.INFUSEDSHARD, "Air", false, new Color(0xFFFF7E), new Color(0x60602F), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.INFUSEDAER), 0.30f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(MAGICBEES, "Supernatural"), getSpecies(MAGICBEES, "Windy"), 15); + tMutation.restrictTemperature(HOT); + if (Thaumcraft.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(Thaumcraft.ID, "blockCrystal"), 0); + }), + FIRE(GT_BranchDefinition.INFUSEDSHARD, "Fire", false, new Color(0xED3801), new Color(0x3B0E00), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.INFUSEDIGNIS), 0.30f); + beeSpecies.setHumidity(ARID); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(getSpecies(MAGICBEES, "Supernatural"), AIR, 15); + tMutation.restrictTemperature(HELLISH); + if (Thaumcraft.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(Thaumcraft.ID, "blockCrystal"), 1); + }), + WATER(GT_BranchDefinition.INFUSEDSHARD, "Water", false, new Color(0x0090FF), new Color(0x002542), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.INFUSEDAQUA), 0.30f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(FIRE, AIR, 15); + tMutation.restrictTemperature(ICY); + if (Thaumcraft.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(Thaumcraft.ID, "blockCrystal"), 2); + }), + EARTH(GT_BranchDefinition.INFUSEDSHARD, "Earth", false, new Color(0x008600), new Color(0x003300), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.INFUSEDTERRA), 0.30f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(WATER, FIRE, 15); + tMutation.restrictTemperature(WARM); + if (Thaumcraft.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(Thaumcraft.ID, "blockCrystal"), 3); + }), + ORDER(GT_BranchDefinition.INFUSEDSHARD, "Order", false, new Color(0x8A97B0), new Color(0x5C5F62), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.INFUSEDORDO), 0.30f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(EARTH, FIRE, 15); + tMutation.restrictTemperature(ICY); + if (Thaumcraft.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(Thaumcraft.ID, "blockCrystal"), 4); + }), + CHAOS(GT_BranchDefinition.INFUSEDSHARD, "Chaos", false, new Color(0x2E2E41), new Color(0x232129), beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.INFUSEDPERDITIO), 0.30f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(ORDER, FIRE, 15); + tMutation.restrictTemperature(ICY); + if (Thaumcraft.isModLoaded()) + tMutation.requireResource(GameRegistry.findBlock(Thaumcraft.ID, "blockCrystal"), 5); + }), + NETHERSHARD(GT_BranchDefinition.INFUSEDSHARD, "Nethershard", false, new Color(0xBE0135), new Color(0x350211), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.NETHERSHARD), 0.30f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(HOT); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(CHAOS, FIRE, 15); + tMutation.requireResource(GameRegistry.findBlock(GregTech.ID, "gt.blockgem3"), 3); + }), + ENDSHARD(GT_BranchDefinition.INFUSEDSHARD, "Endshard", false, new Color(0x2E2E41), new Color(0x232129), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.ENDSHARD), 0.30f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(NETHERSHARD, ENDDUST, 15); + tMutation.restrictTemperature(ICY); + tMutation.requireResource(GameRegistry.findBlock(GregTech.ID, "gt.blockgem1"), 7); + }), + // Organic branch 2.0 + UNKNOWNWATER(GT_BranchDefinition.ORGANIC, "UnknownWater", false, new Color(0x4333A5), new Color(0x36ABFF), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.UNKNOWNWATER), 0.20f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), + dis -> dis.registerMutation(INFINITYCATALYST, MYSTERIOUSCRYSTAL, 5)), + // Endgame bees + JAEGERMEISTER(GT_BranchDefinition.ENDGAME, "JaegerMeister", false, new Color(0x05AD18), new Color(0xE7DAC3), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(CropsPlusPlus.ID, "BppPotions", 1L, 8), 0.01f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(INFINITYCATALYST, NAQUADRIA, 5); + tMutation.requireResource(GregTech_API.sBlockMachines, 4684); + tMutation.addMutationCondition(new GT_Bees.DimensionMutationCondition(100, "Deep Dark")); // Deep Dark + // dim + }); + + private final GT_BranchDefinition branch; + private final GT_AlleleBeeSpecies species; + private final Consumer<GT_AlleleBeeSpecies> mSpeciesProperties; + private final Consumer<IAllele[]> mAlleles; + private final Consumer<GT_BeeDefinition> mMutations; + private IAllele[] template; + private IBeeGenome genome; + + GT_BeeDefinition(GT_BranchDefinition branch, String binomial, boolean dominant, Color primary, Color secondary, + Consumer<GT_AlleleBeeSpecies> aSpeciesProperties, Consumer<IAllele[]> aAlleles, + Consumer<GT_BeeDefinition> aMutations) { + this.mAlleles = aAlleles; + this.mMutations = aMutations; + this.mSpeciesProperties = aSpeciesProperties; + String lowercaseName = this.toString() + .toLowerCase(Locale.ENGLISH); + String species = WordUtils.capitalize(lowercaseName); + + String uid = "gregtech.bee.species" + species; + String description = "for.description." + species; + String name = "for.bees.species." + lowercaseName; + GT_LanguageManager.addStringLocalization("for.bees.species." + lowercaseName, species); + + this.branch = branch; + this.species = new GT_AlleleBeeSpecies( + uid, + dominant, + name, + "GTNH", + description, + branch.getBranch(), + binomial, + primary, + secondary); + } + + public static void initBees() { + for (GT_BeeDefinition bee : values()) { + bee.init(); + } + for (GT_BeeDefinition bee : values()) { + bee.registerMutations(); + } + } + + static IAlleleBeeEffect getEffect(byte modid, String name) { + String s = switch (modid) { + case EXTRABEES -> "extrabees.effect." + name; + case GENDUSTRY -> "gendustry.effect." + name; + case MAGICBEES -> "magicbees.effect" + name; + case GREGTECH -> "gregtech.effect" + name; + default -> "forestry.effect" + name; + }; + return (IAlleleBeeEffect) AlleleManager.alleleRegistry.getAllele(s); + } + + static IAlleleFlowers getFlowers(byte modid, String name) { + String s = switch (modid) { + case EXTRABEES -> "extrabees.flower." + name; + case GENDUSTRY -> "gendustry.flower." + name; + case MAGICBEES -> "magicbees.flower" + name; + case GREGTECH -> "gregtech.flower" + name; + default -> "forestry.flowers" + name; + }; + return (IAlleleFlowers) AlleleManager.alleleRegistry.getAllele(s); + } + + private static IAlleleBeeSpecies getSpecies(byte modid, String name) { + String s = switch (modid) { + case EXTRABEES -> "extrabees.species." + name; + case GENDUSTRY -> "gendustry.bee." + name; + case MAGICBEES -> "magicbees.species" + name; + case GREGTECH -> "gregtech.species" + name; + default -> "forestry.species" + name; + }; + IAlleleBeeSpecies ret = (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele(s); + if (ret == null) { + ret = NAQUADRIA.species; + } + + return ret; + } + + private void setSpeciesProperties(GT_AlleleBeeSpecies beeSpecies) { + this.mSpeciesProperties.accept(beeSpecies); + } + + private void setAlleles(IAllele[] template) { + this.mAlleles.accept(template); + } + + private void registerMutations() { + this.mMutations.accept(this); + } + + private void init() { + setSpeciesProperties(species); + + template = branch.getTemplate(); + AlleleHelper.instance.set(template, SPECIES, species); + setAlleles(template); + + genome = BeeManager.beeRoot.templateAsGenome(template); + + BeeManager.beeRoot.registerTemplate(template); + } + + private IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, IAlleleBeeSpecies parent2, int chance) { + return registerMutation(parent1, parent2, chance, 1f); + } + + private IBeeMutationCustom registerMutation(GT_BeeDefinition parent1, IAlleleBeeSpecies parent2, int chance) { + return registerMutation(parent1, parent2, chance, 1f); + } + + private IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, GT_BeeDefinition parent2, int chance) { + return registerMutation(parent1, parent2, chance, 1f); + } + + private IBeeMutationCustom registerMutation(GT_BeeDefinition parent1, GT_BeeDefinition parent2, int chance) { + return registerMutation(parent1, parent2, chance, 1f); + } + + /** + * Diese neue Funtion erlaubt Mutationsraten unter 1%. Setze dazu die Mutationsrate als Bruch mit chance / + * chanceDivider This new function allows Mutation percentages under 1%. Set them as a fraction with chance / + * chanceDivider + */ + private IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, IAlleleBeeSpecies parent2, int chance, + float chanceDivider) { + return new GT_Bee_Mutation(parent1, parent2, this.getTemplate(), chance, chanceDivider); + } + + private IBeeMutationCustom registerMutation(GT_BeeDefinition parent1, IAlleleBeeSpecies parent2, int chance, + float chanceDivider) { + return registerMutation(parent1.species, parent2, chance, chanceDivider); + } + + private IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, GT_BeeDefinition parent2, int chance, + float chanceDivider) { + return registerMutation(parent1, parent2.species, chance, chanceDivider); + } + + private IBeeMutationCustom registerMutation(GT_BeeDefinition parent1, GT_BeeDefinition parent2, int chance, + float chanceDivider) { + return registerMutation(parent1.species, parent2, chance, chanceDivider); + } + + @Override + public final IAllele[] getTemplate() { + return Arrays.copyOf(template, template.length); + } + + @Override + public final IBeeGenome getGenome() { + return genome; + } + + @Override + public final IBee getIndividual() { + return new Bee(genome); + } + + @Override + public final ItemStack getMemberStack(EnumBeeType beeType) { + return BeeManager.beeRoot.getMemberStack(getIndividual(), beeType.ordinal()); + } +} diff --git a/src/main/java/gregtech/loaders/misc/GT_Bees.java b/src/main/java/gregtech/loaders/misc/GT_Bees.java new file mode 100644 index 0000000000..497105d75c --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/GT_Bees.java @@ -0,0 +1,201 @@ +package gregtech.loaders.misc; + +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.GalaxySpace; +import static gregtech.api.enums.Mods.TwilightForest; + +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; + +import forestry.api.apiculture.EnumBeeChromosome; +import forestry.api.apiculture.IAlleleBeeEffect; +import forestry.api.core.IClimateProvider; +import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IAlleleArea; +import forestry.api.genetics.IAlleleFloat; +import forestry.api.genetics.IAlleleInteger; +import forestry.api.genetics.IGenome; +import forestry.api.genetics.IMutationCondition; +import forestry.core.genetics.alleles.Allele; +import forestry.core.utils.StringUtil; +import gregtech.GT_Mod; +import gregtech.common.bees.GT_AlleleHelper; +import gregtech.common.items.ItemComb; +import gregtech.common.items.ItemDrop; +import gregtech.common.items.ItemPollen; +import gregtech.common.items.ItemPropolis; +import gregtech.loaders.misc.bees.GT_AlleleEffect; +import gregtech.loaders.misc.bees.GT_EffectTreeTwister; + +public class GT_Bees { + + public static IAlleleInteger noFertility; + public static IAlleleInteger superFertility; + + public static IAlleleInteger noFlowering; + public static IAlleleInteger superFlowering; + + public static IAlleleArea noTerritory; + public static IAlleleArea superTerritory; + + public static IAlleleFloat noWork; + public static IAlleleFloat speedBlinding; + public static IAlleleFloat superSpeed; + + public static IAlleleInteger blinkLife; + public static IAlleleInteger superLife; + + public static IAlleleBeeEffect treetwisterEffect; + + public static ItemPropolis propolis; + public static ItemPollen pollen; + public static ItemDrop drop; + public static ItemComb combs; + + public GT_Bees() { + if (!(Forestry.isModLoaded() && GT_Mod.gregtechproxy.mGTBees)) { + return; + } + + GT_AlleleHelper.initialisation(); + setupGTAlleles(); + propolis = new ItemPropolis(); + propolis.initPropolisRecipes(); + pollen = new ItemPollen(); + drop = new ItemDrop(); + drop.initDropsRecipes(); + combs = new ItemComb(); + combs.initCombsRecipes(); + combs.registerOreDict(); + GT_BeeDefinition.initBees(); + + } + + private static void setupGTAlleles() { + + noFertility = new AlleleInteger("fertilitySterile", 0, false, EnumBeeChromosome.FERTILITY); + superFertility = new AlleleInteger("fertilityMultiply", 8, false, EnumBeeChromosome.FERTILITY); + + noFlowering = new AlleleInteger("floweringNonpollinating", 0, false, EnumBeeChromosome.FLOWERING); + superFlowering = new AlleleInteger("floweringNaturalistic", 240, false, EnumBeeChromosome.FLOWERING); + + noTerritory = new AlleleArea("areaLethargic", 1, 1, false); + superTerritory = new AlleleArea("areaExploratory", 32, 16, false); + + noWork = new AlleleFloat("speedUnproductive", 0, false); + superSpeed = new AlleleFloat("speedAccelerated", 4F, false); + speedBlinding = AlleleManager.alleleRegistry.getAllele("magicbees.speedBlinding") == null + ? new AlleleFloat("speedBlinding", 2f, false) + : (IAlleleFloat) AlleleManager.alleleRegistry.getAllele("magicbees.speedBlinding"); + + blinkLife = new AlleleInteger("lifeBlink", 2, false, EnumBeeChromosome.LIFESPAN); + superLife = new AlleleInteger("lifeEon", 600, false, EnumBeeChromosome.LIFESPAN); + + if (GalaxySpace.isModLoaded() && TwilightForest.isModLoaded()) { + GT_Mod.GT_FML_LOGGER.info("treetwisterEffect: GalaxySpace and TwilightForest loaded, using default impl"); + treetwisterEffect = new GT_EffectTreeTwister(); + } else { + GT_Mod.GT_FML_LOGGER + .info("treetwisterEffect: GalaxySpace or TwilightForest was not loaded, using fallback impl"); + treetwisterEffect = GT_AlleleEffect.FORESTRY_BASE_EFFECT; + } + } + + private static class AlleleFloat extends Allele implements IAlleleFloat { + + private final float value; + + public AlleleFloat(String id, float val, boolean isDominant) { + super("gregtech." + id, "gregtech." + id, isDominant); + this.value = val; + AlleleManager.alleleRegistry.registerAllele(this, EnumBeeChromosome.SPEED); + } + + @Override + public float getValue() { + return this.value; + } + } + + private static class AlleleInteger extends Allele implements IAlleleInteger { + + private final int value; + + public AlleleInteger(String id, int val, boolean isDominant, EnumBeeChromosome c) { + super("gregtech." + id, "gregtech." + id, isDominant); + this.value = val; + AlleleManager.alleleRegistry.registerAllele(this, c); + } + + @Override + public int getValue() { + return this.value; + } + } + + private static class AlleleArea extends Allele implements IAlleleArea { + + private final int[] value; + + public AlleleArea(String id, int rangeXZ, int rangeY, boolean isDominant) { + super("gregtech." + id, "gregtech." + id, isDominant); + this.value = new int[] { rangeXZ, rangeY, rangeXZ }; + AlleleManager.alleleRegistry.registerAllele(this, EnumBeeChromosome.TERRITORY); + } + + @Override + public int[] getValue() { + return this.value; + } + } + + public static class DimensionMutationCondition implements IMutationCondition { + + final int dimID; + final String dimName; + + public DimensionMutationCondition(int id, String name) { + dimID = id; + dimName = name; + } + + @Override + public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, + IGenome genome1, IClimateProvider climate) { + if (world.provider.dimensionId == dimID) return 1; + return 0; + } + + @Override + public String getDescription() { + return StringUtil.localizeAndFormat("mutation.condition.dim") + " " + dimName; + } + } + + public static class BiomeIDMutationCondition implements IMutationCondition { + + final int biomeID; + final String biomeName; + + public BiomeIDMutationCondition(int id, String name) { + biomeID = id; + biomeName = name; + } + + @Override + public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, + IGenome genome1, IClimateProvider climate) { + if (climate.getBiome().biomeID == biomeID) return 1; + return 0; + } + + @Override + public String getDescription() { + if (BiomeGenBase.getBiome(biomeID) != null) { + return StringUtil.localizeAndFormat("mutation.condition.biomeid") + " " + biomeName; + } + return ""; + } + } +} diff --git a/src/main/java/gregtech/loaders/misc/GT_BranchDefinition.java b/src/main/java/gregtech/loaders/misc/GT_BranchDefinition.java new file mode 100644 index 0000000000..3eae8c73e2 --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/GT_BranchDefinition.java @@ -0,0 +1,207 @@ +package gregtech.loaders.misc; + +import static forestry.api.apiculture.EnumBeeChromosome.CAVE_DWELLING; +import static forestry.api.apiculture.EnumBeeChromosome.EFFECT; +import static forestry.api.apiculture.EnumBeeChromosome.FERTILITY; +import static forestry.api.apiculture.EnumBeeChromosome.FLOWERING; +import static forestry.api.apiculture.EnumBeeChromosome.FLOWER_PROVIDER; +import static forestry.api.apiculture.EnumBeeChromosome.HUMIDITY_TOLERANCE; +import static forestry.api.apiculture.EnumBeeChromosome.LIFESPAN; +import static forestry.api.apiculture.EnumBeeChromosome.NOCTURNAL; +import static forestry.api.apiculture.EnumBeeChromosome.SPEED; +import static forestry.api.apiculture.EnumBeeChromosome.TEMPERATURE_TOLERANCE; +import static forestry.api.apiculture.EnumBeeChromosome.TERRITORY; +import static forestry.api.apiculture.EnumBeeChromosome.TOLERANT_FLYER; +import static forestry.core.genetics.alleles.EnumAllele.Fertility; +import static forestry.core.genetics.alleles.EnumAllele.Flowering; +import static forestry.core.genetics.alleles.EnumAllele.Flowers; +import static forestry.core.genetics.alleles.EnumAllele.Lifespan; +import static forestry.core.genetics.alleles.EnumAllele.Speed; +import static forestry.core.genetics.alleles.EnumAllele.Territory; +import static forestry.core.genetics.alleles.EnumAllele.Tolerance; +import static gregtech.loaders.misc.GT_BeeDefinition.getEffect; +import static gregtech.loaders.misc.GT_BeeDefinition.getFlowers; +import static gregtech.loaders.misc.GT_BeeDefinitionReference.EXTRABEES; +import static gregtech.loaders.misc.GT_BeeDefinitionReference.MAGICBEES; + +import java.util.Arrays; +import java.util.function.Consumer; + +import forestry.api.apiculture.BeeManager; +import forestry.api.apiculture.EnumBeeChromosome; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IClassification; +import forestry.apiculture.genetics.alleles.AlleleEffect; +import forestry.core.genetics.alleles.AlleleHelper; + +public enum GT_BranchDefinition { + + ORGANIC("Fuelis", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(alleles, HUMIDITY_TOLERANCE, Tolerance.BOTH_2); + AlleleHelper.instance.set(alleles, NOCTURNAL, false); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, Flowers.WHEAT); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.SLOW); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.SHORTER); + AlleleHelper.instance.set(alleles, SPEED, Speed.SLOWEST); + }), + IC2("Industrialis", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.UP_1); + AlleleHelper.instance.set(alleles, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(alleles, NOCTURNAL, false); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, Flowers.SNOW); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.FASTER); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(alleles, SPEED, Speed.SLOW); + }), + GTALLOY("Amalgamis", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(alleles, TOLERANT_FLYER, true); + AlleleHelper.instance.set(alleles, NOCTURNAL, false); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, Flowers.VANILLA); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.AVERAGE); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(alleles, SPEED, Speed.FAST); + }), + THAUMIC("Arcanis", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(alleles, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, getFlowers(EXTRABEES, "book")); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.FASTER); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.LONGEST); + }), + GEM("Ornamentis", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(alleles, NOCTURNAL, false); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, Flowers.NETHER); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.AVERAGE); + }), + METAL("Metaliferis", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.DOWN_2); + AlleleHelper.instance.set(alleles, CAVE_DWELLING, true); + AlleleHelper.instance.set(alleles, NOCTURNAL, false); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, Flowers.JUNGLE); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.SLOWER); + }), + RAREMETAL("Mineralis", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.DOWN_1); + AlleleHelper.instance.set(alleles, NOCTURNAL, false); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, Flowers.CACTI); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.FAST); + }), + RADIOACTIVE("Criticalis", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(alleles, NOCTURNAL, false); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, Flowers.END); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.AVERAGE); + AlleleHelper.instance.set(alleles, SPEED, GT_Bees.speedBlinding); + AlleleHelper.instance.set(alleles, SPEED, getEffect(EXTRABEES, "radioactive")); + }), + TWILIGHT("Nemoris Obscuri", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(alleles, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(alleles, NOCTURNAL, false); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, Flowers.VANILLA); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.FASTER); + }), + HEE("Finis Expansiones", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.BOTH_2); + AlleleHelper.instance.set(alleles, HUMIDITY_TOLERANCE, Tolerance.BOTH_2); + AlleleHelper.instance.set(alleles, NOCTURNAL, true); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, getFlowers(EXTRABEES, "book")); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.SLOW); + AlleleHelper.instance.set(alleles, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(alleles, TERRITORY, Territory.LARGER); + }), + SPACE("Cosmicis", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.DOWN_2); + AlleleHelper.instance.set(alleles, TOLERANT_FLYER, true); + AlleleHelper.instance.set(alleles, NOCTURNAL, true); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, getFlowers(EXTRABEES, "rock")); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.FASTEST); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.LONGEST); + AlleleHelper.instance.set(alleles, SPEED, Speed.FAST); + AlleleHelper.instance.set(alleles, TERRITORY, Territory.LARGEST); + }), + PLANET("Planetaris", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(alleles, TOLERANT_FLYER, true); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, getFlowers(EXTRABEES, "rock")); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.FASTEST); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.NORMAL); + AlleleHelper.instance.set(alleles, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(alleles, TERRITORY, Territory.LARGER); + }), + NOBLEGAS("Nobilis Gasorum", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.BOTH_2); + AlleleHelper.instance.set(alleles, TOLERANT_FLYER, true); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.FASTEST); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.NORMAL); + AlleleHelper.instance.set(alleles, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(alleles, TERRITORY, Territory.AVERAGE); + }), + INFUSEDSHARD("Infusa Shard", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(alleles, TOLERANT_FLYER, true); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, getFlowers(MAGICBEES, "rock")); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.FASTEST); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(alleles, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(alleles, TERRITORY, Territory.LARGEST); + }), + ENDGAME("ENDUS GAMUS", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.BOTH_5); + AlleleHelper.instance.set(alleles, TOLERANT_FLYER, true); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.FASTEST); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(alleles, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(alleles, TERRITORY, Territory.LARGEST); + }); + + private static IAllele[] defaultTemplate; + private final IClassification branch; + private final Consumer<IAllele[]> mBranchProperties; + + GT_BranchDefinition(String scientific, Consumer<IAllele[]> aBranchProperties) { + this.branch = BeeManager.beeFactory.createBranch( + this.name() + .toLowerCase(), + scientific); + this.mBranchProperties = aBranchProperties; + } + + private static IAllele[] getDefaultTemplate() { + if (defaultTemplate == null) { + defaultTemplate = new IAllele[EnumBeeChromosome.values().length]; + + AlleleHelper.instance.set(defaultTemplate, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(defaultTemplate, LIFESPAN, Lifespan.SHORTER); + AlleleHelper.instance.set(defaultTemplate, FERTILITY, Fertility.NORMAL); + AlleleHelper.instance.set(defaultTemplate, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(defaultTemplate, NOCTURNAL, false); + AlleleHelper.instance.set(defaultTemplate, HUMIDITY_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(defaultTemplate, TOLERANT_FLYER, false); + AlleleHelper.instance.set(defaultTemplate, CAVE_DWELLING, false); + AlleleHelper.instance.set(defaultTemplate, FLOWER_PROVIDER, Flowers.VANILLA); + AlleleHelper.instance.set(defaultTemplate, FLOWERING, Flowering.SLOWEST); + AlleleHelper.instance.set(defaultTemplate, TERRITORY, Territory.AVERAGE); + AlleleHelper.instance.set(defaultTemplate, EFFECT, AlleleEffect.effectNone); + } + return Arrays.copyOf(defaultTemplate, defaultTemplate.length); + } + + void setBranchProperties(IAllele[] template) { + this.mBranchProperties.accept(template); + } + + public final IAllele[] getTemplate() { + IAllele[] template = getDefaultTemplate(); + setBranchProperties(template); + return template; + } + + public final IClassification getBranch() { + return branch; + } +} diff --git a/src/main/java/gregtech/loaders/misc/GT_CoverLoader.java b/src/main/java/gregtech/loaders/misc/GT_CoverLoader.java new file mode 100644 index 0000000000..dc83202724 --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/GT_CoverLoader.java @@ -0,0 +1,42 @@ +package gregtech.loaders.misc; + +import static gregtech.api.enums.Textures.BlockIcons.VENT_ADVANCED; +import static gregtech.api.enums.Textures.BlockIcons.VENT_NORMAL; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTech_API; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_ModHandler; +import gregtech.common.covers.GT_Cover_Vent; + +public class GT_CoverLoader implements Runnable { + + @Override + public void run() { + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + GregTech_API.registerCover(new ItemStack(Blocks.carpet, 1, i), TextureFactory.of(Blocks.wool, i), null); + } + GregTech_API.registerCover( + GT_ModHandler.getIC2Item("reactorVent", 1L, 1), + TextureFactory.of(VENT_NORMAL), + new GT_Cover_Vent(1)); + GregTech_API.registerCover( + GT_ModHandler.getIC2Item("reactorVentCore", 1L, 1), + TextureFactory.of(VENT_NORMAL), + new GT_Cover_Vent(1)); + GregTech_API.registerCover( + GT_ModHandler.getIC2Item("reactorVentGold", 1L, 1), + TextureFactory.of(VENT_ADVANCED), + new GT_Cover_Vent(2)); + GregTech_API.registerCover( + GT_ModHandler.getIC2Item("reactorVentSpread", 1L), + TextureFactory.of(VENT_NORMAL), + new GT_Cover_Vent(2)); + GregTech_API.registerCover( + GT_ModHandler.getIC2Item("reactorVentDiamond", 1L, 1), + TextureFactory.of(VENT_ADVANCED), + new GT_Cover_Vent(3)); + } +} diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java b/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java new file mode 100644 index 0000000000..bb0d9eef8b --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java @@ -0,0 +1,44 @@ +package gregtech.loaders.misc.bees; + +import forestry.api.apiculture.EnumBeeChromosome; +import forestry.api.apiculture.IAlleleBeeEffect; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.IEffectData; +import forestry.core.genetics.alleles.Allele; + +// helper class for implementing custom bee effects, based on MagicBees' implementation +public abstract class GT_AlleleEffect extends Allele implements IAlleleBeeEffect { + + public static final IAlleleBeeEffect FORESTRY_BASE_EFFECT = (IAlleleBeeEffect) AlleleManager.alleleRegistry + .getAllele("forestry.effectNone"); + protected boolean combinable; + + public GT_AlleleEffect(String id, boolean isDominant) { + super("gregtech." + id, "gregtech." + id, isDominant); + AlleleManager.alleleRegistry.registerAllele(this, EnumBeeChromosome.EFFECT); + combinable = false; + } + + @Override + public boolean isCombinable() { + return combinable; + } + + public GT_AlleleEffect setIsCombinable(boolean canCombine) { + combinable = canCombine; + return this; + } + + @Override + public abstract IEffectData validateStorage(IEffectData storedData); + + @Override + public abstract IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing); + + @Override + public IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { + return FORESTRY_BASE_EFFECT.doFX(genome, storedData, housing); + } +} diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java b/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java new file mode 100644 index 0000000000..d188a3eb9b --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java @@ -0,0 +1,86 @@ +package gregtech.loaders.misc.bees; + +import static gregtech.api.enums.Mods.GalaxySpace; +import static gregtech.api.enums.Mods.TwilightForest; + +import java.util.Arrays; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.World; + +import forestry.api.apiculture.BeeManager; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.apiculture.IBeeModifier; +import forestry.api.genetics.IEffectData; +import gregtech.GT_Mod; +import gregtech.api.util.GT_ModHandler; + +public class GT_EffectTreeTwister extends GT_AlleleEffect { + + private static final Integer[] ALLOWED_DIMS = { 2, // spectre + 112, // last millenium + 60, // bedrock + 69, // pocket plane + }; + + private static final ItemStack TF_TRANS_SAPLING = GT_ModHandler + .getModItem(TwilightForest.ID, "tile.TFSapling", 1, 6); + private static final ItemStack BARN_SAPLING = GT_ModHandler.getModItem(GalaxySpace.ID, "barnardaCsapling", 1, 1); + + static { + if (TF_TRANS_SAPLING == null) { + GT_Mod.GT_FML_LOGGER.info("GT_EffectTreeTwister(): Could not get ItemStack for BarnardaC sapling"); + } + if (BARN_SAPLING == null) { + GT_Mod.GT_FML_LOGGER.info("GT_EffectTreeTwister(): Could not get ItemStack for BarnardaC sapling"); + } + } + + public GT_EffectTreeTwister() { + super("effectTreetwister", false); + } + + public IEffectData validateStorage(IEffectData storedData) { + return storedData; // unused for this effect + } + + public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { + if (TF_TRANS_SAPLING == null || BARN_SAPLING == null) { + return storedData; + } + World world = housing.getWorld(); + if (!Arrays.asList(ALLOWED_DIMS) + .contains(world.provider.dimensionId)) { + return storedData; + } + ChunkCoordinates coords = housing.getCoordinates(); + IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(housing); + + // Get random coords within territory + int xRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[0]); + int yRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[1]); + int zRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[2]); + + int xCoord = coords.posX + world.rand.nextInt(xRange) - xRange / 2; + int yCoord = coords.posY + world.rand.nextInt(yRange) - yRange / 2; + int zCoord = coords.posZ + world.rand.nextInt(zRange) - zRange / 2; + + ItemStack sourceBlock = new ItemStack( + world.getBlock(xCoord, yCoord, zCoord), + 1, + world.getBlockMetadata(xCoord, yCoord, zCoord)); + if (TF_TRANS_SAPLING != null && BARN_SAPLING != null && TF_TRANS_SAPLING.isItemEqual(sourceBlock)) { + world.setBlock( + xCoord, + yCoord, + zCoord, + Block.getBlockFromItem(BARN_SAPLING.getItem()), + BARN_SAPLING.getItemDamage(), + 2); + } + return storedData; + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java new file mode 100644 index 0000000000..2f390b25e8 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java @@ -0,0 +1,24 @@ +package gregtech.loaders.oreprocessing; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; + +public class ProcessingAll implements gregtech.api.interfaces.IOreRecipeRegistrator { // TODO ACTUALLY COMPARE ALL THE + // PROCESSING CLASSES + + public ProcessingAll() { + for (OrePrefixes tPrefix : OrePrefixes.values()) tPrefix.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (((aStack.getItem() instanceof net.minecraft.item.ItemBlock)) + && (aPrefix.mDefaultStackSize < aStack.getItem() + .getItemStackLimit(aStack))) + aStack.getItem() + .setMaxStackSize(aPrefix.mDefaultStackSize); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java new file mode 100644 index 0000000000..11d1b1e1b8 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java @@ -0,0 +1,135 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OreDictNames; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingArrows() { + OrePrefixes.arrowGtWood.add(this); + OrePrefixes.arrowGtPlastic.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + ItemStack tOutput = GT_Utility.copyAmount(1, aStack); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment( + tOutput, + Enchantment.smite, + EnchantmentHelper.getEnchantmentLevel(Enchantment.smite.effectId, tOutput) + 3); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.HolyWater.getFluid(25L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + tOutput = GT_Utility.copyAmount(1, aStack); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment( + tOutput, + Enchantment.fireAspect, + EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, tOutput) + 3); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.FierySteel.getFluid(25L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + tOutput = GT_Utility.copyAmount(1, aStack); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment( + tOutput, + Enchantment.fireAspect, + EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, tOutput) + 1); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.Blaze.getMolten(18L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + tOutput = GT_Utility.copyAmount(1, aStack); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment( + tOutput, + Enchantment.knockback, + EnchantmentHelper.getEnchantmentLevel(Enchantment.knockback.effectId, tOutput) + 1); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.Rubber.getMolten(18L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + tOutput = GT_Utility.copyAmount(1, aStack); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment( + tOutput, + gregtech.api.enchants.Enchantment_EnderDamage.INSTANCE, + EnchantmentHelper + .getEnchantmentLevel(gregtech.api.enchants.Enchantment_EnderDamage.INSTANCE.effectId, tOutput) + 1); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.Mercury.getFluid(25L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + if (!aMaterial.mUnificatable) { + return; + } + if (aMaterial.mMaterialInto != aMaterial) { + return; + } + + if (aMaterial.contains(SubTag.NO_WORKING)) { + return; + } + + switch (aPrefix) { + case arrowGtWood: + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { " A", " S ", "F ", 'S', OrePrefixes.stick.get(Materials.Wood), 'F', + OreDictNames.craftingFeather, 'A', OrePrefixes.toolHeadArrow.get(aMaterial) }); + case arrowGtPlastic: + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.arrowGtPlastic, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { " A", " S ", "F ", 'S', OrePrefixes.stick.get(Materials.Plastic), 'F', + OreDictNames.craftingFeather, 'A', OrePrefixes.toolHeadArrow.get(aMaterial) }); + default: + break; + } + + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java new file mode 100644 index 0000000000..2fb200216e --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java @@ -0,0 +1,35 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingBeans implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingBeans() { + OrePrefixes.beans.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + + if (!aOreDictName.equals("beansCocoa")) { + return; + } + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java new file mode 100644 index 0000000000..b9926b188b --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java @@ -0,0 +1,187 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsBotania; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingBlock() { + OrePrefixes.block.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + + if (aMaterial == Materials.Ichorium) { + return; + } + + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV + && GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + + if (aMaterial == MaterialsBotania.Livingrock || aMaterial == MaterialsBotania.Livingwood + || aMaterial == MaterialsBotania.Dreamwood) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + Materials.Water.getFluid( + Math.max( + 4, + Math.min(1000, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 320)))) + .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + GT_ModHandler.getDistilledWater( + Math.max( + 3, + Math.min(750, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 426)))) + .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + Materials.Lubricant.getFluid( + Math.max( + 1, + Math.min(250, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 1280)))) + .duration(((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + } + + else if (aMaterial != Materials.Clay && aMaterial != Materials.Basalt) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + Materials.Water.getFluid( + Math.max( + 4, + Math.min(1000, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 320)))) + .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + GT_ModHandler.getDistilledWater( + Math.max( + 3, + Math.min(750, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 426)))) + .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + Materials.Lubricant.getFluid( + Math.max( + 1, + Math.min(250, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 1280)))) + .duration(((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + } + } + + ItemStack tStack1 = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L); + ItemStack tStack2 = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); + ItemStack tStack3 = GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L); + + GT_ModHandler.removeRecipeDelayed(GT_Utility.copyAmount(1, aStack)); + + if (tStack1 != null) GT_ModHandler + .removeRecipeDelayed(tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1); + if (tStack2 != null) GT_ModHandler + .removeRecipeDelayed(tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2); + if (tStack3 != null) { + GT_ModHandler + .removeRecipeDelayed(tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3); + } + + if (aMaterial.mStandardMoltenFluid != null) { + if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(1296L)) + .duration(14 * SECONDS + 8 * TICKS) + .eut(8) + .addTo(fluidSolidifierRecipes); + } + } + } + + if (tStack1 != null) tStack1.stackSize = 9; + if (tStack2 != null) tStack2.stackSize = 9; + if (tStack3 != null) tStack3.stackSize = 9; + + if (tStack2 != null) { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(tStack2) + .duration(5 * SECONDS) + .eut(24) + .addTo(hammerRecipes); + } + + if (tStack2 != null && aMaterial != Materials.NetherQuartz) { + if (tStack3 != null) + GT_ModHandler.addShapelessCraftingRecipe(tStack3, new Object[] { OrePrefixes.block.get(aMaterial) }); + GT_ModHandler.addShapelessCraftingRecipe(tStack2, new Object[] { OrePrefixes.block.get(aMaterial) }); + if (tStack1 != null) + GT_ModHandler.addShapelessCraftingRecipe(tStack1, new Object[] { OrePrefixes.block.get(aMaterial) }); + } + + if (!OrePrefixes.block.isIgnored(aMaterial) && tStack1 != null) { + // 9 ingots -> 1 block + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 9L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) + .duration(15 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 2)) + .addTo(compressorRecipes); + } + + switch (aMaterial.mName) { + case "Mercury" -> System.err.println( + "'blockQuickSilver'?, In which Ice Desert can you actually place this as a solid Block? On Pluto Greg :)"); + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java new file mode 100644 index 0000000000..0d28c417a8 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java @@ -0,0 +1,44 @@ +package gregtech.loaders.oreprocessing; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingBolt implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingBolt() { + OrePrefixes.bolt.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aMaterial.getProcessingMaterialTierEU() >= TierEU.IV) { + return; + } + + if (!aMaterial.mUnificatable) { + return; + } + + if ((aMaterial.mMaterialInto != aMaterial)) { + return; + } + + if (aMaterial.contains(SubTag.NO_WORKING)) { + return; + } + + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(2, aStack), + GT_Proxy.tBits, + new Object[] { "s ", " X", 'X', OrePrefixes.stick.get(aMaterial) }); + + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java new file mode 100644 index 0000000000..5a6bdfcf13 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java @@ -0,0 +1,441 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; +import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; + +import java.util.ArrayList; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.interfaces.IOreRecipeRegistrator; +import gregtech.api.objects.MaterialStack; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_RecipeConstants; +import gregtech.api.util.GT_Utility; + +public class ProcessingCell implements IOreRecipeRegistrator { + + public ProcessingCell() { + OrePrefixes.cell.add(this); + OrePrefixes.cellPlasma.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + switch (aPrefix) { + case cell -> { + if (aMaterial == Materials.Empty) { + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + if (aModName.equalsIgnoreCase("AtomicScience")) { + GT_ModHandler.addExtractionRecipe(ItemList.Cell_Empty.get(1L), aStack); + } + } else { + if (aMaterial.mFuelPower > 0) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder.itemInputs(GT_Utility.copyAmount(1, aStack)); + if (GT_Utility.getFluidForFilledItem(aStack, true) == null + && GT_Utility.getContainerItem(aStack, true) != null) { + recipeBuilder.itemOutputs(GT_Utility.getContainerItem(aStack, true)); + } + recipeBuilder.metadata(FUEL_VALUE, aMaterial.mFuelPower) + .metadata(FUEL_TYPE, aMaterial.mFuelType) + .addTo(GT_RecipeConstants.Fuel); + } + if (!((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0))) { + break; + } + + int tAllAmount = 0; + for (MaterialStack tMat2 : aMaterial.mMaterialList) { + tAllAmount = (int) (tAllAmount + tMat2.mAmount); + } + long tItemAmount = 0L; + long tCapsuleCount = (long) GT_ModHandler + .getCapsuleCellContainerCountMultipliedWithStackSize(aStack) * -tAllAmount; + long tDensityMultiplier = aMaterial.getDensity() > 3628800L ? aMaterial.getDensity() / 3628800L + : 1L; + ArrayList<ItemStack> tList = new ArrayList<>(); + for (MaterialStack tMat : aMaterial.mMaterialList) { + if (tMat.mAmount <= 0) { + continue; + } + + ItemStack tStack; + if (tMat.mMaterial == Materials.Air) { + tStack = ItemList.Cell_Air.get(tMat.mAmount * tDensityMultiplier / 2L); + } else { + tStack = GT_OreDictUnificator.get(OrePrefixes.dust, tMat.mMaterial, tMat.mAmount); + if (tStack == null) { + tStack = GT_OreDictUnificator.get(OrePrefixes.cell, tMat.mMaterial, tMat.mAmount); + } + } + if (tItemAmount + tMat.mAmount * 3628800L > aStack.getMaxStackSize() * aMaterial.getDensity()) { + continue; + } + + tItemAmount += tMat.mAmount * 3628800L; + + if (tStack == null) { + continue; + } + + tStack.stackSize = ((int) (tStack.stackSize * tDensityMultiplier)); + while ((tStack.stackSize > 64) + && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64L < 0L + ? tList.size() < 5 + : tList.size() < 6) + && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64L <= 64L)) { + tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64L; + tList.add(GT_Utility.copyAmount(64, tStack)); + tStack.stackSize -= 64; + } + int tThisCapsuleCount = GT_ModHandler + .getCapsuleCellContainerCountMultipliedWithStackSize(tStack); + if (tStack.stackSize > 0 && tCapsuleCount + tThisCapsuleCount <= 64L) { + if (tCapsuleCount + tThisCapsuleCount < 0L ? tList.size() < 5 : tList.size() < 6) { + tCapsuleCount += tThisCapsuleCount; + tList.add(tStack); + } + } + } + + tItemAmount = GT_Utility.ceilDiv(tItemAmount * tDensityMultiplier, aMaterial.getDensity()); + + if (tList.size() <= 0) { + break; + } + + if ((aMaterial.mExtraData & 0x1) != 0) { + + // Electrolyzer recipe + if (GT_Utility.getFluidForFilledItem(aStack, true) == null) { + // dust stuffed cell e.g. Phosphate, Phosphorous Pentoxide + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + if (tCapsuleCount > 0L) { + recipeBuilder.itemInputs( + GT_Utility.copyAmount(tItemAmount, aStack), + ItemList.Cell_Empty.get(tCapsuleCount)); + } else { + recipeBuilder.itemInputs(GT_Utility.copyAmount(tItemAmount, aStack)); + } + if (tCapsuleCount < 0L) { + tList.add(ItemList.Cell_Empty.get(-tCapsuleCount)); + } + ItemStack[] outputsArray = tList.toArray(new ItemStack[Math.min(tList.size(), 6)]); + recipeBuilder.itemOutputs(outputsArray) + .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount))) + .eut(Math.min(4, tList.size()) * 30) + .addTo(electrolyzerRecipes); + } else { + long tCellBalance = tCapsuleCount + tItemAmount - 1; + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + if (tCellBalance > 0L) { + recipeBuilder.itemInputs(aStack, ItemList.Cell_Empty.get(tCellBalance)); + } else { + recipeBuilder.itemInputs(aStack); + } + if (tCellBalance < 0L) { + tList.add(ItemList.Cell_Empty.get(-tCellBalance)); + } + ItemStack[] outputsArray = tList.toArray(new ItemStack[Math.min(tList.size(), 6)]); + recipeBuilder.itemOutputs(outputsArray) + .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount))) + .eut(Math.min(4, tList.size()) * 30) + .addTo(electrolyzerRecipes); + } + } + if ((aMaterial.mExtraData & 0x2) != 0) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + if (tCapsuleCount > 0L) { + recipeBuilder.itemInputs( + GT_Utility.copyAmount(tItemAmount, aStack), + ItemList.Cell_Empty.get(tCapsuleCount)); + } else { + recipeBuilder.itemInputs(GT_Utility.copyAmount(tItemAmount, aStack)); + } + if (tCapsuleCount < 0L) { + tList.add(ItemList.Cell_Empty.get(-tCapsuleCount)); + } + ItemStack[] outputsArray = tList.toArray(new ItemStack[Math.min(tList.size(), 6)]); + recipeBuilder.itemOutputs(outputsArray) + .duration(Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))) + .eut(5) + .addTo(centrifugeRecipes); + } + } + } + case cellPlasma -> { + if (aMaterial == Materials.Empty) { + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + } else { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder.itemInputs(GT_Utility.copyAmount(1, aStack)); + if (GT_Utility.getFluidForFilledItem(aStack, true) == null + && GT_Utility.getContainerItem(aStack, true) != null) { + recipeBuilder.itemOutputs(GT_Utility.getContainerItem(aStack, true)); + } + // Switch case to set manual values for specific plasmas and escape the formula based on mass + // when it doesn't make sense for powergen balance. + switch (aMaterial.mName) { + case "Aluminium" -> recipeBuilder.metadata(FUEL_VALUE, 159_744) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Americium" -> recipeBuilder.metadata(FUEL_VALUE, 501_760) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Antimony" -> recipeBuilder.metadata(FUEL_VALUE, 309_760) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Argon" -> recipeBuilder.metadata(FUEL_VALUE, 188_416) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Arsenic" -> recipeBuilder.metadata(FUEL_VALUE, 230_400) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Barium" -> recipeBuilder.metadata(FUEL_VALUE, 342_302) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Beryllium" -> recipeBuilder.metadata(FUEL_VALUE, 110_592) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Bismuth" -> recipeBuilder.metadata(FUEL_VALUE, 425_984) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Boron" -> recipeBuilder.metadata(FUEL_VALUE, 112_640) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Cadmium" -> recipeBuilder.metadata(FUEL_VALUE, 293_601) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Caesium" -> recipeBuilder.metadata(FUEL_VALUE, 332_513) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Calcium" -> recipeBuilder.metadata(FUEL_VALUE, 188_416) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Cerium" -> recipeBuilder.metadata(FUEL_VALUE, 346_931) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Chlorine" -> recipeBuilder.metadata(FUEL_VALUE, 172_032) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Chrome" -> recipeBuilder.metadata(FUEL_VALUE, 202_342) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Cobalt" -> recipeBuilder.metadata(FUEL_VALUE, 217_497) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Copper" -> recipeBuilder.metadata(FUEL_VALUE, 219_340) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Deuterium" -> recipeBuilder.metadata(FUEL_VALUE, 40_960) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Erbium" -> recipeBuilder.metadata(FUEL_VALUE, 376_217) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Europium" -> recipeBuilder.metadata(FUEL_VALUE, 355_635) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Fluorine" -> recipeBuilder.metadata(FUEL_VALUE, 147_456) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Force" -> recipeBuilder.metadata(FUEL_VALUE, 150_000) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Gadolinium" -> recipeBuilder.metadata(FUEL_VALUE, 366_551) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Gallium" -> recipeBuilder.metadata(FUEL_VALUE, 229_376) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Gold" -> recipeBuilder.metadata(FUEL_VALUE, 401_408) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Helium_3" -> recipeBuilder.metadata(FUEL_VALUE, 61_440) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Helium" -> recipeBuilder.metadata(FUEL_VALUE, 81_920) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Holmium" -> recipeBuilder.metadata(FUEL_VALUE, 376_176) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Hydrogen" -> recipeBuilder.metadata(FUEL_VALUE, 20_480) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Indium" -> recipeBuilder.metadata(FUEL_VALUE, 296_509) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Iridium" -> recipeBuilder.metadata(FUEL_VALUE, 397_148) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Iron" -> recipeBuilder.metadata(FUEL_VALUE, 206_438) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Lanthanum" -> recipeBuilder.metadata(FUEL_VALUE, 344_801) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Lead" -> recipeBuilder.metadata(FUEL_VALUE, 423_936) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Lithium" -> recipeBuilder.metadata(FUEL_VALUE, 100_352) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Lutetium" -> recipeBuilder.metadata(FUEL_VALUE, 381_296) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Magnesium" -> recipeBuilder.metadata(FUEL_VALUE, 152_371) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Manganese" -> recipeBuilder.metadata(FUEL_VALUE, 202_752) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Mercury" -> recipeBuilder.metadata(FUEL_VALUE, 409_600) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Molybdenum" -> recipeBuilder.metadata(FUEL_VALUE, 272_384) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Neodymium" -> recipeBuilder.metadata(FUEL_VALUE, 347_996) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Nickel" -> recipeBuilder.metadata(FUEL_VALUE, 213_811) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Niobium" -> recipeBuilder.metadata(FUEL_VALUE, 269_516) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Nitrogen" -> recipeBuilder.metadata(FUEL_VALUE, 129_024) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Osmium" -> recipeBuilder.metadata(FUEL_VALUE, 393_659) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Oxygen" -> recipeBuilder.metadata(FUEL_VALUE, 131_072) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Palladium" -> recipeBuilder.metadata(FUEL_VALUE, 282_214) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Phosphor" -> recipeBuilder.metadata(FUEL_VALUE, 165_888) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Platinum" -> recipeBuilder.metadata(FUEL_VALUE, 399_360) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Plutonium241" -> recipeBuilder.metadata(FUEL_VALUE, 497_664) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Plutonium" -> recipeBuilder.metadata(FUEL_VALUE, 503_808) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Potassium" -> recipeBuilder.metadata(FUEL_VALUE, 183_705) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Praseodymium" -> recipeBuilder.metadata(FUEL_VALUE, 346_931) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Promethium" -> recipeBuilder.metadata(FUEL_VALUE, 347_996) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Radon" -> recipeBuilder.metadata(FUEL_VALUE, 450_560) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Rubidium" -> recipeBuilder.metadata(FUEL_VALUE, 243_712) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Samarium" -> recipeBuilder.metadata(FUEL_VALUE, 353_280) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Scandium" -> recipeBuilder.metadata(FUEL_VALUE, 193_536) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Silicon" -> recipeBuilder.metadata(FUEL_VALUE, 160_563) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Silver" -> recipeBuilder.metadata(FUEL_VALUE, 282_685) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Sodium" -> recipeBuilder.metadata(FUEL_VALUE, 148_684) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Strontium" -> recipeBuilder.metadata(FUEL_VALUE, 249_446) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Sulfur" -> recipeBuilder.metadata(FUEL_VALUE, 170_393) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Tantalum" -> recipeBuilder.metadata(FUEL_VALUE, 384_000) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Terbium" -> recipeBuilder.metadata(FUEL_VALUE, 368_885) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Thorium" -> recipeBuilder.metadata(FUEL_VALUE, 471_040) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Thulium" -> recipeBuilder.metadata(FUEL_VALUE, 378_470) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Tin" -> recipeBuilder.metadata(FUEL_VALUE, 150_000) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Titanium" -> recipeBuilder.metadata(FUEL_VALUE, 196_608) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Tritium" -> recipeBuilder.metadata(FUEL_VALUE, 61_440) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Tungsten" -> recipeBuilder.metadata(FUEL_VALUE, 384_778) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Uranium235" -> recipeBuilder.metadata(FUEL_VALUE, 481_280) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Uranium" -> recipeBuilder.metadata(FUEL_VALUE, 487_424) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Vanadium" -> recipeBuilder.metadata(FUEL_VALUE, 198_451) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Ytterbium" -> recipeBuilder.metadata(FUEL_VALUE, 379_695) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Yttrium" -> recipeBuilder.metadata(FUEL_VALUE, 255_180) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + case "Zinc" -> recipeBuilder.metadata(FUEL_VALUE, 226_304) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + default -> recipeBuilder + .metadata(FUEL_VALUE, (int) Math.max(1024L, 1024L * aMaterial.getMass())) + .metadata(FUEL_TYPE, 4) + .addTo(GT_RecipeConstants.Fuel); + } + if (GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L)) + .duration(((int) Math.max(aMaterial.getMass() * 2L, 1L)) * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + } + } + } + default -> {} + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java new file mode 100644 index 0000000000..c5e0e9ce0d --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java @@ -0,0 +1,44 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.enums.Mods.GregTech; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class ProcessingCircuit implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingCircuit() { + OrePrefixes.circuit.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (gregtech.api.util.GT_OreDictUnificator.isBlacklisted(aStack) && aModName.equals(GregTech.ID)) return; + switch (aMaterial.mName) { + case "Good", "Data", "Elite", "Master", "Ultimate", "Superconductor", "Infinite", "Bio" -> { + if (!GT_OreDictUnificator.isBlacklisted(aStack) && !aModName.equals(GregTech.ID)) + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + } + case "Primitive", "Advanced" -> GT_ModHandler.removeRecipeByOutputDelayed(aStack); + case "Basic" -> { + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + GT_ModHandler.addCraftingRecipe( + aStack, + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "RIR", "VBV", "CCC", 'R', ItemList.Circuit_Parts_Resistor.get(1), 'C', + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.RedAlloy, 1), 'V', + ItemList.Circuit_Parts_Vacuum_Tube.get(1), 'B', ItemList.Circuit_Board_Coated_Basic.get(1), 'I', + ItemList.IC2_Item_Casing_Steel.get(1) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_ModHandler.getIC2Item("electronicCircuit", 1L), + new Object[] { ItemList.Circuit_Integrated.getWildcard(1L) }); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java new file mode 100644 index 0000000000..4ef818df5b --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java @@ -0,0 +1,25 @@ +package gregtech.loaders.oreprocessing; + +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.interfaces.IOreRecipeRegistrator; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_ModHandler; + +public class ProcessingCompressed implements IOreRecipeRegistrator { + + public ProcessingCompressed() { + OrePrefixes.compressed.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + GregTech_API + .registerCover(aStack, TextureFactory.of(aMaterial.mIconSet.mTextures[72], aMaterial.mRGBa, false), null); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java new file mode 100644 index 0000000000..438da254a2 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java @@ -0,0 +1,464 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.BuildCraftSilicon; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +@SuppressWarnings("RedundantLabeledSwitchRuleCodeBlock") +public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingCrafting() { + OrePrefixes.crafting.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + switch (aOreDictName) { + case "craftingQuartz" -> { + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.redstone_torch, 3, 32767), GT_Utility.copyAmount(1, aStack)) + .itemOutputs(new ItemStack(net.minecraft.init.Items.comparator, 1, 0)) + .fluidInputs(Materials.Concrete.getMolten(144L)) + .duration(2 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + } + case "craftingLensBlue" -> { + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 13)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 13)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_LapotronCrystal.getWildcard(1L), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Parts_Crystal_Chip_Master.get(3L)) + .requiresCleanRoom() + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Chip_CrystalCPU.get(1L), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Chip_CrystalSoC.get(1)) + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(40000) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_PIC.get(1)) + .requiresCleanRoom() + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_PIC.get(4)) + .requiresCleanRoom() + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_QPIC.get(1)) + .requiresCleanRoom() + .duration(2 * MINUTES) + .eut(TierEU.RECIPE_UV) + .addTo(laserEngraverRecipes); + + } + case "craftingLensYellow" -> { + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 14)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 14)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_LPIC.get(1)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_LPIC.get(4)) + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC.get(1)) + .requiresCleanRoom() + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC.get(4)) + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC.get(8)) + .requiresCleanRoom() + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(laserEngraverRecipes); + } + case "craftingLensOrange" -> { + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(1)) + .duration(15 * SECONDS) + .eut(64) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(4)) + .duration(15 * SECONDS) + .eut(256) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(16)) + .duration(15 * SECONDS) + .eut(1024) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(64)) + .duration(15 * SECONDS) + .eut(4096) + .addTo(laserEngraverRecipes); + + } + case "craftingLensCyan" -> { + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 15)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 15)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Ram.get(1)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Ram.get(4)) + .requiresCleanRoom() + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Ram.get(8)) + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Ram.get(16)) + .requiresCleanRoom() + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Ram.get(32)) + .requiresCleanRoom() + .duration(7 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_LuV) + .addTo(laserEngraverRecipes); + + } + case "craftingLensRed" -> { + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Redstone, 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.RedAlloy, 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EtchedLowVoltageWiring", 1L, 0)) + .duration(10 * SECONDS) + .eut(16) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_ILC.get(1)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_ILC.get(4)) + .requiresCleanRoom() + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_ILC.get(8)) + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_NPIC.get(1)) + .requiresCleanRoom() + .duration(1 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_NPIC.get(4)) + .requiresCleanRoom() + .duration(1 * MINUTES + 15 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(laserEngraverRecipes); + + } + case "craftingLensGreen" -> { + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Parts_Crystal_Chip_Elite.get(1L), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Chip_CrystalCPU.get(1)) + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(10000) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Chip_CrystalSoC.get(1L), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Chip_CrystalSoC2.get(1)) + .requiresCleanRoom() + .duration(60 * SECONDS) + .eut(80000) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_ULPIC.get(2)) + .duration(30 * SECONDS) + .eut(30) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_ULPIC.get(8)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC2.get(1)) + .requiresCleanRoom() + .duration(1 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC2.get(2)) + .requiresCleanRoom() + .duration(1 * MINUTES + 15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC2.get(4)) + .requiresCleanRoom() + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(laserEngraverRecipes); + } + case "craftingLensWhite" -> { + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 19)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 19)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.sandstone, 1, 2), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(new ItemStack(Blocks.sandstone, 1, 1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.stone, 1, 0), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(new ItemStack(Blocks.stonebrick, 1, 3)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.quartz_block, 1, 0), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(new ItemStack(Blocks.quartz_block, 1, 1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockQuartz", 1L), + GT_Utility.copyAmount(0, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockQuartzChiseled", 1L)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_CPU.get(1)) + .requiresCleanRoom() + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_CPU.get(4)) + .requiresCleanRoom() + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_CPU.get(8)) + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_CPU.get(16)) + .requiresCleanRoom() + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_CPU.get(32)) + .requiresCleanRoom() + .duration(7 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_LuV) + .addTo(laserEngraverRecipes); + + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrate.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrate.java new file mode 100644 index 0000000000..105b5c8f13 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrate.java @@ -0,0 +1,132 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.packagerRecipes; +import static gregtech.api.recipe.RecipeMaps.unpackagerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.common.GT_Proxy; + +public class ProcessingCrate implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingCrate() { + OrePrefixes.crateGtDust.add(this); + OrePrefixes.crateGtIngot.add(this); + OrePrefixes.crateGtGem.add(this); + OrePrefixes.crateGtPlate.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + boolean aSpecialRecipeReq2 = aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_WORKING); + switch (aPrefix) { + case crateGtDust -> { + if (GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L), + ItemList.Crate_Empty.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crateGtDust, aMaterial, 1L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(packagerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crateGtDust, aMaterial, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L), + ItemList.Crate_Empty.get(1L)) + .duration(40 * SECONDS) + .eut(1) + .addTo(unpackagerRecipes); + } + if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L), + GT_Proxy.tBits, + new Object[] { "Xc", 'X', OrePrefixes.crateGtDust.get(aMaterial) }); + } + case crateGtIngot -> { + if (GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 16L), + ItemList.Crate_Empty.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, aMaterial, 1L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(packagerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, aMaterial, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 16L), + ItemList.Crate_Empty.get(1L)) + .duration(40 * SECONDS) + .eut(1) + .addTo(unpackagerRecipes); + } + if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 16L), + GT_Proxy.tBits, + new Object[] { "Xc", 'X', OrePrefixes.crateGtIngot.get(aMaterial) }); + } + case crateGtGem -> { + if (GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 16L), + ItemList.Crate_Empty.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crateGtGem, aMaterial, 1L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(packagerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crateGtGem, aMaterial, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 16L), + ItemList.Crate_Empty.get(1L)) + .duration(40 * SECONDS) + .eut(1) + .addTo(unpackagerRecipes); + } + if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 16L), + GT_Proxy.tBits, + new Object[] { "Xc", 'X', OrePrefixes.crateGtGem.get(aMaterial) }); + } + case crateGtPlate -> { + if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 16L), + ItemList.Crate_Empty.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crateGtPlate, aMaterial, 1L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(packagerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crateGtPlate, aMaterial, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 16L), + ItemList.Crate_Empty.get(1L)) + .duration(40 * SECONDS) + .eut(1) + .addTo(unpackagerRecipes); + } + if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 16L), + GT_Proxy.tBits, + new Object[] { "Xc", 'X', OrePrefixes.crateGtPlate.get(aMaterial) }); + } + default -> {} + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java new file mode 100644 index 0000000000..92b5ae9cda --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java @@ -0,0 +1,154 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.recipe.RecipeMaps.brewingRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.slicerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingCrop() { + OrePrefixes.crop.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + net.minecraft.item.ItemStack aStack) { + // Compressor recipes + GT_Values.RA.stdBuilder() + .itemInputs(gregtech.api.util.GT_Utility.copyAmount(8, aStack)) + .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + Fluid[] waterArray; + + if (IndustrialCraft2.isModLoaded()) { + waterArray = new Fluid[] { FluidRegistry.WATER, GT_ModHandler.getDistilledWater(1L) + .getFluid() }; + } else { + waterArray = new Fluid[] { FluidRegistry.WATER }; + } + + switch (aOreDictName) { + case "cropTea" -> { + for (Fluid tFluid : waterArray) { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion.tea"), 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + } + } + case "cropGrape" -> { + for (Fluid tFluid : waterArray) { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion.grapejuice"), 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + } + } + case "cropChilipepper" -> GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + case "cropCoffee" -> GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + case "cropPotato" -> { + GT_Values.RA.stdBuilder() + .itemInputs(aStack, ItemList.Shape_Slicer_Flat.get(0)) + .itemOutputs(ItemList.Food_Raw_PotatoChips.get(1L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(slicerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(aStack, ItemList.Shape_Slicer_Stripes.get(0L)) + .itemOutputs(ItemList.Food_Raw_Fries.get(1L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(slicerRecipes); + + for (Fluid tFluid : waterArray) { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion.potatojuice"), 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + } + } + case "cropLemon" -> { + GT_Values.RA.stdBuilder() + .itemInputs(aStack, ItemList.Shape_Slicer_Flat.get(0)) + .itemOutputs(ItemList.Food_Sliced_Lemon.get(4L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(slicerRecipes); + + for (Fluid tFluid : waterArray) { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion.lemonjuice"), 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("potion.vodka"), 750)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion.leninade"), 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + } + case "cropTomato" -> GT_Values.RA.stdBuilder() + .itemInputs(aStack, ItemList.Shape_Slicer_Flat.get(0)) + .itemOutputs(ItemList.Food_Sliced_Tomato.get(4L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(slicerRecipes); + case "cropCucumber" -> GT_Values.RA.stdBuilder() + .itemInputs(aStack, ItemList.Shape_Slicer_Flat.get(0)) + .itemOutputs(ItemList.Food_Sliced_Cucumber.get(4L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(slicerRecipes); + case "cropOnion" -> GT_Values.RA.stdBuilder() + .itemInputs(aStack, ItemList.Shape_Slicer_Flat.get(0)) + .itemOutputs(ItemList.Food_Sliced_Onion.get(4L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(slicerRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java new file mode 100644 index 0000000000..a730a1849b --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java @@ -0,0 +1,107 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.sifterRecipes; +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingCrushedOre implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingCrushedOre() { + OrePrefixes.crushedCentrifuged.add(this); + OrePrefixes.crushedPurified.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + switch (aPrefix) { + case crushedCentrifuged -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), + GT_OreDictUnificator.get( + OrePrefixes.dust, + GT_Utility.selectItemInList(2, aMaterial.mMacerateInto, aMaterial.mOreByProducts), + 1L)) + .outputChances(10000, 1000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } + case crushedPurified -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get( + OrePrefixes.crushedCentrifuged, + aMaterial.mMacerateInto, + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), + 1L), + GT_OreDictUnificator.get( + OrePrefixes.dust, + GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), + 1L)) + .outputChances(10000, 1111) + .duration(25 * SECONDS) + .eut(48) + .addTo(thermalCentrifugeRecipes); + + ItemStack tGem = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); + if (tGem == null) { + break; + } + + switch (aMaterial.mName) { + case "Tanzanite", "Sapphire", "Olivine", "GreenSapphire", "Opal", "Amethyst", "Emerald", "Ruby", "Amber", "Diamond", "FoolsRuby", "BlueTopaz", "GarnetRed", "Topaz", "Jasper", "GarnetYellow" -> GT_Values.RA + .stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, tGem, 1L), + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, tGem, 1L), + tGem, + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, tGem, 1L), + GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, tGem, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, tGem, 1L)) + .outputChances(300, 1200, 4500, 1400, 2800, 3500) + .duration(40 * SECONDS) + .eut(16) + .addTo(sifterRecipes); + default -> GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, tGem, 1L), + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, tGem, 1L), + tGem, + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, tGem, 1L), + GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, tGem, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, tGem, 1L)) + .outputChances(100, 400, 1500, 2000, 4000, 5000) + .duration(40 * SECONDS) + .eut(16) + .addTo(sifterRecipes); + } + + } + default -> {} + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java new file mode 100644 index 0000000000..ec8fd12a74 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java @@ -0,0 +1,49 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingCrystallized implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingCrystallized() { + OrePrefixes.crystal.add(this); + OrePrefixes.crystalline.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aMaterial.mMacerateInto == null) { + return; + } + + if (GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1) == null) { + return; + } + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java new file mode 100644 index 0000000000..b3aad4e25c --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java @@ -0,0 +1,136 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingDirty() { + OrePrefixes.clump.add(this); + OrePrefixes.shard.add(this); + OrePrefixes.crushed.add(this); + OrePrefixes.dirtyGravel.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + net.minecraft.item.ItemStack aStack) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L)) + .duration(10) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get( + OrePrefixes.dustImpure, + aMaterial.mMacerateInto, + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), + 1L), + GT_OreDictUnificator.get( + OrePrefixes.dust, + GT_Utility.selectItemInList(0, aMaterial.mMacerateInto, aMaterial.mOreByProducts), + 1L)) + .outputChances(10000, 1000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_ModHandler.addOreWasherRecipe( + GT_Utility.copyAmount(1, aStack), + new int[] { 10000, 1111, 10000 }, + 1000, + GT_OreDictUnificator.get( + aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, + aMaterial, + 1L), + GT_OreDictUnificator.get( + OrePrefixes.dust, + GT_Utility.selectItemInList(0, aMaterial.mMacerateInto, aMaterial.mOreByProducts), + 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)); + + OrePrefixes prefix = aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedCentrifuged : OrePrefixes.dust; + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(prefix, aMaterial, 1L), + GT_OreDictUnificator.get( + OrePrefixes.dust, + GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), + 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)) + .outputChances(10000, 1111, 10000) + .duration(25 * SECONDS) + .eut(48) + .addTo(thermalCentrifugeRecipes); + + addChemicalBathRecipes(aMaterial, aMaterial, aStack, aPrefix); + + for (Materials tMaterial : aMaterial.mOreByProducts) { + addChemicalBathRecipes(aMaterial, tMaterial, aStack, aPrefix); + } + } + + private void addChemicalBathRecipes(Materials material, Materials byproduct, ItemStack stack, OrePrefixes prefix) { + OrePrefixes chemicalBathPrefix = prefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified + : OrePrefixes.dustPure; + + if (byproduct.contains(SubTag.WASHING_MERCURY)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, stack)) + .itemOutputs( + GT_OreDictUnificator.get(chemicalBathPrefix, material, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, byproduct.mMacerateInto, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)) + .outputChances(10000, 7000, 4000) + .fluidInputs(Materials.Mercury.getFluid(1000L)) + .duration(40 * SECONDS) + .eut(8) + .addTo(chemicalBathRecipes); + } + if (byproduct.contains(SubTag.WASHING_MERCURY_99_PERCENT)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, stack)) + .itemOutputs( + GT_OreDictUnificator.get(chemicalBathPrefix, material, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, byproduct.mMacerateInto, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)) + .outputChances(10000, 9900, 4000) + .fluidInputs(Materials.Mercury.getFluid(1000L)) + .duration(40 * SECONDS) + .eut(8) + .addTo(chemicalBathRecipes); + } + if (byproduct.contains(SubTag.WASHING_SODIUMPERSULFATE)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, stack)) + .itemOutputs( + GT_OreDictUnificator.get(chemicalBathPrefix, material, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, byproduct.mMacerateInto, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)) + .outputChances(10000, 7000, 4000) + .fluidInputs(Materials.SodiumPersulfate.getFluid(100L)) + .duration(40 * SECONDS) + .eut(8) + .addTo(chemicalBathRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java new file mode 100644 index 0000000000..7cb26f7c36 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java @@ -0,0 +1,630 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.electroMagneticSeparatorRecipes; +import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; +import static gregtech.api.recipe.RecipeMaps.implosionRecipes; +import static gregtech.api.recipe.RecipeMaps.packagerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; + +import java.util.ArrayList; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.objects.MaterialStack; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_RecipeConstants; +import gregtech.api.util.GT_RecipeRegistrator; +import gregtech.api.util.GT_Utility; + +public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingDust() { + OrePrefixes.dust.add(this); + OrePrefixes.dustPure.add(this); + OrePrefixes.dustImpure.add(this); + OrePrefixes.dustRefined.add(this); + OrePrefixes.dustSmall.add(this); + OrePrefixes.dustTiny.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + switch (aPrefix) { + case dust -> { + if (aMaterial.mFuelPower > 0) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .metadata(FUEL_VALUE, aMaterial.mFuelPower) + .metadata(FUEL_TYPE, aMaterial.mFuelType) + .addTo(GT_RecipeConstants.Fuel); + } + if ((GT_Utility.getFluidForFilledItem(GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), true) + == null) && (GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L) != null)) { + GT_Values.RA.stdBuilder() + .itemInputs(aStack, ItemList.Cell_Empty.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L)) + .duration(5 * SECONDS) + .eut(1) + .addTo(cannerRecipes); + } + if (!aMaterial.mBlastFurnaceRequired) { + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { + GT_RecipeRegistrator.registerReverseArcSmelting( + GT_Utility.copyAmount(1, aStack), + aMaterial, + aPrefix.mMaterialAmount, + null, + null, + null); + } + } + ItemStack tDustStack; + if ((null != (tDustStack = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L))) + && (!aMaterial.contains(SubTag.NO_SMELTING))) { + if (aMaterial.mBlastFurnaceRequired) { + GT_ModHandler.removeFurnaceSmelting(aStack); + if (aMaterial.mAutoGenerateBlastFurnaceRecipes) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)); + if (aMaterial.mBlastFurnaceTemp > 1750) { + recipeBuilder.itemOutputs( + GT_OreDictUnificator + .get(OrePrefixes.ingotHot, aMaterial.mSmeltInto, tDustStack, 1L)); + } else { + recipeBuilder.itemOutputs(GT_Utility.copyAmount(1, tDustStack)); + } + recipeBuilder + .duration( + (Math.max(aMaterial.getMass() / 40L, 1L) * aMaterial.mBlastFurnaceTemp) * TICKS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, (int) aMaterial.mBlastFurnaceTemp) + .addTo(blastFurnaceRecipes); + } + } else { + GT_ModHandler.addSmeltingRecipe(aStack, tDustStack); + } + } else if (!aMaterial.contains(SubTag.NO_WORKING)) { + if ((!OrePrefixes.block.isIgnored(aMaterial)) + && (null == GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) + && GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L) != null) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + } + // This is so disgustingly bad. + if (((OrePrefixes.block.isIgnored(aMaterial)) + || (null == GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L))) + && (aMaterial != Materials.GraniteRed) + && (aMaterial != Materials.GraniteBlack) + && (aMaterial != Materials.Basalt) + && (aMaterial != Materials.Marble) + && (aMaterial != Materials.Glass) + && (aMaterial != Materials.Obsidian) + && (aMaterial != Materials.Glowstone) + && (aMaterial != Materials.Paper) + && (aMaterial != MaterialsUEVplus.TranscendentMetal) + && (aMaterial != Materials.Clay)) { + // compressor recipe + { + if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + } + } + } + } + if ((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0)) { + long tItemAmount = 0L; + long tCapsuleCount = 0L; + long tDensityMultiplier = aMaterial.getDensity() > 3628800L ? aMaterial.getDensity() / 3628800L + : 1L; + ArrayList<ItemStack> tList = new ArrayList<>(); + for (MaterialStack tMat : aMaterial.mMaterialList) if (tMat.mAmount > 0L) { + if (tMat.mMaterial == Materials.Air) { + tDustStack = ItemList.Cell_Air.get(tMat.mAmount / 2L); + } else { + tDustStack = GT_OreDictUnificator.get(OrePrefixes.dust, tMat.mMaterial, tMat.mAmount); + if (tDustStack == null) + tDustStack = GT_OreDictUnificator.get(OrePrefixes.cell, tMat.mMaterial, tMat.mAmount); + } + if (tItemAmount + tMat.mAmount * 3628800L + <= aStack.getMaxStackSize() * aMaterial.getDensity()) { + tItemAmount += tMat.mAmount * 3628800L; + if (tDustStack != null) { + tDustStack.stackSize = ((int) (tDustStack.stackSize * tDensityMultiplier)); + while ((tDustStack.stackSize > 64) && (tList.size() < 6) + && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tDustStack) * 64L + <= 64L)) { + tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCount(tDustStack) * 64L; + tList.add(GT_Utility.copyAmount(64, tDustStack)); + tDustStack.stackSize -= 64; + } + if ((tDustStack.stackSize > 0) && (tList.size() < 6) + && (tCapsuleCount + + GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(tDustStack) + <= 64L)) { + tCapsuleCount += GT_ModHandler + .getCapsuleCellContainerCountMultipliedWithStackSize(tDustStack); + tList.add(tDustStack); + } + } + } + } + tItemAmount = (tItemAmount * tDensityMultiplier % aMaterial.getDensity() > 0L ? 1 : 0) + + tItemAmount * tDensityMultiplier / aMaterial.getDensity(); + if (tList.size() > 0) { + FluidStack tFluid = null; + int tList_sS = tList.size(); + for (int i = 0; i < tList_sS; i++) { + if ((!ItemList.Cell_Air.isStackEqual(tList.get(i))) + && ((tFluid = GT_Utility.getFluidForFilledItem(tList.get(i), true)) != null)) { + tFluid.amount *= tList.get(i).stackSize; + tCapsuleCount -= GT_ModHandler + .getCapsuleCellContainerCountMultipliedWithStackSize(tList.get(i)); + tList.remove(i); + break; + } + } + if ((aMaterial.mExtraData & 0x1) != 0) { + if (tList.size() > 0 || tFluid != null) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + if (tCapsuleCount > 0L) { + recipeBuilder.itemInputs( + GT_Utility.copyAmount(tItemAmount, aStack), + ItemList.Cell_Empty.get(tCapsuleCount)); + } else { + recipeBuilder.itemInputs(GT_Utility.copyAmount(tItemAmount, aStack)); + } + if (tList.size() > 0) { + ItemStack[] outputsArray = tList.toArray(new ItemStack[Math.min(tList.size(), 6)]); + recipeBuilder.itemOutputs(outputsArray); + } + if (tFluid != null) { + recipeBuilder.fluidOutputs(tFluid); + } + recipeBuilder + .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount))) + .eut(Math.min(4, tList.size()) * 30) + .addTo(electrolyzerRecipes); + } + } + if ((aMaterial.mExtraData & 0x2) != 0) { + if (tList.size() > 0 || tFluid != null) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + if (tCapsuleCount > 0L) { + recipeBuilder.itemInputs( + GT_Utility.copyAmount(tItemAmount, aStack), + ItemList.Cell_Empty.get(tCapsuleCount)); + } else { + recipeBuilder.itemInputs(GT_Utility.copyAmount(tItemAmount, aStack)); + } + if (tList.size() > 0) { + ItemStack[] outputsArray = tList.toArray(new ItemStack[Math.min(tList.size(), 6)]); + recipeBuilder.itemOutputs(outputsArray); + } + if (tFluid != null) { + recipeBuilder.fluidOutputs(tFluid); + } + recipeBuilder.duration(Math.max(1L, Math.abs(aMaterial.getMass() * 4L * tItemAmount))) + .eut(Math.min(4, tList.size()) * 5) + .addTo(centrifugeRecipes); + } + } + } + } + if (aMaterial.contains(SubTag.CRYSTALLISABLE) + && GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) + .outputChances(7000) + .fluidInputs(Materials.Water.getFluid(200L)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) + .outputChances(9000) + .fluidInputs(GT_ModHandler.getDistilledWater(100L)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) + .outputChances(10000) + .fluidInputs(Materials.Void.getMolten(36L)) + .duration(1 * MINUTES) + .eut(24) + .addTo(autoclaveRecipes); + } + switch (aMaterial.mName) { + case "NULL", "Mercury", "Coal": + break; + case "Glass": + GT_ModHandler.addSmeltingRecipe( + GT_Utility.copyAmount(1, aStack), + new ItemStack(net.minecraft.init.Blocks.glass)); + break; + case "NetherQuartz": + case "Quartz": + case "CertusQuartz": + GT_ModHandler.removeFurnaceSmelting(aStack); + break; + case "MeatRaw": + GT_ModHandler.addSmeltingRecipe( + GT_Utility.copyAmount(1, aStack), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L)); + break; + case "Oilsands": + centrifugeRecipes.addRecipe( + true, + new ItemStack[] { GT_Utility.copyAmount(1, aStack) }, + null, + null, + null, + new FluidStack[] { Materials.OilHeavy.getFluid(1000) }, + 660, + 8, + 0); + break; + case "HydratedCoal": + GT_ModHandler.addSmeltingRecipe( + GT_Utility.copyAmount(1, aStack), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L)); + break; + case "Diamond": { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), ItemList.Block_Powderbarrel.get(64)) + .itemOutputs( + ItemList.IC2_Industrial_Diamond.get(3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(4, aStack), + GT_ModHandler.getIC2Item("dynamite", 16, null)) + .itemOutputs( + ItemList.IC2_Industrial_Diamond.get(3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), new ItemStack(Blocks.tnt, 32)) + .itemOutputs( + ItemList.IC2_Industrial_Diamond.get(3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), GT_ModHandler.getIC2Item("industrialTnt", 8)) + .itemOutputs( + ItemList.IC2_Industrial_Diamond.get(3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + } + break; + case "Opal": + case "Olivine": + case "Emerald": + case "Ruby": + case "Sapphire": + case "GreenSapphire": + case "Topaz": + case "BlueTopaz": + case "Tanzanite": + case "Amethyst": { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), ItemList.Block_Powderbarrel.get(48)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(4, aStack), + GT_ModHandler.getIC2Item("dynamite", 12, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), new ItemStack(Blocks.tnt, 24)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), GT_ModHandler.getIC2Item("industrialTnt", 6)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + } + break; + case "FoolsRuby": + case "GarnetRed": + case "GarnetYellow": + case "Jasper": + case "Amber": + case "Monazite": + case "Forcicium": + case "Forcillium": + case "Force": { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), ItemList.Block_Powderbarrel.get(32)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), GT_ModHandler.getIC2Item("dynamite", 8, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), new ItemStack(Blocks.tnt, 16)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), GT_ModHandler.getIC2Item("industrialTnt", 4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + } + } + } + case dustPure, dustImpure, dustRefined -> { + Materials tByProduct = GT_Utility.selectItemInList( + aPrefix == OrePrefixes.dustRefined ? 2 : aPrefix == OrePrefixes.dustPure ? 1 : 0, + aMaterial, + aMaterial.mOreByProducts); + if (aPrefix == OrePrefixes.dustPure) { + if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_GOLD)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Gold, 1L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L)) + .outputChances(10000, 4000, 2000) + .duration(20 * SECONDS) + .eut(24) + .addTo(electroMagneticSeparatorRecipes); + } + if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_IRON)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Iron, 1L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 1L)) + .outputChances(10000, 4000, 2000) + .duration(20 * SECONDS) + .eut(24) + .addTo(electroMagneticSeparatorRecipes); + } + if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Neodymium, 1L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Neodymium, 1L)) + .outputChances(10000, 4000, 2000) + .duration(20 * SECONDS) + .eut(24) + .addTo(electroMagneticSeparatorRecipes); + } + } + if (aMaterial.contains(SubTag.CRYSTALLISABLE) + && GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) + .outputChances(9000) + .fluidInputs(Materials.Water.getFluid(200L)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) + .outputChances(9500) + .fluidInputs(GT_ModHandler.getDistilledWater(100L)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) + .outputChances(10000) + .fluidInputs(Materials.Void.getMolten(36L)) + .duration(1 * MINUTES) + .eut(24) + .addTo(autoclaveRecipes); + } + ItemStack tImpureStack = GT_OreDictUnificator.get( + OrePrefixes.dustTiny, + tByProduct, + GT_OreDictUnificator.get(OrePrefixes.nugget, tByProduct, 1L), + 1L); + if (tImpureStack == null) { + tImpureStack = GT_OreDictUnificator.get(OrePrefixes.dustSmall, tByProduct, 1L); + if (tImpureStack == null) { + tImpureStack = GT_OreDictUnificator.get( + OrePrefixes.dust, + tByProduct, + GT_OreDictUnificator.get(OrePrefixes.gem, tByProduct, 1L), + 1L); + if (tImpureStack == null) { + tImpureStack = GT_OreDictUnificator.get(OrePrefixes.cell, tByProduct, 1L); + if (tImpureStack == null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) + .duration(Math.max(1L, aMaterial.getMass())) + .eut(5) + .addTo(centrifugeRecipes); + } else { + FluidStack tFluid = GT_Utility.getFluidForFilledItem(tImpureStack, true); + if (tFluid == null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack), ItemList.Cell_Empty.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), + tImpureStack) + .duration(Math.max(1L, aMaterial.getMass() * 72L)) + .eut(5) + .addTo(centrifugeRecipes); + } else { + tFluid.amount /= 10; + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) + .fluidOutputs(tFluid) + .duration(Math.max(1L, aMaterial.getMass() * 8L)) + .eut(5) + .addTo(centrifugeRecipes); + } + } + } else { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), tImpureStack) + .duration(Math.max(1L, aMaterial.getMass() * 72L)) + .eut(5) + .addTo(centrifugeRecipes); + } + } else { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), tImpureStack) + .duration(Math.max(1L, aMaterial.getMass() * 16L)) + .eut(5) + .addTo(centrifugeRecipes); + } + } else { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), + GT_OreDictUnificator.get( + OrePrefixes.dust, + tByProduct, + GT_OreDictUnificator.get(OrePrefixes.nugget, tByProduct, 1L), + 1L)) + .outputChances(10000, 1111) + .duration(Math.max(1L, aMaterial.getMass() * 8L)) + .eut(5) + .addTo(centrifugeRecipes); + } + } + case dustSmall -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), ItemList.Schematic_Dust.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) + .duration(1 * SECONDS) + .eut(4) + .addTo(packagerRecipes); + if (!aMaterial.mBlastFurnaceRequired) { + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { + GT_RecipeRegistrator.registerReverseArcSmelting( + GT_Utility.copyAmount(1, aStack), + aMaterial, + aPrefix.mMaterialAmount, + null, + null, + null); + } + } + } + case dustTiny -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack), ItemList.Schematic_Dust.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) + .duration(1 * SECONDS) + .eut(4) + .addTo(packagerRecipes); + if (!aMaterial.mBlastFurnaceRequired) { + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { + GT_RecipeRegistrator.registerReverseArcSmelting( + GT_Utility.copyAmount(1, aStack), + aMaterial, + aPrefix.mMaterialAmount, + null, + null, + null); + } + } + if (!aMaterial.contains(SubTag.NO_SMELTING)) { + if (aMaterial.mBlastFurnaceRequired) { + GT_ModHandler.removeFurnaceSmelting(aStack); + } + } + } + default -> {} + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java new file mode 100644 index 0000000000..f3e82c0b0e --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java @@ -0,0 +1,91 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; + +import java.util.Locale; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; + +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.interfaces.IOreRecipeRegistrator; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingDye implements IOreRecipeRegistrator { + + public ProcessingDye() { + OrePrefixes.dye.add(this); + } + + @Override + public void registerOre(OrePrefixes prefix, Materials material, String oreDictName, String modName, + ItemStack stack) { + Dyes aDye = Dyes.get(oreDictName); + if ((aDye.mIndex >= 0) && (aDye.mIndex < 16) && (GT_Utility.getContainerItem(stack, true) == null)) { + registerAlloySmelter(stack, aDye); + registerMixer(stack, aDye); + registerChemicalReactor(stack, aDye); + } + } + + public void registerMixer(ItemStack stack, Dyes dye) { + String fluidName = "dye.watermixed." + dye.name() + .toLowerCase(Locale.ENGLISH); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, stack), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Water.getFluid(216L)) + .fluidOutputs(FluidRegistry.getFluidStack(fluidName, 192)) + .duration(16 * TICKS) + .eut(4) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, stack), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(GT_ModHandler.getDistilledWater(288L)) + .fluidOutputs(FluidRegistry.getFluidStack(fluidName, 216)) + .duration(16 * TICKS) + .eut(4) + .addTo(mixerRecipes); + } + + public void registerAlloySmelter(ItemStack stack, Dyes dye) { + GT_ModHandler.addAlloySmelterRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 8L), + GT_Utility.copyAmount(1, stack), + new ItemStack(Blocks.stained_glass, 8, 15 - dye.mIndex), + 200, + 8, + false); + + GT_ModHandler.addAlloySmelterRecipe( + new ItemStack(Blocks.glass, 8, 32767), + GT_Utility.copyAmount(1, stack), + new ItemStack(Blocks.stained_glass, 8, 15 - dye.mIndex), + 200, + 8, + false); + } + + public void registerChemicalReactor(ItemStack stack, Dyes dye) { + String fluidName = "dye.chemical." + dye.name() + .toLowerCase(Locale.ENGLISH); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, stack), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 2)) + .fluidInputs(Materials.SulfuricAcid.getFluid(432)) + .fluidOutputs(FluidRegistry.getFluidStack(fluidName, 288)) + .duration(30 * SECONDS) + .eut(48) + .addTo(UniversalChemical); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFineWire.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFineWire.java new file mode 100644 index 0000000000..cfd33f1ace --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFineWire.java @@ -0,0 +1,33 @@ +package gregtech.loaders.oreprocessing; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_RecipeRegistrator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingFineWire implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingFineWire() { + OrePrefixes.wireFine.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { + GT_RecipeRegistrator.registerWiremillRecipes(aMaterial, 100, 4); + } + if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_WORKING)) { + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + GT_Proxy.tBits, + new Object[] { "Xx", 'X', OrePrefixes.foil.get(aMaterial) }); + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java new file mode 100644 index 0000000000..9b46710b71 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java @@ -0,0 +1,45 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.interfaces.IOreRecipeRegistrator; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingFoil implements IOreRecipeRegistrator { + + public ProcessingFoil() { + OrePrefixes.foil.add(this); + } + + @Override + public void registerOre(OrePrefixes prefix, Materials material, String oreDictName, String modName, + ItemStack stack) { + registerBenderRecipe(material); + registerCover(stack, material); + } + + private void registerBenderRecipe(Materials material) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(1, GT_OreDictUnificator.get(OrePrefixes.plate, material, 4L)), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.foil, material, 4L)) + .duration((int) Math.max(material.getMass(), 1L)) + .eut(calculateRecipeEU(material, 24)) + .addTo(benderRecipes); + } + + private void registerCover(ItemStack stack, Materials material) { + GregTech_API + .registerCover(stack, TextureFactory.of(material.mIconSet.mTextures[70], material.mRGBa, false), null); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java new file mode 100644 index 0000000000..e7fc25038f --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java @@ -0,0 +1,107 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.formingPressRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.recipe.RecipeMaps.slicerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingFood implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingFood() { + OrePrefixes.food.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + switch (aOreDictName) { + case "foodCheese" -> { + registerSlicerRecipes(aStack); + GT_OreDictUnificator.addItemData(aStack, new gregtech.api.objects.ItemData(Materials.Cheese, 3628800L)); + } + case "foodDough" -> { + GT_ModHandler.removeFurnaceSmelting(aStack); + registerBenderRecipes(aStack); + registerMixerRecipes(aStack); + registerFormingPressRecipes(aStack); + } + } + } + + private void registerSlicerRecipes(ItemStack stack) { + GT_Values.RA.stdBuilder() + .itemInputs(stack, ItemList.Shape_Slicer_Flat.get(0L)) + .itemOutputs(ItemList.Food_Sliced_Cheese.get(4L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(slicerRecipes); + } + + private void registerBenderRecipes(ItemStack stack) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, stack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Food_Flat_Dough.get(1L)) + .duration(16 * TICKS) + .eut(4) + .addTo(benderRecipes); + } + + private void registerMixerRecipes(ItemStack stack) { + GT_Values.RA.stdBuilder() + .itemInputs(stack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) + .itemOutputs(ItemList.Food_Dough_Sugar.get(2L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(stack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) + .itemOutputs(ItemList.Food_Dough_Chocolate.get(2L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(stack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chocolate, 1L)) + .itemOutputs(ItemList.Food_Dough_Chocolate.get(2L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(mixerRecipes); + } + + private void registerFormingPressRecipes(ItemStack stack) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, stack), ItemList.Shape_Mold_Bun.get(0L)) + .itemOutputs(ItemList.Food_Raw_Bun.get(1L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, stack), ItemList.Shape_Mold_Bread.get(0L)) + .itemOutputs(ItemList.Food_Raw_Bread.get(1L)) + .duration(12 * SECONDS + 16 * TICKS) + .eut(4) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, stack), ItemList.Shape_Mold_Baguette.get(0L)) + .itemOutputs(ItemList.Food_Raw_Baguette.get(1L)) + .duration(19 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(formingPressRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java new file mode 100644 index 0000000000..aa973cddfe --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java @@ -0,0 +1,109 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingGear implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingGear() { + OrePrefixes.gearGt.add(this); + OrePrefixes.gearGtSmall.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + switch (aPrefix) { + case gearGt -> { + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + if (aMaterial.mStandardMoltenFluid != null) { + if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Gear.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(576L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(fluidSolidifierRecipes); + } + } + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_WORKING)) { + switch (aMaterial.mName) { + case "Wood" -> GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "SPS", "PsP", "SPS", 'P', OrePrefixes.plank.get(aMaterial), 'S', + OrePrefixes.stick.get(aMaterial) }); + case "Stone" -> GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "SPS", "PfP", "SPS", 'P', OrePrefixes.stoneSmooth, 'S', + new ItemStack(Blocks.stone_button, 1, 32767) }); + default -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "SPS", "PwP", "SPS", 'P', OrePrefixes.plate.get(aMaterial), 'S', + OrePrefixes.stick.get(aMaterial) }); + } + } + } + } + } + case gearGtSmall -> { + if (aMaterial.mStandardMoltenFluid != null) { + if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Gear_Small.get(0L)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .fluidInputs(aMaterial.getMolten(144L)) + .duration(16 * TICKS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(fluidSolidifierRecipes); + } + } + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_WORKING)) { + switch (aMaterial.mName) { + case "Wood" -> GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "P ", " s", 'P', OrePrefixes.plank.get(aMaterial) }); + case "Stone" -> GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "P ", " f", 'P', OrePrefixes.stoneSmooth }); + default -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { " S ", "hPx", " S ", 'S', OrePrefixes.stick.get(aMaterial), 'P', + OrePrefixes.plate.get(aMaterial) }); + } + } + } + } + } + default -> {} + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java new file mode 100644 index 0000000000..35bd3b8cfd --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java @@ -0,0 +1,612 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.implosionRecipes; +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeConstants; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistrator { // TODO COMPARE WITH GEM??? + // generators + + public ProcessingGem() { + OrePrefixes.gem.add(this); + OrePrefixes.gemChipped.add(this); + OrePrefixes.gemExquisite.add(this); + OrePrefixes.gemFlawed.add(this); + OrePrefixes.gemFlawless.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + long aMaterialMass = aMaterial.getMass(); + boolean aNoSmashing = aMaterial.contains(SubTag.NO_SMASHING); + boolean aNoWorking = aMaterial.contains(SubTag.NO_WORKING); + boolean aNoSmelting = aMaterial.contains(SubTag.NO_SMELTING); + boolean aSpecialRecipeReq = aMaterial.contains(SubTag.MORTAR_GRINDABLE); + boolean aFuelPower = aMaterial.mFuelPower > 0; + + switch (aPrefix) { + case gem -> { + // fuel recipes + if (aFuelPower) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .metadata(FUEL_VALUE, aMaterial.mFuelPower * 2) + .metadata(FUEL_TYPE, aMaterial.mFuelType) + .addTo(GT_RecipeConstants.Fuel); + } + + if (!OrePrefixes.block.isIgnored(aMaterial) + && GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L) != null) { + // Compressor recipes + // need to avoid iridium exploit + if (aMaterial != Materials.Iridium) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + } + } + + // Smelting recipe + if (!aNoSmelting) { + GT_ModHandler.addSmeltingRecipe( + GT_Utility.copyAmount(1, aStack), + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L)); + } + + if (aNoSmashing) { + // Forge hammer recipes + { + if (GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(hammerRecipes); + } + } + } else { + // Forge hammer recipes + { + // need to avoid iridium exploit + if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null + && aMaterial != Materials.Iridium) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(hammerRecipes); + } + } + + // Bender recipes + if (aMaterial != Materials.Iridium) { + if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + // Plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .duration((int) Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L) != null) { + // Double plates + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L) != null) { + // Triple plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 3L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L) != null) { + // Quadruple plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 4L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L) != null) { + // Quintuple plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(5, aStack), GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 5L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L) != null) { + // dense plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 9L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + } + } + if (aNoWorking) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + // Lathe recipes + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L) != null + && GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L)) + .duration(((int) Math.max(aMaterialMass, 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(latheRecipes); + } + } + } else { + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { + // Implosion compressor recipes + { + if (GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), ItemList.Block_Powderbarrel.get(16)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3, aStack), + GT_ModHandler.getIC2Item("dynamite", 4, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), new ItemStack(Blocks.tnt, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3, aStack), + GT_ModHandler.getIC2Item("industrialTnt", 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + } + } + + // Crafting recipes + { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "h", "X", 'X', OrePrefixes.gemFlawless.get(aMaterial) }); + + if (aMaterial.contains(SubTag.SMELTING_TO_GEM)) { + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + GT_Proxy.tBits, + new Object[] { "XXX", "XXX", "XXX", 'X', OrePrefixes.nugget.get(aMaterial) }); + } + + if (aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "X", "m", 'X', OrePrefixes.gem.get(aMaterial) }); + } + } + } + } + + for (ItemStack is : OreDictionary.getOres("craftingLens" + aMaterial.mColor.mName.replace(" ", ""))) { // Engraver + // Laser engraver recipes + { + + if (GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1L) != null) { + is.stackSize = 0; + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), is) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1L)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(laserEngraverRecipes); + } + + } + } + } + case gemChipped -> { + // Fuel recipes + if (aFuelPower) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .metadata(FUEL_VALUE, aMaterial.mFuelPower / 2) + .metadata(FUEL_TYPE, aMaterial.mFuelType) + .addTo(GT_RecipeConstants.Fuel); + } + + if (!aNoWorking) { + // Lathe recipes + if (GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L) != null + && GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1L)) + .duration(((int) Math.max(aMaterialMass, 1L)) * TICKS) + .eut(8) + .addTo(latheRecipes); + } + + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { + // Implosion compressor recipes + { + if (GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), ItemList.Block_Powderbarrel.get(16)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3, aStack), + GT_ModHandler.getIC2Item("dynamite", 4, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), new ItemStack(Blocks.tnt, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3, aStack), + GT_ModHandler.getIC2Item("industrialTnt", 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + } + } + + // Crafting recipes + { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "h", "X", 'X', OrePrefixes.gemFlawed.get(aMaterial) }); + if (aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "X", "m", 'X', OrePrefixes.gemChipped.get(aMaterial) }); + } + } + } + } + for (ItemStack is : OreDictionary.getOres("craftingLens" + aMaterial.mColor.mName.replace(" ", ""))) { // Engraver + is.stackSize = 0; + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), is) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1L)) + .duration(30 * SECONDS) + .eut(30) + .addTo(laserEngraverRecipes); + + } + } + case gemExquisite -> { + // Fuel recipes + if (aFuelPower) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .metadata(FUEL_VALUE, aMaterial.mFuelPower * 8) + .metadata(FUEL_TYPE, aMaterial.mFuelType) + .addTo(GT_RecipeConstants.Fuel); + } + + if (!aNoWorking) { + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { + // Crafting recipes + { + if (aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 4L), + GT_Proxy.tBits, + new Object[] { "X", "m", 'X', OrePrefixes.gemExquisite.get(aMaterial) }); + } + } + } + } + + // Forge hammer recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(hammerRecipes); + } + } + case gemFlawed -> { + // fuel recipes + if (aFuelPower) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .metadata(FUEL_VALUE, aMaterial.mFuelPower) + .metadata(FUEL_TYPE, aMaterial.mFuelType) + .addTo(GT_RecipeConstants.Fuel); + } + + if (!aNoWorking) { + // Lathe recipes + if (GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L) != null + && GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 2L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L)) + .duration(((int) Math.max(aMaterialMass, 1L)) * TICKS) + .eut(12) + .addTo(latheRecipes); + } + + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { + // Implosion compressor recipes + { + if (GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), ItemList.Block_Powderbarrel.get(16)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3, aStack), + GT_ModHandler.getIC2Item("dynamite", 4, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), new ItemStack(Blocks.tnt, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3, aStack), + GT_ModHandler.getIC2Item("industrialTnt", 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + } + } + + // Crafting recipes + { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "h", "X", 'X', OrePrefixes.gem.get(aMaterial) }); + if (aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "X", "m", 'X', OrePrefixes.gemFlawed.get(aMaterial) }); + } + } + } + } + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + for (ItemStack is : OreDictionary.getOres("craftingLens" + aMaterial.mColor.mName.replace(" ", ""))) { // Engraver + + is.stackSize = 0; + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), is) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(laserEngraverRecipes); + + } + } + case gemFlawless -> { + + // Fuel recipes + if (aFuelPower) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .metadata(FUEL_VALUE, aMaterial.mFuelPower * 4) + .metadata(FUEL_TYPE, aMaterial.mFuelType) + .addTo(GT_RecipeConstants.Fuel); + } + + if (!aNoWorking) { + // Lathe recipes + if (GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L) != null + && GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), + GT_OreDictUnificator.getDust( + aMaterial, + aPrefix.mMaterialAmount - OrePrefixes.stickLong.mMaterialAmount)) + .duration(((int) Math.max(aMaterialMass * 5L, 1L)) * TICKS) + .eut(16) + .addTo(latheRecipes); + } + + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { + // Implosion compressor recipes + { + if (GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), ItemList.Block_Powderbarrel.get(16)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3, aStack), + GT_ModHandler.getIC2Item("dynamite", 4, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), new ItemStack(Blocks.tnt, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3, aStack), + GT_ModHandler.getIC2Item("industrialTnt", 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + } + } + + // Crafting recipes + { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "h", "X", 'X', OrePrefixes.gemExquisite.get(aMaterial) }); + if (aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "X", "m", 'X', OrePrefixes.gemFlawless.get(aMaterial) }); + } + } + } + } + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + for (ItemStack is : OreDictionary.getOres("craftingLens" + aMaterial.mColor.mName.replace(" ", ""))) { // Engraver + + is.stackSize = 0; + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), is) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L)) + .duration(2 * MINUTES) + .eut(2000) + .addTo(laserEngraverRecipes); + } + } + default -> {} + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java new file mode 100644 index 0000000000..0be31a7e1d --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java @@ -0,0 +1,296 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.enums.ToolDictNames; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeConstants; +import gregtech.api.util.GT_RecipeRegistrator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingIngot() { + OrePrefixes.ingot.add(this); + OrePrefixes.ingotDouble.add(this); + OrePrefixes.ingotTriple.add(this); + OrePrefixes.ingotQuadruple.add(this); + OrePrefixes.ingotQuintuple.add(this); + OrePrefixes.ingotHot.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + boolean aNoSmashing = aMaterial.contains(SubTag.NO_SMASHING); + boolean aStretchy = aMaterial.contains(SubTag.STRETCHY); + boolean aNoSmelting = aMaterial.contains(SubTag.NO_SMELTING); + long aMaterialMass = aMaterial.getMass(); + boolean aSpecialRecipeReq = aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_SMASHING); + + switch (aPrefix) { + case ingot -> { + // Fuel recipe + if (aMaterial.mFuelPower > 0) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .metadata(FUEL_VALUE, aMaterial.mFuelPower) + .metadata(FUEL_TYPE, aMaterial.mFuelType) + .addTo(GT_RecipeConstants.Fuel); + } + if (aMaterial.mStandardMoltenFluid != null + && !(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + // Fluid solidifier recipes + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ingot.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(144L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(fluidSolidifierRecipes); + } + // Reverse recipes + { + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + GT_RecipeRegistrator + .registerReverseMacerating(aStack, aMaterial, aPrefix.mMaterialAmount, null, null, null, false); + if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { + GT_RecipeRegistrator.registerReverseArcSmelting( + GT_Utility.copyAmount(1, aStack), + aMaterial, + aPrefix.mMaterialAmount, + null, + null, + null); + } + } + ItemStack tStack = GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L); + if ((tStack != null) && ((aMaterial.mBlastFurnaceRequired) || aNoSmelting)) { + GT_ModHandler.removeFurnaceSmelting(tStack); + } + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_WORKING) + && !aMaterial.contains(SubTag.SMELTING_TO_GEM) + && aMaterial.contains(SubTag.MORTAR_GRINDABLE)) { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { ToolDictNames.craftingToolMortar, OrePrefixes.ingot.get(aMaterial) }); + } + if (!aNoSmashing) { + // Forge hammer recipes + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV + && GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L)) + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(hammerRecipes); + } + } + if (!aNoSmashing || aStretchy) { + + // Bender recipes + { + if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 3L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 4L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(5, aStack), GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 5L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 9L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, 4L)) + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(benderRecipes); + } + } + } + } + case ingotDouble -> { + if (!aNoSmashing || aStretchy) { + // bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L)) + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + // Enable crafting with hammer if tier is < IV. + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV && aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingotDouble, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "I", "I", "h", 'I', OrePrefixes.ingot.get(aMaterial) }); + } + } + } + case ingotTriple -> { + if (!aNoSmashing || aStretchy) { + // Bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 3L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV && aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingotTriple, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "I", "B", "h", 'I', OrePrefixes.ingotDouble.get(aMaterial), 'B', + OrePrefixes.ingot.get(aMaterial) }); + } + } + } + case ingotQuadruple -> { + if (!aNoSmashing || aStretchy) { + // Bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + // If tier < IV add manual crafting. + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV && aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingotQuadruple, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "I", "B", "h", 'I', OrePrefixes.ingotTriple.get(aMaterial), 'B', + OrePrefixes.ingot.get(aMaterial) }); + } + } + } + case ingotQuintuple -> { + if (!aNoSmashing || aStretchy) { + // Bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + // Crafting recipes + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV && aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingotQuintuple, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "I", "B", "h", 'I', OrePrefixes.ingotQuadruple.get(aMaterial), 'B', + OrePrefixes.ingot.get(aMaterial) }); + } + } + } + case ingotHot -> { + if (aMaterial.mAutoGenerateVacuumFreezerRecipes + && GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) { + // Vacuum freezer recipes + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L)) + .duration(((int) Math.max(aMaterialMass * 3L, 1L)) * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + } + } + default -> {} + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java new file mode 100644 index 0000000000..6a132e2dba --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java @@ -0,0 +1,45 @@ +package gregtech.loaders.oreprocessing; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.objects.ItemData; +import gregtech.api.util.GT_OreDictUnificator; + +public class ProcessingItem implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingItem() { + OrePrefixes.item.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (GT_OreDictUnificator.getItemData(aStack) == null && !aOreDictName.equals("itemCertusQuartz") + && !aOreDictName.equals("itemNetherQuartz")) { + switch (aOreDictName) { + case "itemSilicon": + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Silicon, 3628800L)); + case "itemWheat": + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Wheat, 3628800L)); + case "itemManganese": + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Manganese, 3628800L)); + case "itemSalt": + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Salt, 3628800L)); + case "itemMagnesium": + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Magnesium, 3628800L)); + case "itemPhosphorite": + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.TricalciumPhosphate, 3628800L)); + case "itemSulfur": + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Sulfur, 3628800L)); + case "itemAluminum": + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Aluminium, 3628800L)); + case "itemSaltpeter": + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Saltpeter, 3628800L)); + case "itemUranium": + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Uranium, 3628800L)); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java new file mode 100644 index 0000000000..c3f73f7966 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java @@ -0,0 +1,96 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; + +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.Textures; +import gregtech.api.enums.TierEU; +import gregtech.api.interfaces.ITexture; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; + +@SuppressWarnings("RedundantLabeledSwitchRuleCodeBlock") +public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingLens() { + OrePrefixes.lens.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + switch (aMaterial.mName) { + case "Diamond", "Glass" -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L)) + .duration(1 * MINUTES) + .eut(TierEU.RECIPE_LV) + .addTo(latheRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) + .duration(2 * MINUTES) + .eut(16) + .addTo(latheRecipes); + } + case "ChromaticGlass" -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L)) + .duration(10 * MINUTES) + .eut(TierEU.RECIPE_UHV) + .addTo(compressorRecipes); + } + default -> { + if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder.itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)); + if (GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L) == null) { + recipeBuilder.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L)); + } else { + recipeBuilder.itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L)); + } + recipeBuilder.duration(1 * MINUTES) + .eut(TierEU.RECIPE_MV) + .addTo(latheRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L) != null) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder.itemInputs(GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L)); + if (GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L) == null) { + recipeBuilder.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L)); + } else { + recipeBuilder.itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L)); + } + recipeBuilder.duration(2 * MINUTES) + .eut(TierEU.RECIPE_LV) + .addTo(latheRecipes); + } + final ITexture lensCoverTexture = TextureFactory + .of(Textures.BlockIcons.OVERLAY_LENS, aMaterial.mRGBa, false); + GregTech_API.registerCover( + aStack, + TextureFactory.of(Textures.BlockIcons.MACHINE_CASINGS[2][0], lensCoverTexture), + new gregtech.common.covers.GT_Cover_Lens(aMaterial.mColor.mIndex, lensCoverTexture)); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java new file mode 100644 index 0000000000..737ef4682a --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java @@ -0,0 +1,384 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.extractorRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.pyrolyseRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.GT_Mod; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingLog() { + OrePrefixes.log.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aOreDictName.equals("logRubber")) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs( + ItemList.IC2_Resin.get(1L), + GT_ModHandler.getIC2Item("plantBall", 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)) + .outputChances(5000, 3750, 2500, 2500) + .fluidOutputs(Materials.Methane.getGas(60L)) + .duration(10 * SECONDS) + .eut(20) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L), ItemList.IC2_Resin.get(1L)) + .outputChances(10000, 3300) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } else { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(60L)) + .duration(10 * SECONDS) + .eut(20) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)) + .outputChances(10000, 8000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } + + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Wood, 2L), + gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "sLf", 'L', GT_Utility.copyAmount(1, aStack) }); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Wood, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)) + .duration(8 * SECONDS) + .eut(7) + .addTo(latheRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.FR_Stick.get(1L)) + .fluidInputs(Materials.SeedOil.getFluid(50L)) + .duration(16 * TICKS) + .eut(7) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(8, aStack), GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.FR_Casing_Impregnated.get(1L)) + .fluidInputs(Materials.SeedOil.getFluid(250L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_ModHandler.getModItem(Railcraft.ID, "cube", 1L, 8)) + .fluidInputs(Materials.Creosote.getFluid(750L)) + .duration(16 * TICKS) + .eut(TierEU.ULV) + .addTo(chemicalBathRecipes); + + short aMeta = (short) aStack.getItemDamage(); + + if (aMeta == Short.MAX_VALUE) { + if ((GT_Utility.areStacksEqual( + GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1, aStack), false, null), + new ItemStack(Items.coal, 1, 1)))) { + addPyrolyeOvenRecipes(aStack); + GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1, aStack)); + } + for (int i = 0; i < 32767; i++) { + if ((GT_Utility.areStacksEqual( + GT_ModHandler.getSmeltingOutput(new ItemStack(aStack.getItem(), 1, i), false, null), + new ItemStack(Items.coal, 1, 1)))) { + addPyrolyeOvenRecipes(aStack); + GT_ModHandler.removeFurnaceSmelting(new ItemStack(aStack.getItem(), 1, i)); + } + ItemStack tStack = GT_ModHandler.getRecipeOutput(new ItemStack(aStack.getItem(), 1, i)); + if (tStack == null) { + if (i >= 16) { + break; + } + } else { + ItemStack tPlanks = GT_Utility.copyOrNull(tStack); + if (tPlanks != null) { + tPlanks.stackSize = (tPlanks.stackSize * 3 / 2); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(aStack.getItem(), 1, i)) + .itemOutputs( + GT_Utility.copyOrNull(tPlanks), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)) + .fluidInputs(Materials.Lubricant.getFluid(1L)) + .duration(10 * SECONDS) + .eut(8) + .addTo(cutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(aStack.getItem(), 1, i)) + .itemOutputs( + GT_Utility.copyAmount( + GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, + tStack), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)) + .fluidInputs(Materials.Water.getFluid(Math.min(1000, 200 * 8 / 320))) + .duration(20 * SECONDS) + .eut(8) + .addTo(cutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(aStack.getItem(), 1, i)) + .itemOutputs( + GT_Utility.copyAmount( + GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, + tStack), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)) + .fluidInputs(GT_ModHandler.getDistilledWater(3)) + .duration(20 * SECONDS) + .eut(8) + .addTo(cutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(aStack.getItem(), 1, i)) + .itemOutputs( + GT_Utility.copyAmount( + GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, + tStack), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)) + .fluidInputs(Materials.Lubricant.getFluid(1)) + .duration(10 * SECONDS) + .eut(8) + .addTo(cutterRecipes); + GT_ModHandler.addSawmillRecipe( + new ItemStack(aStack.getItem(), 1, i), + tPlanks, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); + GT_ModHandler.removeRecipeDelayed(new ItemStack(aStack.getItem(), 1, i)); + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount( + GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, + tStack), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "s", "L", 'L', new ItemStack(aStack.getItem(), 1, i) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility + .copyAmount(tStack.stackSize / (GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 1), tStack), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { new ItemStack(aStack.getItem(), 1, i) }); + } + } + } + } else { + if ((GT_Utility.areStacksEqual( + GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1, aStack), false, null), + new ItemStack(Items.coal, 1, 1)))) { + addPyrolyeOvenRecipes(aStack); + GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1, aStack)); + } + ItemStack tStack = GT_ModHandler.getRecipeOutput(GT_Utility.copyAmount(1, aStack)); + if (tStack != null) { + ItemStack tPlanks = GT_Utility.copyOrNull(tStack); + if (tPlanks != null) { + tPlanks.stackSize = (tPlanks.stackSize * 3 / 2); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_Utility.copyOrNull(tPlanks), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)) + .fluidInputs(Materials.Lubricant.getFluid(1L)) + .duration(10 * SECONDS) + .eut(8) + .addTo(cutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_Utility.copyAmount( + GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, + tStack), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)) + .fluidInputs(Materials.Water.getFluid(Math.min(1000, 200 * 8 / 320))) + .duration(20 * SECONDS) + .eut(8) + .addTo(cutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_Utility.copyAmount( + GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, + tStack), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)) + .fluidInputs(GT_ModHandler.getDistilledWater(3)) + .duration(20 * SECONDS) + .eut(8) + .addTo(cutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_Utility.copyAmount( + GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, + tStack), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)) + .fluidInputs(Materials.Lubricant.getFluid(1)) + .duration(10 * SECONDS) + .eut(8) + .addTo(cutterRecipes); + GT_ModHandler.addSawmillRecipe( + GT_Utility.copyAmount(1, aStack), + tPlanks, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); + GT_ModHandler.removeRecipeDelayed(GT_Utility.copyAmount(1, aStack)); + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount( + GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, + tStack), + new Object[] { "s", "L", 'L', GT_Utility.copyAmount(1, aStack) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility + .copyAmount(tStack.stackSize / (GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 1), tStack), + new Object[] { GT_Utility.copyAmount(1, aStack) }); + } + } + } + + if ((GT_Utility.areStacksEqual( + GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1, aStack), false, null), + new ItemStack(Items.coal, 1, 1)))) { + addPyrolyeOvenRecipes(aStack); + GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1, aStack)); + } + } + + public static void addPyrolyeOvenRecipes(ItemStack logStack) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Charcoal.getGems(20)) + .fluidOutputs(Materials.Creosote.getFluid(4000)) + .duration(32 * SECONDS) + .eut(64) + .noOptimize() + .addTo(pyrolyseRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Charcoal.getGems(20)) + .fluidInputs(Materials.Nitrogen.getGas(1000)) + .fluidOutputs(Materials.Creosote.getFluid(4000)) + .duration(16 * SECONDS) + .eut(96) + .noOptimize() + .addTo(pyrolyseRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(Materials.Charcoal.getGems(20)) + .fluidOutputs(Materials.CharcoalByproducts.getGas(4000)) + .duration(32 * SECONDS) + .eut(64) + .noOptimize() + .addTo(pyrolyseRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(Materials.Charcoal.getGems(20)) + .fluidInputs(Materials.Nitrogen.getGas(1000)) + .fluidOutputs(Materials.CharcoalByproducts.getGas(4000)) + .duration(16 * SECONDS) + .eut(96) + .noOptimize() + .addTo(pyrolyseRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(Materials.Charcoal.getGems(20)) + .fluidOutputs(Materials.WoodGas.getGas(1500)) + .duration(32 * SECONDS) + .eut(64) + .noOptimize() + .addTo(pyrolyseRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(6)) + .itemOutputs(Materials.Charcoal.getGems(20)) + .fluidInputs(Materials.Nitrogen.getGas(1000)) + .fluidOutputs(Materials.WoodGas.getGas(1500)) + .duration(16 * SECONDS) + .eut(96) + .noOptimize() + .addTo(pyrolyseRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(7)) + .itemOutputs(Materials.Charcoal.getGems(20)) + .fluidOutputs(Materials.WoodVinegar.getFluid(3000)) + .duration(32 * SECONDS) + .eut(64) + .noOptimize() + .addTo(pyrolyseRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(Materials.Charcoal.getGems(20)) + .fluidInputs(Materials.Nitrogen.getGas(1000)) + .fluidOutputs(Materials.WoodVinegar.getFluid(3000)) + .duration(16 * SECONDS) + .eut(96) + .noOptimize() + .addTo(pyrolyseRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(Materials.Charcoal.getGems(20)) + .fluidOutputs(Materials.WoodTar.getFluid(1500)) + .duration(32 * SECONDS) + .eut(64) + .noOptimize() + .addTo(pyrolyseRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(Materials.Charcoal.getGems(20)) + .fluidInputs(Materials.Nitrogen.getGas(1000)) + .fluidOutputs(Materials.WoodTar.getFluid(1500)) + .duration(16 * SECONDS) + .eut(96) + .noOptimize() + .addTo(pyrolyseRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Ash.getDust(4)) + .fluidOutputs(Materials.OilHeavy.getFluid(200)) + .duration(16 * SECONDS) + .eut(192) + .noOptimize() + .addTo(pyrolyseRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java new file mode 100644 index 0000000000..8d7ca9e518 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java @@ -0,0 +1,89 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeCategories; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeRegistrator; +import gregtech.api.util.GT_Utility; + +public class ProcessingNugget implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingNugget() { + OrePrefixes.nugget.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + + if (aMaterial.contains(SubTag.SMELTING_TO_GEM) + && GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack), ItemList.Shape_Mold_Ball.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial.mSmeltInto, 1L)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 2)) + .addTo(alloySmelterRecipes); + } + + if ((!aMaterial.contains(SubTag.SMELTING_TO_GEM)) + && GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L) != null + && aMaterial != Materials.Aluminium) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack), ItemList.Shape_Mold_Ingot.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 2)) + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); + } + + if (aMaterial.mStandardMoltenFluid != null) { + if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Nugget.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(16L)) + .duration(16 * TICKS) + .eut(calculateRecipeEU(aMaterial, 4)) + .addTo(fluidSolidifierRecipes); + } + } + + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + GT_RecipeRegistrator + .registerReverseMacerating(aStack, aMaterial, aPrefix.mMaterialAmount, null, null, null, false); + if (!aMaterial.contains(SubTag.NO_SMELTING) + && GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), + ItemList.Shape_Mold_Nugget.get(0L)) + .itemOutputs(GT_Utility.copyAmount(9, aStack)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 1)) + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 8L), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "sI ", 'I', OrePrefixes.ingot.get(aMaterial) }); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java new file mode 100644 index 0000000000..945ffae386 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java @@ -0,0 +1,245 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; + +import java.util.ArrayList; + +import net.minecraft.item.ItemStack; + +import gregtech.GT_Mod; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistrator { + + private final ArrayList<Materials> mAlreadyListedOres = new ArrayList<>(1000); + + public ProcessingOre() { + for (OrePrefixes tPrefix : OrePrefixes.values()) if ((tPrefix.name() + .startsWith("ore")) && (tPrefix != OrePrefixes.orePoor) + && (tPrefix != OrePrefixes.oreSmall) + && (tPrefix != OrePrefixes.oreRich) + && (tPrefix != OrePrefixes.oreNormal)) tPrefix.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + boolean tIsRich = false; + + // For Sake of god of balance! + + // Dense ore + if (GT_Mod.gregtechproxy.mRichOreYieldMultiplier) { + tIsRich = (aPrefix == OrePrefixes.oreRich) || (aPrefix == OrePrefixes.oreDense); + } + // NetherOre + if (GT_Mod.gregtechproxy.mNetherOreYieldMultiplier && !tIsRich) { + tIsRich = (aPrefix == OrePrefixes.oreNetherrack) || (aPrefix == OrePrefixes.oreNether); + } + // EndOre + if (GT_Mod.gregtechproxy.mEndOreYieldMultiplier && !tIsRich) { + tIsRich = (aPrefix == OrePrefixes.oreEndstone) || (aPrefix == OrePrefixes.oreEnd); + } + + if (aMaterial == Materials.Oilsands) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(new ItemStack(net.minecraft.init.Blocks.sand, 1, 0)) + .outputChances(tIsRich ? 2000 : 4000) + .fluidOutputs(Materials.OilHeavy.getFluid(tIsRich ? 4000L : 2000L)) + .duration(tIsRich ? 30 * SECONDS : 15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(centrifugeRecipes); + } else { + registerStandardOreRecipes( + aPrefix, + aMaterial, + GT_Utility.copyAmount(1, aStack), + Math.max( + 1, + gregtech.api.GregTech_API.sOPStuff.get( + gregtech.api.enums.ConfigCategories.Materials.oreprocessingoutputmultiplier, + aMaterial.toString(), + 1)) + * (tIsRich ? 2 : 1)); + } + } + + private boolean registerStandardOreRecipes(OrePrefixes aPrefix, Materials aMaterial, ItemStack aOreStack, + int aMultiplier) { + if ((aOreStack == null) || (aMaterial == null)) return false; + GT_ModHandler + .addValuableOre(GT_Utility.getBlockFromStack(aOreStack), aOreStack.getItemDamage(), aMaterial.mOreValue); + Materials tMaterial = aMaterial.mOreReplacement; + Materials tPrimaryByMaterial = null; + aMultiplier = Math.max(1, aMultiplier); + aOreStack = GT_Utility.copyAmount(1, aOreStack); + aOreStack.stackSize = 1; + + ItemStack tIngot = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L); + ItemStack tGem = GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial, 1L); + ItemStack tSmeltInto = tIngot + == null + ? null + : aMaterial.contains(SubTag.SMELTING_TO_GEM) + ? GT_OreDictUnificator.get( + OrePrefixes.gem, + tMaterial.mDirectSmelting, + GT_OreDictUnificator.get( + OrePrefixes.crystal, + tMaterial.mDirectSmelting, + GT_OreDictUnificator.get( + OrePrefixes.gem, + tMaterial, + GT_OreDictUnificator.get(OrePrefixes.crystal, tMaterial, 1L), + 1L), + 1L), + 1L) + : tIngot; + + ItemStack tDust = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, tGem, 1L); + ItemStack tCleaned = GT_OreDictUnificator.get(OrePrefixes.crushedPurified, tMaterial, tDust, 1L); + ItemStack tCrushed = GT_OreDictUnificator + .get(OrePrefixes.crushed, tMaterial, (long) aMaterial.mOreMultiplier * aMultiplier); + ItemStack tPrimaryByProduct = null; + + if (tCrushed == null) { + tCrushed = GT_OreDictUnificator.get( + OrePrefixes.dustImpure, + tMaterial, + GT_Utility.copyAmount(aMaterial.mOreMultiplier * aMultiplier, tCleaned, tDust, tGem), + (long) aMaterial.mOreMultiplier * aMultiplier); + } + + for (Materials tMat : aMaterial.mOreByProducts) { + GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); + if (tPrimaryByProduct == null) { + tPrimaryByMaterial = tMat; + tPrimaryByProduct = GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); + if (GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L) == null) GT_OreDictUnificator + .get(OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); + } + GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); + if (GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L) == null) GT_OreDictUnificator + .get(OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); + } + + if (tPrimaryByMaterial == null) tPrimaryByMaterial = tMaterial; + if (tPrimaryByProduct == null) tPrimaryByProduct = tDust; + boolean tHasSmelting = false; + + if (tSmeltInto != null) { + if ((aMaterial.mBlastFurnaceRequired) || (aMaterial.mDirectSmelting.mBlastFurnaceRequired)) { + GT_ModHandler.removeFurnaceSmelting(aOreStack); + } else { + tHasSmelting = GT_ModHandler.addSmeltingRecipe( + aOreStack, + GT_Utility.copyAmount(aMultiplier * aMaterial.mSmeltingMultiplier, tSmeltInto)); + } + + if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_TRIPLE)) { + if (aMaterial.mAutoGenerateBlastFurnaceRecipes) { + GT_Values.RA.stdBuilder() + .itemInputs( + aOreStack, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, aMultiplier)) + .itemOutputs( + GT_Utility.mul(aMultiplier * 3 * aMaterial.mSmeltingMultiplier, tSmeltInto), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)) + .duration(tSmeltInto.stackSize * 25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1500) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + aOreStack, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quicklime, aMultiplier)) + .itemOutputs( + GT_Utility.mul(aMultiplier * 3 * aMaterial.mSmeltingMultiplier, tSmeltInto), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)) + .duration(tSmeltInto.stackSize * 25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1500) + .addTo(blastFurnaceRecipes); + } + } else if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_DOUBLE)) { + if (aMaterial.mAutoGenerateBlastFurnaceRecipes) { + GT_Values.RA.stdBuilder() + .itemInputs( + aOreStack, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, aMultiplier)) + .itemOutputs( + GT_Utility.mul(aMultiplier * 2 * aMaterial.mSmeltingMultiplier, tSmeltInto), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)) + .duration(tSmeltInto.stackSize * 25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1500) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + aOreStack, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quicklime, aMultiplier)) + .itemOutputs( + GT_Utility.mul(aMultiplier * 2 * aMaterial.mSmeltingMultiplier, tSmeltInto), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)) + .duration(tSmeltInto.stackSize * 25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1500) + .addTo(blastFurnaceRecipes); + } + } + } + + if (!tHasSmelting) { + GT_ModHandler.addSmeltingRecipe( + aOreStack, + GT_OreDictUnificator.get( + OrePrefixes.gem, + tMaterial.mDirectSmelting, + Math.max(1, aMultiplier * aMaterial.mSmeltingMultiplier / 2))); + } + + if (tCrushed != null) { + GT_Values.RA.stdBuilder() + .itemInputs(aOreStack) + .itemOutputs(GT_Utility.copy(GT_Utility.copyAmount(tCrushed.stackSize, tGem), tCrushed)) + .duration(10) + .eut(16) + .addTo(hammerRecipes); + + int chanceOre2 = tPrimaryByProduct == null ? 0 + : tPrimaryByProduct.stackSize * 10 * aMultiplier * aMaterial.mByProductMultiplier; + chanceOre2 = 100 * chanceOre2; // converting to the GT format, 100% is 10000 + GT_Values.RA.stdBuilder() + .itemInputs(aOreStack) + .itemOutputs( + GT_Utility.mul(2, tCrushed), + tMaterial.contains(SubTag.PULVERIZING_CINNABAR) ? GT_OreDictUnificator.get( + OrePrefixes.crystal, + Materials.Cinnabar, + GT_OreDictUnificator + .get(OrePrefixes.gem, tPrimaryByMaterial, GT_Utility.copyAmount(1, tPrimaryByProduct), 1L), + 1L) + : GT_OreDictUnificator + .get(OrePrefixes.gem, tPrimaryByMaterial, GT_Utility.copyAmount(1, tPrimaryByProduct), 1L), + GT_OreDictUnificator.getDust(aPrefix.mSecondaryMaterial)) + .outputChances(10000, chanceOre2, 5000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } + return true; + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java new file mode 100644 index 0000000000..ac9106d31b --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java @@ -0,0 +1,72 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingOrePoor implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingOrePoor() { + OrePrefixes.orePoor.add(this); + OrePrefixes.oreSmall.add(this); + OrePrefixes.oreNormal.add(this); + OrePrefixes.oreRich.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + int aMultiplier = 1; + switch (aPrefix) { + case oreSmall: + aMultiplier = 1; + break; + case orePoor: + aMultiplier = 2; + break; + case oreNormal: + aMultiplier = 3; + break; + case oreRich: + aMultiplier = 4; + default: + break; + } + if (aMaterial != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, aMultiplier)) + .duration(10) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 2 * aMultiplier), + GT_OreDictUnificator.get( + OrePrefixes.dustTiny, + GT_Utility.selectItemInList(0, aMaterial, aMaterial.mOreByProducts), + 1L), + GT_OreDictUnificator.getDust(aPrefix.mSecondaryMaterial)) + .outputChances(10000, 100 * 5 * aMultiplier, 10000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + if (aMaterial.contains(SubTag.NO_SMELTING)) GT_ModHandler.addSmeltingRecipe( + GT_Utility.copyAmount(1, aStack), + GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mDirectSmelting, aMultiplier)); + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java new file mode 100644 index 0000000000..93458ee467 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java @@ -0,0 +1,194 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.primitiveBlastRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.ADDITIVE_AMOUNT; +import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import gregtech.GT_Mod; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_Utility; + +public class ProcessingOreSmelting implements gregtech.api.interfaces.IOreRecipeRegistrator { + + private final OrePrefixes[] mSmeltingPrefixes = { OrePrefixes.crushed, OrePrefixes.crushedPurified, + OrePrefixes.crushedCentrifuged, OrePrefixes.dust, OrePrefixes.dustImpure, OrePrefixes.dustPure, + OrePrefixes.dustRefined }; + + public ProcessingOreSmelting() { + for (OrePrefixes tPrefix : this.mSmeltingPrefixes) tPrefix.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + GT_ModHandler.removeFurnaceSmelting(aStack); + if (!aMaterial.contains(SubTag.NO_SMELTING)) { + if ((aMaterial.mBlastFurnaceRequired) || (aMaterial.mDirectSmelting.mBlastFurnaceRequired)) { + if (aMaterial.mBlastFurnaceTemp < 1000 && aMaterial.mDirectSmelting.mBlastFurnaceTemp < 1000) + if (aMaterial.mAutoGenerateBlastFurnaceRecipes + && GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)); + if (aMaterial.mBlastFurnaceTemp > 1750) { + recipeBuilder.itemOutputs( + GT_OreDictUnificator.get( + OrePrefixes.ingotHot, + aMaterial, + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), + 1L)); + } else { + recipeBuilder.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L)); + } + recipeBuilder + .duration(Math.max(aMaterial.getMass() / 4L, 1L) * aMaterial.mBlastFurnaceTemp * TICKS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, (int) aMaterial.mBlastFurnaceTemp) + .addTo(blastFurnaceRecipes); + } + } else { + OrePrefixes outputPrefix; + int outputSize; + switch (aPrefix) { + case crushed: + case crushedPurified: + case crushedCentrifuged: + if (aMaterial.mDirectSmelting == aMaterial) { + outputSize = 10; + outputPrefix = OrePrefixes.nugget; + } else { + if (GT_Mod.gregtechproxy.mMixedOreOnlyYieldsTwoThirdsOfPureOre) { + outputSize = 6; + outputPrefix = OrePrefixes.nugget; + } else { + outputSize = 1; + outputPrefix = OrePrefixes.ingot; + } + } + break; + case dust: + int outputAmount = GT_Mod.gregtechproxy.mMixedOreOnlyYieldsTwoThirdsOfPureOre ? 2 : 3; + if (aMaterial.mDirectSmelting != aMaterial) { + if (!aMaterial.contains(SubTag.DONT_ADD_DEFAULT_BBF_RECIPE) + && aMaterial.mDirectSmelting.getIngots(1) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack)) + .itemOutputs(aMaterial.mDirectSmelting.getIngots(outputAmount)) + .duration(2 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 2) + .addTo(primitiveBlastRecipes); + } else if (aMaterial == Materials.Chalcopyrite) { + GT_Values.RA.stdBuilder() + .itemInputs(aMaterial.getDust(2), new ItemStack(Blocks.sand, 2)) + .itemOutputs( + aMaterial.mDirectSmelting.getIngots(outputAmount), + Materials.Ferrosilite.getDustSmall(2 * outputAmount)) + .duration(2 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 2) + .addTo(primitiveBlastRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(aMaterial.getDust(2), Materials.Glass.getDust(2)) + .itemOutputs( + aMaterial.mDirectSmelting.getIngots(outputAmount), + Materials.Ferrosilite.getDustSmall(7 * outputAmount)) + .duration(2 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 2) + .addTo(primitiveBlastRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(aMaterial.getDust(2), Materials.SiliconDioxide.getDust(2)) + .itemOutputs( + aMaterial.mDirectSmelting.getIngots(outputAmount), + Materials.Ferrosilite.getDustSmall(outputAmount)) + .duration(2 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 2) + .addTo(primitiveBlastRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(aMaterial.getDust(2), Materials.Quartzite.getDust(4)) + .itemOutputs( + aMaterial.mDirectSmelting.getIngots(outputAmount), + Materials.Ferrosilite.getDustSmall(outputAmount)) + .duration(2 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 2) + .addTo(primitiveBlastRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(aMaterial.getDust(2), Materials.NetherQuartz.getDust(2)) + .itemOutputs( + aMaterial.mDirectSmelting.getIngots(outputAmount), + Materials.Ferrosilite.getDustSmall(outputAmount)) + .duration(2 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 2) + .addTo(primitiveBlastRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(aMaterial.getDust(2), Materials.CertusQuartz.getDust(2)) + .itemOutputs( + aMaterial.mDirectSmelting.getIngots(outputAmount), + Materials.Ferrosilite.getDustSmall(outputAmount)) + .duration(2 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 2) + .addTo(primitiveBlastRecipes); + } else if (aMaterial == Materials.Tetrahedrite) { + GT_Values.RA.stdBuilder() + .itemInputs(aMaterial.getDust(2)) + .itemOutputs( + aMaterial.mDirectSmelting.getIngots(outputAmount), + Materials.Antimony.getNuggets(3 * outputAmount)) + .duration(2 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 2) + .addTo(primitiveBlastRecipes); + } else if (aMaterial == Materials.Galena) { + GT_Values.RA.stdBuilder() + .itemInputs(aMaterial.getDust(2)) + .itemOutputs( + aMaterial.mDirectSmelting.getIngots(outputAmount), + Materials.Silver.getNuggets(3 * outputAmount)) + .duration(2 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 2) + .addTo(primitiveBlastRecipes); + } + } + case dustImpure: + case dustPure: + case dustRefined: + if (aMaterial.mDirectSmelting == aMaterial) { + outputPrefix = OrePrefixes.ingot; + outputSize = 1; + } else { + if (GT_Mod.gregtechproxy.mMixedOreOnlyYieldsTwoThirdsOfPureOre) { + outputSize = 6; + outputPrefix = OrePrefixes.nugget; + } else { + outputSize = 1; + outputPrefix = OrePrefixes.ingot; + } + } + break; + default: + outputPrefix = OrePrefixes.ingot; + outputSize = 1; + break; + } + ItemStack tStack = GT_OreDictUnificator.get(outputPrefix, aMaterial.mDirectSmelting, outputSize); + if (tStack == null) tStack = GT_OreDictUnificator.get( + aMaterial.contains(SubTag.SMELTING_TO_GEM) ? OrePrefixes.gem : OrePrefixes.ingot, + aMaterial.mDirectSmelting, + 1L); + if ((tStack == null) && (!aMaterial.contains(SubTag.SMELTING_TO_GEM))) + tStack = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L); + GT_ModHandler.addSmeltingRecipe(aStack, tStack); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java new file mode 100644 index 0000000000..1f97e1e32a --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java @@ -0,0 +1,141 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.enums.ToolDictNames; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +@SuppressWarnings("RedundantLabeledSwitchRuleCodeBlock") +public class ProcessingPipe implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingPipe() { + OrePrefixes.pipeHuge.add(this); + OrePrefixes.pipeLarge.add(this); + OrePrefixes.pipeMedium.add(this); + OrePrefixes.pipeSmall.add(this); + OrePrefixes.pipeTiny.add(this); + OrePrefixes.pipeRestrictiveHuge.add(this); + OrePrefixes.pipeRestrictiveLarge.add(this); + OrePrefixes.pipeRestrictiveMedium.add(this); + OrePrefixes.pipeRestrictiveSmall.add(this); + OrePrefixes.pipeRestrictiveTiny.add(this); + OrePrefixes.pipeQuadruple.add(this); + OrePrefixes.pipeNonuple.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + switch (aPrefix) { + case pipeHuge, pipeLarge, pipeMedium, pipeSmall, pipeTiny -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial, 8L), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PPP", "h w", "PPP", 'P', OrePrefixes.plate.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial, 6L), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PWP", "P P", "PHP", 'P', + aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) + : OrePrefixes.plate.get(aMaterial), + 'H', + aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer + : ToolDictNames.craftingToolHardHammer, + 'W', aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw + : ToolDictNames.craftingToolWrench }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial, 2L), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PPP", "W H", "PPP", 'P', + aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) + : OrePrefixes.plate.get(aMaterial), + 'H', + aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer + : ToolDictNames.craftingToolHardHammer, + 'W', aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw + : ToolDictNames.craftingToolWrench }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial, 1L), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PHP", "P P", "PWP", 'P', + aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) + : OrePrefixes.plate.get(aMaterial), + 'H', + aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer + : ToolDictNames.craftingToolHardHammer, + 'W', aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw + : ToolDictNames.craftingToolWrench }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial, 1L), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "DhD", "D D", "DwD", 'D', OrePrefixes.plateDouble.get(aMaterial) }); + } + } + case pipeRestrictiveHuge, pipeRestrictiveLarge, pipeRestrictiveMedium, pipeRestrictiveSmall, pipeRestrictiveTiny -> { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get( + OrePrefixes.ring, + Materials.Steel, + aPrefix.mSecondaryMaterial.mAmount / OrePrefixes.ring.mMaterialAmount), + GT_OreDictUnificator.get(aOreDictName.replaceFirst("Restrictive", ""), null, 1L, false, true)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .duration( + ((int) (aPrefix.mSecondaryMaterial.mAmount * 400L / OrePrefixes.ring.mMaterialAmount)) * TICKS) + .eut(4) + .addTo(assemblerRecipes); + } + case pipeQuadruple -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, aMaterial, 1), + GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "MM ", "MM ", " ", 'M', + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial, 1) }); + } + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial, 4), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, aMaterial, 1)) + .duration(3 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 4)) + .addTo(assemblerRecipes); + } + case pipeNonuple -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PPP", "PPP", "PPP", 'P', GT_OreDictUnificator + .get(aOreDictName.replaceFirst("Nonuple", "Small"), null, 1L, false, true) }); + } + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial, 9), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, aMaterial, 1)) + .duration(3 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + } + default -> {} + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java new file mode 100644 index 0000000000..3b06babee6 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java @@ -0,0 +1,137 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingPlank() { + OrePrefixes.plank.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aOreDictName.startsWith("plankWood")) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L)) + .duration(10 * TICKS) + .eut(8) + .addTo(latheRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(1, aStack), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Iron, 1L)) + .itemOutputs(ItemList.Crate_Empty.get(1L)) + .duration(10 * SECONDS) + .eut(1) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(1, aStack), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.WroughtIron, 1L)) + .itemOutputs(ItemList.Crate_Empty.get(1L)) + .duration(10 * SECONDS) + .eut(1) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(1, aStack), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 1L)) + .itemOutputs(ItemList.Crate_Empty.get(1L)) + .duration(10 * SECONDS) + .eut(1) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(8, aStack), GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(new ItemStack(Blocks.chest, 1)) + .duration(40 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + if (aStack.getItemDamage() == 32767) { + for (byte i = 0; i < 64; i = (byte) (i + 1)) { + ItemStack tStack = GT_Utility.copyMetaData(i, aStack); + // Get Recipe and Output, add recipe to delayed removal + ItemStack tOutput = GT_ModHandler.getRecipeOutput(tStack, tStack, tStack); + if ((tOutput != null) && (tOutput.stackSize >= 3)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, tStack)) + .itemOutputs(GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput)) + .fluidInputs(Materials.Water.getFluid(4)) + .duration(2 * 25 * TICKS) + .eut(4) + .addTo(cutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, tStack)) + .itemOutputs(GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput)) + .fluidInputs(GT_ModHandler.getDistilledWater(3)) + .duration(2 * 25 * TICKS) + .eut(4) + .addTo(cutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, tStack)) + .itemOutputs(GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput)) + .fluidInputs(Materials.Lubricant.getFluid(1)) + .duration(25 * TICKS) + .eut(4) + .addTo(cutterRecipes); + GT_ModHandler.removeRecipeDelayed(tStack, tStack, tStack); + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "sP", 'P', tStack }); + } + if ((tStack == null) && (i >= 16)) break; + } + } else { + ItemStack tOutput = !aModName.equalsIgnoreCase("thaumcraft") + ? GT_ModHandler.getRecipeOutput(aStack, aStack, aStack) + : GT_ModHandler.getRecipeOutputNoOreDict(aStack, aStack, aStack); + if ((tOutput != null) && (tOutput.stackSize >= 3)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput)) + .fluidInputs(Materials.Water.getFluid(4)) + .duration(2 * 25) + .eut(4) + .addTo(cutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput)) + .fluidInputs(GT_ModHandler.getDistilledWater(3)) + .duration(2 * 25) + .eut(4) + .addTo(cutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput)) + .fluidInputs(Materials.Lubricant.getFluid(1)) + .duration(25) + .eut(4) + .addTo(cutterRecipes); + GT_ModHandler.removeRecipeDelayed(aStack, aStack, aStack); + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "sP", 'P', aStack }); + } + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java new file mode 100644 index 0000000000..be8322f30c --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java @@ -0,0 +1,604 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.enums.GT_Values.L; +import static gregtech.api.enums.GT_Values.NI; +import static gregtech.api.enums.GT_Values.W; +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.recipe.RecipeMaps.implosionRecipes; +import static gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED; +import static gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; +import static gregtech.common.GT_Proxy.tBits; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TextureSet; +import gregtech.api.enums.TierEU; +import gregtech.api.enums.ToolDictNames; +import gregtech.api.recipe.RecipeCategories; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeConstants; +import gregtech.api.util.GT_RecipeRegistrator; +import gregtech.api.util.GT_Utility; + +public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingPlate() { + OrePrefixes.plate.add(this); + OrePrefixes.plateDouble.add(this); + OrePrefixes.plateTriple.add(this); + OrePrefixes.plateQuadruple.add(this); + OrePrefixes.plateQuintuple.add(this); + OrePrefixes.plateDense.add(this); + OrePrefixes.plateAlloy.add(this); + OrePrefixes.itemCasing.add(this); + } + + /** + * Register processes for the {@link ItemStack} with Ore Dictionary Name Prefix "plate" + * + * @param aPrefix always != null, the {@link OrePrefixes} of the {@link ItemStack} + * @param aMaterial always != null, and can be == _NULL if the Prefix is Self Referencing or not Material based! + * the {@link Materials} of the {@link ItemStack} + * @param aOreDictName the Ore Dictionary Name {@link String} of the {@link ItemStack} + * @param aModName the ModID {@link String} of the mod providing this {@link ItemStack} + * @param aStack always != null, the {@link ItemStack} to register + */ + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + + final boolean aNoSmashing = aMaterial.contains(SubTag.NO_SMASHING); + final boolean aNoWorking = aMaterial.contains(SubTag.NO_WORKING); + final long aMaterialMass = aMaterial.getMass(); + + switch (aPrefix) { + case plate -> registerPlate(aMaterial, aStack, aNoSmashing); + case plateDouble -> registerPlateDouble(aMaterial, aStack, aNoSmashing, aMaterialMass); + case plateTriple -> registerPlateTriple(aMaterial, aStack, aNoSmashing, aMaterialMass); + case plateQuadruple -> registerPlateQuadruple(aMaterial, aStack, aNoSmashing, aMaterialMass, aNoWorking); + case plateQuintuple -> registerPlateQuintuple(aMaterial, aStack, aNoSmashing, aMaterialMass); + case plateDense -> registerPlateDense(aMaterial, aStack, aNoSmashing, aMaterialMass); + case itemCasing -> registerItemCasing(aPrefix, aMaterial, aStack, aNoSmashing); + case plateAlloy -> registerPlateAlloy(aOreDictName, aStack); + default -> {} + } + } + + private void registerPlate(final Materials aMaterial, final ItemStack aStack, final boolean aNoSmashing) { + + registerCover(aMaterial, aStack); + + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + GT_ModHandler.removeRecipeDelayed(aStack); + + GT_Utility.removeSimpleIC2MachineRecipe( + GT_Utility.copyAmount(9, aStack), + GT_ModHandler.getCompressorRecipeList(), + GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)); + + if (aMaterial.mFuelPower > 0) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .metadata(FUEL_VALUE, aMaterial.mFuelPower) + .metadata(FUEL_TYPE, aMaterial.mFuelType) + .addTo(GT_RecipeConstants.Fuel); + } + + if (aMaterial.mStandardMoltenFluid != null + && !(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Plate.get(0L)) + .itemOutputs(aMaterial.getPlates(1)) + .fluidInputs(aMaterial.getMolten(L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(fluidSolidifierRecipes); + } + + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, 2L), + tBits, // DO_NOT_CHECK_FOR_COLLISIONS|BUFFERED|ONLY_ADD_IF_RESULT_IS_NOT_NULL|NOT_REMOVABLE + new Object[] { "hX", 'X', OrePrefixes.plate.get(aMaterial) }); + + if (aMaterial == Materials.Paper) { + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(2, aStack), + BUFFERED, + new Object[] { "XXX", 'X', new ItemStack(Items.reeds, 1, W) }); + } + + if (aMaterial.mUnificatable && aMaterial.mMaterialInto == aMaterial) { + + if (!aNoSmashing) { + + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + aMaterial.getPlates(1), + tBits, // DO_NOT_CHECK_FOR_COLLISIONS|BUFFERED|ONLY_ADD_IF_RESULT_IS_NOT_NULL|NOT_REMOVABLE + new Object[] { "h", // craftingToolHardHammer + "X", "X", 'X', OrePrefixes.ingot.get(aMaterial) }); + + // Only added if IC2 Forge Hammer is enabled in Recipes.cfg: B:ic2forgehammer_true=false + GT_ModHandler.addCraftingRecipe( + aMaterial.getPlates(1), + tBits, // DO_NOT_CHECK_FOR_COLLISIONS|BUFFERED|ONLY_ADD_IF_RESULT_IS_NOT_NULL|NOT_REMOVABLE + new Object[] { "H", // craftingToolForgeHammer + "X", 'H', ToolDictNames.craftingToolForgeHammer, 'X', OrePrefixes.ingot.get(aMaterial) }); + + GT_ModHandler.addCraftingRecipe( + aMaterial.getPlates(1), + tBits, // DO_NOT_CHECK_FOR_COLLISIONS|BUFFERED|ONLY_ADD_IF_RESULT_IS_NOT_NULL|NOT_REMOVABLE + new Object[] { "h", // craftingToolHardHammer + "X", 'X', OrePrefixes.gem.get(aMaterial) }); + + // Only added if IC2 Forge Hammer is enabled in Recipes.cfg: B:ic2forgehammer_true=false + GT_ModHandler.addCraftingRecipe( + aMaterial.getPlates(1), + tBits, // DO_NOT_CHECK_FOR_COLLISIONS|BUFFERED|ONLY_ADD_IF_RESULT_IS_NOT_NULL|NOT_REMOVABLE + new Object[] { "H", // craftingToolForgeHammer + "X", 'H', ToolDictNames.craftingToolForgeHammer, 'X', OrePrefixes.gem.get(aMaterial) }); + } + } + + if (aMaterial.contains(SubTag.MORTAR_GRINDABLE)) { + + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addShapelessCraftingRecipe( + aMaterial.getDust(1), + tBits, // DO_NOT_CHECK_FOR_COLLISIONS|BUFFERED|ONLY_ADD_IF_RESULT_IS_NOT_NULL|NOT_REMOVABLE + new Object[] { ToolDictNames.craftingToolMortar, OrePrefixes.plate.get(aMaterial) }); + } + } + } + } + + private void registerPlateDouble(final Materials aMaterial, final ItemStack aStack, final boolean aNoSmashing, + final long aMaterialMass) { + + registerCover(aMaterial, aStack); + + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + + if (!aNoSmashing || aMaterial.contains(SubTag.STRETCHY)) { + // 2 double -> 1 quadruple plate + if (GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + // 2 plates -> 1 double plate + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } else { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .fluidInputs(Materials.Glue.getFluid(10L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + } + + if (!aNoSmashing) { + Object aPlateStack = OrePrefixes.plate.get(aMaterial); + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + DO_NOT_CHECK_FOR_COLLISIONS | BUFFERED, + new Object[] { "I", "B", "h", // craftingToolHardHammer + 'I', aPlateStack, 'B', aPlateStack }); + } + } + } + + private void registerPlateTriple(final Materials aMaterial, final ItemStack aStack, final boolean aNoSmashing, + final long aMaterialMass) { + + registerCover(aMaterial, aStack); + + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + + if (!aNoSmashing || aMaterial.contains(SubTag.STRETCHY)) { + if (GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L) != null) { + // 3 triple plates -> 1 dense plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) + .duration(Math.max(aMaterialMass * 3L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 3L), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .duration(Math.max(aMaterialMass * 3L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } else { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 3L), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .fluidInputs(Materials.Glue.getFluid(20L)) + .duration(4 * SECONDS + 16 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + } + + if (!aNoSmashing) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + Object aPlateStack = OrePrefixes.plate.get(aMaterial); + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + DO_NOT_CHECK_FOR_COLLISIONS | BUFFERED, + new Object[] { "I", "B", "h", // craftingToolHardHammer + 'I', OrePrefixes.plateDouble.get(aMaterial), 'B', aPlateStack }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + DO_NOT_CHECK_FOR_COLLISIONS | BUFFERED, + new Object[] { gregtech.api.enums.ToolDictNames.craftingToolForgeHammer, aPlateStack, aPlateStack, + aPlateStack }); + } + } + + if (GT_OreDictUnificator.get(OrePrefixes.compressed, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Block_Powderbarrel.get(4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.compressed, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_ModHandler.getIC2Item("dynamite", 1, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.compressed, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), new ItemStack(Blocks.tnt, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.compressed, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_ModHandler.getIC2Item("industrialTnt", 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.compressed, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + } + } + + private void registerPlateQuadruple(final Materials aMaterial, final ItemStack aStack, final boolean aNoSmashing, + final long aMaterialMass, final boolean aNoWorking) { + + registerCover(aMaterial, aStack); + + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + + if (!aNoSmashing || aMaterial.contains(SubTag.STRETCHY)) { + // Quadruple plate + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .duration(Math.max(aMaterialMass * 4L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } else { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .fluidInputs(Materials.Glue.getFluid(30L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + } + if (!aNoSmashing) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + Object aPlateStack = OrePrefixes.plate.get(aMaterial); + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + DO_NOT_CHECK_FOR_COLLISIONS | BUFFERED, + new Object[] { "I", "B", "h", // craftingToolHardHammer + 'I', OrePrefixes.plateTriple.get(aMaterial), 'B', aPlateStack }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + DO_NOT_CHECK_FOR_COLLISIONS | BUFFERED, + new Object[] { gregtech.api.enums.ToolDictNames.craftingToolForgeHammer, aPlateStack, aPlateStack, + aPlateStack, aPlateStack }); + } + } + } + + private void registerPlateQuintuple(final Materials aMaterial, final ItemStack aStack, final boolean aNoSmashing, + final long aMaterialMass) { + + registerCover(aMaterial, aStack); + + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + + if (!aNoSmashing || aMaterial.contains(SubTag.STRETCHY)) { + // quintuple plate + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 5L), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .duration(Math.max(aMaterialMass * 5L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } else { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 5L), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .fluidInputs(Materials.Glue.getFluid(40L)) + .duration(8 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + } + if (!aNoSmashing) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + Object aPlateStack = OrePrefixes.plate.get(aMaterial); + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + DO_NOT_CHECK_FOR_COLLISIONS | BUFFERED, + new Object[] { "I", "B", "h", // craftingToolHardHammer + 'I', OrePrefixes.plateQuadruple.get(aMaterial), 'B', aPlateStack }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + DO_NOT_CHECK_FOR_COLLISIONS | BUFFERED, + new Object[] { ToolDictNames.craftingToolForgeHammer, aPlateStack, aPlateStack, aPlateStack, + aPlateStack, aPlateStack }); + } + } + } + + private void registerPlateDense(final Materials aMaterial, final ItemStack aStack, final boolean aNoSmashing, + final long aMaterialMass) { + + registerCover(aMaterial, aStack); + + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + + if (!aNoSmashing || aMaterial.contains(SubTag.STRETCHY)) { + // Dense plate + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .duration(Math.max(aMaterialMass * 9L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(benderRecipes); + } + } + + private void registerItemCasing(final OrePrefixes aPrefix, final Materials aMaterial, final ItemStack aStack, + final boolean aNoSmashing) { + + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + + if (aMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Casing.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.itemCasing, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(L / 2)) + .duration(16 * TICKS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(fluidSolidifierRecipes); + } + + if (aMaterial.mUnificatable && aMaterial.mMaterialInto == aMaterial && !aNoSmashing) { + + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.itemCasing, aMaterial, 1L), + tBits, // DO_NOT_CHECK_FOR_COLLISIONS|BUFFERED|ONLY_ADD_IF_RESULT_IS_NOT_NULL|NOT_REMOVABLE + new Object[] { "h X", 'X', OrePrefixes.plate.get(aMaterial) }); + + // Only added if IC2 Forge Hammer is enabled in Recipes.cfg: B:ic2forgehammer_true=false + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.itemCasing, aMaterial, 1L), + tBits, // DO_NOT_CHECK_FOR_COLLISIONS|BUFFERED|ONLY_ADD_IF_RESULT_IS_NOT_NULL|NOT_REMOVABLE + new Object[] { "H X", 'H', ToolDictNames.craftingToolForgeHammer, 'X', + OrePrefixes.plate.get(aMaterial) }); + } + } + + if (GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 2L), + ItemList.Shape_Mold_Casing.get(0L)) + .itemOutputs(GT_Utility.copyAmount(3, aStack)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(calculateRecipeEU(aMaterial, 15)) + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), + ItemList.Shape_Extruder_Casing.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.itemCasing, aMaterial, 2L)) + .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 45)) + .addTo(extruderRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.itemCasing, aMaterial, 2L)) + .fluidInputs( + Materials.Water.getFluid( + Math.max( + 4, + Math.min( + 1000, + ((int) Math.max(aMaterial.getMass(), 1L)) * (calculateRecipeEU(aMaterial, 16)) / 320)))) + .duration(2 * ((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.itemCasing, aMaterial, 2L)) + .fluidInputs( + GT_ModHandler.getDistilledWater( + Math.max( + 3, + Math.min( + 750, + ((int) Math.max(aMaterial.getMass(), 1L)) * (calculateRecipeEU(aMaterial, 16)) / 426)))) + .duration(2 * ((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.itemCasing, aMaterial, 2L)) + .fluidInputs( + Materials.Lubricant.getFluid( + Math.max( + 1, + Math.min( + 250, + ((int) Math.max(aMaterial.getMass(), 1L)) * (calculateRecipeEU(aMaterial, 16)) + / 1280)))) + .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(cutterRecipes); + } + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + } + + private void registerPlateAlloy(final String aOreDictName, final ItemStack aStack) { + + switch (aOreDictName) { + case "plateAlloyCarbon" -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("generator", 1L), GT_Utility.copyAmount(4, aStack)) + .itemOutputs(GT_ModHandler.getIC2Item("windMill", 1L)) + .duration(5 * MINUTES + 20 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), new ItemStack(Blocks.glass, 3, W)) + .itemOutputs(GT_ModHandler.getIC2Item("reinforcedGlass", 4L)) + .duration(20 * SECONDS) + .eut(4) + .addTo(alloySmelterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), Materials.Glass.getDust(3)) + .itemOutputs(GT_ModHandler.getIC2Item("reinforcedGlass", 4L)) + .duration(20 * SECONDS) + .eut(4) + .addTo(alloySmelterRecipes); + } + case "plateAlloyAdvanced" -> { + GT_ModHandler.addAlloySmelterRecipe( + GT_Utility.copyAmount(1, aStack), + new ItemStack(Blocks.glass, 3, W), + GT_ModHandler.getIC2Item("reinforcedGlass", 4L), + 400, + 4, + false); + GT_ModHandler.addAlloySmelterRecipe( + GT_Utility.copyAmount(1, aStack), + Materials.Glass.getDust(3), + GT_ModHandler.getIC2Item("reinforcedGlass", 4L), + 400, + 4, + false); + } + case "plateAlloyIridium" -> + + // Remove IC2 Shaped recipe for Iridium Reinforced Plate + GT_ModHandler.removeRecipeByOutputDelayed(aStack); + default -> {} + } + } + + private void registerCover(final Materials aMaterial, final ItemStack aStack) { + + // Get ItemStack of Block matching Materials + ItemStack tStack = NI; + // Try different prefixes to use same smooth stones as older GT5U + for (OrePrefixes orePrefix : new OrePrefixes[] { OrePrefixes.block, OrePrefixes.block_, OrePrefixes.stoneSmooth, + OrePrefixes.stone }) { + if ((tStack = GT_OreDictUnificator.get(orePrefix, aMaterial, 1)) != NI) break; + } + + // Register the cover + GregTech_API.registerCover( + aStack, + // If there is an ItemStack of Block for Materials + tStack == NI ? + // Use Materials mRGBa dyed blocs/materialicons/MATERIALSET/block1 icons + TextureFactory.builder() + .addIcon(aMaterial.mIconSet.mTextures[TextureSet.INDEX_block1]) + .setRGBA(aMaterial.mRGBa) + .stdOrient() + .build() + : + // or copy Block texture + TextureFactory.of(Block.getBlockFromItem(tStack.getItem()), tStack.getItemDamage()), + null); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java new file mode 100644 index 0000000000..01262d32f4 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java @@ -0,0 +1,50 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingPure implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingPure() { + OrePrefixes.crushedPurified.add(this); + OrePrefixes.cleanGravel.add(this); + OrePrefixes.reduced.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L)) + .duration(10) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get( + OrePrefixes.dustPure, + aMaterial.mMacerateInto, + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), + 1L), + GT_OreDictUnificator.get( + OrePrefixes.dust, + GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), + 1L)) + .outputChances(10000, 1000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRawOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRawOre.java new file mode 100644 index 0000000000..5ece6f5315 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRawOre.java @@ -0,0 +1,219 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.enums.ToolDictNames; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingRawOre implements gregtech.api.interfaces.IOreRecipeRegistrator { + + private final OrePrefixes[] mRawOrePrefixes = { OrePrefixes.rawOre }; + + public ProcessingRawOre() { + for (OrePrefixes tPrefix : this.mRawOrePrefixes) tPrefix.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aMaterial == Materials.Oilsands) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(new ItemStack(net.minecraft.init.Blocks.sand, 1, 0)) + .outputChances(4000) + .fluidOutputs(Materials.OilHeavy.getFluid(2000L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(centrifugeRecipes); + } else { + registerStandardOreRecipes( + aPrefix, + aMaterial, + GT_Utility.copyAmount(1, aStack), + Math.max( + 1, + gregtech.api.GregTech_API.sOPStuff.get( + gregtech.api.enums.ConfigCategories.Materials.oreprocessingoutputmultiplier, + aMaterial.toString(), + 1))); + } + } + + private boolean registerStandardOreRecipes(OrePrefixes aPrefix, Materials aMaterial, ItemStack aOreStack, + int aMultiplier) { + if ((aOreStack == null) || (aMaterial == null)) return false; + GT_ModHandler + .addValuableOre(GT_Utility.getBlockFromStack(aOreStack), aOreStack.getItemDamage(), aMaterial.mOreValue); + Materials tMaterial = aMaterial.mOreReplacement; + Materials tPrimaryByMaterial = null; + aMultiplier = Math.max(1, aMultiplier); + aOreStack = GT_Utility.copyAmount(1, aOreStack); + aOreStack.stackSize = 1; + ItemStack tIngot = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L); + ItemStack tGem = GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial, 1L); + ItemStack tSmeltInto = tIngot + == null + ? null + : aMaterial.contains(SubTag.SMELTING_TO_GEM) + ? GT_OreDictUnificator.get( + OrePrefixes.gem, + tMaterial.mDirectSmelting, + GT_OreDictUnificator.get( + OrePrefixes.crystal, + tMaterial.mDirectSmelting, + GT_OreDictUnificator.get( + OrePrefixes.gem, + tMaterial, + GT_OreDictUnificator.get(OrePrefixes.crystal, tMaterial, 1L), + 1L), + 1L), + 1L) + : tIngot; + ItemStack tDust = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, tGem, 1L); + ItemStack tCleaned = GT_OreDictUnificator.get(OrePrefixes.crushedPurified, tMaterial, tDust, 1L); + ItemStack tCrushed = GT_OreDictUnificator.get(OrePrefixes.crushed, tMaterial, (long) aMaterial.mOreMultiplier); + ItemStack tPrimaryByProduct = null; + + if (tCrushed == null) { + tCrushed = GT_OreDictUnificator.get( + OrePrefixes.dustImpure, + tMaterial, + GT_Utility.copyAmount(aMaterial.mOreMultiplier, tCleaned, tDust, tGem), + (long) aMaterial.mOreMultiplier); + } + + for (Materials tMat : aMaterial.mOreByProducts) { + GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); + if (tPrimaryByProduct == null) { + tPrimaryByMaterial = tMat; + tPrimaryByProduct = GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); + if (GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L) == null) GT_OreDictUnificator + .get(OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); + } + GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); + if (GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L) == null) GT_OreDictUnificator + .get(OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); + } + + if (tPrimaryByMaterial == null) tPrimaryByMaterial = tMaterial; + if (tPrimaryByProduct == null) tPrimaryByProduct = tDust; + boolean tHasSmelting = false; + + if (tSmeltInto != null) { + if ((aMaterial.mBlastFurnaceRequired) || (aMaterial.mDirectSmelting.mBlastFurnaceRequired)) { + GT_ModHandler.removeFurnaceSmelting(aOreStack); + } else { + tHasSmelting = GT_ModHandler + .addSmeltingRecipe(aOreStack, GT_Utility.copyAmount(aMaterial.mSmeltingMultiplier, tSmeltInto)); + } + + if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_TRIPLE)) { + if (aMaterial.mAutoGenerateBlastFurnaceRecipes) { + GT_Values.RA.stdBuilder() + .itemInputs( + aOreStack, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, aMultiplier)) + .itemOutputs( + GT_Utility.mul(3 * aMaterial.mSmeltingMultiplier, tSmeltInto), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)) + .duration(tSmeltInto.stackSize * 25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1500) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + aOreStack, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quicklime, aMultiplier)) + .itemOutputs( + GT_Utility.mul(3 * aMaterial.mSmeltingMultiplier, tSmeltInto), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)) + .duration(tSmeltInto.stackSize * 25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1500) + .addTo(blastFurnaceRecipes); + } + } else if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_DOUBLE)) { + if (aMaterial.mAutoGenerateBlastFurnaceRecipes) { + GT_Values.RA.stdBuilder() + .itemInputs( + aOreStack, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, aMultiplier)) + .itemOutputs( + GT_Utility.mul(2 * aMaterial.mSmeltingMultiplier, tSmeltInto), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)) + .duration(tSmeltInto.stackSize * 25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1500) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + aOreStack, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quicklime, aMultiplier)) + .itemOutputs( + GT_Utility.mul(2 * aMaterial.mSmeltingMultiplier, tSmeltInto), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)) + .duration(tSmeltInto.stackSize * 25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1500) + .addTo(blastFurnaceRecipes); + } + } + } + + if (!tHasSmelting) { + GT_ModHandler.addSmeltingRecipe( + aOreStack, + GT_OreDictUnificator + .get(OrePrefixes.gem, tMaterial.mDirectSmelting, Math.max(1, aMaterial.mSmeltingMultiplier / 2))); + } + + if (tCrushed != null) { + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.mul(1, tCrushed), + new Object[] { aOreStack, ToolDictNames.craftingToolHardHammer }); + + GT_Values.RA.stdBuilder() + .itemInputs(aOreStack) + .itemOutputs(GT_Utility.copy(GT_Utility.copyAmount(tCrushed.stackSize, tGem), tCrushed)) + .duration(10) + .eut(16) + .addTo(hammerRecipes); + + int chanceOre2 = tPrimaryByProduct == null ? 0 + : tPrimaryByProduct.stackSize * 5 * aMaterial.mByProductMultiplier; + chanceOre2 = 100 * chanceOre2; // converting to the GT format, 100% is 10000 + GT_Values.RA.stdBuilder() + .itemInputs(aOreStack) + .itemOutputs( + GT_Utility.mul(2, tCrushed), + tMaterial.contains(SubTag.PULVERIZING_CINNABAR) ? GT_OreDictUnificator.get( + OrePrefixes.crystal, + Materials.Cinnabar, + GT_OreDictUnificator + .get(OrePrefixes.gem, tPrimaryByMaterial, GT_Utility.copyAmount(1, tPrimaryByProduct), 1L), + 1L) + : GT_OreDictUnificator + .get(OrePrefixes.gem, tPrimaryByMaterial, GT_Utility.copyAmount(1, tPrimaryByProduct), 1L), + GT_OreDictUnificator.getDust(aPrefix.mSecondaryMaterial)) + .outputChances(10000, chanceOre2, 5000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } + return true; + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java new file mode 100644 index 0000000000..bfa580b4c4 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java @@ -0,0 +1,45 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_Utility; + +public class ProcessingRecycling implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingRecycling() { + for (OrePrefixes tPrefix : OrePrefixes.values()) + if ((tPrefix.mIsMaterialBased) && (tPrefix.mMaterialAmount > 0L) && (tPrefix.mIsContainer)) + tPrefix.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if ((aMaterial != Materials.Empty) && (GT_Utility.getFluidForFilledItem(aStack, true) == null) + && !aMaterial.contains(SubTag.SMELTING_TO_FLUID) + && (GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L) != null)) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder.itemInputs(aStack); + if (GT_Utility.getContainerItem(aStack, true) == null) { + recipeBuilder.itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L)); + } else { + recipeBuilder.itemOutputs( + GT_Utility.getContainerItem(aStack, true), + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L)); + } + recipeBuilder.duration(((int) Math.max(aMaterial.getMass() / 2L, 1L)) * TICKS) + .eut(2) + .addTo(cannerRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRotor.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRotor.java new file mode 100644 index 0000000000..3548bd437b --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRotor.java @@ -0,0 +1,97 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingRotor implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingRotor() { + OrePrefixes.rotor.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_WORKING)) { + ItemStack tPlate = GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L); + ItemStack tRing = GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L); + if (GT_Utility.isStackValid(tPlate) && GT_Utility.isStackValid(tRing)) { + + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "PhP", "SRf", "PdP", 'P', + aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) + : OrePrefixes.plate.get(aMaterial), + 'R', OrePrefixes.ring.get(aMaterial), 'S', OrePrefixes.screw.get(aMaterial) }); + } + + GT_Values.RA.stdBuilder() + .itemInputs(tPlate.copy(), tRing.copy(), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L)) + .fluidInputs(Materials.Tin.getMolten(32)) + .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(tPlate.copy(), tRing.copy(), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L)) + .fluidInputs(Materials.Lead.getMolten(48)) + .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(tPlate.copy(), tRing.copy(), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L)) + .fluidInputs(Materials.SolderingAlloy.getMolten(16)) + .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(assemblerRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 5L), + ItemList.Shape_Extruder_Rotor.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L)) + .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(extruderRecipes); + } + if (aMaterial.mStandardMoltenFluid != null) { + if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Rotor.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(612L)) + .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(fluidSolidifierRecipes); + } + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java new file mode 100644 index 0000000000..0eb2cb3dd0 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java @@ -0,0 +1,52 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.item.ItemStack; + +import appeng.core.Api; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingRound implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingRound() { + OrePrefixes.round.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (!aMaterial.contains(SubTag.NO_WORKING)) { + if (GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 1L)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .duration(((int) Math.max(aMaterial.getMass() / 4L, 1L)) * TICKS) + .eut(8) + .addTo(latheRecipes); + } + + if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "fX", "Xh", 'X', OrePrefixes.nugget.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 4L), + GT_Proxy.tBits, + new Object[] { "fXh", 'X', OrePrefixes.ingot.get(aMaterial) }); + } + } + Api.INSTANCE.registries() + .matterCannon() + .registerAmmo(GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L), aMaterial.getMass()); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java new file mode 100644 index 0000000000..b1996d067f --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java @@ -0,0 +1,36 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingSand implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingSand() { + OrePrefixes.sand.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aOreDictName.equals("sandOil")) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Cell_Empty.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 1L), + new ItemStack(Blocks.sand, 1, 0)) + .duration(50 * SECONDS) + .eut(5) + .addTo(centrifugeRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java new file mode 100644 index 0000000000..f13c2aa9b5 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java @@ -0,0 +1,50 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingSaplings implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingSaplings() { + OrePrefixes.treeSapling.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(8, aStack)) + .itemOutputs(ItemList.IC2_Plantball.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Wood, 1L)) + .duration(16 * TICKS) + .eut(8) + .addTo(latheRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java new file mode 100644 index 0000000000..afafe8525d --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java @@ -0,0 +1,46 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingScrew implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingScrew() { + OrePrefixes.screw.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (!aMaterial.contains(SubTag.NO_WORKING)) { + if (GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .duration(((int) Math.max(aMaterial.getMass() / 8L, 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 4)) + .addTo(latheRecipes); + } + if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "fX", "X ", 'X', OrePrefixes.bolt.get(aMaterial) }); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java new file mode 100644 index 0000000000..5493aa9b8e --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java @@ -0,0 +1,620 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeCategories; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +@SuppressWarnings("RedundantLabeledSwitchRuleCodeBlock") +public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingShaping() { + OrePrefixes.ingot.add(this); + OrePrefixes.dust.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (((aMaterial == Materials.Glass) || (GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null)) + && (!aMaterial.contains(SubTag.NO_SMELTING))) { + long aMaterialMass = aMaterial.getMass(); + int tAmount = (int) (aPrefix.mMaterialAmount / 3628800L); + if ((tAmount > 0) && (tAmount <= 64) && (aPrefix.mMaterialAmount % 3628800L == 0L)) { + int tVoltageMultiplier = aMaterial.mBlastFurnaceTemp >= 2800 ? 60 : 15; + int tTrueVoltage = aMaterial.getProcessingMaterialTierEU(); + + if (aMaterial.contains(SubTag.NO_SMASHING)) { + tVoltageMultiplier /= 4; + } else if (aPrefix.name() + .startsWith(OrePrefixes.dust.name())) { + return; + } + + if (!OrePrefixes.block.isIgnored(aMaterial.mSmeltInto) + && (GT_OreDictUnificator.get(OrePrefixes.block, aMaterial.mSmeltInto, 1L) != null) + && aMaterial != Materials.Ichorium) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack), ItemList.Shape_Extruder_Block.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial.mSmeltInto, tAmount)) + .duration((10 * tAmount) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + + // Allow creation of alloy smelter recipes for material recycling if < IV tier. + if (tTrueVoltage < TierEU.IV) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, aStack), ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial.mSmeltInto, tAmount)) + .duration((5 * tAmount) * TICKS) + .eut(calculateRecipeEU(aMaterial, 4 * tVoltageMultiplier)) + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); + } + } + if ((aPrefix != OrePrefixes.ingot || aMaterial != aMaterial.mSmeltInto) + && GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Ingot.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, tAmount)) + .duration(10 * TICKS) + .eut(calculateRecipeEU(aMaterial, 4 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Pipe_Tiny.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial.mSmeltInto, tAmount * 2)) + .duration((4 * tAmount) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Pipe_Small.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial.mSmeltInto, tAmount)) + .duration((8 * tAmount) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), ItemList.Shape_Extruder_Pipe_Medium.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial.mSmeltInto, tAmount)) + .duration((24 * tAmount) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(6, aStack), ItemList.Shape_Extruder_Pipe_Large.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial.mSmeltInto, tAmount)) + .duration((48 * tAmount) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(12, aStack), ItemList.Shape_Extruder_Pipe_Huge.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial.mSmeltInto, tAmount)) + .duration((96 * tAmount) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Plate.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Small_Gear.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(6, aStack), ItemList.Shape_Extruder_Turbine_Blade.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + + if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + if (aMaterial.mStandardMoltenFluid != null) { + if (GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ring.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(36L)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 4 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Screw.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(18L)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Rod.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(72L)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Bolt.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(18L)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Round.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(18L)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Rod_Long.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(144L)) + .duration(15 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Turbine_Blade.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(864L)) + .duration(20 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Pipe_Tiny.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(72L)) + .duration(1 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Pipe_Small.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(144L)) + .duration(2 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Pipe_Medium.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(432L)) + .duration(4 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Pipe_Large.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(864L)) + .duration(8 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Pipe_Huge.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(1728L)) + .duration(16 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(fluidSolidifierRecipes); + } + } + } + if (tAmount * 2 <= 64 && aMaterial != Materials.Obsidian) { + if (!(aMaterial == Materials.Aluminium)) { + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Rod.get(0L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mSmeltInto, tAmount * 2)) + .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 6 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + } else { + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Rod.get(0L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mSmeltInto, tAmount * 2)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + } + } + if (tAmount * 2 <= 64) { + if (GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Wire.get(0L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial.mSmeltInto, tAmount * 2)) + .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 6 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + } + if (tAmount * 8 <= 64) { + if (GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Bolt.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial.mSmeltInto, tAmount * 8)) + .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + } + if (tAmount * 4 <= 64) { + if (GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Ring.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial.mSmeltInto, tAmount * 4)) + .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 6 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_SMASHING)) { + // If material tier < IV then add manual recipe. + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV + && GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L) != null) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "h ", "fX", 'X', OrePrefixes.stick.get(aMaterial) }); + } + } + } + + if (GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Extruder_Sword.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), ItemList.Shape_Extruder_Pickaxe.get(0L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 3L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Shovel.get(0L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 1L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), ItemList.Shape_Extruder_Axe.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 3L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Extruder_Hoe.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(6, aStack), ItemList.Shape_Extruder_Hammer.get(0L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 6L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.toolHeadFile, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Extruder_File.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadFile, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Extruder_Saw.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), ItemList.Shape_Extruder_Gear.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 5L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) + .addTo(extruderRecipes); + } + + if (!(aMaterial == Materials.StyreneButadieneRubber || aMaterial == Materials.Silicone)) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Mold_Plate.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); + } + } + } else { + // If tier < IV then add ability to turn ingots into plates via alloy smelter. + if (tTrueVoltage < TierEU.IV) { + if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Mold_Plate.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); + } + } + } + + // If tier < IV then add ability to turn ingots into gears via alloy smelter. + if (tTrueVoltage < TierEU.IV) { + if (GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(8, aStack), ItemList.Shape_Mold_Gear.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, tAmount)) + .duration(((int) Math.max(aMaterialMass * 10L * tAmount, tAmount)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); + } + } + + switch (aMaterial.mSmeltInto.mName) { + case "Glass" -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Bottle.get(0L)) + .itemOutputs(new ItemStack(Items.glass_bottle, 1)) + .duration((tAmount * 32) * TICKS) + .eut(16) + .addTo(extruderRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Mold_Bottle.get(0L)) + .itemOutputs(new ItemStack(Items.glass_bottle, 1)) + .duration((tAmount * 64) * TICKS) + .eut(4) + .addTo(alloySmelterRecipes); + } + case "Steel" -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Cell.get(0L)) + .itemOutputs(ItemList.Cell_Empty.get(tAmount)) + .duration((tAmount * 128) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(extruderRecipes); + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casingadviron", tAmount * 2)) + .duration((tAmount * 32) * TICKS) + .eut(3 * tVoltageMultiplier) + .addTo(extruderRecipes); + } + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Mold_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casingadviron", tAmount * 3)) + .duration((tAmount * 128) * TICKS) + .eut(1 * tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } + } + case "Iron", "WroughtIron" -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Cell.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("fuelRod", tAmount)) + .duration((tAmount * 128) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(extruderRecipes); + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casingiron", tAmount * 2)) + .duration((tAmount * 32) * TICKS) + .eut(3 * tVoltageMultiplier) + .addTo(extruderRecipes); + } + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Mold_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casingiron", tAmount * 3)) + .duration((tAmount * 128) * TICKS) + .eut(1 * tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } + if (tAmount * 31 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(31, aStack), ItemList.Shape_Mold_Anvil.get(0L)) + .itemOutputs(new ItemStack(Blocks.anvil, 1, 0)) + .duration((tAmount * 512) * TICKS) + .eut(4 * tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } + } + case "Tin" -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Extruder_Cell.get(0L)) + .itemOutputs(ItemList.Cell_Empty.get(tAmount)) + .duration((tAmount * 128) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(extruderRecipes); + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casingtin", tAmount * 2)) + .duration((tAmount * 32) * TICKS) + .eut(3 * tVoltageMultiplier) + .addTo(extruderRecipes); + } + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Mold_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casingtin", tAmount * 3)) + .duration((tAmount * 128) * TICKS) + .eut(1 * tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } + } + case "Lead" -> { + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casinglead", tAmount * 2)) + .duration((tAmount * 32) * TICKS) + .eut(3 * tVoltageMultiplier) + .addTo(extruderRecipes); + } + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Mold_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casinglead", tAmount * 3)) + .duration((tAmount * 128) * TICKS) + .eut(1 * tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } + } + case "Copper", "AnnealedCopper" -> { + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casingcopper", tAmount * 2)) + .duration((tAmount * 32) * TICKS) + .eut(3 * tVoltageMultiplier) + .addTo(extruderRecipes); + } + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Mold_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casingcopper", tAmount * 3)) + .duration((tAmount * 128) * TICKS) + .eut(1 * tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } + } + case "Bronze" -> { + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casingbronze", tAmount * 2)) + .duration((tAmount * 32) * TICKS) + .eut(3 * tVoltageMultiplier) + .addTo(extruderRecipes); + } + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Mold_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casingbronze", tAmount * 3)) + .duration((tAmount * 128) * TICKS) + .eut(1 * tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } + } + case "Gold" -> { + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casinggold", tAmount * 2)) + .duration((tAmount * 32) * TICKS) + .eut(3 * tVoltageMultiplier) + .addTo(extruderRecipes); + } + if (tAmount * 2 <= 64) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), ItemList.Shape_Mold_Casing.get(0L)) + .itemOutputs(GT_ModHandler.getIC2Item("casinggold", tAmount * 3)) + .duration((tAmount * 128) * TICKS) + .eut(1 * tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } + } + case "Polytetrafluoroethylene" -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Cell.get(0L)) + .itemOutputs(ItemList.Cell_Empty.get(tAmount * 4)) + .duration((tAmount * 128) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(extruderRecipes); + } + } + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java new file mode 100644 index 0000000000..35947755d3 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java @@ -0,0 +1,36 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_Utility; + +public class ProcessingSlab implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingSlab() { + OrePrefixes.slab.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aOreDictName.startsWith("slabWood")) { + if (Railcraft.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack)) + .itemOutputs(ItemList.RC_Tie_Wood.get(3L)) + .fluidInputs(Materials.Creosote.getFluid(300L)) + .duration(10 * SECONDS) + .eut(4) + .addTo(chemicalBathRecipes); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java new file mode 100644 index 0000000000..e5aac7bfe7 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java @@ -0,0 +1,141 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingStick() { + OrePrefixes.stick.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 1L), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { " s ", "fPx", 'P', OrePrefixes.stick.get(aMaterial) }); + } + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) { + + if ((aMaterial.contains(SubTag.CRYSTAL) ? GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L) + : GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L)) != null + && GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial.mMacerateInto, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + aMaterial.contains(SubTag.CRYSTAL) ? GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L) + : GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial.mMacerateInto, 2L)) + .duration(((int) Math.max(aMaterial.getMass() * 5L, 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(latheRecipes); + } + + if (GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L) != null) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 4L)) + .fluidInputs( + Materials.Water.getFluid( + Math.max( + 4, + Math.min( + 1000, + 2 * ((int) Math.max(aMaterial.getMass() * 2L, 1L)) + * calculateRecipeEU(aMaterial, 4) + / 320)))) + .duration(2 * ((int) Math.max(aMaterial.getMass() * 2L, 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 4)) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 4L)) + .fluidInputs( + GT_ModHandler.getDistilledWater( + Math.max( + 3, + Math.min( + 750, + 2 * ((int) Math.max(aMaterial.getMass() * 2L, 1L)) + * calculateRecipeEU(aMaterial, 4) + / 426)))) + .duration(2 * ((int) Math.max(aMaterial.getMass() * 2L, 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 4)) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 4L)) + .fluidInputs( + Materials.Lubricant.getFluid( + Math.max( + 1, + Math.min( + 250, + ((int) Math.max(aMaterial.getMass() * 2L, 1L)) * calculateRecipeEU(aMaterial, 4) + / 1280)))) + .duration(((int) Math.max(aMaterial.getMass() * 2L, 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 4)) + .addTo(cutterRecipes); + } + + if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "s", "X", 'X', OrePrefixes.stickLong.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "f ", " X", 'X', OrePrefixes.ingot.get(aMaterial) }); + } + } + } + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { + // bender recipe + { + if (GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(benderRecipes); + } + } + + if (GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L)) + .duration(Math.max(aMaterial.getMass(), 1L)) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(hammerRecipes); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java new file mode 100644 index 0000000000..1f00300264 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java @@ -0,0 +1,120 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingStickLong implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingStickLong() { + OrePrefixes.stickLong.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.spring, aMaterial, 1L), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { " s ", "fSx", " S ", 'S', OrePrefixes.stickLong.get(aMaterial) }); + } + if (!aMaterial.contains(SubTag.NO_WORKING)) { + + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 2L)) + .fluidInputs( + Materials.Water.getFluid( + Math.max( + 4, + Math.min( + 1000, + ((int) Math.max(aMaterial.getMass(), 1L)) * calculateRecipeEU(aMaterial, 4) + / 320)))) + .duration(2 * ((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 4)) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 2L)) + .fluidInputs( + GT_ModHandler.getDistilledWater( + Math.max( + 3, + Math.min( + 750, + ((int) Math.max(aMaterial.getMass(), 1L)) * calculateRecipeEU(aMaterial, 4) + / 426)))) + .duration(2 * ((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 4)) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 2L)) + .fluidInputs( + Materials.Lubricant.getFluid( + Math.max( + 1, + Math.min( + 250, + ((int) Math.max(aMaterial.getMass(), 1L)) * calculateRecipeEU(aMaterial, 4) + / 1280)))) + .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 4)) + .addTo(cutterRecipes); + } + + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "sf", "G ", 'G', OrePrefixes.gemFlawless.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "sf", "G ", 'G', OrePrefixes.gemExquisite.get(aMaterial) }); + } + } + } + if (!aMaterial.contains(SubTag.NO_SMASHING)) { + // Bender recipes + { + if (GT_OreDictUnificator.get(OrePrefixes.spring, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.spring, aMaterial, 1L)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(benderRecipes); + } + } + + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "ShS", 'S', OrePrefixes.stick.get(aMaterial) }); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java new file mode 100644 index 0000000000..840f49b4dd --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java @@ -0,0 +1,348 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.interfaces.IOreRecipeRegistrator; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingStone implements IOreRecipeRegistrator { + + public ProcessingStone() { + OrePrefixes.stone.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + Block aBlock = GT_Utility.getBlockFromStack(aStack); + switch (aMaterial.mName) { + case "NULL": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3, aStack), new ItemStack(Blocks.redstone_torch, 2)) + .itemOutputs(new ItemStack(Items.repeater, 1)) + .fluidInputs(Materials.Redstone.getMolten(144L)) + .duration(5 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + break; + case "Sand": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(new ItemStack(Blocks.sand, 1, 0)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Endstone": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustImpure, Materials.Endstone, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungstate, 1L)) + .outputChances(10000, 500) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Netherrack": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustImpure, Materials.Netherrack, 1L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L)) + .outputChances(10000, 500) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "NetherBrick": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Blocks.nether_brick_fence, 1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + break; + case "Obsidian": + if (aBlock != Blocks.air) aBlock.setResistance(20.0F); + break; + case "Concrete": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, 200 * 30 / 320)))) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, 200 * 30 / 426)))) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, 100 * 30 / 1280)))) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Rhyolite": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PotassiumFeldspar, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartz, 1L)) + .outputChances(10000, 2000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Komatiite": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Biotite, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium, 1L)) + .outputChances(10000, 500) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Dacite": + case "Andesite": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L)) + .outputChances(10000, 2000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Gabbro": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PotassiumFeldspar, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Pyrite, 1L)) + .outputChances(10000, 2000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Eclogite": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Rutile, 1L)) + .outputChances(10000, 1000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Soapstone": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustImpure, Materials.Talc, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Chromite, 1L)) + .outputChances(10000, 1000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Greenschist": + case "Blueschist": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Glauconite, 2L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Basalt, 1L)) + .outputChances(10000, 1000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Gneiss": + case "Migmatite": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustImpure, Materials.GraniteBlack, 1L)) + .outputChances(10000, 5000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Redrock": + case "Marble": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, 400 * 30 / 320)))) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, 400 * 30 / 426)))) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, 200 * 30 / 1280)))) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + case "Basalt": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, 400 * 30 / 320)))) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, 400 * 30 / 426)))) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, 200 * 30 / 1280)))) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + case "Quartzite": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) + .outputChances(10000, 1000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "Flint": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 2L), + new ItemStack(Items.flint, 1)) + .outputChances(10000, 5000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "GraniteBlack": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, 400 * 30 / 320)))) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, 400 * 30 / 426)))) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, 200 * 30 / 1280)))) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 1L)) + .outputChances(10000, 100) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + break; + case "GraniteRed": + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, 400 * 30 / 320)))) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, 400 * 30 / 426)))) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, 200 * 30 / 1280)))) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Uranium, 1L)) + .outputChances(10000, 100) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java new file mode 100644 index 0000000000..fb9431e8e4 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java @@ -0,0 +1,30 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_Utility; + +public class ProcessingStoneCobble implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingStoneCobble() { + OrePrefixes.stoneCobble.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(8, aStack), GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(new ItemStack(Blocks.furnace, 1)) + .duration(20 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java new file mode 100644 index 0000000000..d6762a25ab --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java @@ -0,0 +1,25 @@ +package gregtech.loaders.oreprocessing; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.OrePrefixes; + +public class ProcessingStoneVarious implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingStoneVarious() { + OrePrefixes.stone.add(this); + OrePrefixes.stoneCobble.add(this); + OrePrefixes.stoneBricks.add(this); + OrePrefixes.stoneChiseled.add(this); + OrePrefixes.stoneCracked.add(this); + OrePrefixes.stoneMossy.add(this); + OrePrefixes.stoneMossyBricks.add(this); + OrePrefixes.stoneSmooth.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, gregtech.api.enums.Materials aMaterial, String aOreDictName, + String aModName, ItemStack aStack) { + // no recipes currently. + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java new file mode 100644 index 0000000000..4b610fea8e --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java @@ -0,0 +1,1273 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.recipe.RecipeMaps.formingPressRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.enums.ToolDictNames; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; +import gregtech.common.items.GT_MetaGenerated_Tool_01; + +public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeRegistrator { // TODO COMPARE WITH OLD TOOL + // HEAD??? generator + + public ProcessingToolHead() { + OrePrefixes.toolHeadArrow.add(this); + OrePrefixes.toolHeadAxe.add(this); + OrePrefixes.toolHeadBuzzSaw.add(this); + OrePrefixes.toolHeadChainsaw.add(this); + OrePrefixes.toolHeadDrill.add(this); + OrePrefixes.toolHeadFile.add(this); + OrePrefixes.toolHeadHoe.add(this); + OrePrefixes.toolHeadPickaxe.add(this); + OrePrefixes.toolHeadPlow.add(this); + OrePrefixes.toolHeadSaw.add(this); + OrePrefixes.toolHeadSense.add(this); + OrePrefixes.toolHeadShovel.add(this); + OrePrefixes.toolHeadSword.add(this); + OrePrefixes.toolHeadUniversalSpade.add(this); + OrePrefixes.toolHeadWrench.add(this); + OrePrefixes.toolHeadHammer.add(this); + OrePrefixes.turbineBlade.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + boolean aSpecialRecipeReq1 = aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_SMASHING); + boolean aSpecialRecipeReq2 = aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_WORKING); + boolean aNoWorking = aMaterial.contains(SubTag.NO_WORKING); + boolean aProducesSoftMallet = aMaterial.contains(SubTag.BOUNCY) || aMaterial.contains(SubTag.WOOD) + || aMaterial.contains(SubTag.SOFT); + switch (aPrefix) { + case toolHeadArrow -> { + if (aMaterial.mStandardMoltenFluid != null) + if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Arrow.get(0L)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .fluidInputs(aMaterial.getMolten(36L)) + .duration(16 * TICKS) + .eut(8) + .addTo(fluidSolidifierRecipes); + } + if (aSpecialRecipeReq2) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "Xf", 'X', OrePrefixes.gemChipped.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, aMaterial, 3L), + GT_Proxy.tBits, + new Object[] { (aMaterial.contains(SubTag.WOOD) ? 115 : 'x') + "Pf", 'P', + OrePrefixes.plate.get(aMaterial) }); + } + } + case toolHeadAxe -> { + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.AXE, 1, aMaterial, aMaterial.mHandleMaterial, null), + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.AXE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + } + if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "PIh", "P ", "f ", 'P', OrePrefixes.plate.get(aMaterial), 'I', + OrePrefixes.ingot.get(aMaterial) }); + if (!aNoWorking) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "GG ", "G ", "f ", 'G', OrePrefixes.gem.get(aMaterial) }); + } + case toolHeadBuzzSaw -> { + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.BUZZSAW_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 100000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PBM", "dXG", "SGP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.BUZZSAW_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 75000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PBM", "dXG", "SGP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.BUZZSAW_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 50000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PBM", "dXG", "SGP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.BUZZSAW_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 400000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PBM", "dXG", "SGP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.BUZZSAW_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 300000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PBM", "dXG", "SGP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.BUZZSAW_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 200000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PBM", "dXG", "SGP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.BUZZSAW_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1600000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PBM", "dXG", "SGP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.BUZZSAW_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1200000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PBM", "dXG", "SGP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.BUZZSAW_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 800000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PBM", "dXG", "SGP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Sodium.get(1L) }); + if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadBuzzSaw, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "wXh", "X X", "fXx", 'X', OrePrefixes.plate.get(aMaterial) }); + } + case toolHeadChainsaw -> { + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.CHAINSAW_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 100000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.CHAINSAW_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 75000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.CHAINSAW_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 50000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.CHAINSAW_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 400000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.CHAINSAW_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 300000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.CHAINSAW_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 200000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.CHAINSAW_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1600000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.CHAINSAW_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1200000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.CHAINSAW_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 800000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Sodium.get(1L) }); + if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadChainsaw, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "SRS", "XhX", "SRS", 'X', OrePrefixes.plate.get(aMaterial), 'S', + OrePrefixes.plate.get(Materials.Steel), 'R', OrePrefixes.ring.get(Materials.Steel) }); + } + case toolHeadDrill -> { + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 100_000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 75_000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 50_000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 400_000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 300_000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 200_000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1_600_000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1_200_000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.DRILL_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 800_000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.JACKHAMMER, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1_600_000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "PRP", "MPB", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Piston_HV.get(1L), 'S', OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'R', + OrePrefixes.spring.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.JACKHAMMER, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1_200_000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "PRP", "MPB", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Piston_HV.get(1L), 'S', OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'R', + OrePrefixes.spring.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.JACKHAMMER, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 800_000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "PRP", "MPB", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Piston_HV.get(1L), 'S', OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'R', + OrePrefixes.spring.get(Materials.StainlessSteel), 'B', ItemList.Battery_RE_HV_Sodium.get(1L) }); + if (aSpecialRecipeReq2) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "XSX", "XSX", "ShS", 'X', OrePrefixes.plate.get(aMaterial), 'S', + OrePrefixes.plate.get(Materials.Steel) }); + if (aMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_ToolHeadDrill.get(0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(144 * 4)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(fluidSolidifierRecipes); + } + if (GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 4L), + ItemList.Shape_Extruder_ToolHeadDrill.get(0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(extruderRecipes); + } + } + } + case toolHeadFile -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.FILE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + + if ((!aMaterial.contains(SubTag.NO_SMASHING)) && (!aMaterial.contains(SubTag.BOUNCY))) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.FILE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "P", "P", "S", 'P', OrePrefixes.plate.get(aMaterial), 'S', + OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + } + } + } + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadFile, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(15)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.FILE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(assemblerRecipes); + } + } + case toolHeadHoe -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.HOE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + } + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(16)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.HOE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(assemblerRecipes); + } + if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "PIh", "f ", 'P', OrePrefixes.plate.get(aMaterial), 'I', + OrePrefixes.ingot.get(aMaterial) }); + if (!aNoWorking) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "GG ", "f ", " ", 'G', OrePrefixes.gem.get(aMaterial) }); + } + case toolHeadPickaxe -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.PICKAXE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + + if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "PII", "f h", 'P', OrePrefixes.plate.get(aMaterial), 'I', + OrePrefixes.ingot.get(aMaterial) }); + + if (!aNoWorking) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "GGG", "f ", 'G', OrePrefixes.gem.get(aMaterial) }); + } + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.PICKAXE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(assemblerRecipes); + } + } + case toolHeadPlow -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.PLOW, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + + if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "PP", "PP", "hf", 'P', OrePrefixes.plate.get(aMaterial) }); + + if (!aNoWorking) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "GG", "GG", " f", 'G', OrePrefixes.gem.get(aMaterial) }); + } + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(6)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.PLOW, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(assemblerRecipes); + } + } + case toolHeadSaw -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SAW, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + + if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "PP ", "fh ", 'P', OrePrefixes.plate.get(aMaterial), 'I', + OrePrefixes.ingot.get(aMaterial) }); + + if (!aNoWorking) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "GGf", 'G', OrePrefixes.gem.get(aMaterial) }); + } + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(7)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SAW, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(assemblerRecipes); + } + } + case toolHeadSense -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SENSE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + + if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "PPI", "hf ", 'P', OrePrefixes.plate.get(aMaterial), 'I', + OrePrefixes.ingot.get(aMaterial) }); + + if (!aNoWorking) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "GGG", " f ", " ", 'G', OrePrefixes.gem.get(aMaterial) }); + } + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SENSE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(assemblerRecipes); + } + } + case toolHeadShovel -> { + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SHOVEL, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SHOVEL, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(assemblerRecipes); + } + if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "fPh", 'P', OrePrefixes.plate.get(aMaterial), 'I', + OrePrefixes.ingot.get(aMaterial) }); + if (!aNoWorking) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "fG", 'G', OrePrefixes.gem.get(aMaterial) }); + } + case toolHeadSword -> { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SWORD, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + + if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { " P ", "fPh", 'P', OrePrefixes.plate.get(aMaterial), 'I', + OrePrefixes.ingot.get(aMaterial) }); + + if (!aNoWorking) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { " G", "fG", 'G', OrePrefixes.gem.get(aMaterial) }); + } + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SWORD, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(assemblerRecipes); + } + } + case toolHeadUniversalSpade -> { + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.UNIVERSALSPADE, 1, aMaterial, aMaterial, null), + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial), OrePrefixes.screw.get(aMaterial), + ToolDictNames.craftingToolScrewdriver }); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null + && GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.UNIVERSALSPADE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(assemblerRecipes); + } + if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "fX", 'X', OrePrefixes.toolHeadShovel.get(aMaterial) }); + } + case toolHeadWrench -> { + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.WRENCH_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 100000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.WRENCH_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 75000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.WRENCH_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 50000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_LV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.Steel), 'G', + OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.WRENCH_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 400000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.WRENCH_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 300000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.WRENCH_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 200000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_MV.get(1L), 'S', + OrePrefixes.screw.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.Aluminium), + 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.WRENCH_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1600000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.WRENCH_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1200000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.WRENCH_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 800000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SXd", "GMG", "PBP", 'X', aOreDictName, 'M', ItemList.Electric_Motor_HV.get(1L), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SCREWDRIVER_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 100000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PdX", "MGS", "GBP", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Motor_LV.get(1L), 'S', OrePrefixes.screw.get(Materials.Steel), 'P', + OrePrefixes.plate.get(Materials.Steel), 'G', OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', + ItemList.Battery_RE_LV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SCREWDRIVER_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 75000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PdX", "MGS", "GBP", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Motor_LV.get(1L), 'S', OrePrefixes.screw.get(Materials.Steel), 'P', + OrePrefixes.plate.get(Materials.Steel), 'G', OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', + ItemList.Battery_RE_LV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SCREWDRIVER_LV, + 1, + aMaterial, + Materials.Steel, + new long[] { 50000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PdX", "MGS", "GBP", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Motor_LV.get(1L), 'S', OrePrefixes.screw.get(Materials.Steel), 'P', + OrePrefixes.plate.get(Materials.Steel), 'G', OrePrefixes.gearGtSmall.get(Materials.Steel), 'B', + ItemList.Battery_RE_LV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SCREWDRIVER_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 400000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PdX", "MGS", "GBP", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Motor_MV.get(1L), 'S', OrePrefixes.screw.get(Materials.Aluminium), 'P', + OrePrefixes.plate.get(Materials.Aluminium), 'G', + OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SCREWDRIVER_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 300000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PdX", "MGS", "GBP", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Motor_MV.get(1L), 'S', OrePrefixes.screw.get(Materials.Aluminium), 'P', + OrePrefixes.plate.get(Materials.Aluminium), 'G', + OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', + ItemList.Battery_RE_MV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SCREWDRIVER_MV, + 1, + aMaterial, + Materials.Aluminium, + new long[] { 200000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PdX", "MGS", "GBP", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Motor_MV.get(1L), 'S', OrePrefixes.screw.get(Materials.Aluminium), 'P', + OrePrefixes.plate.get(Materials.Aluminium), 'G', + OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'B', ItemList.Battery_RE_MV_Sodium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SCREWDRIVER_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1600000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PdX", "MGS", "GBP", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Motor_HV.get(1L), 'S', OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SCREWDRIVER_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 1200000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PdX", "MGS", "GBP", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Motor_HV.get(1L), 'S', OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Cadmium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SCREWDRIVER_HV, + 1, + aMaterial, + Materials.StainlessSteel, + new long[] { 800000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PdX", "MGS", "GBP", 'X', OrePrefixes.stickLong.get(aMaterial), 'M', + ItemList.Electric_Motor_HV.get(1L), 'S', OrePrefixes.screw.get(Materials.StainlessSteel), 'P', + OrePrefixes.plate.get(Materials.StainlessSteel), 'G', + OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'B', + ItemList.Battery_RE_HV_Sodium.get(1L) }); + if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadWrench, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "hXW", "XRX", "WXd", 'X', OrePrefixes.plate.get(aMaterial), 'S', + OrePrefixes.plate.get(Materials.Steel), 'R', OrePrefixes.ring.get(Materials.Steel), 'W', + OrePrefixes.screw.get(Materials.Steel) }); + } + case toolHeadHammer, toolHeadMallet -> { + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(14)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + aProducesSoftMallet ? GT_MetaGenerated_Tool_01.SOFTMALLET + : GT_MetaGenerated_Tool_01.HARDHAMMER, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(assemblerRecipes); + } + if ((aMaterial != Materials.Stone) && (aMaterial != Materials.Flint)) { + GT_ModHandler.addShapelessCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + aProducesSoftMallet ? GT_MetaGenerated_Tool_01.SOFTMALLET + : GT_MetaGenerated_Tool_01.HARDHAMMER, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + aProducesSoftMallet ? GT_MetaGenerated_Tool_01.SOFTMALLET + : GT_MetaGenerated_Tool_01.HARDHAMMER, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "XX ", "XXS", "XX ", 'X', + aMaterial == Materials.Wood ? OrePrefixes.plank.get(Materials.Wood) + : OrePrefixes.ingot.get(aMaterial), + 'S', OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + aProducesSoftMallet ? GT_MetaGenerated_Tool_01.SOFTMALLET + : GT_MetaGenerated_Tool_01.HARDHAMMER, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "XX ", "XXS", "XX ", 'X', + aMaterial == Materials.Wood ? OrePrefixes.plank.get(Materials.Wood) + : OrePrefixes.gem.get(aMaterial), + 'S', OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + } + if (aPrefix == OrePrefixes.toolHeadHammer) if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "II ", "IIh", "II ", 'P', OrePrefixes.plate.get(aMaterial), 'I', + OrePrefixes.ingot.get(aMaterial) }); + } + case turbineBlade -> { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 4L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Magnalium, 1L)) + .itemOutputs(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(170, 1, aMaterial, aMaterial, null)) + .duration(8 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 100)) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 8L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Titanium, 1L)) + .itemOutputs(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(172, 1, aMaterial, aMaterial, null)) + .duration(16 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 400)) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 12L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenSteel, 1L)) + .itemOutputs(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(174, 1, aMaterial, aMaterial, null)) + .duration(32 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 1600)) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 16L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Americium, 1L)) + .itemOutputs(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(176, 1, aMaterial, aMaterial, null)) + .duration(1 * MINUTES + 4 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 6400)) + .addTo(assemblerRecipes); + if (aSpecialRecipeReq2) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "fPd", "SPS", " P ", 'P', + aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) + : OrePrefixes.plateDouble.get(aMaterial), + 'R', OrePrefixes.ring.get(aMaterial), 'S', OrePrefixes.screw.get(aMaterial) }); + } + + // Turbine blades + if (GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L) != null + && GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 2L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 60)) + .addTo(formingPressRecipes); + } + } + } + default -> {} + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolOther.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolOther.java new file mode 100644 index 0000000000..a0e282dc1b --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolOther.java @@ -0,0 +1,137 @@ +package gregtech.loaders.oreprocessing; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.Dyes; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.util.GT_ModHandler; +import gregtech.common.items.GT_MetaGenerated_Tool_01; + +public class ProcessingToolOther implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingToolOther() { + OrePrefixes.toolHeadHammer.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if ((aMaterial == Materials.Stone) || (aMaterial == Materials.Flint)) { + return; + } + + if (aMaterial != Materials.Rubber) { + // Crafting recipes + { + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.PLUNGER, 1, aMaterial, aMaterial, null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "xRR", " SR", "S f", 'S', OrePrefixes.stick.get(aMaterial), 'R', + OrePrefixes.plate.get(Materials.AnyRubber) }); + } + } + + if ((!aMaterial.contains(SubTag.WOOD)) && (!aMaterial.contains(SubTag.BOUNCY)) + && (!aMaterial.contains(SubTag.NO_SMASHING))) { + // Crafting recipes + { + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.WRENCH, 1, aMaterial, aMaterial, null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "IhI", "III", " I ", 'I', OrePrefixes.ingot.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.CROWBAR, 1, aMaterial, aMaterial, null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "hDS", "DSD", "SDf", 'S', OrePrefixes.stick.get(aMaterial), 'D', Dyes.dyeBlue }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SCREWDRIVER, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { " fS", " Sh", "W ", 'S', OrePrefixes.stick.get(aMaterial), 'W', + OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.WIRECUTTER, 1, aMaterial, aMaterial, null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PfP", "hPd", "STS", 'S', OrePrefixes.stick.get(aMaterial), 'P', + OrePrefixes.plate.get(aMaterial), 'T', OrePrefixes.screw.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.SCOOP, 1, aMaterial, aMaterial, null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SWS", "SSS", "xSh", 'S', OrePrefixes.stick.get(aMaterial), 'W', + new ItemStack(Blocks.wool, 1, 32767) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.BRANCHCUTTER, 1, aMaterial, aMaterial, null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PfP", "PdP", "STS", 'S', OrePrefixes.stick.get(aMaterial), 'P', + OrePrefixes.plate.get(aMaterial), 'T', OrePrefixes.screw.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.KNIFE, 1, aMaterial, aMaterial, null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "fPh", " S ", 'S', OrePrefixes.stick.get(aMaterial), 'P', + OrePrefixes.plate.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.BUTCHERYKNIFE, 1, aMaterial, aMaterial, null), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PPf", "PP ", "Sh ", 'S', OrePrefixes.stick.get(aMaterial), 'P', + OrePrefixes.plate.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SOLDERING_IRON_LV, + 1, + aMaterial, + Materials.Rubber, + new long[] { 100000L, 32L, 1L, -1L }), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "LBf", "Sd ", "P ", 'B', OrePrefixes.bolt.get(aMaterial), 'P', + OrePrefixes.plate.get(Materials.AnyRubber), 'S', OrePrefixes.stick.get(Materials.Iron), 'L', + ItemList.Battery_RE_LV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SOLDERING_IRON_MV, + 1, + aMaterial, + Materials.Rubber, + new long[] { 400000L, 128L, 2L, -1L }), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "LBf", "Sd ", "P ", 'B', OrePrefixes.bolt.get(aMaterial), 'P', + OrePrefixes.plate.get(Materials.AnyRubber), 'S', OrePrefixes.stick.get(Materials.Steel), 'L', + ItemList.Battery_RE_MV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SOLDERING_IRON_HV, + 1, + aMaterial, + Materials.AnySyntheticRubber, + new long[] { 1600000L, 512L, 3L, -1L }), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "LBf", "Sd ", "P ", 'B', OrePrefixes.bolt.get(aMaterial), 'P', + OrePrefixes.plate.get(Materials.AnySyntheticRubber), 'S', + OrePrefixes.stick.get(Materials.StainlessSteel), 'L', ItemList.Battery_RE_HV_Lithium.get(1L) }); + GT_ModHandler.addCraftingRecipe( + (GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(GT_MetaGenerated_Tool_01.POCKET_MULTITOOL, 1, aMaterial, aMaterial, null)), + GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "ABC", "DEF", "CFG", 'A', OrePrefixes.stickLong.get(aMaterial), 'B', + OrePrefixes.toolHeadSaw.get(aMaterial), 'C', OrePrefixes.ring.get(aMaterial), 'D', + OrePrefixes.toolHeadFile.get(aMaterial), 'E', OrePrefixes.plate.get(aMaterial), 'F', + OrePrefixes.toolHeadSword.get(aMaterial), 'G', Dyes.dyeBlue }); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java new file mode 100644 index 0000000000..4e3febc469 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java @@ -0,0 +1,176 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.polarizerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.interfaces.IOreRecipeRegistrator; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingTransforming implements IOreRecipeRegistrator { + + public ProcessingTransforming() { + for (OrePrefixes tPrefix : OrePrefixes.values()) + if (((tPrefix.mMaterialAmount > 0L) && (!tPrefix.mIsContainer) && (!tPrefix.mIsEnchantable)) + || (tPrefix == OrePrefixes.plank)) tPrefix.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + + if (aPrefix == OrePrefixes.plank) { + aPrefix = OrePrefixes.plate; + } + + switch (aMaterial.mName) { + case "Wood" -> + // Chemical bath recipes + { + if (GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L)) + .fluidInputs( + Materials.SeedOil + .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 120L, true))) + .duration(5 * SECONDS) + .eut(TierEU.ULV) + .addTo(chemicalBathRecipes); + } + + } + case "Iron" -> { + // Chemical bath recipes + { + if (GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L)) + .fluidInputs( + Materials.FierySteel.getFluid( + GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 250L, true))) + .duration(5 * SECONDS) + .eut(TierEU.ULV) + .addTo(chemicalBathRecipes); + } + } + + // Polarizer recipes + { + if (GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L)) + .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) + .eut((int) TierEU.LV / 2) + .addTo(polarizerRecipes); + } + } + } + case "WroughtIron" -> { + // Chemical bath recipes + { + if (GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L)) + .fluidInputs( + Materials.FierySteel.getFluid( + GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 225L, true))) + .duration(5 * SECONDS) + .eut(TierEU.ULV) + .addTo(chemicalBathRecipes); + } + } + + // Polarizer recipes + { + if (GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L)) + .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) + .eut((int) TierEU.LV / 2) + .addTo(polarizerRecipes); + } + } + } + case "Steel" -> { + // Chemical Bath recipes + { + if (GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L)) + .fluidInputs( + Materials.FierySteel.getFluid( + GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 200L, true))) + .duration(5 * SECONDS) + .eut(TierEU.ULV) + .addTo(chemicalBathRecipes); + } + } + + // Polarizer recipes + { + if (GT_OreDictUnificator.get(aPrefix, Materials.SteelMagnetic, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.SteelMagnetic, 1L)) + .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) + .eut((int) TierEU.LV / 2) + .addTo(polarizerRecipes); + } + } + } + case "Neodymium" -> + // Polarizer recipes + { + if (GT_OreDictUnificator.get(aPrefix, Materials.NeodymiumMagnetic, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.NeodymiumMagnetic, 1L)) + .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) + .eut((int) TierEU.HV / 2) + .addTo(polarizerRecipes); + } + } + case "Samarium" -> + // Polarizer recipes + { + if (GT_OreDictUnificator.get(aPrefix, Materials.SamariumMagnetic, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.SamariumMagnetic, 1L)) + .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) + .eut((int) TierEU.IV / 2) + .addTo(polarizerRecipes); + } + } + + case "TengamPurified" -> + // Polarizer recipes + { + if (GT_OreDictUnificator.get(aPrefix, Materials.TengamAttuned, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.TengamAttuned, 1L)) + .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) + .eut((int) TierEU.RECIPE_UHV) + .addTo(polarizerRecipes); + } + } + + default -> { /* NO-OP */ } + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java new file mode 100644 index 0000000000..7635546d23 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java @@ -0,0 +1,31 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_RecipeConstants; +import gregtech.api.util.GT_Utility; + +public class ProcessingWax implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingWax() { + OrePrefixes.wax.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aOreDictName.equals("waxMagical")) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .metadata(FUEL_VALUE, 6) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java new file mode 100644 index 0000000000..1f5bd5f1c2 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java @@ -0,0 +1,506 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.packagerRecipes; +import static gregtech.api.recipe.RecipeMaps.unpackagerRecipes; +import static gregtech.api.recipe.RecipeMaps.wiremillRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import java.util.ArrayList; + +import net.minecraft.item.ItemStack; + +import appeng.api.config.TunnelType; +import appeng.core.Api; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistrator { + + private final Materials[] dielectrics = { Materials.PolyvinylChloride, Materials.Polydimethylsiloxane }; + private final Materials[] syntheticRubbers = { Materials.StyreneButadieneRubber, Materials.Silicone }; + + private static Object tt; + + public ProcessingWire() { + OrePrefixes.wireGt01.add(this); + OrePrefixes.wireGt02.add(this); + OrePrefixes.wireGt04.add(this); + OrePrefixes.wireGt08.add(this); + OrePrefixes.wireGt12.add(this); + OrePrefixes.wireGt16.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (tt == TunnelType.ME) { + try { + tt = TunnelType.valueOf("GT_POWER"); + } catch (IllegalArgumentException ignored) { + tt = TunnelType.IC2_POWER; + } + } + + int cableWidth; + OrePrefixes correspondingCable; + + switch (aPrefix) { + case wireGt01 -> { + cableWidth = 1; + correspondingCable = OrePrefixes.cableGt01; + if (!aMaterial.contains(SubTag.NO_SMASHING)) { + // Bender recipes + { + if (GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(benderRecipes); + } + } + + // Wiremill Recipes + { + if (GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(wiremillRecipes); + } + } + } + + // crafting recipe + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_WORKING) + && (aMaterial.getProcessingMaterialTierEU() < TierEU.IV)) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "Xx", 'X', OrePrefixes.plate.get(aMaterial) }); + + } + + // Assembler recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2, aStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L)) + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(8, aStack), GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L)) + .duration(15 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(12, aStack), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt12, aMaterial, 1L)) + .duration(20 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, aStack), GT_Utility.getIntegratedCircuit(16)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt16, aMaterial, 1L)) + .duration(25 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + } + } + case wireGt02 -> { + cableWidth = 2; + correspondingCable = OrePrefixes.cableGt02; + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + // Shapeless crafting recipes + { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 2L), + new Object[] { aOreDictName }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + new Object[] { OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial) }); + } + } + } + case wireGt04 -> { + cableWidth = 4; + correspondingCable = OrePrefixes.cableGt04; + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + // Shapeless crafting recipes + { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 4L), + new Object[] { aOreDictName }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + new Object[] { OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), + OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + new Object[] { OrePrefixes.wireGt02.get(aMaterial), OrePrefixes.wireGt02.get(aMaterial) }); + } + } + } + case wireGt08 -> { + cableWidth = 8; + correspondingCable = OrePrefixes.cableGt08; + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + // Shapeless crafting recipes + { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 8L), + new Object[] { aOreDictName }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + new Object[] { OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), + OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), + OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), + OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + new Object[] { OrePrefixes.wireGt04.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); + } + } + } + case wireGt12 -> { + cableWidth = 12; + correspondingCable = OrePrefixes.cableGt12; + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + // Shapeless crafting recipes + { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 12L), + new Object[] { aOreDictName }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + new Object[] { OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); + } + } + } + case wireGt16 -> { + cableWidth = 16; + correspondingCable = OrePrefixes.cableGt16; + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + // Shapeless crafting recipes + { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 16L), + new Object[] { aOreDictName }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + new Object[] { OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt08.get(aMaterial) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1, aStack), + new Object[] { OrePrefixes.wireGt12.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); + } + + AE2addNewAttunement(aStack); + } + } + default -> { + GT_Log.err.println( + "OrePrefix " + aPrefix.name() + " cannot be registered as a cable for Material " + aMaterial.mName); + return; + } + } + + int costMultiplier = cableWidth / 4 + 1; + + switch (aMaterial.mName) { + case "RedAlloy", "Cobalt", "Lead", "Tin", "Zinc", "SolderingAlloy" -> { + ArrayList<Object> craftingListRubber = new ArrayList<>(); + craftingListRubber.add(aOreDictName); + for (int i = 0; i < costMultiplier; i++) { + craftingListRubber.add(OrePrefixes.plate.get(Materials.Rubber)); + } + + // shapeless crafting + if (GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L) != null) { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), + craftingListRubber.toArray()); + } + + // Packer recipe + if (GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(1, aStack), + GT_OreDictUnificator.get(OrePrefixes.plate.get(Materials.Rubber), costMultiplier)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(packagerRecipes); + } + // alloy smelter recipes + { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 2L), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(alloySmelterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 2L), + GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L)) + .duration(10 * SECONDS) + .eut(16) + .addTo(alloySmelterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 4L), + GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(alloySmelterRecipes); + } + // Assembler recipes + { + if (GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(aStack, GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(Materials.Rubber.getMolten(144L * costMultiplier)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(aStack, GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(Materials.StyreneButadieneRubber.getMolten(108L * costMultiplier)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(aStack, GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(Materials.Silicone.getMolten(72L * costMultiplier)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + for (Materials dielectric : dielectrics) { + for (Materials syntheticRubber : syntheticRubbers) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), dielectric.getDust(costMultiplier)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 4L)) + .fluidInputs(syntheticRubber.getMolten(costMultiplier * 144L)) + .duration(20 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(aStack, dielectric.getDustSmall(costMultiplier)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(syntheticRubber.getMolten(costMultiplier * 36L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + } + } + } + } + } + case "Iron", "Nickel", "Cupronickel", "Copper", "AnnealedCopper", "Kanthal", "Gold", "Electrum", "Silver", "Nichrome", "Steel", "BlackSteel", "Titanium", "Aluminium", "BlueAlloy", "NetherStar", "RedstoneAlloy" -> { + + if (GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L) == null) { + break; + } + // Assembler recipes + GT_Values.RA.stdBuilder() + .itemInputs(aStack, GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(Materials.Rubber.getMolten(144 * costMultiplier)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(aStack, GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(Materials.StyreneButadieneRubber.getMolten(108 * costMultiplier)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(aStack, GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(Materials.Silicone.getMolten(72 * costMultiplier)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + for (Materials dielectric : dielectrics) { + for (Materials syntheticRubber : syntheticRubbers) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aStack), dielectric.getDust(costMultiplier)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 4L)) + .fluidInputs(syntheticRubber.getMolten(costMultiplier * 144L)) + .duration(20 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(aStack, dielectric.getDustSmall(costMultiplier)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(syntheticRubber.getMolten(costMultiplier * 36L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + } + } + } + + default -> { + if (GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L) == null) { + break; + } + + // Assembler recipes + GT_Values.RA.stdBuilder() + .itemInputs( + aStack, + GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, costMultiplier), + GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(Materials.Silicone.getMolten(costMultiplier * 72)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + aStack, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.PolyphenyleneSulfide, costMultiplier), + GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(Materials.Silicone.getMolten(costMultiplier * 72)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + + for (Materials dielectric : dielectrics) { + for (Materials syntheticRubber : syntheticRubbers) { + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(4, aStack), + dielectric.getDust(costMultiplier), + GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, costMultiplier * 4L)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 4L)) + .fluidInputs(syntheticRubber.getMolten(costMultiplier * 144L)) + .duration(20 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(4, aStack), + dielectric.getDust(costMultiplier), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.PolyphenyleneSulfide, costMultiplier * 4L)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 4L)) + .fluidInputs(syntheticRubber.getMolten(costMultiplier * 144L)) + .duration(20 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + aStack, + dielectric.getDustSmall(costMultiplier), + GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, costMultiplier)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(syntheticRubber.getMolten(costMultiplier * 36L)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + aStack, + dielectric.getDustSmall(costMultiplier), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.PolyphenyleneSulfide, costMultiplier)) + .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .fluidInputs(syntheticRubber.getMolten(costMultiplier * 36L)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(assemblerRecipes); + } + } + } + } + + if (GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) + .itemOutputs(GT_Utility.copyAmount(1, aStack)) + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(unpackagerRecipes); + } + + if (GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L) != null) { + AE2AddNetAttunementCable(aStack, correspondingCable, aMaterial); + } + } + + // region AE2 compat + static { + setAE2Field(); + } + + private static void setAE2Field() { + tt = TunnelType.ME; + } + + private void AE2addNewAttunement(ItemStack aStack) { + Api.INSTANCE.registries() + .p2pTunnel() + .addNewAttunement(aStack, (TunnelType) tt); + } + + private void AE2AddNetAttunementCable(ItemStack aStack, OrePrefixes correspondingCable, Materials aMaterial) { + Api.INSTANCE.registries() + .p2pTunnel() + .addNewAttunement(aStack, (TunnelType) tt); + Api.INSTANCE.registries() + .p2pTunnel() + .addNewAttunement(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), (TunnelType) tt); + } + // end region +} diff --git a/src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java b/src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java new file mode 100644 index 0000000000..204d8f53a0 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java @@ -0,0 +1,52 @@ +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.GT_Mod; +import gregtech.api.util.GT_Utility; + +public class GT_BlockResistanceLoader implements Runnable { + + @Override + @SuppressWarnings("unchecked") + public void run() { + if (GT_Mod.gregtechproxy.mHardRock) { + Blocks.stone.setHardness(16.0F); + Blocks.brick_block.setHardness(32.0F); + Blocks.hardened_clay.setHardness(32.0F); + Blocks.stained_hardened_clay.setHardness(32.0F); + Blocks.cobblestone.setHardness(12.0F); + Blocks.stonebrick.setHardness(24.0F); + } + 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); + + GT_Utility.callMethod(Material.tnt, "func_85158_p", true, false, false); + GT_Utility.callMethod(Material.tnt, "setAdventureModeExempt", true, false, false); + + Set<Block> tSet = (Set<Block>) GT_Utility.getFieldContent(ItemAxe.class, "field_150917_c", true, true); + tSet.add(Blocks.bed); + tSet.add(Blocks.hay_block); + tSet.add(Blocks.sponge); + + tSet = (Set<Block>) GT_Utility.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/GT_BookAndLootLoader.java b/src/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java new file mode 100644 index 0000000000..71c8d67741 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java @@ -0,0 +1,433 @@ +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.GT_Mod; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_OreDictUnificator; + +public class GT_BookAndLootLoader implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Adding worldgenerated Chest Content."); + if (GT_Mod.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( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), + 1, + 6, + 120)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), 1, 6, 30)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 1, 6, 60)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), + 1, + 6, + 60)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Manganese, 1L), + 1, + 6, + 60)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.DamascusSteel, 1L), + 1, + 6, + 10)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), 1, 6, 20)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 1, 6, 20)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), + 1, + 6, + 20)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), + 1, + 6, + 20)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 1, 6, 20)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), + 1, + 6, + 40)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), + 1, + 6, + 40)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neodymium, 1L), + 1, + 6, + 40)); + ChestGenHooks.addItem( + "dungeonChest", + new WeightedRandomChestContent(GT_OreDictUnificator.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( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), + 4, + 16, + 12)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Platinum, 1L), + 2, + 8, + 4)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), + 2, + 8, + 2)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), + 2, + 8, + 4)); + ChestGenHooks.addItem( + "pyramidDesertyChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.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( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), + 4, + 16, + 12)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), + 2, + 8, + 2)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 2, 8, 2)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), + 2, + 8, + 4)); + ChestGenHooks.addItem( + "pyramidJungleChest", + new WeightedRandomChestContent( + GT_OreDictUnificator.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( + "pyramidJungleDispenser", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, Materials.DamascusSteel, 1L), + 8, + 16, + 20)); + + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), + 1, + 4, + 12)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), 1, 4, 3)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 1, 4, 6)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 1, 4, 6)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 1, 4, 2)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), + 1, + 4, + 2)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 1, 4, 2)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), + 1, + 4, + 4)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), + 1, + 4, + 4)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 1, 4, 2)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), 1, 4, 2)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.DamascusSteel, 1L), + 1, + 4, + 1)); + ChestGenHooks.addItem( + "mineshaftCorridor", + new WeightedRandomChestContent( + GT_OreDictUnificator.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(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L), 1, 4, 6)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neodymium, 1L), + 2, + 8, + 6)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Manganese, 1L), + 2, + 8, + 12)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), + 4, + 12, + 12)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), + 4, + 12, + 12)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Brass, 1L), + 4, + 12, + 12)); + ChestGenHooks.addItem( + "villageBlacksmith", + new WeightedRandomChestContent( + GT_OreDictUnificator.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( + "strongholdCrossing", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.DamascusSteel, 1L), + 4, + 8, + 6)); + ChestGenHooks.addItem( + "strongholdCrossing", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.Steel, 1L), + 8, + 16, + 12)); + ChestGenHooks.addItem( + "strongholdCrossing", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.Bronze, 1L), + 8, + 16, + 12)); + ChestGenHooks.addItem( + "strongholdCrossing", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.Manganese, 1L), + 4, + 8, + 12)); + ChestGenHooks.addItem( + "strongholdCrossing", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.crateGtDust, Materials.Neodymium, 1L), + 4, + 8, + 6)); + ChestGenHooks.addItem( + "strongholdCrossing", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.crateGtDust, Materials.Chrome, 1L), + 2, + 4, + 6)); + + ChestGenHooks.addItem( + "strongholdCorridor", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.DamascusSteel, 1L), + 1, + 4, + 6)); + ChestGenHooks.addItem( + "strongholdCorridor", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.DamascusSteel, 1L), + 1, + 4, + 6)); + ChestGenHooks.addItem( + "strongholdCorridor", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, Materials.DamascusSteel, 1L), + 16, + 48, + 6)); + ChestGenHooks.addItem( + "strongholdCorridor", + new WeightedRandomChestContent( + GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, Materials.SterlingSilver, 1L), + 8, + 24, + 6)); + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java new file mode 100644 index 0000000000..da749e5b31 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java @@ -0,0 +1,2053 @@ +package gregtech.loaders.postload; + +import static gregtech.api.enums.Mods.BartWorks; +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.GT_ModHandler.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 gregtech.GT_Mod; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; +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.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import ic2.core.Ic2Items; + +public class GT_CraftingRecipeLoader implements Runnable { + + private static final String aTextIron1 = "X X"; + private static final String aTextIron2 = "XXX"; + private static final long bits_no_remove_buffered = GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.BUFFERED; + private static final long bits = GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.BUFFERED; + private static final String aTextPlateWrench = "PwP"; + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Adding nerfed Vanilla Recipes."); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.bucket, 1), + bits_no_remove_buffered | GT_ModHandler.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 = GT_ModHandler.removeRecipe(tMat, tMat, null, null, null, null, null, null, null))) { + GT_ModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GT_ModHandler.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 = GT_ModHandler.removeRecipe(tMat, tMat, null, tMat, tMat, null, tMat, tMat, null))) { + GT_ModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GT_ModHandler.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 = GT_ModHandler.removeRecipe(tMat, null, tMat, tMat, null, tMat, tMat, tMat, tMat))) { + GT_ModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GT_ModHandler.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 = GT_ModHandler + .removeRecipe(tMat, null, tMat, tMat, new ItemStack(Blocks.chest, 1, 0), tMat, null, tMat, null))) { + GT_ModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GT_ModHandler.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 = GT_ModHandler.removeRecipe(tMat, tMat, tMat, tMat, tMat, tMat, null, null, null))) { + tStack.stackSize /= 2; + GT_ModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GT_ModHandler.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) }); + } + } + + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("ironFence", 6L), + bits_no_remove_buffered | GT_ModHandler.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 = GT_ModHandler.removeRecipe(tMat, tMat, null, null, null, null, null, null, null))) { + GT_ModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GT_ModHandler.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 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1L); + { + ItemStack tStack; + if (null != (tStack = GT_ModHandler.removeRecipe(tMat, tMat, tMat, tMat, tMat, tMat, null, null, null))) { + GT_ModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, + new Object[] { aTextIron2, aTextIron2, 'X', OrePrefixes.plate.get(Materials.Rubber) }); + } + } + GT_ModHandler.removeRecipeByOutputDelayed(ItemList.Bottle_Empty.get(1L)); + GT_ModHandler.removeRecipeByOutputDelayed(ItemList.IC2_Spray_WeedEx.get(1L)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("reBattery", 1L)); + GT_ModHandler.removeRecipeByOutputDelayed(new ItemStack(Blocks.tnt)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("dynamite", 1L)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("industrialTnt", 1L)); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "stamps", 1L, 0)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "stamps", 1L, 1)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "stamps", 1L, 2)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "stamps", 1L, 3)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "stamps", 1L, 4)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "stamps", 1L, 5)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "stamps", 1L, 6)); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "engine", 1L, 0)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "engine", 1L, 1)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "engine", 1L, 2)); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getModItem(Forestry.ID, "engine", 1L, 4)); + + ItemStack tStack = GT_ModHandler + .removeRecipe(new ItemStack(Blocks.planks, 1, 0), null, null, new ItemStack(Blocks.planks, 1, 0)); + if (tStack != null) { + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount( + GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, + tStack), + bits_no_remove_buffered, + new Object[] { "s", "P", "P", 'P', OrePrefixes.plank.get(Materials.Wood) }); + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount( + GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize / 2 : tStack.stackSize, + tStack), + bits_no_remove_buffered, + new Object[] { "P", "P", 'P', OrePrefixes.plank.get(Materials.Wood) }); + } + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.stone_button, 2, 0), + bits_no_remove_buffered, + new Object[] { "S", "S", 'S', OrePrefixes.stone }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.stone_button, 1, 0), + bits_no_remove_buffered, + new Object[] { OrePrefixes.stone }); + + GT_Log.out.println("GT_Mod: Adding Vanilla Convenience Recipes."); + + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.stonebrick, 1, 3), + bits_no_remove_buffered, + new Object[] { "f", "X", 'X', new ItemStack(Blocks.double_stone_slab, 1, 8) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.gravel, 1, 0), + bits_no_remove_buffered, + new Object[] { "h", "X", 'X', new ItemStack(Blocks.cobblestone, 1, 0) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.sand, 1, 0), + bits_no_remove_buffered, + new Object[] { "h", "X", 'X', new ItemStack(Blocks.gravel, 1, 0) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.cobblestone, 1, 0), + bits_no_remove_buffered, + new Object[] { "h", "X", 'X', new ItemStack(Blocks.stone, 1, 0) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.stonebrick, 1, 2), + bits_no_remove_buffered, + new Object[] { "h", "X", 'X', new ItemStack(Blocks.stonebrick, 1, 0) }); + + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.double_stone_slab, 1, 8), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.double_stone_slab, 1, 0) }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.double_stone_slab, 1, 0), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.double_stone_slab, 1, 8) }); + GT_ModHandler.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) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.cobblestone, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 3) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.brick_block, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 4) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.stonebrick, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 5) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.nether_brick, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 6) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.quartz_block, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.stone_slab, 1, 7) }); + GT_ModHandler.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) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 0), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 0) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 1), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 1) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 2), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 2) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 3), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 3) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 4), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 4) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 5), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 5) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 6), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 6) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.planks, 1, 7), + bits_no_remove_buffered, + new Object[] { "B", "B", 'B', new ItemStack(Blocks.wooden_slab, 1, 7) }); + + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.stick, 2, 0), + bits_no_remove_buffered, + new Object[] { "s", "X", 'X', new ItemStack(Blocks.deadbush, 1, 32767) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.stick, 2, 0), + bits_no_remove_buffered, + new Object[] { "s", "X", 'X', new ItemStack(Blocks.tallgrass, 1, 0) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.stick, 1, 0), + bits_no_remove_buffered, + new Object[] { "s", "X", 'X', OrePrefixes.treeSapling }); + + GT_ModHandler.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 }); + + GT_Log.out.println("GT_Mod: Adding Tool Recipes."); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.minecart, 1), + bits_no_remove_buffered | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { " h ", "PwP", "WPW", 'P', OrePrefixes.plate.get(Materials.AnyIron), 'W', + ItemList.Component_Minecart_Wheels_Iron }); + GT_ModHandler.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 }); + + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.chest_minecart, 1), + bits_no_remove_buffered | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "X", "C", 'C', new ItemStack(Items.minecart, 1), 'X', OreDictNames.craftingChest }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.furnace_minecart, 1), + bits_no_remove_buffered | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "X", "C", 'C', new ItemStack(Items.minecart, 1), 'X', OreDictNames.craftingFurnace }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.hopper_minecart, 1), + bits_no_remove_buffered | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "X", "C", 'C', new ItemStack(Items.minecart, 1), 'X', + new ItemStack(Blocks.hopper, 1, 32767) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.tnt_minecart, 1), + bits_no_remove_buffered | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "X", "C", 'C', new ItemStack(Items.minecart, 1), 'X', new ItemStack(Blocks.tnt, 1, 32767) }); + + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.chainmail_helmet, 1), + bits_no_remove_buffered | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "RRR", "RhR", 'R', OrePrefixes.ring.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.chainmail_chestplate, 1), + bits_no_remove_buffered | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "RhR", "RRR", "RRR", 'R', OrePrefixes.ring.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.chainmail_leggings, 1), + bits_no_remove_buffered | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "RRR", "RhR", "R R", 'R', OrePrefixes.ring.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.chainmail_boots, 1), + bits_no_remove_buffered | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { "R R", "RhR", 'R', OrePrefixes.ring.get(Materials.Steel) }); + + GT_Log.out.println("GT_Mod: Adding Wool and Color releated Recipes."); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 1), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeOrange }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 2), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeMagenta }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 3), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLightBlue }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 4), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeYellow }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 5), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLime }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 6), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyePink }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 7), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeGray }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 8), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLightGray }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 9), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeCyan }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 10), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyePurple }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 11), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBlue }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 12), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBrown }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 13), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeGreen }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 14), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeRed }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Blocks.wool, 1, 15), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBlack }); + + GT_ModHandler.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 }); + + GT_Log.out.println("GT_Mod: Putting a Potato on a Stick."); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Packaged_PotatoChips.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.foil.get(Materials.Aluminium), ItemList.Food_PotatoChips }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Packaged_ChiliChips.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.foil.get(Materials.Aluminium), ItemList.Food_ChiliChips }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Packaged_Fries.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.plateDouble.get(Materials.Paper), ItemList.Food_Fries }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Chum_On_Stick.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Chum }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Potato_On_Stick.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Raw_Potato }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Potato_On_Stick_Roasted.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Baked_Potato }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Dough.get(1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.bucket.get(Materials.Water), OrePrefixes.dust.get(Materials.Wheat) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Dough_Sugar.get(2L), + bits_no_remove_buffered, + new Object[] { "foodDough", OrePrefixes.dust.get(Materials.Sugar) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Dough_Chocolate.get(2L), + bits_no_remove_buffered, + new Object[] { "foodDough", OrePrefixes.dust.get(Materials.Cocoa) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Dough_Chocolate.get(2L), + bits_no_remove_buffered, + new Object[] { "foodDough", OrePrefixes.dust.get(Materials.Chocolate) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Flat_Dough.get(1L), + bits_no_remove_buffered, + new Object[] { "foodDough", ToolDictNames.craftingToolRollingPin }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Bun.get(1L), + bits_no_remove_buffered, + new Object[] { "foodDough" }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Bread.get(1L), + bits_no_remove_buffered, + new Object[] { "foodDough", "foodDough" }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Baguette.get(1L), + bits_no_remove_buffered, + new Object[] { "foodDough", "foodDough", "foodDough" }); + GT_ModHandler.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 }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_ChiliChips.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_PotatoChips, OrePrefixes.dust.get(Materials.Chili) }); + + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Buns.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Breads.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Baguettes.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Bun.get(2L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Buns }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Bread.get(2L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Breads }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sliced_Baguette.get(2L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Baguettes }); + + GT_ModHandler.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 }); + GT_ModHandler.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 }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Meat.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Buns, OrePrefixes.dust.get(Materials.MeatCooked) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Chum.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Buns, ItemList.Food_Chum }); + GT_ModHandler.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 }); + GT_ModHandler.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 }); + GT_ModHandler.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) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Burger_Chum.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, ItemList.Food_Chum }); + + GT_ModHandler.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 }); + GT_ModHandler.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 }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sandwich_Bacon.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Breads, new ItemStack(Items.cooked_porkchop, 1) }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Sandwich_Steak.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Sliced_Breads, new ItemStack(Items.cooked_beef, 1) }); + GT_ModHandler.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 }); + GT_ModHandler.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 }); + GT_ModHandler.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) }); + GT_ModHandler.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) }); + + GT_ModHandler.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 }); + GT_ModHandler.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 }); + GT_ModHandler.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) }); + GT_ModHandler.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) }); + GT_ModHandler.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 }); + GT_ModHandler.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 }); + GT_ModHandler.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) }); + GT_ModHandler.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) }); + + GT_ModHandler.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 }); + GT_ModHandler.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 }); + GT_ModHandler.addShapelessCraftingRecipe( + ItemList.Food_Raw_Pizza_Meat.get(1L), + bits_no_remove_buffered, + new Object[] { ItemList.Food_Flat_Dough, OrePrefixes.dust.get(Materials.MeatCooked) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Cheese.get(4L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', "foodCheese" }); + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Lemon.get(4L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', "cropLemon" }); + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Tomato.get(4L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', "cropTomato" }); + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Onion.get(4L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', "cropOnion" }); + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Cucumber.get(4L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', "cropCucumber" }); + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Bun.get(2L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', ItemList.Food_Baked_Bun }); + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Bread.get(2L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', ItemList.Food_Baked_Bread }); + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Sliced_Baguette.get(2L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', ItemList.Food_Baked_Baguette }); + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Raw_PotatoChips.get(1L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', "cropPotato" }); + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Raw_Cookie.get(4L), + bits_no_remove_buffered, + new Object[] { "kX", 'X', ItemList.Food_Dough_Chocolate }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Food_Raw_Fries.get(1L), + bits_no_remove_buffered, + new Object[] { "k", "X", 'X', "cropPotato" }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.bowl, 1), + bits_no_remove_buffered, + new Object[] { "k", "X", 'X', OrePrefixes.plank.get(Materials.Wood) }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Rubber, 1L), + bits_no_remove_buffered, + new Object[] { "k", "X", 'X', OrePrefixes.plate.get(Materials.Rubber) }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, Materials.Flint, 1L), + bits_no_remove_buffered, + new Object[] { "f", "X", 'X', new ItemStack(Items.flint, 1, 32767) }); + + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.arrow, 1), + bits_no_remove_buffered | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, + new Object[] { " H", " S ", "F ", 'H', new ItemStack(Items.flint, 1, 32767), 'S', + OrePrefixes.stick.get(Materials.Wood), 'F', OreDictNames.craftingFeather }); + + GT_ModHandler.removeRecipe( + new ItemStack(Blocks.planks), + null, + new ItemStack(Blocks.planks), + null, + new ItemStack(Blocks.planks)); + GT_ModHandler.removeRecipeByOutputDelayed(ItemList.Food_Baked_Bread.get(1L)); + GT_ModHandler.removeRecipeByOutputDelayed(new ItemStack(Items.cookie, 1)); + GT_ModHandler.removeRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L)); + if (null != GT_Utility.setStack( + GT_ModHandler.getRecipeOutput( + true, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), + null, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L)), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L))) { + GT_Log.out.println("GT_Mod: Changed Forestrys Bronze Recipe"); + } + tStack = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L); + + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getRecipeOutput( + null, + new ItemStack(Blocks.sand, 1, 0), + null, + null, + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Apatite, 1L), + null, + null, + new ItemStack(Blocks.sand, 1, 0), + null), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "S", "A", "S", 'A', OrePrefixes.dust.get(Materials.Apatite), 'S', + new ItemStack(Blocks.sand, 1, 32767) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getRecipeOutput( + tStack, + tStack, + tStack, + tStack, + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Apatite, 1L), + tStack, + tStack, + tStack, + tStack), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SSS", "SAS", "SSS", 'A', OrePrefixes.dust.get(Materials.Apatite), 'S', + OrePrefixes.dust.get(Materials.Ash) }); + + GT_Log.out.println("GT_Mod: Adding Mixed Metal Ingot Recipes."); + GT_ModHandler.removeRecipeByOutputDelayed(ItemList.IC2_Mixed_Metal_Ingot.get(1L)); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.AnyIron), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.AnyIron), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.AnyIron), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.AnyIron), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.AnyIron), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.AnyIron), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Nickel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Nickel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Nickel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Nickel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Nickel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(1L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Nickel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(2L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Invar), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(2L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Invar), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Invar), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(2L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Invar), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(2L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Invar), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Invar), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(2L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Steel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(2L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Steel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Steel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(2L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Steel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(2L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Steel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Steel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.StainlessSteel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.StainlessSteel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(4L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.StainlessSteel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.StainlessSteel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.StainlessSteel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(4L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.StainlessSteel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Titanium), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Titanium), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(4L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Titanium), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Titanium), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Titanium), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(4L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Titanium), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Tungsten), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Tungsten), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(4L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Tungsten), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Tungsten), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(3L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Tungsten), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(4L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Tungsten), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(5L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(5L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(6L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.Bronze), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(5L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(5L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(6L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.Brass), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(8L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.Chrome), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(8L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.Chrome), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(8L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.Chrome), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(10L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.StainlessSteel), 'Z', OrePrefixes.plate.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(10L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.StainlessSteel), 'Z', OrePrefixes.plate.get(Materials.Zinc) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(10L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.TungstenSteel), 'Y', + OrePrefixes.plate.get(Materials.StainlessSteel), 'Z', OrePrefixes.plate.get(Materials.Aluminium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(12L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Iridium), 'Y', + OrePrefixes.plate.get(Materials.Chrome), 'Z', OrePrefixes.plate.get(Materials.AnnealedCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(12L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Iridium), 'Y', + OrePrefixes.plate.get(Materials.Chrome), 'Z', OrePrefixes.plate.get(Materials.RoseGold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(12L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Iridium), 'Y', + OrePrefixes.plate.get(Materials.Chrome), 'Z', OrePrefixes.plate.get(Materials.AstralSilver) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(14L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Iridium), 'Y', + OrePrefixes.plate.get(Materials.StainlessSteel), 'Z', + OrePrefixes.plate.get(Materials.AnnealedCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(14L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Iridium), 'Y', + OrePrefixes.plate.get(Materials.StainlessSteel), 'Z', OrePrefixes.plate.get(Materials.RoseGold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(14L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Iridium), 'Y', + OrePrefixes.plate.get(Materials.StainlessSteel), 'Z', OrePrefixes.plate.get(Materials.AstralSilver) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(16L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.HSSG), 'Y', + OrePrefixes.plate.get(Materials.StainlessSteel), 'Z', + OrePrefixes.plate.get(Materials.AnnealedCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(16L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.HSSG), 'Y', + OrePrefixes.plate.get(Materials.StainlessSteel), 'Z', OrePrefixes.plate.get(Materials.RoseGold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(16L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.HSSG), 'Y', + OrePrefixes.plate.get(Materials.StainlessSteel), 'Z', OrePrefixes.plate.get(Materials.AstralSilver) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(18L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.HSSE), 'Y', + OrePrefixes.plate.get(Materials.Chrome), 'Z', OrePrefixes.plate.get(Materials.AnnealedCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(18L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.HSSE), 'Y', + OrePrefixes.plate.get(Materials.Chrome), 'Z', OrePrefixes.plate.get(Materials.RoseGold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(18L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.HSSE), 'Y', + OrePrefixes.plate.get(Materials.Chrome), 'Z', OrePrefixes.plate.get(Materials.AstralSilver) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(20L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.HSSS), 'Y', + OrePrefixes.plate.get(Materials.TungstenSteel), 'Z', OrePrefixes.plate.get(Materials.AnnealedCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(20L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.HSSS), 'Y', + OrePrefixes.plate.get(Materials.TungstenSteel), 'Z', OrePrefixes.plate.get(Materials.RoseGold) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(20L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.HSSS), 'Y', + OrePrefixes.plate.get(Materials.TungstenSteel), 'Z', OrePrefixes.plate.get(Materials.AstralSilver) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Long_Distance_Pipeline_Fluid.get(1L), + GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, + new Object[] { "GPG", "IwI", "GPG", 'G', GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Steel, 1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 1L), 'I', + GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.Steel, 1L) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Long_Distance_Pipeline_Item.get(1L), + GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, + new Object[] { "GPG", "IwI", "GPG", 'G', GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Steel, 1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 1L), 'I', + GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.Tin, 1L) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Long_Distance_Pipeline_Fluid_Pipe.get(32L), + GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, + new Object[] { "PPP", "IwI", "PPP", 'P', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 1L), + 'I', GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Steel, 1L) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Long_Distance_Pipeline_Item_Pipe.get(32L), + GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, + new Object[] { "PPP", "IwI", "PPP", 'P', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 1L), + 'I', GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Tin, 1L) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(22L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Naquadah), 'Y', + OrePrefixes.plate.get(Materials.Iridium), 'Z', OrePrefixes.plate.get(Materials.HSSG) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(24L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Naquadah), 'Y', + OrePrefixes.plate.get(Materials.Iridium), 'Z', OrePrefixes.plate.get(Materials.HSSE) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(26L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Naquadah), 'Y', + OrePrefixes.plate.get(Materials.Iridium), 'Z', OrePrefixes.plate.get(Materials.HSSS) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(28L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.NaquadahAlloy), 'Y', + OrePrefixes.plate.get(Materials.Osmiridium), 'Z', OrePrefixes.plate.get(Materials.HSSE) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(30L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.NaquadahAlloy), 'Y', + OrePrefixes.plate.get(Materials.Osmiridium), 'Z', OrePrefixes.plate.get(Materials.HSSG) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(32L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.NaquadahAlloy), 'Y', + OrePrefixes.plate.get(Materials.Osmiridium), 'Z', OrePrefixes.plate.get(Materials.HSSS) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(34L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Neutronium), 'Y', + OrePrefixes.plate.get(Materials.EnergeticAlloy), 'Z', OrePrefixes.plate.get(Materials.Naquadah) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(36L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Neutronium), 'Y', + OrePrefixes.plate.get(Materials.EnergeticAlloy), 'Z', OrePrefixes.plate.get(Materials.NaquadahAlloy) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(38L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.Neutronium), 'Y', + OrePrefixes.plate.get(Materials.EnergeticAlloy), 'Z', OrePrefixes.plate.get(Materials.Draconium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(40L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.BlackPlutonium), 'Y', + OrePrefixes.plate.get(Materials.Sunnarium), 'Z', OrePrefixes.plate.get(Materials.Naquadah) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(42L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.BlackPlutonium), 'Y', + OrePrefixes.plate.get(Materials.Sunnarium), 'Z', OrePrefixes.plate.get(Materials.NaquadahAlloy) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(44L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.BlackPlutonium), 'Y', + OrePrefixes.plate.get(Materials.Sunnarium), 'Z', OrePrefixes.plate.get(Materials.Draconium) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(48L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.DraconiumAwakened), 'Y', + OrePrefixes.plate.get(Materials.Neutronium), 'Z', OrePrefixes.plate.get(Materials.HSSS) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(52L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.DraconiumAwakened), 'Y', + OrePrefixes.plate.get(Materials.Neutronium), 'Z', OrePrefixes.plate.get(Materials.Naquadah) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(56L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.DraconiumAwakened), 'Y', + OrePrefixes.plate.get(Materials.Neutronium), 'Z', OrePrefixes.plate.get(Materials.NaquadahAlloy) }); + GT_ModHandler.addCraftingRecipe( + ItemList.IC2_Mixed_Metal_Ingot.get(64L), + bits_no_remove_buffered, + new Object[] { "X", "Y", "Z", 'X', OrePrefixes.plate.get(Materials.DraconiumAwakened), 'Y', + OrePrefixes.plate.get(Materials.Neutronium), 'Z', OrePrefixes.plate.get(Materials.BlackPlutonium) }); + + GT_Log.out.println("GT_Mod: Beginning to add regular Crafting Recipes."); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("scaffold", 4L), + bits_no_remove_buffered, + new Object[] { "WWW", " S ", "S S", 'W', OrePrefixes.plank.get(Materials.Wood), 'S', + OrePrefixes.stick.get(Materials.Wood) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.IronMagnetic, 1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.stick.get(Materials.AnyIron), OrePrefixes.dust.get(Materials.Redstone), + OrePrefixes.dust.get(Materials.Redstone), OrePrefixes.dust.get(Materials.Redstone), + OrePrefixes.dust.get(Materials.Redstone) }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Paper, 1L), + bits_no_remove_buffered, + new Object[] { "PPk", 'P', OrePrefixes.plate.get(Materials.Paper) }); + + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.torch, 2), + bits_no_remove_buffered, + new Object[] { "C", "S", 'C', OrePrefixes.dust.get(Materials.Sulfur), 'S', + OrePrefixes.stick.get(Materials.Wood) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.torch, 6), + bits_no_remove_buffered, + new Object[] { "C", "S", 'C', OrePrefixes.dust.get(Materials.TricalciumPhosphate), 'S', + OrePrefixes.stick.get(Materials.Wood) }); + + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.piston, 1), + bits_no_remove_buffered, + new Object[] { "WWW", "CBC", "CRC", 'W', OrePrefixes.plank.get(Materials.Wood), 'C', + OrePrefixes.stoneCobble, 'R', OrePrefixes.dust.get(Materials.Redstone), 'B', + OrePrefixes.ingot.get(Materials.AnyIron) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.piston, 1), + bits_no_remove_buffered, + new Object[] { "WWW", "CBC", "CRC", 'W', OrePrefixes.plank.get(Materials.Wood), 'C', + OrePrefixes.stoneCobble, 'R', OrePrefixes.dust.get(Materials.Redstone), 'B', + OrePrefixes.ingot.get(Materials.AnyBronze) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.piston, 1), + bits_no_remove_buffered, + new Object[] { "WWW", "CBC", "CRC", 'W', OrePrefixes.plank.get(Materials.Wood), 'C', + OrePrefixes.stoneCobble, 'R', OrePrefixes.dust.get(Materials.Redstone), 'B', + OrePrefixes.ingot.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.piston, 1), + bits_no_remove_buffered, + new Object[] { "WWW", "CBC", "CRC", 'W', OrePrefixes.plank.get(Materials.Wood), 'C', + OrePrefixes.stoneCobble, 'R', OrePrefixes.dust.get(Materials.Redstone), 'B', + OrePrefixes.ingot.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Blocks.piston, 1), + bits_no_remove_buffered, + new Object[] { "WWW", "CBC", "CRC", 'W', OrePrefixes.plank.get(Materials.Wood), 'C', + OrePrefixes.stoneCobble, 'R', OrePrefixes.dust.get(Materials.Redstone), 'B', + OrePrefixes.ingot.get(Materials.Titanium) }); + + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("reactorVent", 1L, 1), + bits_no_remove_buffered, + new Object[] { "AIA", "I I", "AIA", 'I', new ItemStack(Blocks.iron_bars, 1), 'A', + OrePrefixes.plate.get(Materials.Aluminium) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_ModHandler.getIC2Item("reactorPlatingExplosive", 1L), + bits_no_remove_buffered, + new Object[] { GT_ModHandler.getIC2Item("reactorPlating", 1L), OrePrefixes.plate.get(Materials.Lead) }); + if (!Materials.Steel.mBlastFurnaceRequired) { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Coal), + OrePrefixes.dust.get(Materials.Coal) }); + } + if (GT_Mod.gregtechproxy.mNerfDustCrafting) { + GT_ModHandler.removeRecipeByOutputDelayed(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 1L)); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 3L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), + OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Zinc) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Brass, 9L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Tetrahedrite), + OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), + OrePrefixes.dust.get(Materials.Zinc) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 3L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), + OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Tin) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Bronze, 9L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Tetrahedrite), + OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), + OrePrefixes.dust.get(Materials.Tin) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Invar, 9L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), + OrePrefixes.dust.get(Materials.Nickel) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cupronickel, 6L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.AnyCopper) }); + } else { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 4L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), + OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Zinc) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 3L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Tetrahedrite), + OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), + OrePrefixes.dust.get(Materials.Zinc) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 4L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), + OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Tin) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 3L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Tetrahedrite), + OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), + OrePrefixes.dust.get(Materials.Tin) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Invar, 3L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), + OrePrefixes.dust.get(Materials.Nickel) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cupronickel, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.AnyCopper) }); + + } + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RoseGold, 4L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Gold), + OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Gold), + OrePrefixes.dust.get(Materials.AnyCopper) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SterlingSilver, 4L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Silver), + OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Silver), + OrePrefixes.dust.get(Materials.AnyCopper) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackBronze, 4L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Silver), + OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), + OrePrefixes.dust.get(Materials.AnyCopper) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BismuthBronze, 4L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Bismuth), OrePrefixes.dust.get(Materials.Zinc), + OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), + OrePrefixes.dust.get(Materials.AnyCopper) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CobaltBrass, 8L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), + OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), + OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), + OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Aluminium), + OrePrefixes.dust.get(Materials.Cobalt) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DamascusSteel, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dustSmall.get(Materials.Nickel), + OrePrefixes.dustSmall.get(Materials.Nickel), OrePrefixes.dustSmall.get(Materials.Nickel), + OrePrefixes.dustTiny.get(Materials.Coal), OrePrefixes.dustTiny.get(Materials.Silicon), + OrePrefixes.dustTiny.get(Materials.Manganese), OrePrefixes.dustTiny.get(Materials.Chrome), + OrePrefixes.dustTiny.get(Materials.Molybdenum) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DamascusSteel, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dustSmall.get(Materials.Manganese), + OrePrefixes.dustSmall.get(Materials.Manganese), OrePrefixes.dustSmall.get(Materials.Chrome), + OrePrefixes.dustSmall.get(Materials.Chrome), OrePrefixes.dustTiny.get(Materials.Coal), + OrePrefixes.dustTiny.get(Materials.Silicon), OrePrefixes.dustTiny.get(Materials.Vanadium) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RedstoneAlloy, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Redstone), OrePrefixes.dust.get(Materials.Silicon), + OrePrefixes.dust.get(Materials.Coal) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CrudeSteel, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Clay), OrePrefixes.dust.get(Materials.Flint), + OrePrefixes.dust.get(Materials.Stone) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ConductiveIron, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.RedstoneAlloy), OrePrefixes.dust.get(Materials.Iron), + OrePrefixes.dust.get(Materials.Silver) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnergeticAlloy, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.ConductiveIron), OrePrefixes.dust.get(Materials.Gold), + OrePrefixes.dust.get(Materials.BlackSteel) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnergeticSilver, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.ConductiveIron), OrePrefixes.dust.get(Materials.Silver), + OrePrefixes.dust.get(Materials.BlackSteel) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ElectricalSteel, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Coal), + OrePrefixes.dust.get(Materials.Silicon) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Soularium, 2L), + bits_no_remove_buffered, + new Object[] { new ItemStack(Blocks.soul_sand, 1, 32767), OrePrefixes.dust.get(Materials.Gold), + OrePrefixes.dust.get(Materials.Ash) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkSteel, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.ElectricalSteel), OrePrefixes.dust.get(Materials.Coal), + OrePrefixes.dust.get(Materials.Obsidian) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Manyullyn, 3L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Ardite), OrePrefixes.dust.get(Materials.Ardite), + OrePrefixes.dust.get(Materials.Ardite), OrePrefixes.dust.get(Materials.Ardite), + OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), + OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Haderoth, 1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Rubracium), OrePrefixes.dust.get(Materials.Mithril) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Celenegil, 1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Platinum), OrePrefixes.dust.get(Materials.Orichalcum) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.LiveRoot), + OrePrefixes.dustTiny.get(Materials.Gold) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Hepatizon, 3L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Copper), OrePrefixes.dust.get(Materials.Copper), + OrePrefixes.dust.get(Materials.Copper), OrePrefixes.dustTiny.get(Materials.Gold), + OrePrefixes.dustTiny.get(Materials.Gold), OrePrefixes.dustTiny.get(Materials.Gold), + OrePrefixes.dustTiny.get(Materials.Silver), OrePrefixes.dustTiny.get(Materials.Silver), + OrePrefixes.dustTiny.get(Materials.Silver) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Angmallen, 2L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Gold) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Inolashite, 1L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Alduorite), OrePrefixes.dust.get(Materials.Ceruclase) }); + + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Items.gunpowder, 6), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Coal), OrePrefixes.dust.get(Materials.Coal), + OrePrefixes.dust.get(Materials.Coal), OrePrefixes.dust.get(Materials.Sulfur), + OrePrefixes.dust.get(Materials.Saltpeter), OrePrefixes.dust.get(Materials.Saltpeter) }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Items.gunpowder, 6), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Charcoal), OrePrefixes.dust.get(Materials.Charcoal), + OrePrefixes.dust.get(Materials.Charcoal), OrePrefixes.dust.get(Materials.Sulfur), + OrePrefixes.dust.get(Materials.Saltpeter), OrePrefixes.dust.get(Materials.Saltpeter) }); + GT_ModHandler.addShapelessCraftingRecipe( + new ItemStack(Items.gunpowder, 6), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Carbon), OrePrefixes.dust.get(Materials.Carbon), + OrePrefixes.dust.get(Materials.Carbon), OrePrefixes.dust.get(Materials.Sulfur), + OrePrefixes.dust.get(Materials.Saltpeter), OrePrefixes.dust.get(Materials.Saltpeter) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IndiumGalliumPhosphide, 3L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Indium), OrePrefixes.dust.get(Materials.Gallium), + OrePrefixes.dust.get(Materials.Phosphorus) }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 5L), + bits_no_remove_buffered, + new Object[] { OrePrefixes.dust.get(Materials.Potassium), OrePrefixes.cell.get(Materials.Nitrogen), + OrePrefixes.cell.get(Materials.Oxygen), OrePrefixes.cell.get(Materials.Oxygen), + OrePrefixes.cell.get(Materials.Oxygen) }); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("carbonFiber", 1L)); + + ItemStack[] tChestAndTank = new ItemStack[] { ItemList.Super_Chest_EV.get(1), ItemList.Super_Chest_IV.get(1), + ItemList.Super_Chest_HV.get(1), ItemList.Super_Chest_MV.get(1), ItemList.Super_Chest_LV.get(1), + ItemList.Quantum_Chest_EV.get(1), ItemList.Quantum_Chest_IV.get(1), ItemList.Quantum_Chest_HV.get(1), + ItemList.Quantum_Chest_MV.get(1), ItemList.Quantum_Chest_LV.get(1), ItemList.Super_Tank_EV.get(1), + ItemList.Super_Tank_IV.get(1), ItemList.Super_Tank_HV.get(1), ItemList.Super_Tank_MV.get(1), + ItemList.Super_Tank_LV.get(1), ItemList.Quantum_Tank_EV.get(1), ItemList.Quantum_Tank_IV.get(1), + ItemList.Quantum_Tank_HV.get(1), ItemList.Quantum_Tank_MV.get(1), ItemList.Quantum_Tank_LV.get(1) }; + for (ItemStack tItem : tChestAndTank) { + GT_ModHandler.addShapelessCraftingRecipe(tItem, new Object[] { tItem }); + } + + if (GT_Mod.gregtechproxy.mDisableIC2Cables) { + + List<ItemStack> iToRemoveAndHide = Arrays.stream( + new String[] { "copperCableItem", "insulatedCopperCableItem", "goldCableItem", "insulatedGoldCableItem", + "insulatedIronCableItem", "glassFiberCableItem", "tinCableItem", "ironCableItem", + "insulatedTinCableItem", "detectorCableItem", "splitterCableItem", "electrolyzer", "cutter" }) + .map(x -> GT_ModHandler.getIC2Item(x, 1L)) + .collect(Collectors.toList()); + + if (NotEnoughItems.isModLoaded()) { + iToRemoveAndHide.forEach(item -> { + codechicken.nei.api.API.hideItem(item); + GT_ModHandler.removeRecipeByOutputDelayed(item); + }); + } + + Arrays.stream( + new String[] { "batBox", "mfeUnit", "lvTransformer", "mvTransformer", "hvTransformer", "evTransformer", + "cesuUnit", "luminator", "teleporter", "energyOMat", "advBattery", "boatElectric", "cropnalyzer", + "coil", "powerunit", "powerunitsmall", "remote", "odScanner", "ovScanner", "solarHelmet", + "staticBoots", "ecMeter", "obscurator", "overclockerUpgrade", "transformerUpgrade", + "energyStorageUpgrade", "ejectorUpgrade", "suBattery", "frequencyTransmitter", "pullingUpgrade" }) + .map(x -> GT_ModHandler.getIC2Item(x, 1L)) + .forEach(GT_ModHandler::removeRecipeByOutputDelayed); + + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("batBox", 1L), + bits_no_remove_buffered, + new Object[] { "PCP", "BBB", "PPP", 'C', OrePrefixes.cableGt01.get(Materials.Tin), 'P', + OrePrefixes.plank.get(Materials.Wood), 'B', OrePrefixes.battery.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("mfeUnit", 1L), + bits_no_remove_buffered, + new Object[] { "CEC", "EME", "CEC", 'C', OrePrefixes.cableGt01.get(Materials.Gold), 'E', + OrePrefixes.battery.get(Materials.Elite), 'M', GT_ModHandler.getIC2Item("machine", 1L) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("lvTransformer", 1L), + bits_no_remove_buffered, + new Object[] { "PCP", "POP", "PCP", 'C', OrePrefixes.cableGt01.get(Materials.Tin), 'O', + GT_ModHandler.getIC2Item("coil", 1L), 'P', OrePrefixes.plank.get(Materials.Wood) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("mvTransformer", 1L), + bits_no_remove_buffered, + new Object[] { "CMC", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'M', + GT_ModHandler.getIC2Item("machine", 1L) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("hvTransformer", 1L), + bits_no_remove_buffered, + new Object[] { " C ", "IMB", " C ", 'C', OrePrefixes.cableGt01.get(Materials.Gold), 'M', + GT_ModHandler.getIC2Item("mvTransformer", 1L), 'I', OrePrefixes.circuit.get(Materials.Basic), 'B', + OrePrefixes.battery.get(Materials.Advanced) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("evTransformer", 1L), + bits_no_remove_buffered, + new Object[] { " C ", "IMB", " C ", 'C', OrePrefixes.cableGt01.get(Materials.Aluminium), 'M', + GT_ModHandler.getIC2Item("hvTransformer", 1L), 'I', OrePrefixes.circuit.get(Materials.Advanced), + 'B', OrePrefixes.battery.get(Materials.Master) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("cesuUnit", 1L), + bits_no_remove_buffered, + new Object[] { "PCP", "BBB", "PPP", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'P', + OrePrefixes.plate.get(Materials.Bronze), 'B', OrePrefixes.battery.get(Materials.Advanced) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("teleporter", 1L), + bits_no_remove_buffered, + new Object[] { "GFG", "CMC", "GDG", 'C', OrePrefixes.cableGt01.get(Materials.Platinum), 'G', + OrePrefixes.circuit.get(Materials.Advanced), 'D', OrePrefixes.gem.get(Materials.Diamond), 'M', + GT_ModHandler.getIC2Item("machine", 1L), 'F', + GT_ModHandler.getIC2Item("frequencyTransmitter", 1L) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("energyOMat", 1L), + bits_no_remove_buffered, + new Object[] { "RBR", "CMC", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'R', + OrePrefixes.dust.get(Materials.Redstone), 'B', OrePrefixes.battery.get(Materials.Basic), 'M', + GT_ModHandler.getIC2Item("machine", 1L) }); + + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("boatElectric", 1L), + bits_no_remove_buffered, + new Object[] { "CCC", "XWX", aTextIron2, 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'X', + OrePrefixes.plate.get(Materials.Iron), 'W', GT_ModHandler.getIC2Item("waterMill", 1L) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("cropnalyzer", 1L), + bits_no_remove_buffered, + new Object[] { "CC ", "RGR", "RIR", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'R', + OrePrefixes.dust.get(Materials.Redstone), 'G', OrePrefixes.block.get(Materials.Glass), 'I', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("coil", 1L), + bits_no_remove_buffered, + new Object[] { "CCC", "CXC", "CCC", 'C', OrePrefixes.wireGt01.get(Materials.Copper), 'X', + OrePrefixes.ingot.get(Materials.AnyIron) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("powerunit", 1L), + bits_no_remove_buffered, + new Object[] { "BCA", "BIM", "BCA", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'B', + OrePrefixes.battery.get(Materials.Basic), 'A', GT_ModHandler.getIC2Item("casingiron", 1L), 'I', + OrePrefixes.circuit.get(Materials.Basic), 'M', GT_ModHandler.getIC2Item("elemotor", 1L) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("powerunitsmall", 1L), + bits_no_remove_buffered, + new Object[] { " CA", "BIM", " CA", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'B', + OrePrefixes.battery.get(Materials.Basic), 'A', GT_ModHandler.getIC2Item("casingiron", 1L), 'I', + OrePrefixes.circuit.get(Materials.Basic), 'M', GT_ModHandler.getIC2Item("elemotor", 1L) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("remote", 1L), + bits_no_remove_buffered, + new Object[] { " C ", "TLT", " F ", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'L', + OrePrefixes.dust.get(Materials.Lapis), 'T', GT_ModHandler.getIC2Item("casingtin", 1L), 'F', + GT_ModHandler.getIC2Item("frequencyTransmitter", 1L) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("odScanner", 1L), + bits_no_remove_buffered, + new Object[] { "PGP", "CBC", "WWW", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'G', + OrePrefixes.dust.get(Materials.Glowstone), 'B', OrePrefixes.battery.get(Materials.Advanced), 'C', + OrePrefixes.circuit.get(Materials.Advanced), 'P', GT_ModHandler.getIC2Item("casinggold", 1L) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("ovScanner", 1L), + bits_no_remove_buffered, + new Object[] { "PDP", "GCG", "WSW", 'W', OrePrefixes.cableGt01.get(Materials.Gold), 'G', + OrePrefixes.dust.get(Materials.Glowstone), 'D', OrePrefixes.battery.get(Materials.Elite), 'C', + OrePrefixes.circuit.get(Materials.Advanced), 'P', GT_ModHandler.getIC2Item("casinggold", 1L), 'S', + GT_ModHandler.getIC2Item("odScanner", 1L) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("staticBoots", 1L), + bits_no_remove_buffered, + new Object[] { "I I", "IWI", "CCC", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'I', + OrePrefixes.ingot.get(Materials.Iron), 'W', new ItemStack(Blocks.wool) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("ecMeter", 1L), + bits_no_remove_buffered, + new Object[] { " G ", "CIC", "C C", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'G', + OrePrefixes.dust.get(Materials.Glowstone), 'I', OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("obscurator", 1L), + bits_no_remove_buffered, + new Object[] { "RER", "CAC", "RRR", 'C', OrePrefixes.cableGt01.get(Materials.Gold), 'R', + OrePrefixes.dust.get(Materials.Redstone), 'E', OrePrefixes.battery.get(Materials.Advanced), 'A', + OrePrefixes.circuit.get(Materials.Advanced) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("overclockerUpgrade", 1L), + bits_no_remove_buffered, + new Object[] { "CCC", "WEW", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'C', + GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 1), 'E', + OrePrefixes.circuit.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("transformerUpgrade", 1L), + bits_no_remove_buffered, + new Object[] { "GGG", "WTW", "GEG", 'W', OrePrefixes.cableGt01.get(Materials.Gold), 'T', + GT_ModHandler.getIC2Item("mvTransformer", 1L), 'E', OrePrefixes.circuit.get(Materials.Basic), 'G', + OrePrefixes.block.get(Materials.Glass) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("energyStorageUpgrade", 1L), + bits_no_remove_buffered, + new Object[] { "PPP", "WBW", "PEP", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'E', + OrePrefixes.circuit.get(Materials.Basic), 'P', OrePrefixes.plank.get(Materials.Wood), 'B', + OrePrefixes.battery.get(Materials.Basic) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("ejectorUpgrade", 1L), + bits_no_remove_buffered, + new Object[] { "PHP", "WEW", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'E', + OrePrefixes.circuit.get(Materials.Basic), 'P', new ItemStack(Blocks.piston), 'H', + new ItemStack(Blocks.hopper) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("suBattery", 1L), + bits_no_remove_buffered, + new Object[] { "W", "C", "R", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'C', + OrePrefixes.dust.get(Materials.HydratedCoal), 'R', OrePrefixes.dust.get(Materials.Redstone) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("pullingUpgrade", 1L), + bits_no_remove_buffered, + new Object[] { "PHP", "WEW", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'P', + new ItemStack(Blocks.sticky_piston), 'R', new ItemStack(Blocks.hopper), 'E', + OrePrefixes.circuit.get(Materials.Basic) }); + + } else { + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("glassFiberCableItem", 1L), + bits_no_remove_buffered, + new Object[] { "GGG", "EDE", "GGG", 'G', new ItemStack(Blocks.glass, 1, 32767), 'D', + OrePrefixes.dust.get(Materials.Silver), 'E', ItemList.IC2_Energium_Dust.get(1L) }); + } + + if (NotEnoughItems.isModLoaded()) { + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorUraniumSimple", 1L, 1)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorUraniumDual", 1L, 1)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorUraniumQuad", 1L, 1)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorMOXSimple", 1L, 1)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorMOXDual", 1L, 1)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorMOXQuad", 1L, 1)); + } + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("UranFuel", 1L), + bits_no_remove_buffered, + new Object[] { "UUU", "NNN", "UUU", 'U', OrePrefixes.ingot.get(Materials.Uranium), 'N', + OrePrefixes.nugget.get(Materials.Uranium235) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("MOXFuel", 1L), + bits_no_remove_buffered, + new Object[] { "UUU", "NNN", "UUU", 'U', OrePrefixes.ingot.get(Materials.Uranium), 'N', + OrePrefixes.ingot.get(Materials.Plutonium) }); + + GT_ModHandler.removeRecipeByOutputDelayed(Ic2Items.miningLaser.copy()); + GT_ModHandler.addCraftingRecipe( + Ic2Items.miningLaser.copy(), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PPP", "GEC", "SBd", 'P', OrePrefixes.plate.get(Materials.Titanium), 'G', + OrePrefixes.gemExquisite.get(Materials.Diamond), 'E', ItemList.Emitter_HV, 'C', + OrePrefixes.circuit.get(Materials.Elite), 'S', OrePrefixes.screw.get(Materials.Titanium), 'B', + new ItemStack( + Ic2Items.chargingEnergyCrystal.copy() + .getItem(), + 1, + GT_Values.W) }); + GT_ModHandler.addCraftingRecipe( + Ic2Items.miningLaser.copy(), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PPP", "GEC", "SBd", 'P', OrePrefixes.plate.get(Materials.Titanium), 'G', + OrePrefixes.gemExquisite.get(Materials.Ruby), 'E', ItemList.Emitter_HV, 'C', + OrePrefixes.circuit.get(Materials.Elite), 'S', OrePrefixes.screw.get(Materials.Titanium), 'B', + new ItemStack( + Ic2Items.chargingEnergyCrystal.copy() + .getItem(), + 1, + GT_Values.W) }); + GT_ModHandler.addCraftingRecipe( + Ic2Items.miningLaser.copy(), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PPP", "GEC", "SBd", 'P', OrePrefixes.plate.get(Materials.Titanium), 'G', + OrePrefixes.gemExquisite.get(Materials.Jasper), 'E', ItemList.Emitter_HV, 'C', + OrePrefixes.circuit.get(Materials.Elite), 'S', OrePrefixes.screw.get(Materials.Titanium), 'B', + new ItemStack( + Ic2Items.chargingEnergyCrystal.copy() + .getItem(), + 1, + GT_Values.W) }); + GT_ModHandler.addCraftingRecipe( + Ic2Items.miningLaser.copy(), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "PPP", "GEC", "SBd", 'P', OrePrefixes.plate.get(Materials.Titanium), 'G', + OrePrefixes.gemExquisite.get(Materials.GarnetRed), 'E', ItemList.Emitter_HV, 'C', + OrePrefixes.circuit.get(Materials.Elite), 'S', OrePrefixes.screw.get(Materials.Titanium), 'B', + new ItemStack( + Ic2Items.chargingEnergyCrystal.copy() + .getItem(), + 1, + GT_Values.W) }); + + GT_ModHandler.removeRecipeDelayed(GT_ModHandler.getIC2Item("miningPipe", 8)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("miningPipe", 1), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "hPf", 'P', OrePrefixes.pipeSmall.get(Materials.Steel) }); + + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("luminator", 16L), + bits_no_remove_buffered, + new Object[] { "RTR", "GHG", "GGG", 'H', OrePrefixes.cell.get(Materials.Helium), 'T', + OrePrefixes.ingot.get(Materials.Tin), 'R', OrePrefixes.ingot.get(Materials.AnyIron), 'G', + new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("luminator", 16L), + bits_no_remove_buffered, + new Object[] { "RTR", "GHG", "GGG", 'H', OrePrefixes.cell.get(Materials.Mercury), 'T', + OrePrefixes.ingot.get(Materials.Tin), 'R', OrePrefixes.ingot.get(Materials.AnyIron), 'G', + new ItemStack(Blocks.glass, 1) }); + + GT_ModHandler.removeRecipeDelayed( + tStack = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), + tStack, + tStack, + tStack, + new ItemStack(Items.coal, 1, 0), + tStack, + tStack, + tStack, + tStack); + GT_ModHandler.removeRecipeDelayed( + tStack = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), + tStack, + tStack, + tStack, + new ItemStack(Items.coal, 1, 1), + tStack, + tStack, + tStack, + tStack); + GT_ModHandler.removeRecipeDelayed( + null, + tStack = new ItemStack(Items.coal, 1), + null, + tStack, + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), + tStack, + null, + tStack, + null); + + GT_ModHandler.removeFurnaceSmelting(new ItemStack(Blocks.hopper)); + + GT_Log.out.println("GT_Mod: Applying harder Recipes for several Blocks."); // TODO: Not Buffered + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("reactorReflectorThick", 1L, 1)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("reactorReflectorThick", 1L, 1), + bits_no_remove_buffered, + new Object[] { " N ", "NBN", " N ", 'B', OrePrefixes.plateDouble.get(Materials.Beryllium), 'N', + GT_ModHandler.getIC2Item("reactorReflector", 1L, 1) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("reactorReflectorThick", 1L, 1), + bits_no_remove_buffered, + new Object[] { " B ", "NCN", " B ", 'B', OrePrefixes.plate.get(Materials.Beryllium), 'N', + GT_ModHandler.getIC2Item("reactorReflector", 1L, 1), 'C', + OrePrefixes.plate.get(Materials.TungstenCarbide) }); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("reactorReflector", 1L, 1)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("reactorReflector", 1L, 1), + bits_no_remove_buffered, + new Object[] { "TGT", "GSG", "TGT", 'T', OrePrefixes.plate.get(Materials.Tin), 'G', + OrePrefixes.dust.get(Materials.Graphite), 'S', OrePrefixes.plateDouble.get(Materials.Steel) }); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("reactorReflector", 1L, 1), + bits_no_remove_buffered, + new Object[] { "TTT", "GSG", "TTT", 'T', OrePrefixes.plate.get(Materials.TinAlloy), 'G', + OrePrefixes.dust.get(Materials.Graphite), 'S', OrePrefixes.plate.get(Materials.Beryllium) }); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("crophavester", 1L)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("crophavester", 1L), + bits_no_remove_buffered, + new Object[] { "ACA", "PMS", "WOW", 'M', ItemList.Hull_MV, 'C', OrePrefixes.circuit.get(Materials.Good), + 'A', ItemList.Robot_Arm_LV, 'P', ItemList.Electric_Piston_LV, 'S', ItemList.Sensor_LV, 'W', + OrePrefixes.toolHeadSense.get(Materials.Aluminium), 'O', ItemList.Conveyor_Module_LV }); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("RTGenerator", 1L)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("RTGenerator", 1L), + bits_no_remove_buffered, + new Object[] { "III", "IMI", "ICI", 'I', OrePrefixes.itemCasing.get(Materials.Steel), 'C', + OrePrefixes.circuit.get(Materials.Master), 'M', ItemList.Hull_IV }); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("RTHeatGenerator", 1L)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("RTHeatGenerator", 1L), + bits_no_remove_buffered, + new Object[] { "III", "IMB", "ICI", 'I', OrePrefixes.itemCasing.get(Materials.Steel), 'C', + OrePrefixes.circuit.get(Materials.Master), 'M', ItemList.Hull_IV, 'B', + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Copper, 1) }); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("carbonrotor", 1L)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("carbonrotor", 1L), + bits_no_remove_buffered, + new Object[] { "dBS", "BTB", "SBw", 'B', GT_ModHandler.getIC2Item("carbonrotorblade", 1), 'S', + OrePrefixes.screw.get(Materials.Iridium), 'T', GT_ModHandler.getIC2Item("steelshaft", 1) }); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("steelrotor", 1L)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("steelrotor", 1L), + bits_no_remove_buffered, + new Object[] { "dBS", "BTB", "SBw", 'B', GT_ModHandler.getIC2Item("steelrotorblade", 1), 'S', + OrePrefixes.screw.get(Materials.StainlessSteel), 'T', GT_ModHandler.getIC2Item("ironshaft", 1) }); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("ironrotor", 1L)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("ironrotor", 1L), + bits_no_remove_buffered, + new Object[] { "dBS", "BTB", "SBw", 'B', GT_ModHandler.getIC2Item("ironrotorblade", 1), 'S', + OrePrefixes.screw.get(Materials.WroughtIron), 'T', GT_ModHandler.getIC2Item("ironshaft", 1) }); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("woodrotor", 1L)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("woodrotor", 1L), + bits_no_remove_buffered, + new Object[] { "dBS", "BTB", "SBw", 'B', GT_ModHandler.getIC2Item("woodrotorblade", 1), 'S', + OrePrefixes.screw.get(Materials.WroughtIron), 'T', OrePrefixes.stickLong.get(Materials.WroughtIron) }); + + if (GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L) != null) { + tStack = GT_ModHandler.getRecipeOutput( + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), + new ItemStack(Items.redstone, 1), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Gold, 1L), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Gold, 1L), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L), + new ItemStack(Items.diamond_pickaxe, 1), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L)); + GT_ModHandler.removeRecipeByOutputDelayed(tStack); + GT_ModHandler.addCraftingRecipe( + tStack, + bits_no_remove_buffered, + new Object[] { "ICI", "GIG", "DPD", 'C', OrePrefixes.circuit.get(Materials.Advanced), 'D', + OrePrefixes.gear.get(Materials.Diamond), 'G', OrePrefixes.gear.get(Materials.Gold), 'I', + OrePrefixes.gear.get(Materials.Steel), 'P', GT_ModHandler.getIC2Item("diamondDrill", 1L, 32767) }); + } + + GT_ModHandler.removeRecipeByOutputDelayed(new ItemStack(Items.paper)); + GT_ModHandler.removeRecipeByOutputDelayed(new ItemStack(Items.sugar)); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Paper, 2), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "SSS", " m ", 'S', new ItemStack(Items.reeds) }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "Sm ", 'S', new ItemStack(Items.reeds) }); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.paper, Materials.Empty, 2), + GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { " C ", "SSS", " C ", 'S', GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Paper, 1), + 'C', new ItemStack(Blocks.stone_slab) }); + + GT_Log.out.println("GT_Mod: Applying Recipes for Tools"); + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("nanoSaber", 1L)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("nanoSaber", 1L), + bits_no_remove_buffered, + new Object[] { "PI ", "PI ", "CLC", 'L', OrePrefixes.battery.get(Materials.Master), 'I', + OrePrefixes.plateAlloy.get("Iridium"), 'P', OrePrefixes.plate.get(Materials.Platinum), 'C', + OrePrefixes.circuit.get(Materials.Elite) }); + + GT_ModHandler.removeRecipeByOutputDelayed(new ItemStack(Items.flint_and_steel, 1)); + GT_ModHandler.addCraftingRecipe( + new ItemStack(Items.flint_and_steel, 1), + bits_no_remove_buffered, + new Object[] { "S ", " F", 'F', new ItemStack(Items.flint, 1), 'S', "nuggetSteel" }); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("diamondDrill", 1L)); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("miningDrill", 1L)); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("chainsaw", 1L)); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("electricHoe", 1L)); + + GT_ModHandler.removeRecipeByOutputDelayed(GT_ModHandler.getIC2Item("electricTreetap", 1L)); + + if (GraviSuite.isModLoaded()) { + GT_ModHandler.removeRecipeByOutputDelayed( + GT_ModHandler.getModItem(GraviSuite.ID, "advNanoChestPlate", 1, GT_Values.W)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getModItem(GraviSuite.ID, "advNanoChestPlate", 1, GT_Values.W), + bits_no_remove_buffered, + new Object[] { "CJC", "TNT", "WPW", 'C', OrePrefixes.plateAlloy.get(Materials.Advanced), 'T', + OrePrefixes.plate.get(Materials.TungstenSteel), 'J', + GT_ModHandler.getModItem(GraviSuite.ID, "advJetpack", 1, GT_Values.W), 'N', + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemArmorNanoChestplate", 1, GT_Values.W), 'W', + OrePrefixes.wireGt12.get(Materials.Platinum), 'P', OrePrefixes.circuit.get(Materials.Elite) }); + + GT_ModHandler + .removeRecipeByOutputDelayed(GT_ModHandler.getModItem(GraviSuite.ID, "advLappack", 1, GT_Values.W)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getModItem(GraviSuite.ID, "advLappack", 1, GT_Values.W), + bits_no_remove_buffered, + new Object[] { "CEC", "EJE", "WPW", 'C', OrePrefixes.plateAlloy.get(Materials.Carbon), 'J', + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemArmorEnergypack", 1L, GT_Values.W), 'E', + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemBatCrystal", 1L, GT_Values.W), 'W', + OrePrefixes.wireGt04.get(Materials.Platinum), 'P', OrePrefixes.circuit.get(Materials.Data) }); + + GT_ModHandler + .removeRecipeByOutputDelayed(GT_ModHandler.getModItem(GraviSuite.ID, "advJetpack", 1, GT_Values.W)); + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getModItem(GraviSuite.ID, "advJetpack", 1, GT_Values.W), + bits_no_remove_buffered, + new Object[] { "CJC", "EXE", "YZY", 'C', OrePrefixes.plateAlloy.get(Materials.Carbon), 'J', + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemArmorJetpackElectric", 1, GT_Values.W), 'E', + OrePrefixes.plate.get(Materials.Titanium), 'X', + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemArmorAlloyChestplate", 1L), 'Z', + OrePrefixes.circuit.get(Materials.Data), 'Y', OrePrefixes.wireGt02.get(Materials.Platinum) }); + } + + GT_ModHandler.addShapelessCraftingRecipe( + Materials.Fireclay.getDust(2), + new Object[] { Materials.Brick.getDust(1), Materials.Clay.getDust(1) }); + + if (BartWorks.isModLoaded()) { + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Advanced_Rhodium_Palladium.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', + GT_ModHandler.getModItem(BartWorks.ID, "gt.bwMetaGeneratedplate", 1L, 88), 'F', + OrePrefixes.frameGt.get(Materials.Chrome) }); + } + + if (Forestry.isModLoaded()) { + ItemStack[] coverIDs = { ItemList.Plank_Larch.get(2L), ItemList.Plank_Teak.get(2L), + ItemList.Plank_Acacia_Green.get(2L), ItemList.Plank_Lime.get(2L), ItemList.Plank_Chestnut.get(2L), + ItemList.Plank_Wenge.get(2L), ItemList.Plank_Baobab.get(2L), ItemList.Plank_Sequoia.get(2L), + ItemList.Plank_Kapok.get(2L), ItemList.Plank_Ebony.get(2L), ItemList.Plank_Mahagony.get(2L), + ItemList.Plank_Balsa.get(2L), ItemList.Plank_Willow.get(2L), ItemList.Plank_Walnut.get(2L), + ItemList.Plank_Greenheart.get(2L), ItemList.Plank_Cherry.get(2L), ItemList.Plank_Mahoe.get(2L), + ItemList.Plank_Poplar.get(2L), ItemList.Plank_Palm.get(2L), ItemList.Plank_Papaya.get(2L), + ItemList.Plank_Pine.get(2L), ItemList.Plank_Plum.get(2L), ItemList.Plank_Maple.get(2L), + ItemList.Plank_Citrus.get(2L) }; + for (int i = 0; i < coverIDs.length; i++) { + ItemStack slabWood = getModItem(Forestry.ID, "slabs", 1, i); + ItemStack slabWoodFireproof = getModItem(Forestry.ID, "slabsFireproof", 1, i); + + GT_ModHandler.addCraftingRecipe( + coverIDs[i], + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "s ", " P", 'P', slabWood }); + + GT_ModHandler.addCraftingRecipe( + coverIDs[i], + GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "s ", " P", 'P', slabWoodFireproof }); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_CropLoader.java b/src/main/java/gregtech/loaders/postload/GT_CropLoader.java new file mode 100644 index 0000000000..e6608a52b6 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_CropLoader.java @@ -0,0 +1,1055 @@ +package gregtech.loaders.postload; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_BaseCrop; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_OreDictUnificator; + +public class GT_CropLoader implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Register Crops to IC2."); + try { + /* + * Tags: Vines = Tendrilly Edible = Food + */ + ItemStack[] tI = { ItemList.Crop_Drop_Indigo.get(4L), ItemList.Crop_Drop_MilkWart.get(4L), + new ItemStack(Blocks.brown_mushroom, 4), new ItemStack(Blocks.red_mushroom, 4) }; + new GT_BaseCrop( + 124, + "Indigo", + "Eloraam", + tI[0], + 2, + 4, + 0, + 1, + 4, + 1, + 1, + 0, + 4, + 0, + new String[] { "Flower", "Blue", "Ingredient" }, + ItemList.Crop_Drop_Indigo.get(1L), + null); + new GT_BaseCrop( + 125, + "Flax", + "Eloraam", + null, + 2, + 4, + 0, + 1, + 4, + 1, + 1, + 2, + 0, + 1, + new String[] { "Silk", "Tendrilly", "Addictive" }, + new ItemStack(Items.string, 1), + null); + new GT_BaseCrop( + 126, + "Oilberries", + "Spacetoad", + null, + 9, + 4, + 0, + 1, + 4, + 6, + 1, + 2, + 1, + 12, + new String[] { "Fire", "Dark", "Reed", "Rotten", "Coal", "Oil" }, + ItemList.Crop_Drop_OilBerry.get(1L), + null); + new GT_BaseCrop( + 127, + "Bobsyeruncleranks", + "GenerikB", + null, + 11, + 4, + 0, + 1, + 4, + 4, + 0, + 8, + 2, + 9, + new String[] { "Shiny", "Tendrilly", "Emerald", "Berylium", "Crystal" }, + Materials.Emerald, + ItemList.Crop_Drop_BobsYerUncleRanks.get(1L), + new ItemStack[] { new ItemStack(Items.emerald, 1) }); + new GT_BaseCrop( + 128, + "Diareed", + "Direwolf20", + null, + 12, + 4, + 0, + 1, + 4, + 5, + 0, + 10, + 2, + 10, + new String[] { "Fire", "Shiny", "Reed", "Coal", "Diamond", "Crystal" }, + Materials.Diamond, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1L), + new ItemStack[] { new ItemStack(Items.diamond, 1) }); + new GT_BaseCrop( + 129, + "Withereed", + "CovertJaguar", + null, + 8, + 4, + 0, + 1, + 4, + 2, + 0, + 4, + 1, + 3, + new String[] { "Fire", "Undead", "Reed", "Coal", "Rotten", "Wither" }, + Materials.Coal, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), + new ItemStack[] { new ItemStack(Items.coal, 1), new ItemStack(Items.coal, 1) }); + new GT_BaseCrop( + 130, + "Blazereed", + "Mr. Brain", + null, + 6, + 4, + 0, + 1, + 4, + 0, + 4, + 1, + 0, + 0, + new String[] { "Fire", "Blaze", "Reed", "Sulfur" }, + new ItemStack(Items.blaze_powder, 1), + new ItemStack[] { new ItemStack(Items.blaze_rod, 1) }); + new GT_BaseCrop( + 131, + "Eggplant", + "Link", + null, + 6, + 3, + 900, + 2, + 3, + 0, + 4, + 1, + 0, + 0, + new String[] { "Chicken", "Egg", "Food", "Feather", "Flower", "Addictive" }, + new ItemStack(Items.egg, 1), + new ItemStack[] { new ItemStack(Items.chicken, 1), new ItemStack(Items.feather, 1), + new ItemStack(Items.feather, 1), new ItemStack(Items.feather, 1) }); + new GT_BaseCrop( + 132, + "Corium", + "Gregorius Techneticies", + null, + 6, + 4, + 0, + 1, + 4, + 0, + 2, + 3, + 1, + 0, + new String[] { "Cow", "Silk", "Tendrilly" }, + new ItemStack(Items.leather, 1), + null); + new GT_BaseCrop( + 133, + "Corpseplant", + "Mr. Kenny", + null, + 5, + 4, + 0, + 1, + 4, + 0, + 2, + 1, + 0, + 3, + new String[] { "Toxic", "Undead", "Tendrilly", "Food", "Rotten" }, + new ItemStack(Items.rotten_flesh, 1), + new ItemStack[] { ItemList.Dye_Bonemeal.get(1L), ItemList.Dye_Bonemeal.get(1L), + new ItemStack(Items.bone, 1) }); + new GT_BaseCrop( + 134, + "Creeperweed", + "General Spaz", + null, + 7, + 4, + 0, + 1, + 4, + 3, + 0, + 5, + 1, + 3, + new String[] { "Creeper", "Tendrilly", "Explosive", "Fire", "Sulfur", "Saltpeter", "Coal" }, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L), + null); + new GT_BaseCrop( + 135, + "Enderbloom", + "RichardG", + null, + 10, + 4, + 0, + 1, + 4, + 5, + 0, + 2, + 1, + 6, + new String[] { "Ender", "Flower", "Shiny" }, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderPearl, 1L), + new ItemStack[] { new ItemStack(Items.ender_pearl, 1), new ItemStack(Items.ender_pearl, 1), + new ItemStack(Items.ender_eye, 1) }); + new GT_BaseCrop( + 136, + "Meatrose", + "VintageBeef", + null, + 7, + 4, + 1500, + 1, + 4, + 0, + 4, + 1, + 3, + 0, + new String[] { "Food", "Flower", "Cow", "Fish", "Chicken", "Pig" }, + new ItemStack(Items.dye, 1, 9), + new ItemStack[] { new ItemStack(Items.beef, 1), new ItemStack(Items.porkchop, 1), + new ItemStack(Items.chicken, 1), new ItemStack(Items.fish, 1) }); + new GT_BaseCrop( + 137, + "Milkwart", + "Mr. Brain", + tI[1], + 6, + 3, + 900, + 1, + 3, + 0, + 3, + 0, + 1, + 0, + new String[] { "Food", "Milk", "Cow" }, + ItemList.Crop_Drop_MilkWart.get(1L), + null); + new GT_BaseCrop( + 138, + "Slimeplant", + "Neowulf", + null, + 6, + 4, + 0, + 3, + 4, + 3, + 0, + 0, + 0, + 2, + new String[] { "Slime", "Bouncy", "Sticky", "Bush" }, + new ItemStack(Items.slime_ball, 1), + null); + new GT_BaseCrop( + 139, + "Spidernip", + "Mr. Kenny", + null, + 4, + 4, + 600, + 1, + 4, + 2, + 1, + 4, + 1, + 3, + new String[] { "Toxic", "Silk", "Spider", "Flower", "Ingredient", "Addictive" }, + new ItemStack(Items.string, 1), + new ItemStack[] { new ItemStack(Items.spider_eye, 1), new ItemStack(Blocks.web, 1) }); + new GT_BaseCrop( + 140, + "Tearstalks", + "Neowulf", + null, + 8, + 4, + 0, + 1, + 4, + 1, + 2, + 0, + 0, + 0, + new String[] { "Healing", "Nether", "Ingredient", "Reed", "Ghast" }, + new ItemStack(Items.ghast_tear, 1), + null); + new GT_BaseCrop( + 141, + "Tine", + "Gregorius Techneticies", + null, + 5, + 3, + 0, + 2, + 3, + 2, + 0, + 3, + 0, + 0, + new String[] { "Shiny", "Metal", "Pine", "Tin", "Bush" }, + Materials.Tin, + ItemList.Crop_Drop_Tine.get(1L), + null); + new GT_BaseCrop( + 142, + "Coppon", + "Mr. Brain", + null, + 6, + 3, + 0, + 2, + 3, + 2, + 0, + 1, + 1, + 1, + new String[] { "Shiny", "Metal", "Cotton", "Copper", "Bush" }, + Materials.Copper, + ItemList.Crop_Drop_Coppon.get(1L), + null); + new GT_BaseCrop( + 143, + "Brown Mushrooms", + "Mr. Brain", + tI[2], + 1, + 3, + 0, + 1, + 3, + 0, + 2, + 0, + 0, + 2, + new String[] { "Food", "Mushroom", "Ingredient" }, + new ItemStack(Blocks.brown_mushroom, 1), + null); + new GT_BaseCrop( + 144, + "Red Mushrooms", + "Mr. Kenny", + tI[3], + 1, + 3, + 0, + 1, + 3, + 0, + 1, + 3, + 0, + 2, + new String[] { "Toxic", "Mushroom", "Ingredient" }, + new ItemStack(Blocks.red_mushroom, 1), + null); + new GT_BaseCrop( + 145, + "Argentia", + "Eloraam", + null, + 7, + 4, + 0, + 3, + 4, + 2, + 0, + 1, + 0, + 0, + new String[] { "Shiny", "Metal", "Silver", "Reed" }, + Materials.Silver, + ItemList.Crop_Drop_Argentia.get(1L), + null); + new GT_BaseCrop( + 146, + "Plumbilia", + "KingLemming", + null, + 6, + 4, + 0, + 3, + 4, + 2, + 0, + 3, + 1, + 1, + new String[] { "Heavy", "Metal", "Lead", "Reed" }, + Materials.Lead, + ItemList.Crop_Drop_Plumbilia.get(1L), + null); + new GT_BaseCrop( + 147, + "Steeleafranks", + "Benimatic", + null, + 10, + 4, + 0, + 1, + 4, + 3, + 0, + 7, + 2, + 8, + new String[] { "Metal", "Tendrilly", "Iron" }, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steeleaf, 1L), + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steeleaf, 1L) }); + new GT_BaseCrop( + 148, + "Liveroots", + "Benimatic", + null, + 8, + 4, + 0, + 1, + 4, + 2, + 0, + 5, + 2, + 6, + new String[] { "Wood", "Tendrilly" }, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 1L), + new ItemStack[] { ItemList.TF_LiveRoot.get(1L) }); + new GT_BaseCrop( + 149, + "Trollplant", + "unknown", + null, + 6, + 5, + 1000, + 1, + 4, + 0, + 0, + 5, + 2, + 8, + new String[] { "Troll", "Bad", "Scrap" }, + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.FoolsRuby, 1L), + new ItemStack[] { ItemList.IC2_Plantball.get(1), ItemList.IC2_Scrap.get(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium241, 1L) }); + new GT_BaseCrop( + 150, + "Lazulia", + "unknown", + null, + 7, + 4, + 0, + 2, + 4, + 4, + 2, + 5, + 7, + 4, + new String[] { "Shiny", "Bad", "Crystal", "Lapis" }, + Materials.Lapis, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lapis, 1L), + null); + new GT_BaseCrop( + 151, + "Glowheat", + "unknown", + null, + 10, + 7, + 0, + 5, + 7, + 3, + 3, + 3, + 5, + 4, + new String[] { "Light", "Shiny", "Crystal" }, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), + null); + new GT_BaseCrop( + 153, + "Fertilia", + "unknown", + null, + 3, + 4, + 0, + 1, + 4, + 2, + 3, + 5, + 4, + 8, + new String[] { "Growth", "Healing", "Flower" }, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), + new ItemStack[] { ItemList.IC2_Fertilizer.get(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L) }); + new GT_BaseCrop( + 154, + "Bauxia", + "unknown", + null, + 6, + 3, + 0, + 2, + 3, + 5, + 0, + 2, + 3, + 3, + new String[] { "Metal", "Aluminium", "Reed", "Aluminium" }, + Materials.Aluminium, + ItemList.Crop_Drop_Bauxite.get(1), + null); + new GT_BaseCrop( + 155, + "Titania", + "unknown", + null, + 9, + 3, + 0, + 2, + 3, + 5, + 0, + 3, + 3, + 1, + new String[] { "Metal", "Heavy", "Reed", "Titanium" }, + Materials.Titanium, + ItemList.Crop_Drop_Ilmenite.get(1), + null); + new GT_BaseCrop( + 156, + "Reactoria", + "unknown", + null, + 12, + 4, + 0, + 2, + 4, + 4, + 0, + 1, + 2, + 1, + new String[] { "Radioactive", "Metal", "Danger", "Uranium" }, + Materials.Uranium, + ItemList.Crop_Drop_Pitchblende.get(1), + new ItemStack[] { ItemList.Crop_Drop_Uraninite.get(1) }); + new GT_BaseCrop( + 157, + "God of Thunder", + "unknown", + null, + 9, + 4, + 0, + 2, + 4, + 3, + 0, + 5, + 1, + 2, + new String[] { "Radioactive", "Metal", "Coal", "Thorium" }, + Materials.Thorium, + ItemList.Crop_Drop_Thorium.get(1), + null); + new GT_BaseCrop( + 158, + "Transformium", + "unknown", + null, + 12, + 4, + 2500, + 1, + 4, + 6, + 2, + 1, + 6, + 1, + new String[] { "Transform", "Coal", "Reed" }, + ItemList.Crop_Drop_UUABerry.get(1L), + new ItemStack[] { ItemList.Crop_Drop_UUABerry.get(1L), ItemList.Crop_Drop_UUABerry.get(1L), + ItemList.Crop_Drop_UUABerry.get(1L), ItemList.Crop_Drop_UUABerry.get(1L), + ItemList.Crop_Drop_UUMBerry.get(1L) }); + new GT_BaseCrop( + 159, + "Starwart", + "unknown", + null, + 12, + 4, + 4000, + 1, + 4, + 2, + 0, + 0, + 1, + 0, + new String[] { "Wither", "Nether", "Undead", "Netherstar" }, + Materials.NetherStar, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1L), + new ItemStack(Items.skull, 1), new ItemStack(Items.skull, 1, 1), new ItemStack(Items.skull, 1, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherStar, 1L) }); + new GT_BaseCrop( + 160, + "Zomplant", + "unknown", + null, + 3, + 4, + 0, + 1, + 4, + 1, + 3, + 4, + 2, + 6, + new String[] { "Zombie", "Rotten", "Undead" }, + new ItemStack(Items.rotten_flesh), + null); + new GT_BaseCrop( + 161, + "Nickelback", + "unknown", + null, + 5, + 3, + 0, + 2, + 3, + 3, + 0, + 1, + 2, + 2, + new String[] { "Metal", "Fire", "Alloy" }, + Materials.Nickel, + ItemList.Crop_Drop_Nickel.get(1), + null); + new GT_BaseCrop( + 162, + "Galvania", + "unknown", + null, + 6, + 3, + 0, + 2, + 3, + 3, + 0, + 2, + 2, + 3, + new String[] { "Metal", "Alloy", "Bush" }, + Materials.Zinc, + ItemList.Crop_Drop_Zinc.get(1), + null); + new GT_BaseCrop( + 163, + "Evil Ore", + "unknown", + null, + 8, + 4, + 0, + 3, + 4, + 4, + 0, + 2, + 1, + 3, + new String[] { "Crystal", "Fire", "Nether" }, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 1L), + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 1L), }); + new GT_BaseCrop( + 164, + "Olivia", + "unknown", + null, + 2, + 4, + 0, + 3, + 4, + 1, + 0, + 1, + 4, + 0, + new String[] { "Crystal", "Shiny", "Processing", "Olivine" }, + Materials.Olivine, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Olivine, 1L), + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), }); + new GT_BaseCrop( + 165, + "Sapphirum", + "unknown", + null, + 4, + 4, + 0, + 3, + 4, + 1, + 0, + 1, + 5, + 0, + new String[] { "Crystal", "Shiny", "Metal", "Sapphire" }, + Materials.Sapphire, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sapphire, 1L), + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), }); + new GT_BaseCrop( + 166, + "Pyrolusium", + "unknown", + null, + 12, + 3, + 0, + 2, + 3, + 1, + 0, + 1, + 1, + 0, + new String[] { "Metal", "Clean", "Bush", "Manganese" }, + Materials.Manganese, + ItemList.Crop_Drop_Manganese.get(1), + null); + new GT_BaseCrop( + 167, + "Scheelinium", + "unknown", + null, + 12, + 3, + 0, + 2, + 3, + 3, + 0, + 1, + 1, + 0, + new String[] { "Metal", "Hard", "Bush", "Tungsten" }, + Materials.Tungsten, + ItemList.Crop_Drop_Scheelite.get(1), + null); + new GT_BaseCrop( + 168, + "Platina", + "unknown", + null, + 11, + 4, + 0, + 1, + 4, + 3, + 0, + 0, + 3, + 0, + new String[] { "Metal", "Shiny", "Reed", "Platinum" }, + Materials.Platinum, + ItemList.Crop_Drop_Platinum.get(1), + null); + new GT_BaseCrop( + 169, + "Quantaria", + "unknown", + null, + 12, + 4, + 1000, + 1, + 4, + 4, + 0, + 0, + 1, + 0, + new String[] { "Metal", "Iridium", "Reed" }, + Materials.Iridium, + ItemList.Crop_Drop_Iridium.get(1), + new ItemStack[] { ItemList.Crop_Drop_Osmium.get(1) }); + new GT_BaseCrop( + 170, + "Stargatium", + "unknown", + null, + 12, + 4, + 1500, + 1, + 4, + 4, + 0, + 0, + 2, + 0, + new String[] { "Metal", "Heavy", "Alien", "Naquadah" }, + Materials.Naquadah, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 1L), + new ItemStack[] { ItemList.Crop_Drop_Naquadah.get(1) }); + new GT_BaseCrop( + 171, + "Lemon", + "unknown", + null, + 4, + 4, + 0, + 1, + 4, + 1, + 1, + 0, + 2, + 0, + new String[] { "Food", "Yellow", "Sour" }, + ItemList.Crop_Drop_Lemon.get(1), + null); + new GT_BaseCrop( + 172, + "Chilly", + "unknown", + null, + 4, + 4, + 0, + 1, + 4, + 1, + 1, + 0, + 2, + 0, + new String[] { "Food", "Red", "Spicy" }, + ItemList.Crop_Drop_Chilly.get(1), + null); + new GT_BaseCrop( + 173, + "Tomato", + "unknown", + null, + 4, + 4, + 0, + 1, + 4, + 1, + 1, + 0, + 2, + 0, + new String[] { "Food", "Red" }, + ItemList.Crop_Drop_Tomato.get(1), + new ItemStack[] { ItemList.Crop_Drop_MTomato.get(1) }); + new GT_BaseCrop( + 174, + "Grape", + "unknown", + null, + 4, + 4, + 0, + 1, + 4, + 1, + 1, + 0, + 2, + 0, + new String[] { "Food", "Purple" }, + ItemList.Crop_Drop_Grapes.get(1), + null); + new GT_BaseCrop( + 175, + "Onion", + "unknown", + null, + 4, + 4, + 0, + 1, + 4, + 1, + 1, + 0, + 2, + 0, + new String[] { "Food", "Brown" }, + ItemList.Crop_Drop_Onion.get(1), + null); + new GT_BaseCrop( + 176, + "Cucumber", + "unknown", + null, + 4, + 4, + 0, + 1, + 4, + 1, + 1, + 0, + 2, + 0, + new String[] { "Food", "Green" }, + ItemList.Crop_Drop_Cucumber.get(1), + null); + new GT_BaseCrop( + 177, + "Tea", + "unknown", + null, + 4, + 4, + 0, + 1, + 4, + 1, + 1, + 0, + 2, + 0, + new String[] { "Food", "Green", "Ingredient" }, + ItemList.Crop_Drop_TeaLeaf.get(1), + null); + new GT_BaseCrop( + 178, + "Rape", + "unknown", + null, + 4, + 4, + 0, + 1, + 4, + 1, + 1, + 0, + 2, + 0, + new String[] { "Food", "Yellow", "Oil" }, + ItemList.Crop_Drop_Rape.get(1), + null); + new GT_BaseCrop( + 179, + "Micadia", + "bartimaeusnek", + null, + 9, + 3, + 0, + 2, + 3, + 2, + 0, + 3, + 0, + 0, + new String[] { "Metal", "Pine", "Mica", "Bush" }, + Materials.Mica, + ItemList.Crop_Drop_Mica.get(1L), + null); + } catch (Throwable e) { + GT_Log.err.println("GT_Mod: Failed to register Crops to IC2."); + e.printStackTrace(GT_Log.err); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_FakeRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_FakeRecipeLoader.java new file mode 100644 index 0000000000..92221025bd --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_FakeRecipeLoader.java @@ -0,0 +1,18 @@ +package gregtech.loaders.postload; + +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_ModHandler; + +public class GT_FakeRecipeLoader implements Runnable { + + @Override + public void run() { + GT_Values.RA.addIC2ReactorBreederCell( + GT_ModHandler.getIC2Item("reactorLithiumCell", 1), + GT_ModHandler.getIC2Item("TritiumCell", 1), + true, + 3000, + 1, + 10000); + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java b/src/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java new file mode 100644 index 0000000000..67f7f00d87 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java @@ -0,0 +1,138 @@ +package gregtech.loaders.postload; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; + +import gregtech.GT_Mod; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_Log; + +public class GT_ItemMaxStacksizeLoader implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Changing maximum Stacksizes if configured."); + + ItemList.Upgrade_Overclocker.getItem() + .setMaxStackSize(GT_Mod.gregtechproxy.mUpgradeCount); + Items.cake.setMaxStackSize(64); + Items.wooden_door.setMaxStackSize(8); + Items.iron_door.setMaxStackSize(8); + Items.ender_pearl.setMaxStackSize(64); + Items.egg.setMaxStackSize(64); + Items.snowball.setMaxStackSize(64); + Items.mushroom_stew.setMaxStackSize(64); + if (OrePrefixes.plank.mDefaultStackSize < 64) { + Item.getItemFromBlock(Blocks.wooden_slab) + .setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.double_wooden_slab) + .setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.oak_stairs) + .setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.jungle_stairs) + .setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.birch_stairs) + .setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.spruce_stairs) + .setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.acacia_stairs) + .setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.dark_oak_stairs) + .setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + } + if (OrePrefixes.block.mDefaultStackSize < 64) { + Item.getItemFromBlock(Blocks.stone_slab) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.double_stone_slab) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.brick_stairs) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.nether_brick_stairs) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.sandstone_stairs) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.stone_stairs) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.stone_brick_stairs) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.packed_ice) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.ice) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.soul_sand) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.glowstone) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.snow) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.snow) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.iron_block) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.gold_block) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.emerald_block) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.lapis_block) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.diamond_block) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.clay) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.redstone_lamp) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.dirt) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.grass) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.mycelium) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.gravel) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.sand) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.brick_block) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.wool) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.melon_block) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.pumpkin) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.lit_pumpkin) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.dispenser) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.obsidian) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.piston) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.sticky_piston) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.crafting_table) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.glass) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.jukebox) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.anvil) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.chest) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.trapped_chest) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.noteblock) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.mob_spawner) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.bookshelf) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.furnace) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.lit_furnace) + .setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java new file mode 100644 index 0000000000..7280bccdff --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java @@ -0,0 +1,124 @@ +package gregtech.loaders.postload; + +import gregtech.api.enums.Materials; +import gregtech.loaders.postload.chains.GT_BauxiteRefineChain; +import gregtech.loaders.postload.chains.GT_NaniteChain; +import gregtech.loaders.postload.chains.GT_PCBFactoryRecipes; +import gregtech.loaders.postload.recipes.AlloySmelterRecipes; +import gregtech.loaders.postload.recipes.ArcFurnaceRecipes; +import gregtech.loaders.postload.recipes.AssemblerRecipes; +import gregtech.loaders.postload.recipes.AssemblyLineRecipes; +import gregtech.loaders.postload.recipes.AutoclaveRecipes; +import gregtech.loaders.postload.recipes.BenderRecipes; +import gregtech.loaders.postload.recipes.BlastFurnaceRecipes; +import gregtech.loaders.postload.recipes.BreweryRecipes; +import gregtech.loaders.postload.recipes.CannerRecipes; +import gregtech.loaders.postload.recipes.CentrifugeRecipes; +import gregtech.loaders.postload.recipes.ChemicalBathRecipes; +import gregtech.loaders.postload.recipes.ChemicalRecipes; +import gregtech.loaders.postload.recipes.CircuitAssemblerRecipes; +import gregtech.loaders.postload.recipes.CompressorRecipes; +import gregtech.loaders.postload.recipes.CropProcessingRecipes; +import gregtech.loaders.postload.recipes.CuttingRecipes; +import gregtech.loaders.postload.recipes.DistilleryRecipes; +import gregtech.loaders.postload.recipes.ElectrolyzerRecipes; +import gregtech.loaders.postload.recipes.ElectromagneticSeparatorRecipes; +import gregtech.loaders.postload.recipes.ExtractorRecipes; +import gregtech.loaders.postload.recipes.ExtruderRecipes; +import gregtech.loaders.postload.recipes.FermenterRecipes; +import gregtech.loaders.postload.recipes.FluidCannerRecipes; +import gregtech.loaders.postload.recipes.FluidExtractorRecipes; +import gregtech.loaders.postload.recipes.FluidHeaterRecipes; +import gregtech.loaders.postload.recipes.FluidSolidifierRecipes; +import gregtech.loaders.postload.recipes.ForgeHammerRecipes; +import gregtech.loaders.postload.recipes.FormingPressRecipes; +import gregtech.loaders.postload.recipes.FuelRecipes; +import gregtech.loaders.postload.recipes.FusionReactorRecipes; +import gregtech.loaders.postload.recipes.ImplosionCompressorRecipes; +import gregtech.loaders.postload.recipes.LaserEngraverRecipes; +import gregtech.loaders.postload.recipes.LatheRecipes; +import gregtech.loaders.postload.recipes.MatterAmplifierRecipes; +import gregtech.loaders.postload.recipes.MixerRecipes; +import gregtech.loaders.postload.recipes.NEIHiding; +import gregtech.loaders.postload.recipes.OreDictUnification; +import gregtech.loaders.postload.recipes.PackagerRecipes; +import gregtech.loaders.postload.recipes.PlasmaForgeRecipes; +import gregtech.loaders.postload.recipes.PrinterRecipes; +import gregtech.loaders.postload.recipes.Pulverizer; +import gregtech.loaders.postload.recipes.PyrolyseRecipes; +import gregtech.loaders.postload.recipes.RecipeRemover; +import gregtech.loaders.postload.recipes.SifterRecipes; +import gregtech.loaders.postload.recipes.SlicerRecipes; +import gregtech.loaders.postload.recipes.SmelterRecipes; +import gregtech.loaders.postload.recipes.ThaumcraftRecipes; +import gregtech.loaders.postload.recipes.ThermalCentrifugeRecipes; +import gregtech.loaders.postload.recipes.TranscendentPlasmaMixerRecipes; +import gregtech.loaders.postload.recipes.VacuumFreezerRecipes; +import gregtech.loaders.postload.recipes.WiremillRecipes; + +public class GT_MachineRecipeLoader implements Runnable { + + public static final String aTextTCGTPage = "gt.research.page.1."; + + public static final Materials[] solderingMats = new Materials[] { Materials.Lead, Materials.SolderingAlloy, + Materials.Tin }; + + @Override + public void run() { + new AlloySmelterRecipes().run(); + new ArcFurnaceRecipes().run(); + new AssemblerRecipes().run(); + new AssemblyLineRecipes().run(); + new AutoclaveRecipes().run(); + new BenderRecipes().run(); + new BlastFurnaceRecipes().run(); + new BreweryRecipes().run(); + new CannerRecipes().run(); + new CentrifugeRecipes().run(); + new ChemicalBathRecipes().run(); + new ChemicalRecipes().run(); + new CircuitAssemblerRecipes().run(); + new CompressorRecipes().run(); + new CropProcessingRecipes().run(); + new CuttingRecipes().run(); + new DistilleryRecipes().run(); + new ElectrolyzerRecipes().run(); + new ElectromagneticSeparatorRecipes().run(); + new ExtractorRecipes().run(); + new ExtruderRecipes().run(); + new FermenterRecipes().run(); + new FluidCannerRecipes().run(); + new FluidExtractorRecipes().run(); + new FluidHeaterRecipes().run(); + new FluidSolidifierRecipes().run(); + new ForgeHammerRecipes().run(); + new FormingPressRecipes().run(); + new FuelRecipes().run(); + new FusionReactorRecipes().run(); + new ImplosionCompressorRecipes().run(); + new LaserEngraverRecipes().run(); + new LatheRecipes().run(); + new MatterAmplifierRecipes().run(); + new MixerRecipes().run(); + new NEIHiding().run(); + new OreDictUnification().run(); + new PackagerRecipes().run(); + new PlasmaForgeRecipes().run(); + new PrinterRecipes().run(); + new Pulverizer().run(); + new PyrolyseRecipes().run(); + new RecipeRemover().run(); + new SifterRecipes().run(); + new SlicerRecipes().run(); + new SmelterRecipes().run(); + new ThaumcraftRecipes().run(); + new ThermalCentrifugeRecipes().run(); + new VacuumFreezerRecipes().run(); + new WiremillRecipes().run(); + new TranscendentPlasmaMixerRecipes().run(); + + GT_BauxiteRefineChain.run(); + GT_NaniteChain.run(); + GT_PCBFactoryRecipes.load(); + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineTooltipsLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineTooltipsLoader.java new file mode 100644 index 0000000000..d18ccd6c83 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_MachineTooltipsLoader.java @@ -0,0 +1,36 @@ +package gregtech.loaders.postload; + +import static gregtech.api.enums.GT_Values.GT; + +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTech_API; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_Log; +import gregtech.common.blocks.GT_Item_Machines; + +public class GT_MachineTooltipsLoader implements Runnable { + + @Override + public void run() { + if (!GT.isClientSide()) return; + GT_Log.out.println("GT Mod: Register Block Machine's tooltips"); + for (int i = 0; i < 32768; i++) { + ItemStack tStack = new ItemStack(GregTech_API.sBlockMachines, 1, i); + if (tStack.getItem() != null && tStack.getItem() instanceof GT_Item_Machines) { + ((GT_Item_Machines) tStack.getItem()).registerDescription(i); + } + } + GT_LanguageManager.addStringLocalization("TileEntity_EUp_IN", "Voltage IN: "); + GT_LanguageManager.addStringLocalization("TileEntity_EUp_OUT", "Voltage OUT: "); + GT_LanguageManager.addStringLocalization("TileEntity_EUp_AMOUNT", "Amperage: "); + GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "Capacity: "); + GT_LanguageManager.addStringLocalization("TileEntity_TANK_INFO", "Contains Fluid: "); + GT_LanguageManager.addStringLocalization("TileEntity_TANK_AMOUNT", "Fluid Amount: "); + GT_LanguageManager.addStringLocalization("TileEntity_CHEST_INFO", "Contains Item: "); + GT_LanguageManager.addStringLocalization("TileEntity_CHEST_AMOUNT", "Item Amount: "); + GT_LanguageManager.addStringLocalization("GT_TileEntity_MUFFLER", "has Muffler Upgrade"); + GT_LanguageManager.addStringLocalization("GT_TileEntity_STEAMCONVERTER", "has Steam Upgrade"); + GT_LanguageManager.addStringLocalization("GT_TileEntity_STEAMTANKS", "Steam Tank Upgrades"); + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java b/src/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java new file mode 100644 index 0000000000..afa98e0b38 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java @@ -0,0 +1,16 @@ +package gregtech.loaders.postload; + +import net.minecraft.init.Blocks; + +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; + +public class GT_MinableRegistrator implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Adding Blocks to the Miners Valuable List."); + GT_ModHandler.addValuableOre(Blocks.glowstone, 0, 1); + GT_ModHandler.addValuableOre(Blocks.soul_sand, 0, 1); + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_PCBFactoryMaterialLoader.java b/src/main/java/gregtech/loaders/postload/GT_PCBFactoryMaterialLoader.java new file mode 100644 index 0000000000..95732076d9 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_PCBFactoryMaterialLoader.java @@ -0,0 +1,19 @@ +package gregtech.loaders.postload; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsKevlar; +import gregtech.api.util.GT_PCBFactoryManager; + +public class GT_PCBFactoryMaterialLoader { + + public static void load() { + // add Plastics + GT_PCBFactoryManager.addPlasticTier(Materials.Plastic, 1); + GT_PCBFactoryManager.addPlasticTier(Materials.PolyvinylChloride, 2); + GT_PCBFactoryManager.addPlasticTier(Materials.Polytetrafluoroethylene, 3); + GT_PCBFactoryManager.addPlasticTier(Materials.Epoxid, 4); + GT_PCBFactoryManager.addPlasticTier(Materials.EpoxidFiberReinforced, 5); + GT_PCBFactoryManager.addPlasticTier(Materials.Polybenzimidazole, 6); + GT_PCBFactoryManager.addPlasticTier(MaterialsKevlar.Kevlar, 7); + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_PostLoad.java b/src/main/java/gregtech/loaders/postload/GT_PostLoad.java new file mode 100644 index 0000000000..5ec4391d71 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_PostLoad.java @@ -0,0 +1,526 @@ +package gregtech.loaders.postload; + +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.GalacticraftCore; +import static gregtech.api.enums.Mods.GalacticraftMars; +import static gregtech.api.enums.Mods.GalaxySpace; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.fluidCannerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import java.lang.reflect.InvocationTargetException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import com.google.common.base.Stopwatch; + +import cpw.mods.fml.common.ProgressManager; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.GT_Mod; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GT_CLS_Compat; +import gregtech.api.util.GT_Forestry_Compat; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_RecipeConstants; +import gregtech.api.util.GT_RecipeRegistrator; +import gregtech.api.util.GT_Utility; +import gregtech.common.items.GT_MetaGenerated_Tool_01; +import gregtech.common.items.behaviors.Behaviour_DataOrb; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Massfabricator; +import ic2.api.recipe.IRecipeInput; +import ic2.api.recipe.RecipeOutput; + +@SuppressWarnings("deprecation") +public class GT_PostLoad { + + public static void activateOreDictHandler() { + @SuppressWarnings("UnstableApiUsage") // Stable enough for this project + Stopwatch stopwatch = Stopwatch.createStarted(); + GT_Mod.gregtechproxy.activateOreDictHandler(); + + // noinspection UnstableApiUsage// Stable enough for this project + GT_Mod.GT_FML_LOGGER + .info("Congratulations, you have been waiting long enough (" + stopwatch.stop() + "). Have a Cake."); + GT_Log.out.println( + "GT_Mod: List of Lists of Tool Recipes: " + + GT_ModHandler.sSingleNonBlockDamagableRecipeList_list.toString()); + GT_Log.out.println( + "GT_Mod: Vanilla Recipe List -> Outputs null or stackSize <=0: " + + GT_ModHandler.sVanillaRecipeList_warntOutput.toString()); + GT_Log.out.println( + "GT_Mod: Single Non Block Damageable Recipe List -> Outputs null or stackSize <=0: " + + GT_ModHandler.sSingleNonBlockDamagableRecipeList_warntOutput.toString()); + } + + public static void removeIc2Recipes(Map<IRecipeInput, RecipeOutput> aMaceratorRecipeList, + Map<IRecipeInput, RecipeOutput> aCompressorRecipeList, Map<IRecipeInput, RecipeOutput> aExtractorRecipeList, + Map<IRecipeInput, RecipeOutput> aOreWashingRecipeList, + Map<IRecipeInput, RecipeOutput> aThermalCentrifugeRecipeList) { + @SuppressWarnings("UnstableApiUsage") // Stable enough for this project + Stopwatch stopwatch = Stopwatch.createStarted(); + // remove gemIridium exploit + ItemStack iridiumOre = GT_ModHandler.getIC2Item("iridiumOre", 1); + aCompressorRecipeList.entrySet() + .parallelStream() + .filter( + e -> e.getKey() + .getInputs() + .size() == 1 && e.getKey() + .getInputs() + .get(0) + .isItemEqual(iridiumOre)) + .findAny() + .ifPresent(e -> aCompressorRecipeList.remove(e.getKey())); + // Add default IC2 recipe to GT + GT_ModHandler.addIC2RecipesToGT(aMaceratorRecipeList, RecipeMaps.maceratorRecipes, true, true, true); + GT_ModHandler.addIC2RecipesToGT(aCompressorRecipeList, RecipeMaps.compressorRecipes, true, true, true); + GT_ModHandler.addIC2RecipesToGT(aExtractorRecipeList, RecipeMaps.extractorRecipes, true, true, true); + GT_ModHandler.addIC2RecipesToGT(aOreWashingRecipeList, RecipeMaps.oreWasherRecipes, false, true, true); + GT_ModHandler + .addIC2RecipesToGT(aThermalCentrifugeRecipeList, RecipeMaps.thermalCentrifugeRecipes, true, true, true); + // noinspection UnstableApiUsage// Stable enough for this project + GT_Mod.GT_FML_LOGGER.info("IC2 Removal (" + stopwatch.stop() + "). Have a Cake."); + } + + public static void registerFluidCannerRecipes() { + for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry + .getRegisteredFluidContainerData()) { + // lava clay bucket is registered with empty container with 0 stack size + ItemStack emptyContainer = tData.emptyContainer.copy(); + emptyContainer.stackSize = 1; + GT_Values.RA.stdBuilder() + .itemInputs(emptyContainer) + .itemOutputs(tData.filledContainer) + .fluidInputs(tData.fluid) + .duration((tData.fluid.amount / 62) * TICKS) + .eut(1) + .addTo(fluidCannerRecipes); + GT_RecipeBuilder builder = GT_Values.RA.stdBuilder() + .itemInputs(tData.filledContainer); + if (tData.emptyContainer.stackSize > 0) { + builder.itemOutputs(tData.emptyContainer); + } + builder.fluidOutputs(tData.fluid) + .duration((tData.fluid.amount / 62) * TICKS) + .eut(1) + .addTo(fluidCannerRecipes); + } + } + + public static void addFakeRecipes() { + GT_Log.out.println("GT_Mod: Adding Fake Recipes for NEI"); + + if (Forestry.isModLoaded()) { + GT_Forestry_Compat.populateFakeNeiRecipes(); + } + + if (ItemList.IC2_Crop_Seeds.get(1L) != null) { + RecipeMaps.scannerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { ItemList.IC2_Crop_Seeds.getWildcard(1L) }, + new ItemStack[] { ItemList.IC2_Crop_Seeds.getWithName(1L, "Scanned Seeds") }, + null, + null, + null, + 160, + 8, + 0); + } + RecipeMaps.scannerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { new ItemStack(Items.written_book, 1, 32767) }, + new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Scanned Book Data") }, + ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to"), + null, + null, + 128, + 30, + 0); + RecipeMaps.scannerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { new ItemStack(Items.filled_map, 1, 32767) }, + new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Scanned Map Data") }, + ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to"), + null, + null, + 128, + 30, + 0); + RecipeMaps.scannerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { ItemList.Tool_DataOrb.getWithName(1L, "Orb to overwrite") }, + new ItemStack[] { ItemList.Tool_DataOrb.getWithName(1L, "Copy of the Orb") }, + ItemList.Tool_DataOrb.getWithName(0L, "Orb to copy"), + null, + null, + 512, + 30, + 0); + RecipeMaps.scannerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Stick to overwrite") }, + new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Copy of the Stick") }, + ItemList.Tool_DataStick.getWithName(0L, "Stick to copy"), + null, + null, + 128, + 30, + 0); + RecipeMaps.scannerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Raw Prospection Data") }, + new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Analyzed Prospection Data") }, + null, + null, + null, + 1000, + 30, + 0); + if (GalacticraftCore.isModLoaded()) { + RecipeMaps.scannerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { Objects + .requireNonNull(GT_ModHandler.getModItem(GalacticraftCore.ID, "item.schematic", 1, Short.MAX_VALUE)) + .setStackDisplayName("Any Schematic") }, + new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Scanned Schematic") }, + ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to"), + null, + null, + 36000, + 480, + 0); + if (GalacticraftMars.isModLoaded()) RecipeMaps.scannerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { Objects + .requireNonNull(GT_ModHandler.getModItem(GalacticraftMars.ID, "item.schematic", 1, Short.MAX_VALUE)) + .setStackDisplayName("Any Schematic") }, + new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Scanned Schematic") }, + ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to"), + null, + null, + 36000, + 480, + 0); + if (GalaxySpace.isModLoaded()) { + for (int i = 4; i < 9; i++) { + RecipeMaps.scannerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { GT_ModHandler.getModItem(GalaxySpace.ID, "item.SchematicTier" + i, 1) + .setStackDisplayName("Any Schematic") }, + new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Scanned Schematic") }, + ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to"), + null, + null, + 36000, + 480, + 0); + } + } + } + Materials.getMaterialsMap() + .values() + .forEach(tMaterial -> { + if ((tMaterial.mElement != null) && (!tMaterial.mElement.mIsIsotope) + && (tMaterial != Materials.Magic) + && (tMaterial.getMass() > 0L)) { + ItemStack dataOrb = ItemList.Tool_DataOrb.get(1L); + Behaviour_DataOrb.setDataTitle(dataOrb, "Elemental-Scan"); + Behaviour_DataOrb.setDataName(dataOrb, tMaterial.mElement.name()); + ItemStack dustItem = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, 1L); + if (dustItem != null) { + GT_Values.RA.stdBuilder() + .itemInputs(dustItem) + .itemOutputs(dataOrb) + .special(ItemList.Tool_DataOrb.get(1L)) + .duration((int) (tMaterial.getMass() * 8192L)) + .eut(TierEU.RECIPE_LV) + .fake() + .ignoreCollision() + .addTo(RecipeMaps.scannerFakeRecipes); + GT_Values.RA.stdBuilder() + .itemOutputs(dustItem) + .special(dataOrb) + .metadata(GT_RecipeConstants.MATERIAL, tMaterial) + .addTo(RecipeMaps.replicatorRecipes); + return; + } + ItemStack cellItem = GT_OreDictUnificator.get(OrePrefixes.cell, tMaterial, 1L); + if (cellItem != null) { + GT_Values.RA.stdBuilder() + .itemInputs(cellItem) + .itemOutputs(dataOrb) + .special(ItemList.Tool_DataOrb.get(1L)) + .duration((int) (tMaterial.getMass() * 8192L)) + .eut(TierEU.RECIPE_LV) + .fake() + .ignoreCollision() + .addTo(RecipeMaps.scannerFakeRecipes); + FluidStack fluidStack = GT_Utility.getFluidForFilledItem(cellItem, false); + GT_RecipeBuilder builder = GT_Values.RA.stdBuilder(); + if (fluidStack != null) { + builder.fluidOutputs(fluidStack); + } else { + builder.itemInputs(Materials.Empty.getCells(1)) + .itemOutputs(cellItem); + } + builder.special(dataOrb) + .metadata(GT_RecipeConstants.MATERIAL, tMaterial) + .addTo(RecipeMaps.replicatorRecipes); + } + } + }); + + if (!GT_MetaTileEntity_Massfabricator.sRequiresUUA) { + GT_MetaTileEntity_Massfabricator.nonUUARecipe = RecipeMaps.massFabFakeRecipes.addFakeRecipe( + false, + null, + null, + null, + null, + new FluidStack[] { Materials.UUMatter.getFluid(1L) }, + GT_MetaTileEntity_Massfabricator.sDurationMultiplier, + GT_MetaTileEntity_Massfabricator.BASE_EUT, + 0); + } + GT_MetaTileEntity_Massfabricator.uuaRecipe = RecipeMaps.massFabFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + null, + null, + new FluidStack[] { Materials.UUAmplifier.getFluid(GT_MetaTileEntity_Massfabricator.sUUAperUUM) }, + new FluidStack[] { Materials.UUMatter.getFluid(1L) }, + GT_MetaTileEntity_Massfabricator.sDurationMultiplier / GT_MetaTileEntity_Massfabricator.sUUASpeedBonus, + GT_MetaTileEntity_Massfabricator.BASE_EUT, + 0); + RecipeMaps.rockBreakerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { ItemList.Display_ITS_FREE.getWithName(1L, "IT'S FREE! Place Lava on Side") }, + new ItemStack[] { new ItemStack(Blocks.cobblestone, 1) }, + null, + null, + null, + 16, + 30, + 0); + RecipeMaps.rockBreakerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { ItemList.Display_ITS_FREE.getWithName(1L, "IT'S FREE! Place Lava on Top") }, + new ItemStack[] { new ItemStack(Blocks.stone, 1) }, + null, + null, + null, + 16, + 30, + 0); + RecipeMaps.rockBreakerFakeRecipes.addFakeRecipe( + false, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), + GT_Utility.getIntegratedCircuit(1) }, + new ItemStack[] { new ItemStack(Blocks.obsidian, 1) }, + null, + null, + null, + 128, + 30, + 0); + } + + public static void nerfVanillaTools() { + if (!GT_Mod.gregtechproxy.mNerfedVanillaTools) { + return; + } + + GT_Log.out.println("GT_Mod: Nerfing Vanilla Tool Durability"); + Items.wooden_sword.setMaxDamage(12); + Items.wooden_pickaxe.setMaxDamage(12); + Items.wooden_shovel.setMaxDamage(12); + Items.wooden_axe.setMaxDamage(12); + Items.wooden_hoe.setMaxDamage(12); + + Items.stone_sword.setMaxDamage(48); + Items.stone_pickaxe.setMaxDamage(48); + Items.stone_shovel.setMaxDamage(48); + Items.stone_axe.setMaxDamage(48); + Items.stone_hoe.setMaxDamage(48); + + Items.iron_sword.setMaxDamage(256); + Items.iron_pickaxe.setMaxDamage(256); + Items.iron_shovel.setMaxDamage(256); + Items.iron_axe.setMaxDamage(256); + Items.iron_hoe.setMaxDamage(256); + + Items.golden_sword.setMaxDamage(24); + Items.golden_pickaxe.setMaxDamage(24); + Items.golden_shovel.setMaxDamage(24); + Items.golden_axe.setMaxDamage(24); + Items.golden_hoe.setMaxDamage(24); + + Items.diamond_sword.setMaxDamage(768); + Items.diamond_pickaxe.setMaxDamage(768); + Items.diamond_shovel.setMaxDamage(768); + Items.diamond_axe.setMaxDamage(768); + Items.diamond_hoe.setMaxDamage(768); + + } + + public static void replaceVanillaMaterials() { + @SuppressWarnings("UnstableApiUsage") // Stable enough for this project + Stopwatch stopwatch = Stopwatch.createStarted(); + GT_Mod.GT_FML_LOGGER.info("Replacing Vanilla Materials in recipes, please wait."); + Set<Materials> replaceVanillaItemsSet = GT_Mod.gregtechproxy.mUseGreatlyShrukenReplacementList + ? Arrays.stream(Materials.values()) + .filter(GT_RecipeRegistrator::hasVanillaRecipes) + .collect(Collectors.toSet()) + : new HashSet<>(Arrays.asList(Materials.values())); + + ProgressManager.ProgressBar progressBar = ProgressManager + .push("Register materials", replaceVanillaItemsSet.size()); + if (GT_Values.cls_enabled) { + try { + GT_CLS_Compat.doActualRegistrationCLS(progressBar, replaceVanillaItemsSet); + GT_CLS_Compat.pushToDisplayProgress(); + } catch (InvocationTargetException | IllegalAccessException e) { + GT_Mod.GT_FML_LOGGER.catching(e); + } + } else { + replaceVanillaItemsSet.forEach(m -> { + progressBar.step(m.mDefaultLocalName); + doActualRegistration(m); + }); + } + ProgressManager.pop(progressBar); + // noinspection UnstableApiUsage// stable enough for project + GT_Mod.GT_FML_LOGGER.info("Replaced Vanilla Materials (" + stopwatch.stop() + "). Have a Cake."); + } + + public static void doActualRegistration(Materials m) { + String plateName = OrePrefixes.plate.get(m) + .toString(); + boolean noSmash = !m.contains(SubTag.NO_SMASHING); + if ((m.mTypes & 2) != 0) GT_RecipeRegistrator.registerUsagesForMaterials(plateName, noSmash, m.getIngots(1)); + if ((m.mTypes & 4) != 0) GT_RecipeRegistrator.registerUsagesForMaterials(plateName, noSmash, m.getGems(1)); + if (m.getBlocks(1) != null) GT_RecipeRegistrator.registerUsagesForMaterials(null, noSmash, m.getBlocks(1)); + } + + public static void createGTtoolsCreativeTab() { + new CreativeTabs("GTtools") { + + @SideOnly(Side.CLIENT) + @Override + public ItemStack getIconItemStack() { + return ItemList.Tool_Cheat.get(1, new ItemStack(Blocks.iron_block, 1)); + } + + @SideOnly(Side.CLIENT) + @Override + public Item getTabIconItem() { + return ItemList.Circuit_Integrated.getItem(); + } + + @Override + public void displayAllReleventItems(List<ItemStack> aList) { + + for (int i = 0; i < 32766; i += 2) { + if (GT_MetaGenerated_Tool_01.INSTANCE + .getToolStats(new ItemStack(GT_MetaGenerated_Tool_01.INSTANCE, 1, i)) == null) { + continue; + } + + ItemStack tStack = new ItemStack(GT_MetaGenerated_Tool_01.INSTANCE, 1, i); + GT_MetaGenerated_Tool_01.INSTANCE.isItemStackUsable(tStack); + aList.add( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(i, 1, Materials.Lead, Materials.Lead, null)); + aList.add( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(i, 1, Materials.Nickel, Materials.Nickel, null)); + aList.add( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(i, 1, Materials.Cobalt, Materials.Cobalt, null)); + aList.add( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(i, 1, Materials.Osmium, Materials.Osmium, null)); + aList.add( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(i, 1, Materials.Adamantium, Materials.Adamantium, null)); + aList.add( + GT_MetaGenerated_Tool_01.INSTANCE + .getToolWithStats(i, 1, Materials.Neutronium, Materials.Neutronium, null)); + + } + super.displayAllReleventItems(aList); + } + }; + } + + public static void addSolidFakeLargeBoilerFuels() { + RecipeMaps.largeBoilerFakeFuels.getBackend() + .addSolidRecipes( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Charcoal, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 1), + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Charcoal, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1), + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 1), + GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Coal, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lignite, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lignite, 1), + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lignite, 1), + GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Lignite, 1), + GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.plank, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.slab, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Caesium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(ItemList.Block_SSFUEL.get(1)), + GT_OreDictUnificator.get(ItemList.Block_MSSFUEL.get(1)), + GT_OreDictUnificator.get(OrePrefixes.rod, Materials.Blaze, 1)); + if (Thaumcraft.isModLoaded()) { + RecipeMaps.largeBoilerFakeFuels.getBackend() + .addSolidRecipe(GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1)); + } + } + + public static void identifyAnySteam() { + final String[] steamCandidates = { "steam", "ic2steam" }; + final String[] superHeatedSteamCandidates = { "ic2superheatedsteam" }; + + GT_ModHandler.sAnySteamFluidIDs = Arrays.stream(steamCandidates) + .map(FluidRegistry::getFluid) + .filter(Objects::nonNull) + .map(FluidRegistry::getFluidID) + .collect(Collectors.toList()); + GT_ModHandler.sSuperHeatedSteamFluidIDs = Arrays.stream(superHeatedSteamCandidates) + .map(FluidRegistry::getFluid) + .filter(Objects::nonNull) + .map(FluidRegistry::getFluidID) + .collect(Collectors.toList()); + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java new file mode 100644 index 0000000000..0ff53d0424 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java @@ -0,0 +1,168 @@ +package gregtech.loaders.postload; + +import gregtech.api.enums.SoundResource; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GT_ProcessingArray_Manager; + +public class GT_ProcessingArrayRecipeLoader { + + public static void registerDefaultGregtechMaps() { + + // Alloy Smelter + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.alloysmelter", RecipeMaps.alloySmelterRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.alloysmelter", SoundResource.IC2_MACHINES_INDUCTION_LOOP); + // Arc Furnace + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.arcfurnace", RecipeMaps.arcFurnaceRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.arcfurnace", SoundResource.IC2_MACHINES_INDUCTION_LOOP); + // Assembler + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.assembler", RecipeMaps.assemblerRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.assembler", SoundResource.NONE); + // Autoclave + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.autoclave", RecipeMaps.autoclaveRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.autoclave", SoundResource.NONE); + // Bender + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.bender", RecipeMaps.benderRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.bender", SoundResource.IC2_MACHINES_COMPRESSOR_OP); + // Boxinator + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.boxinator", RecipeMaps.packagerRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.boxinator", SoundResource.NONE); + // Brewery + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.brewery", RecipeMaps.brewingRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.brewery", SoundResource.NONE); + // Canner + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.canner", RecipeMaps.cannerRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.canner", SoundResource.IC2_MACHINES_EXTRACTOR_OP); + // Centrifuge + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.centrifuge", RecipeMaps.centrifugeNonCellRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.centrifuge", SoundResource.NONE); + // Chemical Bath + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.chemicalbath", RecipeMaps.chemicalBathRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.chemicalbath", SoundResource.NONE); + // Chemical Reactor + GT_ProcessingArray_Manager + .addRecipeMapToPA("basicmachine.chemicalreactor", RecipeMaps.multiblockChemicalReactorRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.chemicalreactor", SoundResource.IC2_MACHINES_EXTRACTOR_OP); + // Circuit Assembler + GT_ProcessingArray_Manager + .addRecipeMapToPA("basicmachine.circuitassembler", RecipeMaps.circuitAssemblerRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.circuitassembler", SoundResource.NONE); + // Compressor + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.compressor", RecipeMaps.compressorRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.compressor", SoundResource.IC2_MACHINES_COMPRESSOR_OP); + // Cutting Machine + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.cutter", RecipeMaps.cutterRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.cutter", SoundResource.NONE); + // Distillery + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.distillery", RecipeMaps.distilleryRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.distillery", SoundResource.GT_MACHINES_DISTILLERY_LOOP); + // Electrolyzer + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.electrolyzer", RecipeMaps.electrolyzerNonCellRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.electrolyzer", SoundResource.IC2_MACHINES_MAGNETIZER_LOOP); + // Extractor + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.extractor", RecipeMaps.extractorRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.extractor", SoundResource.IC2_MACHINES_EXTRACTOR_OP); + // Extruder + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.extruder", RecipeMaps.extruderRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.extruder", SoundResource.IC2_MACHINES_INDUCTION_LOOP); + // Fermenter + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fermenter", RecipeMaps.fermentingRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.fermenter", SoundResource.NONE); + // Fluid Canner + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidcanner", RecipeMaps.fluidCannerRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.fluidcanner", SoundResource.IC2_MACHINES_EXTRACTOR_OP); + // Fluid Extractor + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidextractor", RecipeMaps.fluidExtractionRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.fluidextractor", SoundResource.IC2_MACHINES_EXTRACTOR_OP); + // Fluid Heater + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidheater", RecipeMaps.fluidHeaterRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.fluidheater", SoundResource.NONE); + // Fluid Solidifier + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidsolidifier", RecipeMaps.fluidSolidifierRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.fluidsolidifier", SoundResource.NONE); + // Forge Hammer + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.hammer", RecipeMaps.hammerRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.hammer", SoundResource.RANDOM_ANVIL_USE); + // Forming Press + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.press", RecipeMaps.formingPressRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.press", SoundResource.IC2_MACHINES_COMPRESSOR_OP); + // Laser Engraver + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.laserengraver", RecipeMaps.laserEngraverRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.laserengraver", SoundResource.IC2_MACHINES_MAGNETIZER_LOOP); + // Lathe + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.lathe", RecipeMaps.latheRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.lathe", SoundResource.NONE); + // Macerator + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.macerator", RecipeMaps.maceratorRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.macerator", SoundResource.IC2_MACHINES_MACERATOR_OP); + // Magnetic Separator + GT_ProcessingArray_Manager + .addRecipeMapToPA("basicmachine.electromagneticseparator", RecipeMaps.electroMagneticSeparatorRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.electromagneticseparator", SoundResource.IC2_MACHINES_MAGNETIZER_LOOP); + // Matter Amplifier + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.amplifab", RecipeMaps.amplifierRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.amplifab", SoundResource.IC2_MACHINES_EXTRACTOR_OP); + // Microwave + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.microwave", RecipeMaps.microwaveRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.microwave", SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP); + // Mixer + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.mixer", RecipeMaps.mixerNonCellRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.mixer", SoundResource.NONE); + // Ore Washer + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.orewasher", RecipeMaps.oreWasherRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.orewasher", SoundResource.NONE); + // Plasma Arc Furnace + GT_ProcessingArray_Manager + .addRecipeMapToPA("basicmachine.plasmaarcfurnace", RecipeMaps.plasmaArcFurnaceRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.plasmaarcfurnace", SoundResource.IC2_MACHINES_INDUCTION_LOOP); + // Polarizer + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.polarizer", RecipeMaps.polarizerRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.polarizer", SoundResource.IC2_MACHINES_MAGNETIZER_LOOP); + // Printer + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.printer", RecipeMaps.printerRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.printer", SoundResource.IC2_MACHINES_COMPRESSOR_OP); + // Recycler + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.recycler", RecipeMaps.recyclerRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.recycler", SoundResource.IC2_MACHINES_RECYCLER_OP); + // Scanner + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.scanner", RecipeMaps.scannerFakeRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.scanner", SoundResource.IC2_MACHINES_MAGNETIZER_LOOP); + // Sifter + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.sifter", RecipeMaps.sifterRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.sifter", SoundResource.NONE); + // Slicer + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.slicer", RecipeMaps.slicerRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.slicer", SoundResource.NONE); + // Thermal Centrifuge + GT_ProcessingArray_Manager + .addRecipeMapToPA("basicmachine.thermalcentrifuge", RecipeMaps.thermalCentrifugeRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.thermalcentrifuge", SoundResource.NONE); + // Unboxinator + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.unboxinator", RecipeMaps.unpackagerRecipes); + GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.unboxinator", SoundResource.NONE); + // Wiremill + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.wiremill", RecipeMaps.wiremillRecipes); + GT_ProcessingArray_Manager + .addSoundResourceToPA("basicmachine.wiremill", SoundResource.IC2_MACHINES_RECYCLER_OP); + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java b/src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java new file mode 100644 index 0000000000..35b18769f0 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java @@ -0,0 +1,106 @@ +package gregtech.loaders.postload; + +import static gregtech.api.util.GT_ModHandler.addToRecyclerBlackList; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import com.glodblock.github.loader.ItemAndBlockHolder; + +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Mods; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; + +public class GT_RecyclerBlacklistLoader implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Adding Stuff to the Recycler Blacklist."); + addToRecyclerBlackList(new ItemStack(Items.arrow, 1, 0)); + addToRecyclerBlackList(new ItemStack(Items.bone, 1, 0)); + addToRecyclerBlackList(ItemList.Dye_Bonemeal.get(1L)); + + addToRecyclerBlackList(new ItemStack(Items.rotten_flesh, 1, 0)); + + addToRecyclerBlackList(new ItemStack(Items.string, 1, 0)); + + addToRecyclerBlackList(new ItemStack(Items.egg, 1, 0)); + ItemStack tStack = new ItemStack(Blocks.cobblestone, 1, 0); + while (tStack != null) { + addToRecyclerBlackList(tStack); + tStack = GT_ModHandler + .getRecipeOutput(tStack, tStack, tStack, tStack, tStack, tStack, tStack, tStack, tStack); + } + addToRecyclerBlackList(new ItemStack(Blocks.gravel, 1, 32767)); + addToRecyclerBlackList(new ItemStack(Items.flint, 1, 32767)); + addToRecyclerBlackList(new ItemStack(Blocks.cobblestone_wall, 1, 32767)); + addToRecyclerBlackList(new ItemStack(Blocks.sandstone_stairs, 1, 32767)); + addToRecyclerBlackList(new ItemStack(Blocks.stone_stairs, 1, 32767)); + addToRecyclerBlackList(new ItemStack(Blocks.stone_brick_stairs, 1, 32767)); + addToRecyclerBlackList(GT_ModHandler.getSmeltingOutput(new ItemStack(Blocks.stone, 1, 0), false, null)); + addToRecyclerBlackList( + GT_ModHandler + .getRecipeOutput(new ItemStack(Blocks.glass, 1, 0), null, null, new ItemStack(Blocks.glass, 1, 0))); + addToRecyclerBlackList( + GT_ModHandler + .getRecipeOutput(new ItemStack(Blocks.stone, 1, 0), null, null, new ItemStack(Blocks.stone, 1, 0))); + addToRecyclerBlackList( + GT_ModHandler.getRecipeOutput( + new ItemStack(Blocks.cobblestone, 1, 0), + null, + null, + new ItemStack(Blocks.cobblestone, 1, 0))); + addToRecyclerBlackList( + GT_ModHandler.getRecipeOutput( + new ItemStack(Blocks.stone, 1, 0), + null, + new ItemStack(Blocks.stone, 1, 0), + null, + new ItemStack(Blocks.stone, 1, 0))); + addToRecyclerBlackList( + GT_ModHandler.getRecipeOutput( + new ItemStack(Blocks.stone, 1, 0), + new ItemStack(Blocks.glass, 1, 0), + new ItemStack(Blocks.stone, 1, 0))); + addToRecyclerBlackList( + GT_ModHandler.getRecipeOutput( + new ItemStack(Blocks.cobblestone, 1, 0), + new ItemStack(Blocks.glass, 1, 0), + new ItemStack(Blocks.cobblestone, 1, 0))); + addToRecyclerBlackList( + GT_ModHandler.getRecipeOutput( + new ItemStack(Blocks.sandstone, 1, 0), + new ItemStack(Blocks.glass, 1, 0), + new ItemStack(Blocks.sandstone, 1, 0))); + addToRecyclerBlackList( + GT_ModHandler.getRecipeOutput( + new ItemStack(Blocks.sand, 1, 0), + new ItemStack(Blocks.glass, 1, 0), + new ItemStack(Blocks.sand, 1, 0))); + addToRecyclerBlackList( + GT_ModHandler.getRecipeOutput( + new ItemStack(Blocks.sandstone, 1, 0), + new ItemStack(Blocks.sandstone, 1, 0), + new ItemStack(Blocks.sandstone, 1, 0), + new ItemStack(Blocks.sandstone, 1, 0), + new ItemStack(Blocks.sandstone, 1, 0), + new ItemStack(Blocks.sandstone, 1, 0))); + addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack(Blocks.glass, 1, 0))); + addToRecyclerBlackList( + GT_ModHandler.getRecipeOutput(new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.glass, 1, 0))); + if (Mods.Chisel.isModLoaded()) { + for (int i = 1; i <= 15; i++) { + addToRecyclerBlackList(GT_ModHandler.getModItem("chisel", "cobblestone", 1, i)); + } + for (int i = 0; i <= 15; i++) { + addToRecyclerBlackList(GT_ModHandler.getModItem("chisel", "stonebricksmooth", 1, i)); + } + } + if (Mods.AE2FluidCraft.isModLoaded()) { + addToRecyclerBlackList(new ItemStack(ItemAndBlockHolder.DROP)); + addToRecyclerBlackList(new ItemStack(ItemAndBlockHolder.PACKET)); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java b/src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java new file mode 100644 index 0000000000..b4621df6b6 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java @@ -0,0 +1,105 @@ +package gregtech.loaders.postload; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.GT_Mod; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class GT_ScrapboxDropLoader implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: (re-)adding Scrapbox Drops."); + + GT_ModHandler.addScrapboxDrop(9.5F, new ItemStack(Items.wooden_hoe)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_axe)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_sword)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_shovel)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_pickaxe)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.sign)); + GT_ModHandler.addScrapboxDrop(9.5F, new ItemStack(Items.stick)); + GT_ModHandler.addScrapboxDrop(5.0F, new ItemStack(Blocks.dirt)); + GT_ModHandler.addScrapboxDrop(3.0F, new ItemStack(Blocks.grass)); + GT_ModHandler.addScrapboxDrop(3.0F, new ItemStack(Blocks.gravel)); + GT_ModHandler.addScrapboxDrop(0.5F, new ItemStack(Blocks.pumpkin)); + GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Blocks.soul_sand)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Blocks.netherrack)); + GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Items.bone)); + GT_ModHandler.addScrapboxDrop(9.0F, new ItemStack(Items.rotten_flesh)); + GT_ModHandler.addScrapboxDrop(0.4F, new ItemStack(Items.cooked_porkchop)); + GT_ModHandler.addScrapboxDrop(0.4F, new ItemStack(Items.cooked_beef)); + GT_ModHandler.addScrapboxDrop(0.4F, new ItemStack(Items.cooked_chicken)); + GT_ModHandler.addScrapboxDrop(0.5F, new ItemStack(Items.apple)); + GT_ModHandler.addScrapboxDrop(0.5F, new ItemStack(Items.bread)); + GT_ModHandler.addScrapboxDrop(0.1F, new ItemStack(Items.cake)); + GT_ModHandler.addScrapboxDrop(1.0F, ItemList.IC2_Food_Can_Filled.get(1L)); + GT_ModHandler.addScrapboxDrop(2.0F, ItemList.IC2_Food_Can_Spoiled.get(1L)); + GT_ModHandler.addScrapboxDrop(0.2F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1L)); + GT_ModHandler.addScrapboxDrop(1.0F, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, ItemList.Cell_Empty.get(1L)); + GT_ModHandler.addScrapboxDrop(5.0F, GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 1L)); + GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Items.leather)); + GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Items.feather)); + GT_ModHandler.addScrapboxDrop(0.7F, GT_ModHandler.getIC2Item("plantBall", 1L)); + GT_ModHandler.addScrapboxDrop(3.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); + GT_ModHandler.addScrapboxDrop(0.6F, new ItemStack(Items.slime_ball)); + GT_ModHandler.addScrapboxDrop(0.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 1L)); + GT_ModHandler.addScrapboxDrop(2.7F, GT_ModHandler.getIC2Item("suBattery", 1L)); + GT_ModHandler.addScrapboxDrop(3.6F, ItemList.Circuit_Primitive.get(1L)); + GT_ModHandler.addScrapboxDrop(0.8F, ItemList.Circuit_Parts_Advanced.get(1L)); + GT_ModHandler.addScrapboxDrop(1.8F, ItemList.Circuit_Board_Basic.get(1L)); + GT_ModHandler.addScrapboxDrop(0.4F, ItemList.Circuit_Board_Advanced.get(1L)); + GT_ModHandler.addScrapboxDrop(0.2F, ItemList.Circuit_Board_Elite.get(1L)); + if (!GT_Mod.gregtechproxy.mDisableIC2Cables) { + GT_ModHandler.addScrapboxDrop(2.0F, GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); + GT_ModHandler.addScrapboxDrop(0.4F, GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L)); + } + GT_ModHandler.addScrapboxDrop(0.9F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L)); + GT_ModHandler.addScrapboxDrop(0.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L)); + GT_ModHandler.addScrapboxDrop(0.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L)); + GT_ModHandler.addScrapboxDrop(2.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Charcoal, 1L)); + GT_ModHandler.addScrapboxDrop(1.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L)); + GT_ModHandler.addScrapboxDrop(1.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Electrum, 1L)); + GT_ModHandler.addScrapboxDrop(1.2F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 1L)); + GT_ModHandler.addScrapboxDrop(1.2F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bauxite, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lead, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 1L)); + GT_ModHandler.addScrapboxDrop(1.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L)); + GT_ModHandler.addScrapboxDrop(1.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lazurite, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Pyrite, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodalite, 1L)); + GT_ModHandler.addScrapboxDrop(4.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1L)); + GT_ModHandler.addScrapboxDrop(4.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Flint, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GarnetRed, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GarnetYellow, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Diamond, 1L)); + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java b/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java new file mode 100644 index 0000000000..8213013bfc --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java @@ -0,0 +1,2384 @@ +package gregtech.loaders.postload; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_Log; +import gregtech.common.GT_Worldgen_GT_Ore_Layer; +import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces; +import gregtech.common.GT_Worldgen_Stone; +import gregtech.common.GT_Worldgenerator; + +public class GT_Worldgenloader implements Runnable { + + public void run() { + + new GT_Worldgenerator(); + + new GT_Worldgen_Stone( + "overworld.stone.blackgranite.tiny", + true, + GregTech_API.sBlockGranites, + 0, + 0, + 1, + 75, + 5, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.blackgranite.small", + true, + GregTech_API.sBlockGranites, + 0, + 0, + 1, + 100, + 10, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.blackgranite.medium", + true, + GregTech_API.sBlockGranites, + 0, + 0, + 1, + 200, + 10, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.blackgranite.large", + true, + GregTech_API.sBlockGranites, + 0, + 0, + 1, + 300, + 70, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.blackgranite.huge", + true, + GregTech_API.sBlockGranites, + 0, + 0, + 1, + 400, + 150, + 0, + 120, + null, + false); + + new GT_Worldgen_Stone( + "overworld.stone.redgranite.tiny", + true, + GregTech_API.sBlockGranites, + 8, + 0, + 1, + 75, + 5, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.redgranite.small", + true, + GregTech_API.sBlockGranites, + 8, + 0, + 1, + 100, + 10, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.redgranite.medium", + true, + GregTech_API.sBlockGranites, + 8, + 0, + 1, + 200, + 10, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.redgranite.large", + true, + GregTech_API.sBlockGranites, + 8, + 0, + 1, + 300, + 70, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.redgranite.huge", + true, + GregTech_API.sBlockGranites, + 8, + 0, + 1, + 400, + 150, + 0, + 120, + null, + false); + + new GT_Worldgen_Stone( + "overworld.stone.marble.tiny", + true, + GregTech_API.sBlockStones, + 0, + 0, + 1, + 75, + 5, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.marble.small", + true, + GregTech_API.sBlockStones, + 0, + 0, + 1, + 100, + 10, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.marble.medium", + true, + GregTech_API.sBlockStones, + 0, + 0, + 1, + 200, + 10, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.marble.large", + true, + GregTech_API.sBlockStones, + 0, + 0, + 1, + 300, + 70, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.marble.huge", + true, + GregTech_API.sBlockStones, + 0, + 0, + 1, + 400, + 150, + 0, + 120, + null, + false); + + new GT_Worldgen_Stone( + "overworld.stone.basalt.tiny", + true, + GregTech_API.sBlockStones, + 8, + 0, + 1, + 75, + 5, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.basalt.small", + true, + GregTech_API.sBlockStones, + 8, + 0, + 1, + 100, + 10, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.basalt.medium", + true, + GregTech_API.sBlockStones, + 8, + 0, + 1, + 200, + 10, + 0, + 180, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.basalt.large", + true, + GregTech_API.sBlockStones, + 8, + 0, + 1, + 300, + 70, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "overworld.stone.basalt.huge", + true, + GregTech_API.sBlockStones, + 8, + 0, + 1, + 400, + 150, + 0, + 120, + null, + false); + + new GT_Worldgen_Stone( + "nether.stone.blackgranite.tiny", + false, + GregTech_API.sBlockGranites, + 0, + -1, + 1, + 50, + 45, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.blackgranite.small", + false, + GregTech_API.sBlockGranites, + 0, + -1, + 1, + 100, + 60, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.blackgranite.medium", + false, + GregTech_API.sBlockGranites, + 0, + -1, + 1, + 200, + 80, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.blackgranite.large", + false, + GregTech_API.sBlockGranites, + 0, + -1, + 1, + 300, + 70, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.blackgranite.huge", + false, + GregTech_API.sBlockGranites, + 0, + -1, + 1, + 400, + 150, + 0, + 120, + null, + false); + + new GT_Worldgen_Stone( + "nether.stone.redgranite.tiny", + false, + GregTech_API.sBlockGranites, + 8, + -1, + 1, + 50, + 45, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.redgranite.small", + false, + GregTech_API.sBlockGranites, + 8, + -1, + 1, + 100, + 60, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.redgranite.medium", + false, + GregTech_API.sBlockGranites, + 8, + -1, + 1, + 200, + 80, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.redgranite.large", + false, + GregTech_API.sBlockGranites, + 8, + -1, + 1, + 300, + 70, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.redgranite.huge", + false, + GregTech_API.sBlockGranites, + 8, + -1, + 1, + 400, + 150, + 0, + 120, + null, + false); + + new GT_Worldgen_Stone( + "nether.stone.marble.tiny", + false, + GregTech_API.sBlockStones, + 0, + -1, + 1, + 50, + 45, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.marble.small", + false, + GregTech_API.sBlockStones, + 0, + -1, + 1, + 100, + 60, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.marble.medium", + false, + GregTech_API.sBlockStones, + 0, + -1, + 1, + 200, + 80, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.marble.large", + false, + GregTech_API.sBlockStones, + 0, + -1, + 1, + 300, + 70, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.marble.huge", + false, + GregTech_API.sBlockStones, + 0, + -1, + 1, + 400, + 150, + 0, + 120, + null, + false); + + new GT_Worldgen_Stone( + "nether.stone.basalt.tiny", + false, + GregTech_API.sBlockStones, + 8, + -1, + 1, + 50, + 45, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.basalt.small", + false, + GregTech_API.sBlockStones, + 8, + -1, + 1, + 100, + 60, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.basalt.medium", + false, + GregTech_API.sBlockStones, + 8, + -1, + 1, + 200, + 80, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.basalt.large", + false, + GregTech_API.sBlockStones, + 8, + -1, + 1, + 300, + 70, + 0, + 120, + null, + false); + new GT_Worldgen_Stone( + "nether.stone.basalt.huge", + false, + GregTech_API.sBlockStones, + 8, + -1, + 1, + 400, + 150, + 0, + 120, + null, + false); + + // GT Default Small Ores + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.copper", + true, + 60, + 180, + 32, + true, + true, + true, + true, + true, + false, + Materials.Copper); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.tin", + true, + 80, + 220, + 32, + true, + true, + true, + true, + true, + true, + Materials.Tin); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.bismuth", + true, + 80, + 120, + 8, + false, + true, + false, + true, + true, + false, + Materials.Bismuth); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.coal", + true, + 120, + 250, + 24, + true, + false, + false, + false, + false, + false, + Materials.Coal); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.iron", + true, + 40, + 100, + 16, + true, + true, + true, + true, + true, + false, + Materials.Iron); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.lead", + true, + 40, + 180, + 16, + false, + true, + true, + true, + true, + true, + Materials.Lead); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.zinc", + true, + 80, + 210, + 24, + true, + true, + true, + true, + true, + false, + Materials.Zinc); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.gold", + true, + 20, + 60, + 8, + true, + false, + true, + true, + true, + true, + Materials.Gold); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.silver", + true, + 20, + 60, + 20, + true, + true, + true, + true, + true, + true, + Materials.Silver); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.nickel", + true, + 80, + 150, + 8, + true, + false, + true, + true, + true, + true, + Materials.Nickel); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.lapis", + true, + 10, + 50, + 4, + true, + false, + false, + true, + false, + true, + Materials.Lapis); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.diamond", + true, + 5, + 15, + 2, + true, + false, + false, + true, + true, + true, + Materials.Diamond); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.emerald", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.Emerald); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.ruby", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.Ruby); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.sapphire", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.Sapphire); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.greensapphire", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.GreenSapphire); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.olivine", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.Olivine); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.topaz", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.Topaz); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.tanzanite", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.Tanzanite); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.amethyst", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.Amethyst); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.opal", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.Opal); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.jasper", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.Jasper); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.bluetopaz", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.BlueTopaz); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.amber", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.Amber); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.foolsruby", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.FoolsRuby); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.garnetred", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.GarnetRed); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.garnetyellow", + true, + 5, + 35, + 2, + false, + false, + false, + false, + true, + true, + Materials.GarnetYellow); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.redstone", + true, + 5, + 25, + 8, + true, + true, + false, + true, + true, + true, + Materials.Redstone); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.netherquartz", + true, + 30, + 120, + 64, + false, + true, + false, + false, + false, + false, + Materials.NetherQuartz); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.saltpeter", + true, + 10, + 60, + 8, + false, + true, + false, + false, + false, + false, + Materials.Saltpeter); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.sulfur", + true, + 5, + 60, + 40, + false, + true, + false, + false, + false, + false, + Materials.Sulfur); + + // TODO: GTNH Custom Small Ores + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.titanium", + true, + 10, + 180, + 32, + false, + false, + false, + Materials.Titanium); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.tungsten", + true, + 10, + 120, + 16, + false, + false, + false, + Materials.Tungsten); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.meteoriciron", + true, + 50, + 70, + 8, + false, + false, + false, + Materials.MeteoricIron); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.firestone", + true, + 5, + 15, + 2, + false, + false, + false, + Materials.Firestone); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.neutronium", + true, + 5, + 15, + 8, + false, + false, + false, + Materials.Neutronium); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.chromite", + true, + 20, + 40, + 8, + false, + false, + false, + Materials.Chromite); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.tungstate", + true, + 20, + 40, + 8, + false, + false, + false, + Materials.Tungstate); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.naquadah", + true, + 5, + 25, + 8, + false, + false, + false, + Materials.Naquadah); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.quantium", + true, + 5, + 25, + 6, + false, + false, + false, + Materials.Quantium); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.mythril", true, 5, 25, 6, false, false, false, Materials.Mytryl); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.ledox", true, 40, 60, 4, false, false, false, Materials.Ledox); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.oriharukon", + true, + 20, + 40, + 6, + false, + false, + false, + Materials.Oriharukon); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.draconium", + true, + 5, + 15, + 4, + false, + false, + false, + Materials.Draconium); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.awdraconium", + true, + 5, + 15, + 2, + false, + false, + false, + Materials.DraconiumAwakened); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.desh", true, 10, 30, 6, false, false, false, Materials.Desh); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.blackplutonium", + true, + 25, + 45, + 6, + false, + false, + false, + Materials.BlackPlutonium); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.infinitycatalyst", + true, + 40, + 80, + 6, + false, + false, + false, + Materials.InfinityCatalyst); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.infinity", + true, + 2, + 40, + 2, + false, + false, + false, + Materials.Infinity); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.bedrockium", + true, + 5, + 25, + 6, + false, + false, + false, + Materials.Bedrockium); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.realgar", + true, + 15, + 85, + 32, + false, + true, + false, + Materials.Realgar); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.certusquartz", + true, + 5, + 115, + 16, + false, + true, + false, + Materials.CertusQuartz); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.jade", true, 5, 35, 2, false, false, false, Materials.Jade); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.deepiron", + true, + 5, + 40, + 8, + false, + false, + false, + Materials.DeepIron); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.redgarnet", + true, + 5, + 35, + 2, + false, + false, + false, + Materials.GarnetRed); + new GT_Worldgen_GT_Ore_SmallPieces( + "ore.small.chargedcertus", + true, + 5, + 115, + 4, + false, + false, + false, + Materials.CertusQuartzCharged); + + // GT Default Veins + + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.naquadah", + true, + 10, + 90, + 30, + 4, + 32, + false, + false, + false, + Materials.Naquadah, + Materials.Naquadah, + Materials.Naquadah, + Materials.NaquadahEnriched); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.lignite", + true, + 80, + 210, + 160, + 7, + 32, + true, + false, + false, + Materials.Lignite, + Materials.Lignite, + Materials.Lignite, + Materials.Coal); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.coal", + true, + 30, + 80, + 80, + 5, + 32, + true, + false, + false, + Materials.Coal, + Materials.Coal, + Materials.Coal, + Materials.Lignite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.magnetite", + true, + 60, + 180, + 160, + 2, + 32, + true, + false, + false, + Materials.Magnetite, + Materials.Magnetite, + Materials.Iron, + Materials.VanadiumMagnetite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.gold", + true, + 30, + 60, + 160, + 2, + 32, + true, + false, + true, + Materials.Magnetite, + Materials.Magnetite, + Materials.VanadiumMagnetite, + Materials.Gold); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.iron", + true, + 10, + 40, + 120, + 3, + 24, + true, + true, + false, + Materials.BrownLimonite, + Materials.YellowLimonite, + Materials.BandedIron, + Materials.Malachite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.cassiterite", + true, + 60, + 220, + 50, + 4, + 24, + true, + false, + true, + Materials.Tin, + Materials.Tin, + Materials.Cassiterite, + Materials.Tin); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.tetrahedrite", + true, + 80, + 120, + 70, + 3, + 24, + false, + true, + true, + Materials.Tetrahedrite, + Materials.Tetrahedrite, + Materials.Copper, + Materials.Stibnite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.netherquartz", + true, + 40, + 80, + 80, + 4, + 24, + false, + true, + false, + Materials.NetherQuartz, + Materials.NetherQuartz, + Materials.NetherQuartz, + Materials.Quartzite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.sulfur", + true, + 5, + 20, + 100, + 4, + 24, + false, + true, + false, + Materials.Sulfur, + Materials.Sulfur, + Materials.Pyrite, + Materials.Sphalerite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.copper", + true, + 5, + 60, + 80, + 3, + 24, + true, + true, + true, + Materials.Chalcopyrite, + Materials.Iron, + Materials.Pyrite, + Materials.Copper); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.bauxite", + true, + 10, + 80, + 80, + 3, + 24, + false, + false, + false, + Materials.Bauxite, + Materials.Ilmenite, + Materials.Aluminium, + Materials.Ilmenite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.salts", + true, + 50, + 70, + 50, + 2, + 24, + true, + false, + false, + Materials.RockSalt, + Materials.Salt, + Materials.Lepidolite, + Materials.Spodumene); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.redstone", + true, + 5, + 40, + 60, + 2, + 24, + true, + true, + false, + Materials.Redstone, + Materials.Redstone, + Materials.Ruby, + Materials.Cinnabar); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.soapstone", + true, + 20, + 50, + 40, + 2, + 16, + true, + false, + false, + Materials.Soapstone, + Materials.Talc, + Materials.Glauconite, + Materials.Pentlandite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.nickel", + true, + 10, + 40, + 40, + 2, + 16, + false, + false, + true, + Materials.Garnierite, + Materials.Nickel, + Materials.Cobaltite, + Materials.Pentlandite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.platinum", + true, + 40, + 50, + 5, + 2, + 16, + false, + false, + false, + Materials.Cooperite, + Materials.Palladium, + Materials.Platinum, + Materials.Iridium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.pitchblende", + true, + 30, + 60, + 40, + 2, + 16, + false, + false, + false, + Materials.Pitchblende, + Materials.Pitchblende, + Materials.Uraninite, + Materials.Uraninite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.monazite", + true, + 20, + 40, + 30, + 2, + 16, + false, + false, + false, + Materials.Bastnasite, + Materials.Bastnasite, + Materials.Monazite, + Materials.Neodymium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.molybdenum", + true, + 20, + 50, + 5, + 2, + 16, + false, + true, + true, + Materials.Wulfenite, + Materials.Molybdenite, + Materials.Molybdenum, + Materials.Powellite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.tungstate", + true, + 20, + 60, + 10, + 2, + 16, + false, + false, + false, + Materials.Scheelite, + Materials.Scheelite, + Materials.Tungstate, + Materials.Lithium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.sapphire", + true, + 10, + 40, + 60, + 2, + 16, + false, + false, + false, + Materials.Almandine, + Materials.Pyrope, + Materials.Sapphire, + Materials.GreenSapphire); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.manganese", + true, + 20, + 30, + 20, + 2, + 16, + true, + true, + false, + Materials.Grossular, + Materials.Spessartine, + Materials.Pyrolusite, + Materials.Tantalite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.quartz", + true, + 80, + 120, + 30, + 2, + 16, + false, + true, + false, + Materials.Quartzite, + Materials.Barite, + Materials.CertusQuartz, + Materials.CertusQuartz); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.diamond", + true, + 5, + 20, + 40, + 1, + 16, + true, + false, + false, + Materials.Graphite, + Materials.Graphite, + Materials.Diamond, + Materials.Coal); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.olivine", + true, + 10, + 40, + 60, + 2, + 16, + false, + false, + false, + Materials.Bentonite, + Materials.Magnesite, + Materials.Olivine, + Materials.Glauconite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.apatite", + true, + 40, + 60, + 60, + 2, + 16, + true, + false, + false, + Materials.Apatite, + Materials.Apatite, + Materials.TricalciumPhosphate, + Materials.Pyrochlore); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.galena", + true, + 5, + 45, + 40, + 4, + 16, + false, + false, + false, + Materials.Galena, + Materials.Galena, + Materials.Silver, + Materials.Lead); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.lapis", + true, + 20, + 50, + 40, + 4, + 16, + true, + false, + false, + Materials.Lazurite, + Materials.Sodalite, + Materials.Lapis, + Materials.Calcite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.beryllium", + true, + 5, + 30, + 30, + 2, + 16, + false, + true, + true, + Materials.Beryllium, + Materials.Beryllium, + Materials.Emerald, + Materials.Thorium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.uranium", + true, + 20, + 30, + 20, + 2, + 16, + false, + false, + false, + Materials.Uraninite, + Materials.Uraninite, + Materials.Uranium, + Materials.Uranium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.oilsand", + true, + 50, + 80, + 40, + 5, + 16, + true, + false, + false, + Materials.Oilsands, + Materials.Oilsands, + Materials.Oilsands, + Materials.Oilsands); + + /* + * TODO: custom GTNH OreMixes WARNING: NO DUPLICATES IN aName OR DEPRECATED MATERIALS IN HERE. Materials can be + * used unlimited, since achievements for Ores are turned off. + */ + + // aName, aDefault, aMinY, aMaxY, aWeight, aDensity, aSize, aOverworld, aNether, aEnd, aPrimary, aSecondary, + // aBetween, aSporadic + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.neutronium", + true, + 5, + 30, + 10, + 2, + 16, + false, + false, + false, + Materials.Neutronium, + Materials.Adamantium, + Materials.Naquadah, + Materials.Titanium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.aquaignis", + true, + 5, + 35, + 16, + 2, + 16, + false, + false, + false, + Materials.InfusedWater, + Materials.InfusedFire, + Materials.Amber, + Materials.Cinnabar); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.terraaer", + true, + 5, + 35, + 16, + 2, + 16, + false, + false, + false, + Materials.InfusedEarth, + Materials.InfusedAir, + Materials.Amber, + Materials.Cinnabar); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.perditioordo", + true, + 5, + 35, + 16, + 2, + 16, + false, + false, + false, + Materials.InfusedEntropy, + Materials.InfusedOrder, + Materials.Amber, + Materials.Cinnabar); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.coppertin", + true, + 80, + 200, + 80, + 3, + 24, + true, + false, + false, + Materials.Chalcopyrite, + Materials.Vermiculite, + Materials.Cassiterite, + Materials.Alunite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.titaniumchrome", + true, + 10, + 70, + 16, + 2, + 16, + false, + false, + false, + Materials.Ilmenite, + Materials.Chromite, + Materials.Uvarovite, + Materials.Perlite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.mineralsand", + true, + 50, + 60, + 80, + 3, + 24, + true, + false, + false, + Materials.BasalticMineralSand, + Materials.GraniticMineralSand, + Materials.FullersEarth, + Materials.Gypsum); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.garnettin", + true, + 50, + 60, + 80, + 3, + 24, + true, + false, + false, + Materials.CassiteriteSand, + Materials.GarnetSand, + Materials.Asbestos, + Materials.Diatomite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.kaolinitezeolite", + true, + 50, + 70, + 60, + 4, + 16, + true, + false, + false, + Materials.Kaolinite, + Materials.Zeolite, + Materials.FullersEarth, + Materials.GlauconiteSand); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.mica", + true, + 20, + 40, + 20, + 2, + 16, + true, + false, + false, + Materials.Kyanite, + Materials.Mica, + Materials.Cassiterite, + Materials.Pollucite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.dolomite", + true, + 150, + 200, + 40, + 4, + 24, + true, + false, + false, + Materials.Dolomite, + Materials.Wollastonite, + Materials.Trona, + Materials.Andradite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.platinumchrome", + true, + 5, + 30, + 10, + 2, + 16, + false, + false, + false, + Materials.Platinum, + Materials.Chrome, + Materials.Cooperite, + Materials.Palladium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.iridiummytryl", + true, + 15, + 40, + 10, + 2, + 16, + false, + false, + false, + Materials.Nickel, + Materials.Iridium, + Materials.Palladium, + Materials.Mithril); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.osmium", + true, + 5, + 30, + 10, + 2, + 16, + false, + false, + false, + Materials.Nickel, + Materials.Osmium, + Materials.Iridium, + Materials.Nickel); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.saltpeterelectrotine", + true, + 5, + 45, + 40, + 3, + 16, + false, + true, + false, + Materials.Saltpeter, + Materials.Diatomite, + Materials.Electrotine, + Materials.Alunite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.desh", + true, + 5, + 40, + 30, + 2, + 16, + false, + false, + false, + Materials.Desh, + Materials.Desh, + Materials.Scheelite, + Materials.Tungstate); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.draconium", + true, + 20, + 40, + 40, + 1, + 16, + false, + false, + false, + Materials.Draconium, + Materials.Electrotine, + Materials.Jade, + Materials.Vinteum); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.quantium", + true, + 5, + 25, + 30, + 3, + 24, + false, + false, + false, + Materials.Quantium, + Materials.Amethyst, + Materials.Rutile, + Materials.Ardite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.callistoice", + true, + 40, + 60, + 40, + 2, + 16, + false, + false, + false, + Materials.CallistoIce, + Materials.Topaz, + Materials.BlueTopaz, + Materials.Alduorite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.mytryl", + true, + 10, + 30, + 40, + 2, + 16, + false, + false, + false, + Materials.Mytryl, + Materials.Jasper, + Materials.Ceruclase, + Materials.Vulcanite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.ledox", + true, + 55, + 65, + 30, + 2, + 24, + false, + false, + false, + Materials.Ledox, + Materials.Opal, + Materials.Orichalcum, + Materials.Rubracium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.oriharukon", + true, + 30, + 60, + 40, + 2, + 16, + false, + false, + false, + Materials.Oriharukon, + Materials.Tanzanite, + Materials.Vyroxeres, + Materials.Mirabilite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.blackplutonium", + true, + 5, + 25, + 40, + 2, + 24, + false, + false, + false, + Materials.BlackPlutonium, + Materials.GarnetRed, + Materials.GarnetYellow, + Materials.Borax); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.infusedgold", + true, + 15, + 40, + 30, + 2, + 16, + false, + false, + false, + Materials.Gold, + Materials.Gold, + Materials.InfusedGold, + Materials.Platinum); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.niobium", + true, + 5, + 30, + 60, + 2, + 24, + false, + false, + false, + Materials.Niobium, + Materials.Yttrium, + Materials.Gallium, + Materials.Gallium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.tungstenirons", + true, + 5, + 25, + 16, + 2, + 30, + false, + false, + false, + Materials.Tungsten, + Materials.Silicon, + Materials.DeepIron, + Materials.ShadowIron); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.uraniumgtnh", + true, + 10, + 30, + 60, + 2, + 24, + false, + false, + false, + Materials.Thorium, + Materials.Uranium, + Materials.Plutonium241, + Materials.Uranium235); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.vanadiumgold", + true, + 10, + 50, + 60, + 2, + 24, + false, + false, + false, + Materials.Vanadium, + Materials.Magnetite, + Materials.Gold, + Materials.Chrome); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.netherstar", + true, + 20, + 60, + 60, + 2, + 24, + false, + false, + false, + Materials.GarnetSand, + Materials.NetherStar, + Materials.GarnetRed, + Materials.GarnetYellow); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.garnet", + true, + 10, + 30, + 40, + 2, + 16, + false, + false, + false, + Materials.GarnetRed, + Materials.GarnetYellow, + Materials.Chrysotile, + Materials.Realgar); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.rareearth", + true, + 30, + 60, + 40, + 2, + 24, + false, + false, + false, + Materials.Cadmium, + Materials.Caesium, + Materials.Lanthanum, + Materials.Cerium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.richnuclear", + true, + 55, + 120, + 5, + 2, + 8, + false, + false, + false, + Materials.Uranium, + Materials.Plutonium, + Materials.Thorium, + Materials.Thorium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.heavypentele", + true, + 40, + 60, + 60, + 5, + 32, + false, + false, + false, + Materials.Arsenic, + Materials.Bismuth, + Materials.Antimony, + Materials.Antimony); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.europa", + true, + 55, + 65, + 110, + 4, + 24, + false, + false, + false, + Materials.Magnesite, + Materials.BandedIron, + Materials.Sulfur, + Materials.Opal); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.europacore", + true, + 5, + 15, + 5, + 2, + 16, + false, + false, + false, + Materials.Chrome, + Materials.Tungstate, + Materials.Molybdenum, + Materials.Manganese); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.secondlanthanid", + true, + 10, + 40, + 10, + 3, + 24, + false, + false, + false, + Materials.Samarium, + Materials.Neodymium, + Materials.Tartarite, + Materials.Tartarite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.quartzspace", + true, + 40, + 80, + 20, + 3, + 16, + false, + false, + false, + Materials.Quartzite, + Materials.Barite, + Materials.CertusQuartz, + Materials.CertusQuartz); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.rutile", + true, + 5, + 20, + 8, + 4, + 12, + false, + false, + false, + Materials.Rutile, + Materials.Titanium, + Materials.Bauxite, + Materials.MeteoricIron); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.tfgalena", + true, + 5, + 35, + 40, + 4, + 16, + false, + false, + false, + Materials.Galena, + Materials.Silver, + Materials.Lead, + Materials.Cryolite); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.luvtantalite", + true, + 20, + 30, + 10, + 4, + 16, + false, + false, + false, + Materials.Pyrolusite, + Materials.Apatite, + Materials.Tantalite, + Materials.Pyrochlore); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.certusquartz", + true, + 40, + 80, + 60, + 5, + 32, + false, + false, + false, + Materials.CertusQuartz, + Materials.CertusQuartz, + Materials.CertusQuartzCharged, + Materials.QuartzSand); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.infinitycatalyst", + true, + 5, + 20, + 15, + 2, + 16, + false, + false, + false, + Materials.Neutronium, + Materials.Adamantium, + Materials.InfinityCatalyst, + Materials.Bedrockium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.cosmicneutronium", + true, + 5, + 20, + 15, + 2, + 16, + false, + false, + false, + Materials.Neutronium, + Materials.CosmicNeutronium, + Materials.BlackPlutonium, + Materials.Bedrockium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.dilithium", + true, + 30, + 100, + 30, + 3, + 24, + false, + false, + false, + Materials.Dilithium, + Materials.Dilithium, + Materials.MysteriousCrystal, + Materials.Vinteum); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.naquadria", + true, + 10, + 90, + 40, + 4, + 24, + false, + false, + false, + Materials.Naquadah, + Materials.NaquadahEnriched, + Materials.Naquadria, + Materials.Trinium); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.awakeneddraconium", + true, + 20, + 40, + 20, + 3, + 16, + false, + false, + false, + Materials.Draconium, + Materials.Draconium, + Materials.DraconiumAwakened, + Materials.NetherStar); + new GT_Worldgen_GT_Ore_Layer( + "ore.mix.tengam", + true, + 30, + 180, + 80, + 2, + 32, + false, + false, + false, + Materials.TengamRaw, + Materials.TengamRaw, + Materials.Electrotine, + Materials.Samarium); + + // DO NOT DELETE V THIS V - this is needed so that gregtech generates its Ore Layer's first (the ones up there), + // which can then be transformed into "GT_Worldgen_GT_Ore_Layer_Space". Also, Reflexion is slow. + try { + Class<?> clazz = Class.forName("bloodasp.galacticgreg.WorldGenGaGT"); + Constructor<?> constructor = clazz.getConstructor(); + Method method = clazz.getMethod("run"); + method.invoke(constructor.newInstance()); + GT_Log.out.println("Started Galactic Greg ore gen code"); + // this function calls Galactic Greg and enables its generation. + } catch (Exception e) { + // ClassNotFound is expected if Galactic Greg is absent, so only report if other problem + if (!(e instanceof ClassNotFoundException)) { + GT_Log.err.println("Unable to start Galactic Greg ore gen code"); + e.printStackTrace(GT_Log.err); + } + } + // DO NOT DELETE ^ THIS ^ + + } +} diff --git a/src/main/java/gregtech/loaders/postload/PartP2PGTPower.java b/src/main/java/gregtech/loaders/postload/PartP2PGTPower.java new file mode 100644 index 0000000000..389ac1cc57 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/PartP2PGTPower.java @@ -0,0 +1,104 @@ +package gregtech.loaders.postload; + +import java.lang.reflect.Field; + +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import appeng.api.networking.IGridNode; +import appeng.api.networking.ticking.IGridTickable; +import appeng.api.networking.ticking.TickRateModulation; +import appeng.api.networking.ticking.TickingRequest; +import appeng.parts.AEBasePart; +import appeng.parts.p2p.PartP2PIC2Power; +import gregtech.api.interfaces.tileentity.IEnergyConnected; +import gregtech.api.util.GT_Log; + +public class PartP2PGTPower extends PartP2PIC2Power implements IGridTickable { + + public PartP2PGTPower(ItemStack is) { + super(is); + } + + public final World getWorld() { + return getTile().getWorldObj(); + } + + public final int getXCoord() { + return getTile().xCoord; + } + + public final short getYCoord() { + return (short) getTile().yCoord; + } + + public final int getZCoord() { + return getTile().zCoord; + } + + public final int getOffsetX(ForgeDirection side, int aMultiplier) { + return getXCoord() + side.offsetX * aMultiplier; + } + + public final short getOffsetY(ForgeDirection side, int aMultiplier) { + return (short) (getYCoord() + side.offsetY * aMultiplier); + } + + public final int getOffsetZ(ForgeDirection side, int aMultiplier) { + return getZCoord() + side.offsetZ * aMultiplier; + } + + public final TileEntity getTileEntity(int aX, int aY, int aZ) { + return getWorld().getTileEntity(aX, aY, aZ); + } + + public final TileEntity getTileEntityAtSide(ForgeDirection side) { + final int tX = getOffsetX(side, 1); + final int tY = getOffsetY(side, 1); + final int tZ = getOffsetZ(side, 1); + return getWorld().getTileEntity(tX, tY, tZ); + } + + public boolean outputEnergy() { + if (getOfferedEnergy() == 0) { + return false; + } + final TileEntity te = getTileEntityAtSide(getSide()); + if (te instanceof IEnergyConnected energyConnected) { + long voltage = 8L << (getSourceTier() * 2); + if (voltage > getOfferedEnergy()) { + voltage = (long) getOfferedEnergy(); + } + if (energyConnected.injectEnergyUnits(getSide().getOpposite(), voltage, 1) > 0) { + drawEnergy(voltage); + return true; + } + } + return false; + } + + @Override + public TickingRequest getTickingRequest(IGridNode iGridNode) { + return new TickingRequest(1, 20, false, false); + } + + @Override + public TickRateModulation tickingRequest(IGridNode iGridNode, int i) { + return outputEnergy() ? TickRateModulation.FASTER : TickRateModulation.SLOWER; + } + + @Override + public ForgeDirection getSide() { + try { + Field fSide = AEBasePart.class.getDeclaredField("side"); + fSide.setAccessible(true); + return (ForgeDirection) fSide.get(this); + } catch (Exception e) { + GT_Log.out.println("A fatal error occured at the P2P tunnel for GT electricity"); + e.printStackTrace(GT_Log.out); + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_BauxiteRefineChain.java b/src/main/java/gregtech/loaders/postload/chains/GT_BauxiteRefineChain.java new file mode 100644 index 0000000000..aaf25812e4 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/chains/GT_BauxiteRefineChain.java @@ -0,0 +1,297 @@ +package gregtech.loaders.postload.chains; + +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.crackingRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsOreAlum; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class GT_BauxiteRefineChain { + + public static void run() { + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Bauxite, 32), + Materials.SodiumHydroxide.getDust(9), + Materials.Quicklime.getDust(4), + GT_Utility.getIntegratedCircuit(8)) + .fluidInputs(Materials.Water.getFluid(5000)) + .fluidOutputs(MaterialsOreAlum.BauxiteSlurry.getFluid(8000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Bauxite, 32), + Materials.SodiumHydroxide.getDust(9), + Materials.Quicklime.getDust(4), + GT_Utility.getIntegratedCircuit(8)) + .fluidInputs(Materials.Water.getFluid(5000)) + .fluidOutputs(MaterialsOreAlum.BauxiteSlurry.getFluid(8000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(MaterialsOreAlum.BauxiteSlurry.getFluid(32000), GT_ModHandler.getSteam(2000)) + .fluidOutputs(MaterialsOreAlum.HeatedBauxiteSlurry.getFluid(32000)) + .duration(8 * SECONDS) + .eut(400) + .addTo(crackingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Aluminiumhydroxide.getDust(1)) + .itemOutputs( + Materials.Aluminiumoxide.getDust(64), + Materials.Aluminiumoxide.getDust(16), + Materials.SodiumCarbonate.getDust(9), + Materials.Calcite.getDust(10), + MaterialsOreAlum.BauxiteSlag.getDust(16)) + .fluidInputs(Materials.CarbonDioxide.getGas(5000), MaterialsOreAlum.HeatedBauxiteSlurry.getFluid(8000)) + .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(5000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsOreAlum.BauxiteSlag.getDust(1)) + .itemOutputs( + Materials.Rutile.getDust(1), + Materials.Gallium.getDust(1), + Materials.Quicklime.getDust(1), + Materials.SiliconDioxide.getDust(1), + Materials.Iron.getDust(1)) + .outputChances(10000, 3000, 2000, 9000, 8000) + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Ilmenite, 1)) + .itemOutputs(Materials.Rutile.getDust(2), MaterialsOreAlum.IlmeniteSlag.getDust(1)) + .outputChances(10000, 3000) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(new FluidStack(ItemList.sGreenVitriol, 2000)) + .duration(21 * SECONDS) + .eut(1000) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Ilmenite, 1)) + .itemOutputs(Materials.Rutile.getDust(2), MaterialsOreAlum.IlmeniteSlag.getDust(1)) + .outputChances(10000, 6000) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(new FluidStack(ItemList.sGreenVitriol, 2000)) + .duration(21 * SECONDS) + .eut(1000) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsOreAlum.IlmeniteSlag.getDust(1)) + .itemOutputs( + Materials.Iron.getDust(1), + Materials.Niobium.getDust(1), + Materials.Tantalum.getDust(1), + Materials.Manganese.getDust(1), + Materials.Magnesium.getDust(1)) + .outputChances(8000, 500, 2000, 5000, 6000) + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + + OrePrefixes[] washable = new OrePrefixes[] { OrePrefixes.crushed, OrePrefixes.crushedPurified, + OrePrefixes.dustImpure, OrePrefixes.dustPure }; + + for (OrePrefixes ore : washable) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(ore, Materials.Sapphire, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.SodiumHydroxide, 1), + GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(MaterialsOreAlum.SapphireJuice.getFluid(1000)) + .duration(2 * SECONDS) + .eut(100) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(ore, Materials.GreenSapphire, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.SodiumHydroxide, 1), + GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(MaterialsOreAlum.GreenSapphireJuice.getFluid(1000)) + .duration(2 * SECONDS) + .eut(100) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(ore, Materials.Ruby, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.SodiumHydroxide, 1), + GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(MaterialsOreAlum.RubyJuice.getFluid(1000)) + .duration(2 * SECONDS) + .eut(100) + .addTo(mixerRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + Materials.Aluminiumhydroxide.getDust(3), + Materials.Iron.getDust(1), + Materials.Vanadium.getDust(1), + Materials.Magnesium.getDust(1)) + .outputChances(10000, 300, 200, 200) + .fluidInputs(MaterialsOreAlum.SapphireJuice.getFluid(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(2 * SECONDS + 5 * TICKS) + .eut(100) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + Materials.Aluminiumhydroxide.getDust(3), + Materials.Iron.getDust(1), + Materials.Vanadium.getDust(1), + Materials.Manganese.getDust(1), + Materials.Beryllium.getDust(1)) + .outputChances(10000, 300, 200, 200, 200) + .fluidInputs(MaterialsOreAlum.GreenSapphireJuice.getFluid(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(2 * SECONDS + 5 * TICKS) + .eut(100) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + Materials.Aluminiumhydroxide.getDust(3), + Materials.Chrome.getDust(1), + Materials.Iron.getDust(1), + Materials.Vanadium.getDust(1), + Materials.Magnesium.getDust(1)) + .outputChances(10000, 5000, 300, 200, 200) + .fluidInputs(MaterialsOreAlum.RubyJuice.getFluid(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(2 * SECONDS + 5 * TICKS) + .eut(100) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Pyrope.getDust(1)) + .itemOutputs( + Materials.Aluminiumoxide.getDust(1), + Materials.Magnesia.getDust(1), + Materials.Silver.getDust(1), + Materials.Iron.getDust(1), + Materials.Calcite.getDust(1), + Materials.Vanadium.getDust(1)) + .outputChances(5000, 4000, 300, 300, 300, 200) + .fluidInputs(Materials.NitricAcid.getFluid(10)) + .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) + .duration(2 * SECONDS + 5 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Almandine.getDust(1)) + .itemOutputs( + Materials.Aluminiumoxide.getDust(1), + Materials.Iron.getDust(1), + Materials.Gold.getDust(1), + Materials.Calcite.getDust(1), + Materials.Chrome.getDust(1), + Materials.Vanadium.getDust(1)) + .outputChances(5000, 4000, 300, 300, 200, 200) + .fluidInputs(Materials.NitricAcid.getFluid(10)) + .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) + .duration(2 * SECONDS + 5 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Spessartine.getDust(1)) + .itemOutputs( + Materials.Aluminiumoxide.getDust(1), + Materials.Pyrolusite.getDust(1), + Materials.Iron.getDust(1), + Materials.Calcite.getDust(1), + Materials.Magnesium.getDust(1), + Materials.Tantalum.getDust(1)) + .outputChances(5000, 4000, 300, 300, 300, 200) + .fluidInputs(Materials.NitricAcid.getFluid(10)) + .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) + .duration(2 * SECONDS + 5 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Andradite.getDust(1)) + .itemOutputs( + Materials.Quicklime.getDust(1), + Materials.Iron.getDust(1), + Materials.Aluminiumoxide.getDust(1), + Materials.Gold.getDust(1), + Materials.Vanadium.getDust(1), + Materials.Rutile.getDust(1)) + .outputChances(5000, 4000, 300, 300, 200, 600) + .fluidInputs(Materials.NitricAcid.getFluid(10)) + .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) + .duration(2 * SECONDS + 5 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Uvarovite.getDust(1)) + .itemOutputs( + Materials.Quicklime.getDust(1), + Materials.Chrome.getDust(1), + Materials.Iron.getDust(1), + Materials.Silver.getDust(1), + Materials.Aluminiumoxide.getDust(1), + Materials.Manganese.getDust(1)) + .outputChances(5000, 1000, 300, 300, 200, 200) + .fluidInputs(Materials.NitricAcid.getFluid(10)) + .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) + .duration(2 * SECONDS + 5 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Grossular.getDust(1)) + .itemOutputs( + Materials.Quicklime.getDust(1), + Materials.Aluminiumoxide.getDust(1), + Materials.Iron.getDust(1), + Materials.Gold.getDust(1), + Materials.Calcite.getDust(1), + Materials.Vanadium.getDust(1)) + .outputChances(5000, 4000, 300, 300, 300, 200) + .fluidInputs(Materials.NitricAcid.getFluid(10)) + .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) + .duration(2 * SECONDS + 5 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java b/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java new file mode 100644 index 0000000000..dabcd93a8d --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java @@ -0,0 +1,240 @@ +package gregtech.loaders.postload.chains; + +import static gregtech.api.enums.Mods.BartWorks; +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.GoodGenerator; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.HOURS; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeConstants.AssemblyLine; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; + +public class GT_NaniteChain { + + public static void run() { + + ItemStack aUVTierLens = getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0); + ItemStack aUHVTierLens = getModItem(NewHorizonsCoreMod.ID, "item.ChromaticLens", 0); + ItemStack aUEVTierLens = getModItem(NewHorizonsCoreMod.ID, "item.RadoxPolymerLens", 0); + ItemStack aUIVTierLens = ItemList.EnergisedTesseract.get(0); + ItemStack aUMVTierLens = GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Dilithium, 0, false); + + // Carbon Nanite Recipe Before Nano Forge + Fluid solderIndalloy = FluidRegistry.getFluid("molten.indalloy140") != null + ? FluidRegistry.getFluid("molten.indalloy140") + : FluidRegistry.getFluid("molten.solderingalloy"); + + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, Materials.Carbon.getNanite(1)) + .metadata(RESEARCH_TIME, 1 * HOURS) + .itemInputs( + ItemList.Hull_UV.get(16), + Materials.Carbon.getNanite(16), + ItemList.Field_Generator_ZPM.get(16), + ItemList.Conveyor_Module_UV.get(16), + ItemList.Electric_Motor_UV.get(32), + new Object[] { OrePrefixes.circuit.get(Materials.Master), 16 }, + GT_OreDictUnificator.get(OrePrefixes.wireGt08, Materials.Naquadah, 32)) + .fluidInputs( + new FluidStack(solderIndalloy, 144 * 32), + Materials.HSSS.getMolten(144L * 32), + Materials.Osmiridium.getMolten(144L * 16)) + .itemOutputs(ItemList.NanoForge.get(1)) + .eut(TierEU.RECIPE_ZPM) + .duration(5 * MINUTES) + .addTo(AssemblyLine); + + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Circuit_Crystalmainframe.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 16 }, + ItemList.Robot_Arm_UV.get(16), + ItemList.Circuit_Chip_Stemcell.get(32), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.NaquadahAlloy, 32), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.NaquadahAlloy, 16), + Materials.Carbon.getDust(64)) + .fluidInputs(Materials.UUMatter.getFluid(10000), new FluidStack(solderIndalloy, 144 * 32)) + .itemOutputs(Materials.Carbon.getNanite(2)) + .eut(TierEU.RECIPE_UV) + .duration(50 * SECONDS) + .addTo(AssemblyLine); + + /* + * General Rules for making nanite recipes: 1. Never make a nanite that takes a long time to make and only gives + * 1, just to be consumed. 2. Nanites meant to be consumed should either have a short duration or a big output. + * 3. Nanites which aren't consumed should have a long duration and output less than 16. 4. Nanites should + * always take UUM as a fluid and a lot of power to make. + */ + + // Carbon Nanites - Used to make more Nano Forge Controllers + GT_Values.RA.addNanoForgeRecipe( + new ItemStack[] { aUVTierLens, getModItem(BartWorks.ID, "bw.werkstoffblockscasingadvanced.01", 8, 31776), + ItemList.Circuit_Chip_SoC.get(64) }, + new FluidStack[] { Materials.UUMatter.getFluid(200_000) }, + new ItemStack[] { Materials.Carbon.getNanite(64), }, + null, + null, + 500 * 20, + 10_000_000, + 1); + + // Silver Nanites - Used in Tier 2 PCB Factory to improve board production + GT_Values.RA.addNanoForgeRecipe( + new ItemStack[] { aUEVTierLens, Materials.Silver.getBlocks(8), ItemList.Circuit_Chip_SoC.get(16) }, + new FluidStack[] { Materials.UUMatter.getFluid(200000) }, + new ItemStack[] { Materials.Silver.getNanite(1) }, + null, + null, + 750 * 20, + 10_000_000, + 2); + + // Neutronium Nanites - Used to upgrade the Nano Forge to Tier 2 + GT_Values.RA.addNanoForgeRecipe( + new ItemStack[] { aUHVTierLens, Materials.Neutronium.getBlocks(8), ItemList.Circuit_Chip_SoC2.get(64), + ItemList.Circuit_Chip_SoC2.get(32) }, + new FluidStack[] { Materials.UUMatter.getFluid(200000) }, + new ItemStack[] { Materials.Neutronium.getNanite(1) }, + null, + null, + 100 * 20, + 100_000_000, + 1); + + // Glowstone Nanites - Used in the optical circuit line + GT_Values.RA.addNanoForgeRecipe( + new ItemStack[] { aUEVTierLens, getModItem(GTPlusPlus.ID, "blockCompressedObsidian", 8, 7), // Double + // compressed + // glowstone + // blocks + // (yes, it's + // not + // obsidian) + ItemList.Circuit_Chip_SoC2.get(64) }, + new FluidStack[] { Materials.UUMatter.getFluid(50000) }, + new ItemStack[] { Materials.Glowstone.getNanite(64) }, + null, + null, + 200 * 20, + 50_000_000, + 2); + + // Gold Nanites - Used in Tier 3 PCB Factory to improve board production + GT_Values.RA.addNanoForgeRecipe( + new ItemStack[] { aUMVTierLens, Materials.Gold.getBlocks(8), ItemList.Circuit_Chip_SoC.get(16) }, + new FluidStack[] { Materials.UUMatter.getFluid(300000) }, + new ItemStack[] { Materials.Gold.getNanite(1) }, + null, + null, + 1_000 * 20, + 100_000_000, + 3); + + // Transcendent Metal Nanites - Used to upgrade the Nano Forge to Tier 3 + GT_Values.RA.addNanoForgeRecipe( + new ItemStack[] { aUIVTierLens, MaterialsUEVplus.TranscendentMetal.getBlocks(8), + ItemList.Circuit_Chip_SoC2.get(64), ItemList.Circuit_Chip_SoC2.get(64), + ItemList.Circuit_Chip_SoC2.get(64) }, + new FluidStack[] { Materials.UUMatter.getFluid(2000000) }, + new ItemStack[] { MaterialsUEVplus.TranscendentMetal.getNanite(1) }, + null, + null, + 750 * 20, + 1_000_000_000, + 2); + + // White Dwarf Matter Nanites. Used to make Magnetohydrodynamically constrained star matter. + GT_Values.RA.addNanoForgeRecipe( + new ItemStack[] { aUMVTierLens, getModItem(BartWorks.ID, "gt.bwMetaGeneratedlens", 0, 36), // Magneto + // lens + getModItem(GTPlusPlus.ID, "MU-metaitem.01", 0, 32105), // Quantum Anomaly, couldn't find any + // better naming + MaterialsUEVplus.WhiteDwarfMatter.getBlocks(8), getModItem(NewHorizonsCoreMod.ID, "item.PicoWafer", 32), + getModItem(GoodGenerator.ID, "huiCircuit", 1, 4) // Paradox circuit + }, + new FluidStack[] { Materials.UUMatter.getFluid(500_000), MaterialsUEVplus.RawStarMatter.getFluid(50_000), + MaterialsUEVplus.Space.getMolten(720), }, + new ItemStack[] { MaterialsUEVplus.WhiteDwarfMatter.getNanite(4) }, + null, + null, + 750 * 20, + 2_000_000_000, + 3); + + // Black Dwarf Matter Nanites. Used to make Magnetohydrodynamically constrained star matter. + GT_Values.RA.addNanoForgeRecipe( + new ItemStack[] { aUMVTierLens, getModItem(BartWorks.ID, "gt.bwMetaGeneratedlens", 0, 36), // Magneto + // lens + getModItem(GTPlusPlus.ID, "MU-metaitem.01", 0, 32105), // Quantum Anomaly, couldn't find any + // better naming + MaterialsUEVplus.BlackDwarfMatter.getBlocks(8), getModItem(NewHorizonsCoreMod.ID, "item.PicoWafer", 32), + getModItem(GoodGenerator.ID, "huiCircuit", 1, 4) // Paradox circuit + }, + new FluidStack[] { Materials.UUMatter.getFluid(500_000), MaterialsUEVplus.RawStarMatter.getFluid(50_000), + MaterialsUEVplus.Time.getMolten(720), }, + new ItemStack[] { MaterialsUEVplus.BlackDwarfMatter.getNanite(4) }, + null, + null, + 750 * 20, + 2_000_000_000, + 3); + + // Universium nanites. + GT_Values.RA.addNanoForgeRecipe( + new ItemStack[] { aUMVTierLens, + // Quantum Anomaly, couldn't find any better naming. + getModItem(GTPlusPlus.ID, "MU-metaitem.01", 0, 32105), MaterialsUEVplus.Universium.getBlocks(8), + + ItemList.Optically_Perfected_CPU.get(16), ItemList.Optically_Compatible_Memory.get(16), + getModItem(GoodGenerator.ID, "huiCircuit", 1, 4) // Paradox circuit + }, + new FluidStack[] { MaterialsUEVplus.SpaceTime.getMolten(144), Materials.Infinity.getMolten(576), + MaterialsUEVplus.PrimordialMatter.getFluid(64_000), }, + new ItemStack[] { MaterialsUEVplus.Universium.getNanite(2) }, + null, + null, + 750 * 20, + 2_000_000_000, + 3); + + // Eternity nanites + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Forcicium, 0, false), + // Quantum Anomaly + getModItem(GTPlusPlus.ID, "MU-metaitem.01", 0, 32105), + MaterialsUEVplus.TranscendentMetal.getNanite(1), + MaterialsUEVplus.Eternity.getBlocks(8), + getModItem(NewHorizonsCoreMod.ID, "item.PicoWafer", 32), + ItemList.Timepiece.get(4)) + .itemOutputs(MaterialsUEVplus.Eternity.getNanite(4)) + .fluidInputs( + MaterialsUEVplus.Space.getMolten(1152), + MaterialsUEVplus.ExcitedDTSC.getFluid(50000), + MaterialsUEVplus.PrimordialMatter.getFluid(64_000)) + .duration(750 * GT_RecipeBuilder.SECONDS) + .eut(TierEU.RECIPE_MAX) + .specialValue(3) + .addTo(RecipeMaps.nanoForgeRecipes); + + } +} diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_PCBFactoryRecipes.java b/src/main/java/gregtech/loaders/postload/chains/GT_PCBFactoryRecipes.java new file mode 100644 index 0000000000..392e6fa154 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/chains/GT_PCBFactoryRecipes.java @@ -0,0 +1,702 @@ +package gregtech.loaders.postload.chains; + +import static gregtech.api.enums.Mods.BartWorks; +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.metadata.PCBFactoryUpgrade.BIO; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeConstants.AssemblyLine; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.recipe.metadata.PCBFactoryTierKey; +import gregtech.api.recipe.metadata.PCBFactoryUpgradeKey; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_PCBFactoryManager; +import gregtech.api.util.GT_Utility; + +@SuppressWarnings("SpellCheckingInspection") +public class GT_PCBFactoryRecipes { + + private static final PCBFactoryTierKey TIER = PCBFactoryTierKey.INSTANCE; + private static final PCBFactoryUpgradeKey UPGRADE = PCBFactoryUpgradeKey.INSTANCE; + + public static void load() { + final Fluid solderLuV = FluidRegistry.getFluid("molten.indalloy140") != null + ? FluidRegistry.getFluid("molten.indalloy140") + : FluidRegistry.getFluid("molten.solderingalloy"); + + // Load Multi Recipes + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Circuit_Board_Wetware.get(1)) + .metadata(RESEARCH_TIME, 3 * MINUTES) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 32), + ItemList.Machine_ZPM_CircuitAssembler.get(4), + new Object[] { OrePrefixes.circuit.get(Materials.Master), 16 }, + ItemList.Robot_Arm_ZPM.get(8)) + .fluidInputs(new FluidStack(solderLuV, 144 * 36), Materials.Naquadah.getMolten(144 * 18)) + .itemOutputs(ItemList.PCBFactory.get(1)) + .eut(TierEU.RECIPE_UV) + .duration(5 * MINUTES) + .addTo(AssemblyLine); + + if (GTPlusPlus.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 1), + Materials.get("Artherium-Sn") + .getPlates(6)) + .itemOutputs(ItemList.BasicPhotolithographicFrameworkCasing.get(1)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity, 1), + Materials.EnrichedHolmium.getPlates(6)) + .itemOutputs(ItemList.ReinforcedPhotolithographicFrameworkCasing.get(1)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getModItem(GTPlusPlus.ID, "blockFrameGtCelestialTungsten", 1), + Materials.get("Quantum") + .getPlates(6)) + .itemOutputs(ItemList.RadiationProofPhotolithographicFrameworkCasing.get(1)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getModItem(GTPlusPlus.ID, "blockFrameGtHypogen", 1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Infinity, 2), + Materials.Thulium.getPlates(6)) + .itemOutputs(ItemList.InfinityCooledCasing.get(1)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(8 * 144)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(assemblerRecipes); + } + + // Load CircuitBoard Recipes + + // Plastic Circuit Board + for (int tier = 1; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 1)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Plastic_Advanced.get(64)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Plastic_Advanced.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.AnnealedCopper, (long) (16 * (Math.sqrt(tier)))), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, (long) (16 * (Math.sqrt(tier))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier)))), + Materials.IronIIIChloride.getFluid((long) (250 * (Math.sqrt(tier))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 1.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 1; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 0.5)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Plastic_Advanced.get(64)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Plastic_Advanced.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.AnnealedCopper, (long) (16 * (Math.sqrt(tier)))), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, (long) (16 * (Math.sqrt(tier))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier)))), + Materials.IronIIIChloride.getFluid((long) (250 * (Math.sqrt(tier))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 1.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 1; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Plastic_Advanced.get(64)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Plastic_Advanced.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.AnnealedCopper, (long) (16 * (Math.sqrt(tier)))), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, (long) (16 * (Math.sqrt(tier))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier)))), + Materials.IronIIIChloride.getFluid((long) (250 * (Math.sqrt(tier))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 1.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + + // Advanced Circuit Board + for (int tier = 2; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 2)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Epoxy_Advanced.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Epoxy_Advanced.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, (long) (16 * (Math.sqrt(tier - 1)))), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, (long) (16 * (Math.sqrt(tier - 1))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 1)))), + Materials.IronIIIChloride.getFluid((long) (500 * (Math.sqrt(tier - 1))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 2.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 2; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 1.5)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Epoxy_Advanced.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Epoxy_Advanced.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, (long) (16 * (Math.sqrt(tier - 1)))), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, (long) (16 * (Math.sqrt(tier - 1))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 1)))), + Materials.IronIIIChloride.getFluid((long) (500 * (Math.sqrt(tier - 1))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 2.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 2; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 1)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Epoxy_Advanced.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Epoxy_Advanced.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, (long) (16 * (Math.sqrt(tier - 1)))), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, (long) (16 * (Math.sqrt(tier - 1))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 1)))), + Materials.IronIIIChloride.getFluid((long) (500 * (Math.sqrt(tier - 1))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 2.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + + // More Advanced Circuit Board + for (int tier = 3; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 3)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Fiberglass_Advanced.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Fiberglass_Advanced.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.Aluminium, (long) (16 * (Math.sqrt(tier - 2)))), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.EnergeticAlloy, (long) (16 * (Math.sqrt(tier - 2))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 2)))), + Materials.IronIIIChloride.getFluid((long) (1000 * (Math.sqrt(tier - 2))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 3.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 3; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 2.5)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Fiberglass_Advanced.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Fiberglass_Advanced.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.Aluminium, (long) (16 * (Math.sqrt(tier - 2)))), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.EnergeticAlloy, (long) (16 * (Math.sqrt(tier - 2))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 2)))), + Materials.IronIIIChloride.getFluid((long) (1000 * (Math.sqrt(tier - 2))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 3.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 3; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 2)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Fiberglass_Advanced.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Fiberglass_Advanced.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.Aluminium, (long) (16 * (Math.sqrt(tier - 2)))), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.EnergeticAlloy, (long) (16 * (Math.sqrt(tier - 2))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 2)))), + Materials.IronIIIChloride.getFluid((long) (1000 * (Math.sqrt(tier - 2))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 3.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + + // Elite Circuit Board + for (int tier = 4; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 4)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Multifiberglass_Elite.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Multifiberglass_Elite.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.Palladium, (long) (16 * (Math.sqrt(tier - 3)))), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, (long) (16 * (Math.sqrt(tier - 3))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 3)))), + Materials.IronIIIChloride.getFluid((long) (2000 * (Math.sqrt(tier - 3))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 4.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 4; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 3.5)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Multifiberglass_Elite.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Multifiberglass_Elite.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.Palladium, (long) (16 * (Math.sqrt(tier - 3)))), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, (long) (16 * (Math.sqrt(tier - 3))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 3)))), + Materials.IronIIIChloride.getFluid((long) (2000 * (Math.sqrt(tier - 3))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 4.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 4; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 3)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Multifiberglass_Elite.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Multifiberglass_Elite.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.Palladium, (long) (16 * (Math.sqrt(tier - 3)))), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, (long) (16 * (Math.sqrt(tier - 3))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 3)))), + Materials.IronIIIChloride.getFluid((long) (2000 * (Math.sqrt(tier - 3))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 4.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + + // Wetware Circuit Board + for (int tier = 5; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 5)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Wetware_Extreme.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Wetware_Extreme.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.EnrichedHolmium, (long) (16 * (Math.sqrt(tier - 4)))), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.NiobiumTitanium, (long) (16 * (Math.sqrt(tier - 4))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 4)))), + Materials.IronIIIChloride.getFluid((long) (5000 * (Math.sqrt(tier - 4)))), + Materials.GrowthMediumSterilized.getFluid((long) (2000 * (Math.sqrt(tier - 4))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 5.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 5; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 4.5)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Wetware_Extreme.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Wetware_Extreme.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.EnrichedHolmium, (long) (16 * (Math.sqrt(tier - 4)))), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.NiobiumTitanium, (long) (16 * (Math.sqrt(tier - 4))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 4)))), + Materials.IronIIIChloride.getFluid((long) (5000 * (Math.sqrt(tier - 4)))), + Materials.GrowthMediumSterilized.getFluid((long) (2000 * (Math.sqrt(tier - 4))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 5.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 5; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 4)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Wetware_Extreme.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Wetware_Extreme.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.EnrichedHolmium, (long) (16 * (Math.sqrt(tier - 4)))), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.NiobiumTitanium, (long) (16 * (Math.sqrt(tier - 4))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 4)))), + Materials.IronIIIChloride.getFluid((long) (5000 * (Math.sqrt(tier - 4)))), + Materials.GrowthMediumSterilized.getFluid((long) (2000 * (Math.sqrt(tier - 4))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 5.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + + // Bioware Circuit Board + for (int tier = 6; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 6)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Bio_Ultra.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Bio_Ultra.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator.get( + OrePrefixes.foil, + Materials.Longasssuperconductornameforuvwire, + (long) (16 * (Math.sqrt(tier - 5)))), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.Neutronium, (long) (16 * (Math.sqrt(tier - 5))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 5)))), + Materials.IronIIIChloride.getFluid((long) (7500 * (Math.sqrt(tier - 5)))), + Materials.BioMediumSterilized.getFluid((long) (4000 * (Math.sqrt(tier - 5))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 5.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 6; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 5.5)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Bio_Ultra.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Bio_Ultra.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator.get( + OrePrefixes.foil, + Materials.Longasssuperconductornameforuvwire, + (long) (16 * (Math.sqrt(tier - 5)))), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.Neutronium, (long) (16 * (Math.sqrt(tier - 5))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 5)))), + Materials.IronIIIChloride.getFluid((long) (7500 * (Math.sqrt(tier - 5)))), + Materials.BioMediumSterilized.getFluid((long) (4000 * (Math.sqrt(tier - 5))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 6.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 6; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 5)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Bio_Ultra.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Bio_Ultra.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_OreDictUnificator.get( + OrePrefixes.foil, + Materials.Longasssuperconductornameforuvwire, + (long) (16 * (Math.sqrt(tier - 5)))), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.Neutronium, (long) (16 * (Math.sqrt(tier - 5))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 5)))), + Materials.IronIIIChloride.getFluid((long) (7500 * (Math.sqrt(tier - 5)))), + Materials.BioMediumSterilized.getFluid((long) (4000 * (Math.sqrt(tier - 5))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 6.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + + if (GTPlusPlus.isModLoaded()) { + // Optical Circuit Board + for (int tier = 7; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 7)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Optical.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Optical.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_ModHandler.getModItem( + BartWorks.ID, + "gt.bwMetaGeneratedfoil", + (long) (16 * (Math.sqrt(tier - 6))), + 10106), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.InfinityCatalyst, (long) (16 * (Math.sqrt(tier - 6)))), + GT_ModHandler + .getModItem("miscutils", "itemFoilChromaticGlass", (long) (16 * (Math.sqrt(tier - 6))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 6)))), + Materials.IronIIIChloride.getFluid((long) (12500 * (Math.sqrt(tier - 6)))), + Materials.MysteriousCrystal.getMolten((long) (2880 * (Math.sqrt(tier - 6))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 5.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 7; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 6.5)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Optical.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Optical.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_ModHandler.getModItem( + BartWorks.ID, + "gt.bwMetaGeneratedfoil", + (long) (16 * (Math.sqrt(tier - 6))), + 10106), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.InfinityCatalyst, (long) (16 * (Math.sqrt(tier - 6)))), + GT_ModHandler + .getModItem("miscutils", "itemFoilChromaticGlass", (long) (16 * (Math.sqrt(tier - 6))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 6)))), + Materials.IronIIIChloride.getFluid((long) (12500 * (Math.sqrt(tier - 6)))), + Materials.MysteriousCrystal.getMolten((long) (2880 * (Math.sqrt(tier - 6))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 6.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + for (int tier = 7; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { + int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 6)))); + List<ItemStack> aBoards = new ArrayList<>(); + for (int i = amountOfBoards; i > 64; i -= 64) { + aBoards.add(ItemList.Circuit_Board_Optical.get(i)); + amountOfBoards -= 64; + } + aBoards.add(ItemList.Circuit_Board_Optical.get(amountOfBoards)); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) + .getPlates(1), + GT_ModHandler.getModItem( + BartWorks.ID, + "gt.bwMetaGeneratedfoil", + (long) (16 * (Math.sqrt(tier - 6))), + 10106), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.InfinityCatalyst, (long) (16 * (Math.sqrt(tier - 6)))), + GT_ModHandler + .getModItem("miscutils", "itemFoilChromaticGlass", (long) (16 * (Math.sqrt(tier - 6))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 6)))), + Materials.IronIIIChloride.getFluid((long) (12500 * (Math.sqrt(tier - 6)))), + Materials.MysteriousCrystal.getMolten((long) (2880 * (Math.sqrt(tier - 6))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 6.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .addTo(RecipeMaps.pcbFactoryRecipes); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/AlloySmelterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AlloySmelterRecipes.java new file mode 100644 index 0000000000..a9e587a145 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/AlloySmelterRecipes.java @@ -0,0 +1,116 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.objects.MaterialStack; +import gregtech.api.util.GT_OreDictUnificator; + +public class AlloySmelterRecipes implements Runnable { + + private final MaterialStack[][] mAlloySmelterList = { + { new MaterialStack(Materials.Tetrahedrite, 3L), new MaterialStack(Materials.Tin, 1L), + new MaterialStack(Materials.Bronze, 3L) }, + { new MaterialStack(Materials.Tetrahedrite, 3L), new MaterialStack(Materials.Zinc, 1L), + new MaterialStack(Materials.Brass, 3L) }, + { new MaterialStack(Materials.Copper, 3L), new MaterialStack(Materials.Tin, 1L), + new MaterialStack(Materials.Bronze, 4L) }, + { new MaterialStack(Materials.Copper, 3L), new MaterialStack(Materials.Zinc, 1L), + new MaterialStack(Materials.Brass, 4L) }, + { new MaterialStack(Materials.Copper, 1L), new MaterialStack(Materials.Nickel, 1L), + new MaterialStack(Materials.Cupronickel, 2L) }, + { new MaterialStack(Materials.Copper, 1L), new MaterialStack(Materials.Redstone, 4L), + new MaterialStack(Materials.RedAlloy, 1L) }, + { new MaterialStack(Materials.AnnealedCopper, 3L), new MaterialStack(Materials.Tin, 1L), + new MaterialStack(Materials.Bronze, 4L) }, + { new MaterialStack(Materials.AnnealedCopper, 3L), new MaterialStack(Materials.Zinc, 1L), + new MaterialStack(Materials.Brass, 4L) }, + { new MaterialStack(Materials.AnnealedCopper, 1L), new MaterialStack(Materials.Nickel, 1L), + new MaterialStack(Materials.Cupronickel, 2L) }, + { new MaterialStack(Materials.AnnealedCopper, 1L), new MaterialStack(Materials.Redstone, 4L), + new MaterialStack(Materials.RedAlloy, 1L) }, + { new MaterialStack(Materials.Iron, 1L), new MaterialStack(Materials.Tin, 1L), + new MaterialStack(Materials.TinAlloy, 2L) }, + { new MaterialStack(Materials.WroughtIron, 1L), new MaterialStack(Materials.Tin, 1L), + new MaterialStack(Materials.TinAlloy, 2L) }, + { new MaterialStack(Materials.Iron, 2L), new MaterialStack(Materials.Nickel, 1L), + new MaterialStack(Materials.Invar, 3L) }, + { new MaterialStack(Materials.WroughtIron, 2L), new MaterialStack(Materials.Nickel, 1L), + new MaterialStack(Materials.Invar, 3L) }, + { new MaterialStack(Materials.Tin, 9L), new MaterialStack(Materials.Antimony, 1L), + new MaterialStack(Materials.SolderingAlloy, 10L) }, + { new MaterialStack(Materials.Lead, 4L), new MaterialStack(Materials.Antimony, 1L), + new MaterialStack(Materials.BatteryAlloy, 5L) }, + { new MaterialStack(Materials.Gold, 1L), new MaterialStack(Materials.Silver, 1L), + new MaterialStack(Materials.Electrum, 2L) }, + { new MaterialStack(Materials.Magnesium, 1L), new MaterialStack(Materials.Aluminium, 2L), + new MaterialStack(Materials.Magnalium, 3L) }, + { new MaterialStack(Materials.Silver, 1L), new MaterialStack(Materials.Electrotine, 4L), + new MaterialStack(Materials.BlueAlloy, 1L) }, + { new MaterialStack(Materials.Boron, 1L), new MaterialStack(Materials.Glass, 7L), + new MaterialStack(Materials.BorosilicateGlass, 8L) } }; + + @Override + public void run() { + for (MaterialStack[] materials : mAlloySmelterList) { + ItemStack dust1 = GT_OreDictUnificator.get(OrePrefixes.dust, materials[0].mMaterial, materials[0].mAmount); + ItemStack dust2 = GT_OreDictUnificator.get(OrePrefixes.dust, materials[1].mMaterial, materials[1].mAmount); + ItemStack ingot1 = GT_OreDictUnificator + .get(OrePrefixes.ingot, materials[0].mMaterial, materials[0].mAmount); + ItemStack ingot2 = GT_OreDictUnificator + .get(OrePrefixes.ingot, materials[1].mMaterial, materials[1].mAmount); + ItemStack outputIngot = GT_OreDictUnificator + .get(OrePrefixes.ingot, materials[2].mMaterial, materials[2].mAmount); + if (outputIngot != GT_Values.NI) { + if (ingot1 != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ingot1, dust2) + .itemOutputs(outputIngot) + .duration((int) materials[2].mAmount * 50) + .eut(16) + .addTo(alloySmelterRecipes); + if (ingot2 != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ingot1, ingot2) + .itemOutputs(outputIngot) + .duration((int) materials[2].mAmount * 50) + .eut(16) + .addTo(alloySmelterRecipes); + } + } + + if (ingot2 != null) { + GT_Values.RA.stdBuilder() + .itemInputs(dust1, ingot2) + .itemOutputs(outputIngot) + .duration((int) materials[2].mAmount * 50) + .eut(16) + .addTo(alloySmelterRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(dust1, dust2) + .itemOutputs(outputIngot) + .duration((int) materials[2].mAmount * 50) + .eut(16) + .addTo(alloySmelterRecipes); + + } + } + + // We use rubber + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 3L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1L)) + .duration(10 * SECONDS) + .eut(8) + .addTo(alloySmelterRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java new file mode 100644 index 0000000000..755e5ab885 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java @@ -0,0 +1,477 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.arcFurnaceRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.RECYCLE; +import static gregtech.api.util.GT_RecipeConstants.UniversalArcFurnace; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_OreDictUnificator; + +public class ArcFurnaceRecipes implements Runnable { + + @Override + public void run() { + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Block_TungstenSteelReinforced.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Concrete, 1)) + .duration(8 * SECONDS) + .eut(96) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Fluid.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 19L)) + .duration(9 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Item.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 12L), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 7L)) + .duration(9 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Fluid_Pipe.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 2L)) + .duration(10 * TICKS) + .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Item_Pipe.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tin, 1L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 1L)) + .duration(10 * TICKS) + .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_Cupronickel.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Cupronickel, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 2)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_Kanthal.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Kanthal, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Cupronickel, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_Nichrome.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Nichrome, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Kanthal, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_TungstenSteel.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TPV, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Nichrome, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 5)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_HSSG.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.HSSG, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TPV, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 6)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_HSSS.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.HSSS, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.HSSG, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 7)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_Naquadah.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.HSSS, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 8)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_NaquadahAlloy.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.NaquadahAlloy, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 9)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_Trinium.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Trinium, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.NaquadahAlloy, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 10)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_ElectrumFlux.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ElectrumFlux, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Trinium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 11)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_AwakenedDraconium.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.DraconiumAwakened, 8), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ElectrumFlux, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 12)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 2L)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(90) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(90) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 12L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 6)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(90) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 13)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 2L)) + .duration(9 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 14)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(9 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 15)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 12L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 6L)) + .duration(9 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Aluminium, 2L)) + .duration(10 * SECONDS + 10 * TICKS) + .eut(150) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3)) + .duration(10 * SECONDS + 10 * TICKS) + .eut(150) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 12L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 6L)) + .duration(10 * SECONDS + 10 * TICKS) + .eut(150) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.StainlessSteel, 2L)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.StainlessSteel, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 5)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.StainlessSteel, 12L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.StainlessSteel, 6L)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 6)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 2L)) + .duration(13 * SECONDS + 10 * TICKS) + .eut(210) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 7)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(13 * SECONDS + 10 * TICKS) + .eut(210) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 12L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Titanium, 6L)) + .duration(13 * SECONDS + 10 * TICKS) + .eut(210) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 2L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 10)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 11)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 12L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.TungstenSteel, 6L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 12)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Palladium, 2L)) + .duration(16 * SECONDS + 10 * TICKS) + .eut(270) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 13)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Palladium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(16 * SECONDS + 10 * TICKS) + .eut(270) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 14)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.NiobiumTitanium, 12L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Chrome, 6L)) + .duration(16 * SECONDS + 10 * TICKS) + .eut(270) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iridium, 2L)) + .duration(18 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iridium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(18 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Enderium, 12L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iridium, 6L)) + .duration(18 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Osmium, 2L)) + .duration(18 * SECONDS) + .eut(330) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Osmium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(18 * SECONDS) + .eut(330) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 5)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 12L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Osmium, 6L)) + .duration(18 * SECONDS) + .eut(330) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 6)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Neutronium, 2L)) + .duration(18 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 7)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Neutronium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(18 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Neutronium, 12L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Neutronium, 6L)) + .duration(18 * SECONDS) + .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) + .addTo(UniversalArcFurnace); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3)) + .fluidInputs(Materials.Oxygen.getGas(2000L)) + .duration(60 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(arcFurnaceRecipes); + + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java new file mode 100644 index 0000000000..76fcbfe346 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java @@ -0,0 +1,6786 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.AvaritiaAddons; +import static gregtech.api.enums.Mods.BartWorks; +import static gregtech.api.enums.Mods.BuildCraftFactory; +import static gregtech.api.enums.Mods.ExtraUtilities; +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.GTNHLanthanides; +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.GalacticraftCore; +import static gregtech.api.enums.Mods.GalacticraftMars; +import static gregtech.api.enums.Mods.GalaxySpace; +import static gregtech.api.enums.Mods.IC2NuclearControl; +import static gregtech.api.enums.Mods.IronChests; +import static gregtech.api.enums.Mods.IronTanks; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.enums.Mods.OpenComputers; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.enums.Mods.TinkerConstruct; +import static gregtech.api.enums.Mods.TwilightForest; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.EIGHTH_INGOT; +import static gregtech.api.util.GT_RecipeBuilder.HALF_INGOT; +import static gregtech.api.util.GT_RecipeBuilder.INGOTS; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.QUARTER_INGOT; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.loaders.postload.GT_MachineRecipeLoader.solderingMats; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.GT_Mod; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.ExternalMaterials; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class AssemblerRecipes implements Runnable { + + @Override + public void run() { + + this.withBartWorks(); + this.withGalacticraftMars(); + this.withRailcraft(); + this.withGalaxySpace(); + this.withGTNHLanthAndGTPP(); + this.loadInputBusesRecipes(); + this.loadInputHatchesRecipes(); + this.loadOutputBusesRecipes(); + this.loadOutputHatchesRecipes(); + this.withIC2NuclearControl(); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.FR_Stick.get(1L)) + .fluidInputs(Materials.SeedOil.getFluid(50L)) + .duration(16 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlackSteel, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 1)) + .itemOutputs(ItemList.Block_Plascrete.get(1)) + .fluidInputs(Materials.Concrete.getMolten(144)) + .duration(10 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlackSteel, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 1)) + .itemOutputs(ItemList.Block_Plascrete.get(1)) + .fluidInputs(Materials.Concrete.getMolten(144)) + .duration(10 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.TungstenSteel, 16), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Data), 4), + ItemList.Electric_Motor_IV.get(16), + ItemList.Emitter_EV.get(4), + ItemList.Duct_Tape.get(64), + ItemList.Energy_LapotronicOrb.get(1), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.TierdDrone0.get(4)) + .fluidInputs(Materials.AdvancedGlue.getFluid(144)) + .duration(10 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + for (int j = 0; j < Dyes.VALUES[i].getSizeOfFluidList(); j++) { + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.string, 3), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(new ItemStack(Blocks.carpet, 2, 15 - i)) + .fluidInputs(Dyes.VALUES[i].getFluidDye(j, 24)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(assemblerRecipes); + } + } + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.PolyvinylChloride, 1), + ItemList.Paper_Printed_Pages.get(1)) + .itemOutputs(new ItemStack(Items.written_book, 1, 0)) + .fluidInputs(Materials.Glue.getFluid(20)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.PolyvinylChloride, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3)) + .itemOutputs(new ItemStack(Items.book, 1, 0)) + .fluidInputs(Materials.Glue.getFluid(20)) + .duration(20 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getIC2Item("carbonMesh", 4), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Zinc, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Component_Filter.get(1)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Steel, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Zinc, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Component_Filter.get(1)) + .fluidInputs(Materials.Plastic.getMolten(144)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 64), + ItemList.Circuit_Silicon_Wafer2.get(32), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphene, 64)) + .fluidInputs(Materials.AdvancedGlue.getFluid(500)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 64), + ItemList.Circuit_Silicon_Wafer3.get(8), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphene, 64)) + .fluidInputs(Materials.AdvancedGlue.getFluid(250)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_LV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Basic), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.FluidRegulator_LV.get(1)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_MV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Good), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.FluidRegulator_MV.get(1)) + .duration(17 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_HV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Advanced), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.FluidRegulator_HV.get(1)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_EV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Data), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.FluidRegulator_EV.get(1)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_IV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Elite), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.FluidRegulator_IV.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_LuV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Master), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.FluidRegulator_LuV.get(1)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_ZPM.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Ultimate), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.FluidRegulator_ZPM.get(1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.SuperconductorUHV), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.FluidRegulator_UV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(500000) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Steam_Valve_LV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Basic), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Steam_Regulator_LV.get(1)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Steam_Valve_MV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Good), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Steam_Regulator_MV.get(1)) + .duration(17 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Steam_Valve_HV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Advanced), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Steam_Regulator_HV.get(1)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Steam_Valve_EV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Data), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Steam_Regulator_EV.get(1)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Steam_Valve_IV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Elite), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Steam_Regulator_IV.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_LV.get(1), + ItemList.Electric_Motor_LV.get(1), + GT_OreDictUnificator.get(OrePrefixes.gear.get(Materials.Steel), 2), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.Steam_Valve_LV.get(1)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_MV.get(1), + ItemList.Electric_Motor_MV.get(1), + GT_OreDictUnificator.get(OrePrefixes.gear.get(Materials.Aluminium), 2), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.Steam_Valve_MV.get(1)) + .duration(17 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_HV.get(1), + ItemList.Electric_Motor_HV.get(1), + GT_OreDictUnificator.get(OrePrefixes.gear.get(Materials.StainlessSteel), 2), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.Steam_Valve_HV.get(1)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_EV.get(1), + ItemList.Electric_Motor_EV.get(1), + GT_OreDictUnificator.get(OrePrefixes.gear.get(Materials.Titanium), 2), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.Steam_Valve_EV.get(1)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_IV.get(1), + ItemList.Electric_Motor_IV.get(1), + GT_OreDictUnificator.get(OrePrefixes.gear.get(Materials.TungstenSteel), 2), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.Steam_Valve_IV.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate.get(Materials.Steel), 4), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Basic), 4), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Schematic.get(1L)) + .duration(30 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate.get(Materials.Aluminium), 3), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Good), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Schematic.get(1L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate.get(Materials.StainlessSteel), 2), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Advanced), 1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Schematic.get(1L)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 1L), + ItemList.Circuit_Chip_LPIC.get(2L), + ItemList.HV_Coil.get(2L), + ItemList.Reactor_Coolant_He_1.get(1L), + ItemList.Electric_Pump_HV.get(1L)) + .itemOutputs(ItemList.Hatch_Energy_HV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 1L), + ItemList.Circuit_Chip_PIC.get(2L), + ItemList.EV_Coil.get(2L), + ItemList.Reactor_Coolant_He_1.get(1L), + ItemList.Electric_Pump_EV.get(1L)) + .itemOutputs(ItemList.Hatch_Energy_EV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorIV, 1L), + ItemList.Circuit_Chip_HPIC.get(2L), + ItemList.IV_Coil.get(2L), + ItemList.Reactor_Coolant_He_3.get(1L), + ItemList.Electric_Pump_IV.get(1L)) + .itemOutputs(ItemList.Hatch_Energy_IV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 1L), + ItemList.Circuit_Chip_LPIC.get(2L), + ItemList.HV_Coil.get(2L), + ItemList.Reactor_Coolant_NaK_1.get(1L), + ItemList.Electric_Pump_HV.get(1L)) + .itemOutputs(ItemList.Hatch_Energy_HV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 1L), + ItemList.Circuit_Chip_PIC.get(2L), + ItemList.EV_Coil.get(2L), + ItemList.Reactor_Coolant_NaK_1.get(1L), + ItemList.Electric_Pump_EV.get(1L)) + .itemOutputs(ItemList.Hatch_Energy_EV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorIV, 1L), + ItemList.Circuit_Chip_HPIC.get(2L), + ItemList.IV_Coil.get(2L), + ItemList.Reactor_Coolant_NaK_3.get(1L), + ItemList.Electric_Pump_IV.get(1L)) + .itemOutputs(ItemList.Hatch_Energy_IV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Gold, 1L), + ItemList.Circuit_Chip_LPIC.get(2L), + ItemList.HV_Coil.get(2L), + ItemList.Reactor_Coolant_He_1.get(1L), + ItemList.Electric_Pump_HV.get(1L)) + .itemOutputs(ItemList.Hatch_Dynamo_HV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Aluminium, 1L), + ItemList.Circuit_Chip_PIC.get(2L), + ItemList.EV_Coil.get(2L), + ItemList.Reactor_Coolant_He_1.get(1L), + ItemList.Electric_Pump_EV.get(1L)) + .itemOutputs(ItemList.Hatch_Dynamo_EV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Vanadiumtriindinid, 1L), + ItemList.Circuit_Chip_HPIC.get(2L), + ItemList.IV_Coil.get(2L), + ItemList.Reactor_Coolant_He_3.get(1L), + ItemList.Electric_Pump_IV.get(1L)) + .itemOutputs(ItemList.Hatch_Dynamo_IV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Gold, 1L), + ItemList.Circuit_Chip_LPIC.get(2L), + ItemList.HV_Coil.get(2L), + ItemList.Reactor_Coolant_NaK_1.get(1L), + ItemList.Electric_Pump_HV.get(1L)) + .itemOutputs(ItemList.Hatch_Dynamo_HV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Aluminium, 1L), + ItemList.Circuit_Chip_PIC.get(2L), + ItemList.EV_Coil.get(2L), + ItemList.Reactor_Coolant_NaK_1.get(1L), + ItemList.Electric_Pump_EV.get(1L)) + .itemOutputs(ItemList.Hatch_Dynamo_EV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Vanadiumtriindinid, 1L), + ItemList.Circuit_Chip_HPIC.get(2L), + ItemList.IV_Coil.get(2L), + ItemList.Reactor_Coolant_NaK_3.get(1L), + ItemList.Electric_Pump_IV.get(1L)) + .itemOutputs(ItemList.Hatch_Dynamo_IV.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.Steel, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 6L), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Steel, 2L), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Long_Distance_Pipeline_Fluid.get(2L)) + .fluidInputs(Materials.Tin.getMolten(144L)) + .duration(15 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.Tin, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 6L), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Steel, 2L), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Long_Distance_Pipeline_Item.get(2L)) + .fluidInputs(Materials.Tin.getMolten(144L)) + .duration(15 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Steel, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 9L), + GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(ItemList.Long_Distance_Pipeline_Fluid_Pipe.get(64L)) + .fluidInputs(Materials.Tin.getMolten(144L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Tin, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 9L), + GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(ItemList.Long_Distance_Pipeline_Item_Pipe.get(64L)) + .fluidInputs(Materials.Tin.getMolten(144L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.StainlessSteel, 1L), + ItemList.Hull_EV.get(1L), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.Hatch_Input_Multi_2x2_EV.get(1L)) + .fluidInputs(Materials.Glass.getMolten(2304L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.Titanium, 1L), + ItemList.Hull_IV.get(1L), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.Hatch_Input_Multi_2x2_IV.get(1L)) + .fluidInputs(Materials.Glass.getMolten(2304L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.TungstenSteel, 1L), + ItemList.Hull_LuV.get(1L), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.Hatch_Input_Multi_2x2_LuV.get(1L)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2304L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.NiobiumTitanium, 1L), + ItemList.Hull_ZPM.get(1L), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.Hatch_Input_Multi_2x2_ZPM.get(1L)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2304L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.MysteriousCrystal, 1L), + ItemList.Hull_UV.get(1L), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.Hatch_Input_Multi_2x2_UV.get(1L)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(2304L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.Neutronium, 1L), + ItemList.Hull_MAX.get(1L), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.Hatch_Input_Multi_2x2_UHV.get(1L)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(2304L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 4L), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1L), + ItemList.Robot_Arm_IV.get(2L), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Casing_Gearbox_TungstenSteel.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + { // limiting lifetime of the variables + ItemStack flask = ItemList.VOLUMETRIC_FLASK.get(1); + NBTTagCompound nbtFlask = new NBTTagCompound(); + int[] capacities = new int[] { 144, 288, 576, 720, 864, 72, 648, 936, 250, 500, 1000 }; + int[] circuitConfigurations = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 24 }; + for (int i = 0; i < capacities.length; i++) { + nbtFlask.setInteger("Capacity", capacities[i]); + flask.setTagCompound(nbtFlask); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.VOLUMETRIC_FLASK.get(1), + GT_Utility.getIntegratedCircuit(circuitConfigurations[i])) + .itemOutputs(flask) + .duration(10 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + } + } + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LV.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Bronze, 1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Bronze, 1), + ItemList.Electric_Motor_LV.get(1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Hatch_Muffler_LV.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Steel, 1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Steel, 1), + ItemList.Electric_Motor_MV.get(1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Hatch_Muffler_MV.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel, 1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1), + ItemList.Electric_Motor_HV.get(1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Hatch_Muffler_HV.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Titanium, 1), + ItemList.Electric_Motor_EV.get(1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Hatch_Muffler_EV.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.TungstenSteel, 1), + ItemList.Electric_Motor_IV.get(1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Hatch_Muffler_IV.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LuV.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Enderium, 1), + ItemList.Electric_Motor_LuV.get(1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Enderium, 1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Hatch_Muffler_LuV.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ZPM.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Naquadah, 1), + ItemList.Electric_Motor_ZPM.get(1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.NaquadahAlloy, 1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Hatch_Muffler_ZPM.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.NetherStar, 1), + ItemList.Electric_Motor_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Neutronium, 1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Hatch_Muffler_UV.get(1)) + .duration(10 * SECONDS) + .eut(500000) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MAX.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.MysteriousCrystal, 1), + ItemList.Electric_Motor_UHV.get(1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.CosmicNeutronium, 1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Hatch_Muffler_MAX.get(1)) + .duration(10 * SECONDS) + .eut(2000000) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.redstone_torch, 2, 32767), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1)) + .itemOutputs(new ItemStack(Items.repeater, 1, 0)) + .fluidInputs(Materials.Concrete.getMolten(144)) + .duration(4 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.leather, 1, 32767), new ItemStack(Items.lead, 1, 32767)) + .itemOutputs(new ItemStack(Items.name_tag, 1, 0)) + .fluidInputs(Materials.Glue.getFluid(72)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(NewHorizonsCoreMod.ID, "item.ArtificialLeather", 1L, 0), + new ItemStack(Items.lead, 1, 32767)) + .itemOutputs(new ItemStack(Items.name_tag, 1, 0)) + .fluidInputs(Materials.Glue.getFluid(72)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 8), + new ItemStack(Items.compass, 1, 32767)) + .itemOutputs(new ItemStack(Items.map, 1, 0)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tantalum, 1), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Manganese, 1)) + .itemOutputs(ItemList.Battery_RE_ULV_Tantalum.get(8)) + .fluidInputs(Materials.Plastic.getMolten(144)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(TwilightForest.ID, "item.charmOfLife1", 4L, 0), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfLife2", 1L, 0)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(TwilightForest.ID, "item.charmOfKeeping1", 4L, 0), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfKeeping2", 1L, 0)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(TwilightForest.ID, "item.charmOfKeeping2", 4L, 0), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfKeeping3", 1L, 0)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(TwilightForest.ID, "item.charmOfLife2", 1L, 0), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfLife1", 4L, 0)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(TwilightForest.ID, "item.charmOfKeeping2", 1L, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfKeeping1", 4L, 0)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(TwilightForest.ID, "item.charmOfKeeping3", 1L, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfKeeping2", 4L, 0)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 16), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 20)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 23)) + .fluidInputs(Materials.Redstone.getMolten(144)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 17), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 20)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 24)) + .fluidInputs(Materials.Redstone.getMolten(144)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 18), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 20)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 22)) + .fluidInputs(Materials.Redstone.getMolten(144)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 1), + new ItemStack(Blocks.sand, 1, 32767)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 2L, 0)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 1), + new ItemStack(Blocks.sand, 1, 32767)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 2L, 600)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Fluix, 1), + new ItemStack(Blocks.sand, 1, 32767)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 2L, 1200)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.FR_Wax.get(6), new ItemStack(Items.string, 1, 32767)) + .itemOutputs(getModItem(Forestry.ID, "candle", 24L, 0)) + .fluidInputs(Materials.Water.getFluid(600)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.FR_Wax.get(2), ItemList.FR_Silk.get(1)) + .itemOutputs(getModItem(Forestry.ID, "candle", 8L, 0)) + .fluidInputs(Materials.Water.getFluid(200)) + .duration(16 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.FR_Silk.get(9), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(getModItem(Forestry.ID, "craftingMaterial", 1L, 3)) + .fluidInputs(Materials.Water.getFluid(500)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Forestry.ID, "propolis", 5L, 2), GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(getModItem(Forestry.ID, "craftingMaterial", 1L, 1)) + .duration(16 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), + new ItemStack(Blocks.wool, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.torch, 6, 0)) + .fluidInputs(Materials.Creosote.getFluid(1000)) + .duration(2 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Forestry.ID, "craftingMaterial", 5L, 1), GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.piston, 1, 32767), new ItemStack(Items.slime_ball, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.sticky_piston, 1, 0)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.piston, 1, 32767), ItemList.IC2_Resin.get(1)) + .itemOutputs(new ItemStack(Blocks.sticky_piston, 1, 0)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.piston, 1, 32767), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Blocks.sticky_piston, 1, 0)) + .fluidInputs(Materials.Glue.getFluid(100)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 3), + GT_ModHandler.getIC2Item("carbonMesh", 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Duct_Tape.get(1)) + .fluidInputs(Materials.Glue.getFluid(300)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StyreneButadieneRubber, 2), + GT_ModHandler.getIC2Item("carbonMesh", 2), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Duct_Tape.get(1)) + .fluidInputs(Materials.Glue.getFluid(200)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicone, 1), + GT_ModHandler.getIC2Item("carbonMesh", 1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Duct_Tape.get(1)) + .fluidInputs(Materials.Glue.getFluid(100)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + // Maintenance Hatch Recipes Using BrainTech + Refined Glue. Info: One BrainTech Recipe Is In GT+ü Originally. + // The Maintenance Hatch Recipe using SuperGlue is there. + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_LV.get(1), ItemList.Duct_Tape.get(2), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Maintenance.get(1)) + .fluidInputs(Materials.Glue.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3), + new ItemStack(Items.leather, 1, 32767)) + .itemOutputs(new ItemStack(Items.book, 1, 0)) + .fluidInputs(Materials.Glue.getFluid(20)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3), + getModItem(NewHorizonsCoreMod.ID, "item.ArtificialLeather", 1L, 0)) + .itemOutputs(new ItemStack(Items.book, 1, 0)) + .fluidInputs(Materials.Glue.getFluid(20)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3), + GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.Paper, 1)) + .itemOutputs(new ItemStack(Items.book, 1, 0)) + .fluidInputs(Materials.Glue.getFluid(20)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Paper_Printed_Pages.get(1), new ItemStack(Items.leather, 1, 32767)) + .itemOutputs(new ItemStack(Items.written_book, 1, 0)) + .fluidInputs(Materials.Glue.getFluid(20)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Paper_Printed_Pages.get(1), + getModItem(NewHorizonsCoreMod.ID, "item.ArtificialLeather", 1L, 0)) + .itemOutputs(new ItemStack(Items.written_book, 1, 0)) + .fluidInputs(Materials.Glue.getFluid(20)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Tin, 4)) + .itemOutputs(ItemList.Cell_Universal_Fluid.get(1)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Baked_Cake.get(1), new ItemStack(Items.egg, 1, 0)) + .itemOutputs(new ItemStack(Items.cake, 1, 0)) + .fluidInputs(Materials.Milk.getFluid(3000)) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Sliced_Bun.get(2), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Food_Sliced_Buns.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Sliced_Bread.get(2), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Food_Sliced_Breads.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Sliced_Baguette.get(2), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Food_Sliced_Baguettes.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Sliced_Buns.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Food_Sliced_Bun.get(2)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Sliced_Breads.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Food_Sliced_Bread.get(2)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Sliced_Baguettes.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Food_Sliced_Baguette.get(2)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Food_Sliced_Bun.get(2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1)) + .itemOutputs(ItemList.Food_Burger_Meat.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Food_Sliced_Buns.get(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1)) + .itemOutputs(ItemList.Food_Burger_Meat.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Sliced_Bun.get(2), ItemList.Food_Chum.get(1)) + .itemOutputs(ItemList.Food_Burger_Chum.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Sliced_Buns.get(1), ItemList.Food_Chum.get(1)) + .itemOutputs(ItemList.Food_Burger_Chum.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Sliced_Bun.get(2), ItemList.Food_Sliced_Cheese.get(3)) + .itemOutputs(ItemList.Food_Burger_Cheese.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Sliced_Buns.get(1), ItemList.Food_Sliced_Cheese.get(3)) + .itemOutputs(ItemList.Food_Burger_Cheese.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Food_Flat_Dough.get(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1)) + .itemOutputs(ItemList.Food_Raw_Pizza_Meat.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Flat_Dough.get(1), ItemList.Food_Sliced_Cheese.get(3)) + .itemOutputs(ItemList.Food_Raw_Pizza_Cheese.get(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + // SC craft + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Pentacadmiummagnesiumhexaoxid, 3), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.StainlessSteel, 2), + ItemList.Electric_Pump_MV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorMV, 3)) + .fluidInputs(Materials.Helium.getGas(2000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Titaniumonabariumdecacoppereikosaoxid, 6), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Titanium, 4), + ItemList.Electric_Pump_HV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorHV, 6)) + .fluidInputs(Materials.Helium.getGas(4000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Uraniumtriplatinid, 9), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 6), + ItemList.Electric_Pump_EV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorEV, 9)) + .fluidInputs(Materials.Helium.getGas(6000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Vanadiumtriindinid, 12), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NiobiumTitanium, 8), + ItemList.Electric_Pump_IV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorIV, 12)) + .fluidInputs(Materials.Helium.getGas(8000)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get( + OrePrefixes.wireGt01, + Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, + 15), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Enderium, 10), + ItemList.Electric_Pump_LuV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 15)) + .fluidInputs(Materials.Helium.getGas(12000)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 18), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Naquadah, 12), + ItemList.Electric_Pump_ZPM.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorZPM, 18)) + .fluidInputs(Materials.Helium.getGas(16000)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Longasssuperconductornameforuvwire, 21), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Neutronium, 14), + ItemList.Electric_Pump_UV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUV, 21)) + .fluidInputs(Materials.Helium.getGas(20000)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Longasssuperconductornameforuhvwire, 24), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Bedrockium, 16), + ItemList.Electric_Pump_UHV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUHV, 24)) + .fluidInputs(Materials.Helium.getGas(24000)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Pentacadmiummagnesiumhexaoxid, 3), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.StainlessSteel, 2), + ItemList.Electric_Pump_MV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorMV, 3)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(4)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Titaniumonabariumdecacoppereikosaoxid, 6), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Titanium, 4), + ItemList.Electric_Pump_HV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorHV, 6)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(8)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Uraniumtriplatinid, 9), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 6), + ItemList.Electric_Pump_EV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorEV, 9)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(12)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Vanadiumtriindinid, 12), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NiobiumTitanium, 8), + ItemList.Electric_Pump_IV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorIV, 12)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(16)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get( + OrePrefixes.wireGt01, + Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, + 15), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Enderium, 10), + ItemList.Electric_Pump_LuV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 15)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(24)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 18), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Naquadah, 12), + ItemList.Electric_Pump_ZPM.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorZPM, 18)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(32)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Longasssuperconductornameforuvwire, 21), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Neutronium, 14), + ItemList.Electric_Pump_UV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUV, 21)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(40)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Longasssuperconductornameforuhvwire, 24), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Bedrockium, 16), + ItemList.Electric_Pump_UHV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUHV, 24)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(48)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUEVBase, 27), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Infinity, 18), + ItemList.Electric_Pump_UEV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUEV, 27)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(56)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUIVBase, 30L), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, MaterialsUEVplus.TranscendentMetal, 20L), + ItemList.Electric_Pump_UIV.get(1L), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUIV, 30L)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(68)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUMVBase, 33), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, MaterialsUEVplus.SpaceTime, 22), + ItemList.Electric_Pump_UMV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUMV, 33)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(72)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.IronMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Lead, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.ULV_Coil.get(1)) + .duration(10 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.IronMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Steel, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.LV_Coil.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.SteelMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Aluminium, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MV_Coil.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.SteelMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.EnergeticAlloy, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.HV_Coil.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.NeodymiumMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.TungstenSteel, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.EV_Coil.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.NeodymiumMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Iridium, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.IV_Coil.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.SamariumMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, ExternalMaterials.getRuridit(), 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.LuV_Coil.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.SamariumMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Europium, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.ZPM_Coil.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.SamariumMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.ElectrumFlux, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.UV_Coil.get(1)) + .duration(10 * SECONDS) + .eut(500000) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.SamariumMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Tritanium, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.UHV_Coil.get(1)) + .duration(10 * SECONDS) + .eut(2000000) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Wood, 6), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Wood, 2)) + .fluidInputs(Materials.Glue.getFluid(10)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Wood, 3), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Wood, 4)) + .fluidInputs(Materials.Glue.getFluid(20)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Wood, 1), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.Wood, 6)) + .fluidInputs(Materials.Glue.getFluid(60)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 4), + GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Advanced, 4), + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, Materials.Diamond, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Ingot_IridiumAlloy.get(1)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1), + ItemList.Electric_Motor_MV.get(1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Steel, 1), + new ItemStack(Blocks.iron_bars, 6), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Casing_Grate.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Iridium, 1), + ItemList.Electric_Motor_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Iridium, 1), + ItemList.Component_Filter.get(8), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Iridium, 8)) + .itemOutputs(ItemList.Casing_Vent_T2.get(1)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), + new ItemStack(Items.coal, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.torch, 4)) + .duration(2 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 2), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Steel, 1)) + .itemOutputs(new ItemStack(Blocks.light_weighted_pressure_plate, 1)) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Steel, 1)) + .itemOutputs(new ItemStack(Blocks.heavy_weighted_pressure_plate, 1)) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 7), + GT_Utility.getIntegratedCircuit(7)) + .itemOutputs(new ItemStack(Items.cauldron, 1)) + .duration(35 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("ironFence", 1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 3), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(new ItemStack(Blocks.iron_bars, 4)) + .duration(15 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 7), + GT_Utility.getIntegratedCircuit(7)) + .itemOutputs(new ItemStack(Items.cauldron, 1)) + .duration(35 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("ironFence", 1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 3), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(new ItemStack(Blocks.iron_bars, 4)) + .duration(15 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 3), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(new ItemStack(Blocks.fence, 1)) + .duration(15 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Iron, 2)) + .itemOutputs(new ItemStack(Blocks.tripwire_hook, 1)) + .duration(20 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.WroughtIron, 2)) + .itemOutputs(new ItemStack(Blocks.tripwire_hook, 1)) + .duration(20 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 3), + new ItemStack(Items.string, 3, 32767)) + .itemOutputs(new ItemStack(Items.bow, 1)) + .duration(20 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 3), + ItemList.Component_Minecart_Wheels_Iron.get(2)) + .itemOutputs(new ItemStack(Items.minecart, 1)) + .duration(5 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 3), + ItemList.Component_Minecart_Wheels_Iron.get(2)) + .itemOutputs(new ItemStack(Items.minecart, 1)) + .duration(4 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 3), + ItemList.Component_Minecart_Wheels_Steel.get(2)) + .itemOutputs(new ItemStack(Items.minecart, 1)) + .duration(5 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Iron, 2)) + .itemOutputs(ItemList.Component_Minecart_Wheels_Iron.get(1)) + .duration(5 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 1), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.WroughtIron, 2)) + .itemOutputs(ItemList.Component_Minecart_Wheels_Iron.get(1)) + .duration(4 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 1), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Steel, 2)) + .itemOutputs(ItemList.Component_Minecart_Wheels_Steel.get(1)) + .duration(3 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.hopper, 1, 32767)) + .itemOutputs(new ItemStack(Items.hopper_minecart, 1)) + .duration(20 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.tnt, 1, 32767)) + .itemOutputs(new ItemStack(Items.tnt_minecart, 1)) + .duration(20 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.chest, 1, 32767)) + .itemOutputs(new ItemStack(Items.chest_minecart, 1)) + .duration(20 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.trapped_chest, 1, 32767)) + .itemOutputs(new ItemStack(Items.chest_minecart, 1)) + .duration(20 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.furnace, 1, 32767)) + .itemOutputs(new ItemStack(Items.furnace_minecart, 1)) + .duration(20 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.tripwire_hook, 1), new ItemStack(Blocks.chest, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.trapped_chest, 1)) + .duration(10 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.stone, 1, 0), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(new ItemStack(Blocks.stonebrick, 1, 0)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.sandstone, 1, 0), GT_Utility.getIntegratedCircuit(23)) + .itemOutputs(new ItemStack(Blocks.sandstone, 1, 2)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.sandstone, 1, 1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Blocks.sandstone, 1, 0)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.sandstone, 1, 2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Blocks.sandstone, 1, 0)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(GT_ModHandler.getIC2Item("machine", 1)) + .duration(1 * SECONDS + 5 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.Casing_ULV.get(1)) + .duration(1 * SECONDS + 5 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.Casing_LV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.Casing_MV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.Casing_HV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.Casing_EV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.Casing_IV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, ExternalMaterials.getRhodiumPlatedPalladium(), 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.Casing_LuV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.Casing_ZPM.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Osmium, 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.Casing_UV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 8), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.Casing_MAX.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Invar, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Invar, 1)) + .itemOutputs(ItemList.Casing_HeatProof.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Casing_SolidSteel.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Aluminium, 1)) + .itemOutputs(ItemList.Casing_FrostProof.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1)) + .itemOutputs(ItemList.Casing_RobustTungstenSteel.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.StainlessSteel, 1)) + .itemOutputs(ItemList.Casing_CleanStainlessSteel.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Titanium, 1)) + .itemOutputs(ItemList.Casing_StableTitanium.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Osmiridium, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 1)) + .itemOutputs(ItemList.Casing_MiningOsmiridium.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 1)) + .itemOutputs(ItemList.Casing_MiningNeutronium.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BlackPlutonium, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlackPlutonium, 1)) + .itemOutputs(ItemList.Casing_MiningBlackPlutonium.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.HSSS, 4), ItemList.Casing_LuV.get(1)) + .itemOutputs(ItemList.Casing_Fusion.get(1)) + .fluidInputs(Materials.HSSG.getMolten(288)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 4), + ItemList.Casing_Fusion.get(1)) + .itemOutputs(ItemList.Casing_Fusion2.get(1)) + .fluidInputs(Materials.NaquadahAlloy.getMolten(288)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Magnalium, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlueSteel, 1)) + .itemOutputs(ItemList.Casing_Turbine.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 6), + ItemList.Casing_Turbine.get(1)) + .itemOutputs(ItemList.Casing_Turbine1.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 6), + ItemList.Casing_Turbine.get(1)) + .itemOutputs(ItemList.Casing_Turbine2.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 6), + ItemList.Casing_Turbine.get(1)) + .itemOutputs(ItemList.Casing_Turbine3.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.HSSS, 6), ItemList.Casing_Turbine.get(1)) + .itemOutputs(ItemList.Casing_TurbineGasAdvanced.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_SolidSteel.get(1), GT_Utility.getIntegratedCircuit(6)) + .itemOutputs(ItemList.Casing_Chemically_Inert.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(216)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Iridium, 1)) + .itemOutputs(ItemList.Casing_Advanced_Iridium.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + if (GT_Mod.gregtechproxy.mHardMachineCasings) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Lead, 2), + ItemList.Casing_ULV.get(1)) + .itemOutputs(ItemList.Hull_ULV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(288)) + .duration(1 * SECONDS + 5 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 2), + ItemList.Casing_LV.get(1)) + .itemOutputs(ItemList.Hull_LV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(288)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2), + ItemList.Casing_MV.get(1)) + .itemOutputs(ItemList.Hull_MV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(288)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2), + ItemList.Casing_MV.get(1)) + .itemOutputs(ItemList.Hull_MV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(288)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 2), + ItemList.Casing_HV.get(1)) + .itemOutputs(ItemList.Hull_HV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(288)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 2), + ItemList.Casing_EV.get(1)) + .itemOutputs(ItemList.Hull_EV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(288)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten, 2), + ItemList.Casing_IV.get(1)) + .itemOutputs(ItemList.Hull_IV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(288)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium, 2), + ItemList.Casing_LuV.get(1)) + .itemOutputs(ItemList.Hull_LuV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(288)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 2), + ItemList.Casing_ZPM.get(1)) + .itemOutputs(ItemList.Hull_ZPM.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(288)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.NaquadahAlloy, 2), + ItemList.Casing_UV.get(1)) + .itemOutputs(ItemList.Hull_UV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(288)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorUV, 2), + ItemList.Casing_MAX.get(1)) + .itemOutputs(ItemList.Hull_MAX.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(288)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + } else { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Lead, 2), + ItemList.Casing_ULV.get(1)) + .itemOutputs(ItemList.Hull_ULV.get(1)) + .duration(1 * SECONDS + 5 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 2), + ItemList.Casing_LV.get(1)) + .itemOutputs(ItemList.Hull_LV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2), + ItemList.Casing_MV.get(1)) + .itemOutputs(ItemList.Hull_MV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2), + ItemList.Casing_MV.get(1)) + .itemOutputs(ItemList.Hull_MV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 2), + ItemList.Casing_HV.get(1)) + .itemOutputs(ItemList.Hull_HV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 2), + ItemList.Casing_EV.get(1)) + .itemOutputs(ItemList.Hull_EV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten, 2), + ItemList.Casing_IV.get(1)) + .itemOutputs(ItemList.Hull_IV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium, 2), + ItemList.Casing_LuV.get(1)) + .itemOutputs(ItemList.Hull_LuV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 2), + ItemList.Casing_ZPM.get(1)) + .itemOutputs(ItemList.Hull_ZPM.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.NaquadahAlloy, 2), + ItemList.Casing_UV.get(1)) + .itemOutputs(ItemList.Hull_UV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorUV, 2), + ItemList.Casing_MAX.get(1)) + .itemOutputs(ItemList.Hull_MAX.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 1)) + .itemOutputs(ItemList.Battery_Hull_LV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(144)) + .duration(4 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 3)) + .itemOutputs(ItemList.Battery_Hull_MV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(432)) + .duration(16 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 3)) + .itemOutputs(ItemList.Battery_Hull_MV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(432)) + .duration(16 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 9)) + .itemOutputs(ItemList.Battery_Hull_HV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(1296)) + .duration(1 * MINUTES + 4 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.string, 4, 32767), new ItemStack(Items.slime_ball, 1, 32767)) + .itemOutputs(new ItemStack(Items.lead, 2)) + .duration(2 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("batPack", 1L, 32767), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.IC2_ReBattery.get(6)) + .duration(40 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("carbonFiber", 2), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_ModHandler.getIC2Item("carbonMesh", 1)) + .duration(8 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 5), + new ItemStack(Blocks.chest, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.hopper)) + .duration(8 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 5), + new ItemStack(Blocks.trapped_chest, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.hopper)) + .duration(8 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 5), + new ItemStack(Blocks.chest, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.hopper)) + .duration(8 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 5), + new ItemStack(Blocks.trapped_chest, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.hopper)) + .duration(8 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.CobaltBrass, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1)) + .itemOutputs(ItemList.Component_Sawblade_Diamond.get(1)) + .duration(16 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1)) + .itemOutputs(new ItemStack(Blocks.redstone_torch, 1)) + .duration(1 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1)) + .itemOutputs(new ItemStack(Blocks.torch, 2)) + .duration(2 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TricalciumPhosphate, 1)) + .itemOutputs(new ItemStack(Blocks.torch, 6)) + .duration(2 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), ItemList.IC2_Resin.get(1)) + .itemOutputs(new ItemStack(Blocks.torch, 6)) + .duration(2 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + if (!GT_Mod.gregtechproxy.mDisableIC2Cables) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getIC2Item("tinCableItem", 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1)) + .itemOutputs(GT_ModHandler.getIC2Item("insulatedTinCableItem", 1)) + .duration(1 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getIC2Item("copperCableItem", 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1)) + .itemOutputs(GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1)) + .duration(1 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getIC2Item("goldCableItem", 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 2)) + .itemOutputs(GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1)) + .duration(2 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getIC2Item("ironCableItem", 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 3)) + .itemOutputs(GT_ModHandler.getIC2Item("insulatedIronCableItem", 1)) + .duration(3 * SECONDS) + .eut(20) + .addTo(assemblerRecipes); + } + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1)) + .itemOutputs(new ItemStack(Items.wooden_sword, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Stone, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1)) + .itemOutputs(new ItemStack(Items.stone_sword, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1)) + .itemOutputs(new ItemStack(Items.iron_sword, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1)) + .itemOutputs(new ItemStack(Items.golden_sword, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Diamond, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1)) + .itemOutputs(new ItemStack(Items.diamond_sword, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Bronze, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1)) + .itemOutputs(ItemList.Tool_Sword_Bronze.getUndamaged(1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Steel, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1)) + .itemOutputs(ItemList.Tool_Sword_Steel.getUndamaged(1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.wooden_pickaxe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Stone, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.stone_pickaxe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.iron_pickaxe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.golden_pickaxe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Diamond, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.diamond_pickaxe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Bronze, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(ItemList.Tool_Pickaxe_Bronze.getUndamaged(1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Steel, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(ItemList.Tool_Pickaxe_Steel.getUndamaged(1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.wooden_shovel, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Stone, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.stone_shovel, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.iron_shovel, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.golden_shovel, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Diamond, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.diamond_shovel, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Bronze, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(ItemList.Tool_Shovel_Bronze.getUndamaged(1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Steel, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(ItemList.Tool_Shovel_Steel.getUndamaged(1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.wooden_axe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Stone, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.stone_axe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.iron_axe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.golden_axe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Diamond, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.diamond_axe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Bronze, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(ItemList.Tool_Axe_Bronze.getUndamaged(1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Steel, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(ItemList.Tool_Axe_Steel.getUndamaged(1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.wooden_hoe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Stone, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.stone_hoe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.iron_hoe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.golden_hoe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Diamond, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(new ItemStack(Items.diamond_hoe, 1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Bronze, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(ItemList.Tool_Hoe_Bronze.getUndamaged(1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Steel, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2)) + .itemOutputs(ItemList.Tool_Hoe_Steel.getUndamaged(1)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + // fuel rod assembler recipes + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.ThoriumCell_1.get(2), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.ThoriumCell_2.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.ThoriumCell_1.get(4), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Steel, 6), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.ThoriumCell_4.get(1)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.ThoriumCell_2.get(2), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.ThoriumCell_4.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Uraniumcell_1.get(2), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Uraniumcell_2.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Uraniumcell_1.get(4), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Steel, 6), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.Uraniumcell_4.get(1)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Uraniumcell_2.get(2), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.Uraniumcell_4.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Moxcell_1.get(2), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Moxcell_2.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Moxcell_1.get(4), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Steel, 6), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.Moxcell_4.get(1)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Moxcell_2.get(2), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.Moxcell_4.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.NaquadahCell_1.get(2), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.NaquadahCell_2.get(1)) + .duration(5 * SECONDS) + .eut(400) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.NaquadahCell_1.get(4), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenSteel, 6), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.NaquadahCell_4.get(1)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(400) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.NaquadahCell_2.get(2), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 4), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.NaquadahCell_4.get(1)) + .duration(5 * SECONDS) + .eut(400) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.MNqCell_1.get(2), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.MNqCell_2.get(1)) + .duration(5 * SECONDS) + .eut(400) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.MNqCell_1.get(4), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenSteel, 6), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.MNqCell_4.get(1)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(400) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.MNqCell_2.get(2), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 4), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.MNqCell_4.get(1)) + .duration(5 * SECONDS) + .eut(400) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Neutronium, 8), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Iridium, 4)) + .itemOutputs(ItemList.neutroniumHeatCapacitor.get(1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.NaquadahAlloy.getPlates(8), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 1)) + .itemOutputs(ItemList.RadiantNaquadahAlloyCasing.get(1)) + .duration(10 * TICKS) + .eut(400000) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.KevlarFiber.get(8), GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.WovenKevlar.get(1)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1), + ItemList.NC_SensorKit.get(1), + ItemList.Emitter_EV.get(1), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1, 28), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Cover_Metrics_Transmitter.get(1)) + .fluidInputs(Materials.SolderingAlloy.getMolten(INGOTS)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + ItemStack[] plates = new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L) }; + + for (Materials tMat : solderingMats) { + int tMultiplier = tMat.contains(SubTag.SOLDERING_MATERIAL_GOOD) ? 1 + : tMat.contains(SubTag.SOLDERING_MATERIAL_BAD) ? 4 : 2; + + for (ItemStack tPlate : plates) { + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.lever, 1, 32767), tPlate, GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_Controller.get(1)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.redstone_torch, 1, 32767), + tPlate, + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_ActivityDetector.get(1)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.heavy_weighted_pressure_plate, 1, 32767), + tPlate, + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_FluidDetector.get(1)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.light_weighted_pressure_plate, 1, 32767), + tPlate, + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_ItemDetector.get(1)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("ecMeter", 1), tPlate, GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_EnergyDetector.get(1)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + } + + } + } + + /** + * Adds recipes for input buses from ULV to UHV + */ + public void loadInputBusesRecipes() { + // ULV input bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + getModItem(NewHorizonsCoreMod.ID, "BabyChest", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_ULV.get(1)) + .fluidInputs(Materials.Glue.getFluid(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + getModItem(NewHorizonsCoreMod.ID, "BabyChest", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_ULV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + getModItem(NewHorizonsCoreMod.ID, "BabyChest", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_ULV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * EIGHTH_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + getModItem(NewHorizonsCoreMod.ID, "BabyChest", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_ULV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(4)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + } + + // LV input bus + { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_LV.get(1)) + .fluidInputs(Materials.Glue.getFluid(5 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_LV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_LV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_LV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(9)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + } + + // MV input bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_MV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_MV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_MV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * EIGHTH_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + } + + // HV input bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_HV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(3 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_HV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_HV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * QUARTER_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + + // EV input bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_EV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(4 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_EV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + } + + // IV input bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_IV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(8 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_IV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + } + + // LuV input bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LuV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_LuV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(16 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LuV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_LuV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + } + + // ZPM input bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ZPM.get(1), + getModItem(IronChests.ID, "BlockIronChest", 2, 5), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_ZPM.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(4 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + } + + // UV input bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_UV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 2, 6), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_UV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(8 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + } + + // UHV input bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MAX.get(1), + getModItem(AvaritiaAddons.ID, "CompressedChest", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_Bus_MAX.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(16 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + } + } + + /** + * Adds recipes for output buses from ULV to UHV + */ + public void loadOutputBusesRecipes() { + + /* + * those early exits prevents further hatches recipes from being registered, but it's probably fine, as that + * means we aren't in full pack + */ + + if (!NewHorizonsCoreMod.isModLoaded()) { + return; + } + + // ULV output bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + getModItem(NewHorizonsCoreMod.ID, "BabyChest", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_ULV.get(1)) + .fluidInputs(Materials.Glue.getFluid(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + getModItem(NewHorizonsCoreMod.ID, "BabyChest", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_ULV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + getModItem(NewHorizonsCoreMod.ID, "BabyChest", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_ULV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * EIGHTH_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + getModItem(NewHorizonsCoreMod.ID, "BabyChest", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_ULV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(4)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + } + + // LV output bus + { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_LV.get(1)) + .fluidInputs(Materials.Glue.getFluid(5 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_LV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_LV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_LV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(9)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + } + + if (!IronChests.isModLoaded()) { + return; + } + + // MV output bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 3), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_MV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 3), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_MV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 3), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_MV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * EIGHTH_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + } + + // HV output bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 0), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_HV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(3 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 0), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_HV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 0), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_HV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * QUARTER_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + + // EV output bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_EV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(4 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_EV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + } + + // IV output bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_IV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(8 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_IV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + } + + // LuV output bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LuV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 2), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_LuV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(16 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LuV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 1, 2), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_LuV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + } + + // ZPM output bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ZPM.get(1), + getModItem(IronChests.ID, "BlockIronChest", 2, 5), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_ZPM.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(4 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + } + + // UV output bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_UV.get(1), + getModItem(IronChests.ID, "BlockIronChest", 2, 6), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_UV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(8 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + } + + if (!AvaritiaAddons.isModLoaded()) { + return; + } + + // UHV output bus + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MAX.get(1), + getModItem(AvaritiaAddons.ID, "CompressedChest", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_Bus_MAX.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(16 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + } + } + + /** + * Adds recipes for input hatches from ULV to UHV + */ + public void loadInputHatchesRecipes() { + // ULV input hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_ULV.get(1)) + .fluidInputs(Materials.Glue.getFluid(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_ULV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_ULV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * EIGHTH_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_ULV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(4)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + } + + /* + * those early exits prevents further hatches recipes from being registered, but it's probably fine, as that + * means we aren't in full pack + */ + + if (!BuildCraftFactory.isModLoaded()) { + return; + } + + // LV input hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LV.get(1), + getModItem(BuildCraftFactory.ID, "tankBlock", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_LV.get(1)) + .fluidInputs(Materials.Glue.getFluid(5 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LV.get(1), + getModItem(BuildCraftFactory.ID, "tankBlock", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_LV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LV.get(1), + getModItem(BuildCraftFactory.ID, "tankBlock", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_LV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LV.get(1), + getModItem(BuildCraftFactory.ID, "tankBlock", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_LV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(9)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + } + + if (!IronTanks.isModLoaded()) { + return; + } + + // MV input hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronTanks.ID, "copperTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_MV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronTanks.ID, "copperTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_MV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronTanks.ID, "copperTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_MV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * EIGHTH_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + } + + // HV input hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronTanks.ID, "ironTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_HV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(3 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronTanks.ID, "ironTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_HV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronTanks.ID, "ironTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_HV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * QUARTER_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + + // EV input hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1), + getModItem(IronTanks.ID, "silverTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_EV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(4 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1), + getModItem(IronTanks.ID, "silverTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_EV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + } + + // IV input hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1), + getModItem(IronTanks.ID, "goldTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_IV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(8 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1), + getModItem(IronTanks.ID, "goldTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_IV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + } + + // LuV input hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LuV.get(1), + getModItem(IronTanks.ID, "diamondTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_LuV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(16 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LuV.get(1), + getModItem(IronTanks.ID, "diamondTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_LuV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + } + + // ZPM input hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ZPM.get(1), + getModItem(IronTanks.ID, "obsidianTank", 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_ZPM.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(4 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + } + + // UV input hatch + { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_UV.get(1), ItemList.Super_Tank_LV.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_UV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(8 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + } + + // UHV input hatch + { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_MAX.get(1), ItemList.Super_Tank_MV.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Input_MAX.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(16 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + } + } + + /** + * Adds recipes for output hatches from ULV to UHV + */ + public void loadOutputHatchesRecipes() { + // ULV output hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_ULV.get(1)) + .fluidInputs(Materials.Glue.getFluid(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_ULV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_ULV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * EIGHTH_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ULV.get(1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_ULV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(4)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ULV) + .addTo(assemblerRecipes); + } + + /* + * those early exits prevents further hatches recipes from being registered, but it's probably fine, as that + * means we aren't in full pack + */ + + if (!BuildCraftFactory.isModLoaded()) { + return; + } + + // LV output hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LV.get(1), + getModItem(BuildCraftFactory.ID, "tankBlock", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_LV.get(1)) + .fluidInputs(Materials.Glue.getFluid(5 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LV.get(1), + getModItem(BuildCraftFactory.ID, "tankBlock", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_LV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LV.get(1), + getModItem(BuildCraftFactory.ID, "tankBlock", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_LV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LV.get(1), + getModItem(BuildCraftFactory.ID, "tankBlock", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_LV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(9)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + } + + if (!IronTanks.isModLoaded()) { + return; + } + + // MV output hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronTanks.ID, "copperTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_MV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronTanks.ID, "copperTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_MV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_MV.get(1), + getModItem(IronTanks.ID, "copperTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_MV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * EIGHTH_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + } + + // HV output hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronTanks.ID, "ironTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_HV.get(1)) + .fluidInputs(Materials.Plastic.getMolten(3 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronTanks.ID, "ironTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_HV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1), + getModItem(IronTanks.ID, "ironTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_HV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * QUARTER_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + + // EV output hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1), + getModItem(IronTanks.ID, "silverTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_EV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(4 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_EV.get(1), + getModItem(IronTanks.ID, "silverTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_EV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * HALF_INGOT)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + } + + // IV output hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1), + getModItem(IronTanks.ID, "goldTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_IV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(8 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_IV.get(1), + getModItem(IronTanks.ID, "goldTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_IV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + } + + // LuV output hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LuV.get(1), + getModItem(IronTanks.ID, "diamondTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_LuV.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(16 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_LuV.get(1), + getModItem(IronTanks.ID, "diamondTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_LuV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(2 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + } + + // ZPM output hatch + { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_ZPM.get(1), + getModItem(IronTanks.ID, "obsidianTank", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_ZPM.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(4 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + } + + // UV output hatch + { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_UV.get(1), ItemList.Super_Tank_LV.get(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_UV.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(8 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + } + + // UHV output hatch + { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_MAX.get(1), ItemList.Super_Tank_MV.get(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Hatch_Output_MAX.get(1)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(16 * INGOTS)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + } + } + + /** + * Load all Railcraft recipes for GT Machines + */ + private void withRailcraft() { + if (!Railcraft.isModLoaded()) return; + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.stone_slab, 1, 0), + ItemList.RC_Rebar.get(1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_Tie_Stone.get(1)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.stone_slab, 1, 7), + ItemList.RC_Rebar.get(1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_Tie_Stone.get(1)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 3), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Electrum, 3), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.RC_Rail_HS.get(16)) + .fluidInputs(Materials.Blaze.getMolten(216)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 3), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Electrum, 3), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(ItemList.RC_Rail_HS.get(8)) + .fluidInputs(Materials.ConductiveIron.getMolten(432)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 3), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Electrum, 3), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(ItemList.RC_Rail_HS.get(32)) + .fluidInputs(Materials.VibrantAlloy.getMolten(216)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 3), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Electrum, 3), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(ItemList.RC_Rail_HS.get(64)) + .fluidInputs(Materials.CrystallineAlloy.getMolten(216)) + .duration(5 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(3), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Electrum, 3), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.RC_Rail_Adv.get(8)) + .fluidInputs(Materials.Redstone.getMolten(216)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(3), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Electrum, 3), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.RC_Rail_Adv.get(16)) + .fluidInputs(Materials.RedAlloy.getMolten(216)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(3), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Electrum, 3), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.RC_Rail_Adv.get(32)) + .fluidInputs(Materials.ConductiveIron.getMolten(216)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(3), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Electrum, 3), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(ItemList.RC_Rail_Adv.get(64)) + .fluidInputs(Materials.VibrantAlloy.getMolten(216)) + .duration(5 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Copper, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_Rail_Electric.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.AnnealedCopper, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_Rail_Electric.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Gold, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_Rail_Electric.get(2)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Electrum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_Rail_Electric.get(4)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_Rail_Electric.get(8)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_Rail_Electric.get(16)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.HSSG, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_Rail_Electric.get(32)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Rail_Standard.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Naquadah, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_Rail_Electric.get(64)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(96) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Tie_Wood.get(1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 1), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Wooden.get(8)) + .duration(6 * SECONDS + 13 * TICKS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Tie_Wood.get(1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 1), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(ItemList.RC_Rail_Wooden.get(8)) + .duration(6 * SECONDS + 13 * TICKS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Tie_Wood.get(1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 1), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(ItemList.RC_Rail_Wooden.get(16)) + .duration(6 * SECONDS + 13 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Tie_Wood.get(1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.StainlessSteel, 1), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(ItemList.RC_Rail_Wooden.get(32)) + .duration(6 * SECONDS + 13 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Tie_Wood.get(1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(ItemList.RC_Rail_Wooden.get(64)) + .duration(6 * SECONDS + 13 * TICKS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.RC_Tie_Wood.get(32), GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(ItemList.RC_Bed_Wood.get(24)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.RC_Tie_Wood.get(64), GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(ItemList.RC_Bed_Wood.get(48)) + .duration(10 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.RC_Tie_Stone.get(32), GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(ItemList.RC_Bed_Stone.get(24)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.RC_Tie_Stone.get(64), GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(ItemList.RC_Bed_Stone.get(48)) + .duration(10 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + ItemStack tRailWood = getModItem(Railcraft.ID, "track", 64, 736); + if (tRailWood != null) { + NBTTagCompound tTagWood = new NBTTagCompound(); + tTagWood.setString("track", "railcraft:track.slow"); + tRailWood.stackTagCompound = tTagWood; + + ItemStack tRailWoodB = getModItem(Railcraft.ID, "track.slow", 16); + NBTTagCompound tTagWoodB = new NBTTagCompound(); + tTagWoodB.setString("track", "railcraft:track.slow.boost"); + tRailWoodB.stackTagCompound = tTagWoodB; + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Bed_Wood.get(1), + ItemList.RC_Rail_Wooden.get(6), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(tRailWood) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(tRailWoodB) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + } + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 1, 0), + ItemList.RC_Rail_Adv.get(2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(new ItemStack(Blocks.golden_rail, 16, 0)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Bed_Wood.get(1), + ItemList.RC_Rail_Standard.get(6), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(new ItemStack(Blocks.rail, 64, 0)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + ItemStack tRailRe = getModItem(Railcraft.ID, "track", 64); + NBTTagCompound tTagRe = new NBTTagCompound(); + tTagRe.setString("track", "railcraft:track.reinforced"); + tRailRe.stackTagCompound = tTagRe; + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Bed_Stone.get(1), + ItemList.RC_Rail_Reinforced.get(6), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(tRailRe) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + ItemStack tRailReB = getModItem(Railcraft.ID, "track.reinforced", 16); + NBTTagCompound tTagReB = new NBTTagCompound(); + tTagReB.setString("track", "railcraft:track.reinforced.boost"); + tRailReB.stackTagCompound = tTagReB; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(tRailReB) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + ItemStack tRailEl = getModItem(Railcraft.ID, "track", 64); + NBTTagCompound tTagEl = new NBTTagCompound(); + tTagEl.setString("track", "railcraft:track.electric"); + tRailEl.stackTagCompound = tTagEl; + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Bed_Stone.get(1), + ItemList.RC_Rail_Electric.get(6), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(tRailEl) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + ItemStack tRailHs = getModItem(Railcraft.ID, "track", 64, 816); + if (tRailHs != null) { + NBTTagCompound tTagHs = new NBTTagCompound(); + tTagHs.setString("track", "railcraft:track.speed"); + tRailHs.stackTagCompound = tTagHs; + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.RC_Bed_Stone.get(1), + ItemList.RC_Rail_HS.get(6), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(tRailHs) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + } + ItemStack tRailHsB = getModItem(Railcraft.ID, "track.speed", 16); + NBTTagCompound tTagHsB = new NBTTagCompound(); + tTagHsB.setString("track", "railcraft:track.speed.boost"); + tRailHsB.stackTagCompound = tTagHsB; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(tRailHsB) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // --- Wooden Switch Track --- + ItemStack tRailSS = getModItem(Railcraft.ID, "track.slow", 1, 19986); + if (tRailSS != null) { + NBTTagCompound tTagSS = new NBTTagCompound(); + tTagSS.setString("track", "railcraft:track.slow.switch"); + tRailSS.stackTagCompound = tTagSS; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.AnyIron, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailSS) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Steel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailSS)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.StainlessSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailSS)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailSS)) + .duration(5 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailSS)) + .duration(5 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailSS)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailSS)) + .duration(5 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + } + // --- Wooden Wye Track --- + ItemStack tRailSW = getModItem(Railcraft.ID, "track.slow", 1); + if (tRailSW != null) { + NBTTagCompound tTagSW = new NBTTagCompound(); + tTagSW.setString("track", "railcraft:track.slow.wye"); + tRailSW.stackTagCompound = tTagSW; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.AnyIron, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailSW) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Steel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailSW)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.StainlessSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailSW)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailSW)) + .duration(5 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailSW)) + .duration(5 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailSW)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailSW)) + .duration(5 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + } + // --- Wooden Junction Tack --- + ItemStack tRailSJ = getModItem(Railcraft.ID, "track.slow", 1); + if (tRailSJ != null) { + NBTTagCompound tTagSJ = new NBTTagCompound(); + tTagSJ.setString("track", "railcraft:track.slow.junction"); + tRailSJ.stackTagCompound = tTagSJ; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.AnyIron, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailSJ) + .duration(5 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailSJ)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.StainlessSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailSJ)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailSJ)) + .duration(5 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailSJ)) + .duration(5 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailSJ)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailWood), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailSJ)) + .duration(5 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + } + // --- Switch Tack --- + ItemStack tRailNS = getModItem(Railcraft.ID, "track", 1, 4767); + if (tRailNS != null) { + NBTTagCompound tTagNS = new NBTTagCompound(); + tTagNS.setString("track", "railcraft:track.switch"); + tRailNS.stackTagCompound = tTagNS; + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailNS) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.StainlessSteel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailNS)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailNS)) + .duration(10 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailNS)) + .duration(10 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailNS)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailNS)) + .duration(10 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Neutronium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailNS)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + } + // --- Wye Tack --- + ItemStack tRailNW = getModItem(Railcraft.ID, "track", 1, 2144); + if (tRailNW != null) { + NBTTagCompound tTagNW = new NBTTagCompound(); + tTagNW.setString("track", "railcraft:track.wye"); + tRailNW.stackTagCompound = tTagNW; + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailNW) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.StainlessSteel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailNW)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailNW)) + .duration(10 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailNW)) + .duration(10 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailNW)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailNW)) + .duration(10 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Neutronium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailNW)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // --- Junction Tack --- + ItemStack tRailNJ = getModItem(Railcraft.ID, "track", 1); + if (tRailNJ != null) { + NBTTagCompound tTagNJ = new NBTTagCompound(); + tTagNJ.setString("track", "railcraft:track.junction"); + tRailNJ.stackTagCompound = tTagNJ; + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailNJ) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.StainlessSteel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailNJ)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailNJ)) + .duration(10 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailNJ)) + .duration(10 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailNJ)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailNJ)) + .duration(10 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.rail, 2, 0), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailNJ)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // --- Reinforced Switch Track --- + ItemStack tRailRS = getModItem(Railcraft.ID, "track.reinforced", 1); + if (tRailRS != null) { + NBTTagCompound tTagRS = new NBTTagCompound(); + tTagRS.setString("track", "railcraft:track.reinforced.switch"); + tRailRS.stackTagCompound = tTagRS; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailRS) + .duration(15 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.StainlessSteel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailRS)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailRS)) + .duration(15 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailRS)) + .duration(15 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailRS)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailRS)) + .duration(15 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Neutronium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailRS)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // --- Reinforced Wye Track --- + ItemStack tRailRW = getModItem(Railcraft.ID, "track.reinforced", 1); + if (tRailRW != null) { + NBTTagCompound tTagRW = new NBTTagCompound(); + tTagRW.setString("track", "railcraft:track.reinforced.wye"); + tRailRW.stackTagCompound = tTagRW; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailRW) + .duration(15 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.StainlessSteel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailRW)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailRW)) + .duration(15 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailRW)) + .duration(15 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailRW)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailRW)) + .duration(15 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Neutronium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailRW)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // --- Reinforced Junction Track --- + ItemStack tRailRJ = getModItem(Railcraft.ID, "track.reinforced", 1, 764); + if (tRailRJ != null) { + NBTTagCompound tTagRJ = new NBTTagCompound(); + tTagRJ.setString("track", "railcraft:track.reinforced.junction"); + tRailRJ.stackTagCompound = tTagRJ; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailRJ) + .duration(15 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.StainlessSteel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailRJ)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailRJ)) + .duration(15 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailRJ)) + .duration(15 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailRJ)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailRJ)) + .duration(15 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailRe), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailRJ)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // --- H.S. Switch Track --- + ItemStack tRailSSw = getModItem(Railcraft.ID, "track.speed", 1, 7916); + if (tRailSSw != null) { + NBTTagCompound tTagRSSw = new NBTTagCompound(); + tTagRSSw.setString("track", "railcraft:track.speed.switch"); + tRailSSw.stackTagCompound = tTagRSSw; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailSSw) + .duration(20 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.StainlessSteel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailSSw)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailSSw)) + .duration(20 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailSSw)) + .duration(20 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailSSw)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailSSw)) + .duration(20 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Neutronium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailSSw)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // --- H.S. Wye Track --- + ItemStack tRailSWy = getModItem(Railcraft.ID, "track.speed", 1); + if (tRailSWy != null) { + NBTTagCompound tTagRSWy = new NBTTagCompound(); + tTagRSWy.setString("track", "railcraft:track.speed.wye"); + tRailSWy.stackTagCompound = tTagRSWy; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Steel, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailSWy) + .duration(20 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.StainlessSteel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailSWy)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailSWy)) + .duration(20 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.TungstenSteel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailSWy)) + .duration(20 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Iridium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailSWy)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailSWy)) + .duration(20 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Neutronium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailSWy)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // --- H.S. Transition Track --- + ItemStack tRailSTt = getModItem(Railcraft.ID, "track.speed", 1, 26865); + if (tRailSTt != null) { + NBTTagCompound tTagRSTt = new NBTTagCompound(); + tTagRSTt.setString("track", "railcraft:track.speed.transition"); + tRailSTt.stackTagCompound = tTagRSTt; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + ItemList.RC_Bed_Stone.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailSTt)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + ItemList.RC_Bed_Stone.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ConductiveIron, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailSTt)) + .duration(20 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + ItemList.RC_Bed_Stone.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VibrantAlloy, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailSTt)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + ItemList.RC_Bed_Stone.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrystallineAlloy, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailSTt)) + .duration(20 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailHs), + ItemList.RC_Bed_Stone.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.MelodicAlloy, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailSTt)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // --- Electric Switch Track --- + ItemStack tRailES = getModItem(Railcraft.ID, "track.electric", 1, 10488); + if (tRailES != null) { + NBTTagCompound tTagES = new NBTTagCompound(); + tTagES.setString("track", "railcraft:track.electric.switch"); + tRailES.stackTagCompound = tTagES; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Copper, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailES) + .duration(20 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Gold, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailES)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Electrum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailES)) + .duration(20 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailES)) + .duration(20 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Platinum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailES)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.VanadiumGallium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailES)) + .duration(20 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.springSmall, Materials.Naquadah, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailES)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // --- Electric Wye Track --- + ItemStack tRailEw = getModItem(Railcraft.ID, "track.electric", 1); + if (tRailEw != null) { + NBTTagCompound tTagEw = new NBTTagCompound(); + tTagEw.setString("track", "railcraft:track.electric.wye"); + tRailEw.stackTagCompound = tTagEw; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Copper, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailEw) + .duration(20 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Gold, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailEw)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Electrum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailEw)) + .duration(20 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailEw)) + .duration(20 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Platinum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailEw)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.VanadiumGallium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailEw)) + .duration(20 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Naquadah, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailEw)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // --- Electric Junction Track --- + ItemStack tRailEJ = getModItem(Railcraft.ID, "track.electric", 1); + if (tRailEJ != null) { + NBTTagCompound tTagREJ = new NBTTagCompound(); + tTagREJ.setString("track", "railcraft:track.electric.junction"); + tRailEJ.stackTagCompound = tTagREJ; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Copper, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(tRailEJ) + .duration(20 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Gold, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(2, tRailEJ)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Electrum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(4, tRailEJ)) + .duration(20 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(8, tRailEJ)) + .duration(20 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Platinum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(16, tRailEJ)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.VanadiumGallium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(32, tRailEJ)) + .duration(20 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(2, tRailEl), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Naquadah, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_Utility.copyAmount(64, tRailEJ)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + } + // Shunting Wire + for (Materials tMat : solderingMats) { + int tMultiplier = tMat.contains(SubTag.SOLDERING_MATERIAL_GOOD) ? 1 + : tMat.contains(SubTag.SOLDERING_MATERIAL_BAD) ? 4 : 2; + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Copper, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Lead, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_ShuntingWire.get(1)) + .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.AnnealedCopper, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Lead, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_ShuntingWire.get(1)) + .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Lead, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_ShuntingWire.get(4)) + .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut(24) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Electrum, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Gold, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_ShuntingWire.get(8)) + .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Titanium, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Electrum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_ShuntingWire.get(16)) + .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Platinum, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_ShuntingWire.get(32)) + .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.VanadiumGallium, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Platinum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.RC_ShuntingWire.get(64)) + .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + // chunkloader upgrade OC + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Plastic_Advanced.get(1), + GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Aluminium, 2), + getModItem(Railcraft.ID, "machine.alpha", 1L, 0), + getModItem(OpenComputers.ID, "item", 1L, 26), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(OpenComputers.ID, "item", 1L, 62)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(256) + .addTo(assemblerRecipes); + + } + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.piston, 1, 0), + ItemList.FR_Casing_Sturdy.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lapis, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(NewHorizonsCoreMod.ID, "item.EngineCore", 1L, 0)) + .fluidInputs(Materials.SeedOil.getFluid(250)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.piston, 1, 0), + ItemList.FR_Casing_Sturdy.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lapis, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(NewHorizonsCoreMod.ID, "item.EngineCore", 1L, 0)) + .fluidInputs(Materials.Lubricant.getFluid(125)) + .duration(5 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(ExtraUtilities.ID, "trashcan", 1L, 0), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Obsidian, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 11)) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(NewHorizonsCoreMod.ID, "item.EngineCore", 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.AnyCopper, 10), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 7)) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(NewHorizonsCoreMod.ID, "item.EngineCore", 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 10), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 8)) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(NewHorizonsCoreMod.ID, "item.EngineCore", 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 10), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 9)) + .duration(10 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Gold, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 4), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Obsidian, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Railcraft.ID, "machine.alpha", 1, 0)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.AnyIron, 2), + GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 0)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.AnyIron, 2), + new ItemStack(Blocks.glass_pane, 2, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 2L, 1)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.AnyIron, 2), + getModItem(TinkerConstruct.ID, "GlassPane", 2L, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 2L, 1)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Bronze, 2), + new ItemStack(Blocks.iron_bars, 2, 0), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 2)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 2), + GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 13)) + .duration(10 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 2), + new ItemStack(Blocks.glass_pane, 2, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 2L, 14)) + .duration(20 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 2), + getModItem(TinkerConstruct.ID, "GlassPane", 2L, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 2L, 14)) + .duration(20 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Steel, 2), + getModItem(NewHorizonsCoreMod.ID, "item.SteelBars", 2), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 15)) + .duration(20 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2), + GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 0)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2), + new ItemStack(Blocks.glass_pane, 2, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 1)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2), + getModItem(TinkerConstruct.ID, "GlassPane", 2L, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 1)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Plastic, 2), + getModItem(NewHorizonsCoreMod.ID, "item.AluminiumBars", 2), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 2)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 2), + GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 3)) + .duration(10 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 2), + new ItemStack(Blocks.glass_pane, 2, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 4)) + .duration(20 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 2), + getModItem(TinkerConstruct.ID, "GlassPane", 2L, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 4)) + .duration(20 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel, 2), + getModItem(NewHorizonsCoreMod.ID, "item.StainlessSteelBars", 2), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 5)) + .duration(20 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 2), + GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 6)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 2), + new ItemStack(Blocks.glass_pane, 2, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 7)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 2), + getModItem(TinkerConstruct.ID, "GlassPane", 2L, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 7)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Titanium, 2), + getModItem(NewHorizonsCoreMod.ID, "item.TitaniumBars", 2), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 8)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 2), + GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 9)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 2), + new ItemStack(Blocks.glass_pane, 2, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 10)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 2), + getModItem(TinkerConstruct.ID, "GlassPane", 2L, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 10)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.TungstenSteel, 2), + getModItem(NewHorizonsCoreMod.ID, "item.TungstenSteelBars", 2), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 11)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Palladium, 2), + GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 12)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Palladium, 2), + new ItemStack(Blocks.glass_pane, 2, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 13)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Palladium, 2), + getModItem(TinkerConstruct.ID, "GlassPane", 2L, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 13)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.NiobiumTitanium, 2), + getModItem(NewHorizonsCoreMod.ID, "item.ChromeBars", 2), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 14)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 2), + GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 0)) + .duration(10 * SECONDS) + .eut(4096) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 2), + new ItemStack(Blocks.glass_pane, 2, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 1)) + .duration(20 * SECONDS) + .eut(4096) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 2), + getModItem(TinkerConstruct.ID, "GlassPane", 2L, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 1)) + .duration(20 * SECONDS) + .eut(4096) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Enderium, 2), + getModItem(NewHorizonsCoreMod.ID, "item.IridiumBars", 2), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 2)) + .duration(20 * SECONDS) + .eut(4096) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Osmium, 2), + GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 3)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Osmium, 2), + new ItemStack(Blocks.glass_pane, 2, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 4)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Osmium, 2), + getModItem(TinkerConstruct.ID, "GlassPane", 2L, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 4)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Naquadah, 2), + getModItem(NewHorizonsCoreMod.ID, "item.OsmiumBars", 2), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 5)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 2), + GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 6)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 2), + new ItemStack(Blocks.glass_pane, 2, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 7)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 2), + getModItem(TinkerConstruct.ID, "GlassPane", 2L, 0), + GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 7)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Neutronium, 2), + getModItem(NewHorizonsCoreMod.ID, "item.NeutroniumBars", 2), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 8)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + // Water Tank + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Wood, 2)) + .itemOutputs(getModItem(Railcraft.ID, "machine.alpha", 1L, 14)) + .fluidInputs(Materials.Glue.getFluid(36)) + .duration(10 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.IronMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Wood, 2)) + .itemOutputs(getModItem(Railcraft.ID, "machine.alpha", 1L, 14)) + .fluidInputs(Materials.Glue.getFluid(36)) + .duration(10 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 1), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Wood, 2)) + .itemOutputs(getModItem(Railcraft.ID, "machine.alpha", 1L, 14)) + .fluidInputs(Materials.Glue.getFluid(36)) + .duration(10 * SECONDS) + .eut(8) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Steel, 4), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Wood, 4)) + .itemOutputs(getModItem(Railcraft.ID, "machine.alpha", 3L, 14)) + .fluidInputs(Materials.Glue.getFluid(72)) + .duration(20 * SECONDS) + .eut(30) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Steel, 2), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.WoodSealed, 1)) + .itemOutputs(getModItem(Railcraft.ID, "machine.alpha", 3L, 14)) + .fluidInputs(Materials.Plastic.getMolten(36)) + .duration(20 * SECONDS) + .eut(30) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.StainlessSteel, 4), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.WoodSealed, 4)) + .itemOutputs(getModItem(Railcraft.ID, "machine.alpha", 9L, 14)) + .fluidInputs(Materials.Plastic.getMolten(72)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + // Steam Boilers + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Item_Casing_Iron.get(6), GT_Utility.getIntegratedCircuit(6)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 3)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Item_Casing_Steel.get(6), GT_Utility.getIntegratedCircuit(6)) + .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 4)) + .duration(20 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + } + + public void withBartWorks() { + if (!BartWorks.isModLoaded()) { + return; + } + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, ExternalMaterials.getRhodiumPlatedPalladium(), 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Chrome, 1)) + .itemOutputs(ItemList.Casing_Advanced_Rhodium_Palladium.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + } + + public void withGalacticraftMars() { + if (!GalacticraftMars.isModLoaded()) { + return; + } + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.compressed, Materials.Bronze, 1), + GT_OreDictUnificator.get(OrePrefixes.compressed, Materials.Aluminium, 1), + GT_OreDictUnificator.get(OrePrefixes.compressed, Materials.Steel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Ingot_Heavy1.get(1)) + .fluidInputs(Materials.StainlessSteel.getMolten(72)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(GalacticraftCore.ID, "item.heavyPlating", 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.MeteoricIron, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Ingot_Heavy2.get(1)) + .fluidInputs(Materials.TungstenSteel.getMolten(72)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(GalacticraftMars.ID, "item.null", 1L, 3), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Desh, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Ingot_Heavy3.get(1)) + .fluidInputs(Materials.Platinum.getMolten(72)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + } + + public void withGalaxySpace() { + if (!GalaxySpace.isModLoaded()) { + return; + } + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Pentacadmiummagnesiumhexaoxid, 3), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.StainlessSteel, 2), + ItemList.Electric_Pump_MV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorMV, 3)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 2000)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Titaniumonabariumdecacoppereikosaoxid, 6), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Titanium, 4), + ItemList.Electric_Pump_HV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorHV, 6)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 4000)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Uraniumtriplatinid, 9), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 6), + ItemList.Electric_Pump_EV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorEV, 9)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 6000)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Vanadiumtriindinid, 12), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NiobiumTitanium, 8), + ItemList.Electric_Pump_IV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorIV, 12)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 8000)) + .duration(32 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get( + OrePrefixes.wireGt01, + Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, + 15), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Enderium, 10), + ItemList.Electric_Pump_LuV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 15)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 12000)) + .duration(32 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 18), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Naquadah, 12), + ItemList.Electric_Pump_ZPM.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorZPM, 18)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 16000)) + .duration(1 * MINUTES + 4 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Longasssuperconductornameforuvwire, 21), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Neutronium, 14), + ItemList.Electric_Pump_UV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUV, 21)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 20000)) + .duration(1 * MINUTES + 4 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Longasssuperconductornameforuhvwire, 24), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Bedrockium, 16), + ItemList.Electric_Pump_UHV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUHV, 24)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 24000)) + .duration(2 * MINUTES + 8 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUEVBase, 27), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Infinity, 18), + ItemList.Electric_Pump_UEV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUEV, 27)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 28000)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUMVBase, 33), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, MaterialsUEVplus.SpaceTime, 22), + ItemList.Electric_Pump_UMV.get(1), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUMV, 33)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 36000)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(assemblerRecipes); + } + + public void withGTNHLanthAndGTPP() { + if (!(GTNHLanthanides.isModLoaded() && GTPlusPlus.isModLoaded())) { + return; + } + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_EV.get(4), + ItemList.Field_Generator_EV.get(4), + getModItem(GTPlusPlus.ID, "itemPlateInconel690", 4), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Titanium, 16), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.BorosilicateGlass, 16), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 2), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Polytetrafluoroethylene, 4), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 4), + ItemList.Shape_Extruder_Wire.get(16)) + .itemOutputs(ItemList.Spinneret.get(1)) + .fluidInputs(Materials.SolderingAlloy.getMolten(144)) + .duration(2 * MINUTES) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + } + + public void withIC2NuclearControl() { + if (!IC2NuclearControl.isModLoaded()) { // Card recycling recipes + return; + } + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(IC2NuclearControl.ID, "ItemVanillaMachineCard", 1L, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(IC2NuclearControl.ID, "ItemInventoryScannerCard", 1L, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(IC2NuclearControl.ID, "ItemEnergySensorLocationCard", 1L, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(IC2NuclearControl.ID, "RFSensorCard", 1L, 0), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(IC2NuclearControl.ID, "ItemMultipleSensorLocationCard", 1L, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // counter + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(IC2NuclearControl.ID, "ItemMultipleSensorLocationCard", 1L, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // liquid + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(IC2NuclearControl.ID, "ItemMultipleSensorLocationCard", 1L, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // generator + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(IC2NuclearControl.ID, "ItemLiquidArrayLocationCard", 1L, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // 2-6 liquid + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(IC2NuclearControl.ID, "ItemEnergyArrayLocationCard", 1L, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // 2-6 energy + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(IC2NuclearControl.ID, "ItemSensorLocationCard", 1L, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Good), 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // non-fluid nuke + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(IC2NuclearControl.ID, "Item55ReactorCard", 1L, 0), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Good), 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(IC2NuclearControl.ID, "CardAppeng", 1L, 0), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.NC_SensorCard.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 3)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/AssemblyLineRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AssemblyLineRecipes.java new file mode 100644 index 0000000000..8748c96654 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/AssemblyLineRecipes.java @@ -0,0 +1,894 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.GregTech; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.enums.Mods.TecTech; +import static gregtech.api.util.GT_RecipeBuilder.HOURS; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeConstants.AssemblyLine; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.ExternalMaterials; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class AssemblyLineRecipes implements Runnable { + + private final Fluid solderIndalloy; + private final Materials LuVMat; + + public AssemblyLineRecipes() { + solderIndalloy = GTPlusPlus.isModLoaded() ? FluidRegistry.getFluid("molten.indalloy140") + : FluidRegistry.getFluid("molten.solderingalloy"); + + LuVMat = ExternalMaterials.getRuridit(); + } + + @Override + public void run() { + // recipe len: + // LUV 6 72000 600 32k + // ZPM 9 144000 1200 125k + // UV- 12 288000 1800 500k + // UV+/UHV- 14 360000 2100 2000k + // UHV+ 16 576000 2400 4000k + + // addAssemblylineRecipe(ItemStack aResearchItem, int aResearchTime, ItemStack[] aInputs, FluidStack[] + // aFluidInputs, ItemStack aOutput1, int aDuration, int aEUt); + + // indalloy and ruridit are from gt++ and bartworks which are not dependencies + + // Motors + { + // LuV motor + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electric_Motor_IV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.SamariumMagnetic, 1), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.HSSS, 2), + GT_OreDictUnificator.get(OrePrefixes.wireFine, LuVMat, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, LuVMat, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.YttriumBariumCuprate, 2)) + .fluidInputs(new FluidStack(solderIndalloy, 144), Materials.Lubricant.getFluid(250)) + .itemOutputs(ItemList.Electric_Motor_LuV.get(1)) + .eut(TierEU.RECIPE_IV) + .duration(30 * SECONDS) + .addTo(AssemblyLine); + + // ZPM motor + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electric_Motor_LuV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.SamariumMagnetic, 2), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.NaquadahAlloy, 4), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.NaquadahAlloy, 4), + GT_OreDictUnificator.get(OrePrefixes.round, Materials.NaquadahAlloy, 16), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Europium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Europium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Europium, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 2)) + .fluidInputs(new FluidStack(solderIndalloy, 288), Materials.Lubricant.getFluid(750)) + .itemOutputs(ItemList.Electric_Motor_ZPM.get(1)) + .eut(TierEU.RECIPE_LuV) + .duration(30 * SECONDS) + .addTo(AssemblyLine); + + // UV motor + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electric_Motor_ZPM.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.SamariumMagnetic, 2), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Neutronium, 4), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Neutronium, 4), + GT_OreDictUnificator.get(OrePrefixes.round, Materials.Neutronium, 16), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.NaquadahAlloy, 2)) + .fluidInputs( + Materials.Naquadria.getMolten(1296), + new FluidStack(solderIndalloy, 1296), + Materials.Lubricant.getFluid(2000)) + .itemOutputs(ItemList.Electric_Motor_UV.get(1)) + .eut(TierEU.RECIPE_ZPM) + .duration(30 * SECONDS) + .addTo(AssemblyLine); + } + + // Pumps + { + // LuV Pump + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electric_Pump_IV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + ItemList.Electric_Motor_LuV.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.NiobiumTitanium, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.HSSS, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.HSSS, 8), + new Object[] { OrePrefixes.ring.get(Materials.AnySyntheticRubber), 4 }, + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.HSSS, 2), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.YttriumBariumCuprate, 2)) + .fluidInputs(new FluidStack(solderIndalloy, 144), Materials.Lubricant.getFluid(250)) + .itemOutputs(ItemList.Electric_Pump_LuV.get(1)) + .eut(TierEU.RECIPE_IV) + .duration(600) + .addTo(AssemblyLine); + + // ZPM Pump + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electric_Pump_LuV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + ItemList.Electric_Motor_ZPM.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Enderium, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NaquadahAlloy, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 8), + new Object[] { OrePrefixes.ring.get(Materials.AnySyntheticRubber), 8 }, + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.NaquadahAlloy, 2), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 2)) + .fluidInputs(new FluidStack(solderIndalloy, 288), Materials.Lubricant.getFluid(750)) + .itemOutputs(ItemList.Electric_Pump_ZPM.get(1)) + .eut(TierEU.RECIPE_LuV) + .duration(30 * SECONDS) + .addTo(AssemblyLine); + + // UV Pump + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electric_Pump_ZPM.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + ItemList.Electric_Motor_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Naquadah, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 8), + new Object[] { OrePrefixes.ring.get(Materials.AnySyntheticRubber), 16 }, + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Neutronium, 2), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.NaquadahAlloy, 2)) + .itemOutputs(ItemList.Electric_Pump_UV.get(1)) + .fluidInputs( + Materials.Naquadria.getMolten(1296), + new FluidStack(solderIndalloy, 1296), + Materials.Lubricant.getFluid(2000)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + } + + // Conveyors + { + // LuV Conveyor + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Conveyor_Module_IV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + ItemList.Electric_Motor_LuV.get(2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.HSSS, 2), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.HSSS, 4), + GT_OreDictUnificator.get(OrePrefixes.round, Materials.HSSS, 32), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.YttriumBariumCuprate, 2), + new Object[] { OrePrefixes.plate.get(Materials.AnySyntheticRubber), 10 }) + .itemOutputs(ItemList.Conveyor_Module_LuV.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 144), Materials.Lubricant.getFluid(250)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_IV) + .addTo(AssemblyLine); + + // ZPM Conveyor + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Conveyor_Module_LuV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + ItemList.Electric_Motor_ZPM.get(2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NaquadahAlloy, 2), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.NaquadahAlloy, 4), + GT_OreDictUnificator.get(OrePrefixes.round, Materials.NaquadahAlloy, 32), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 2), + new Object[] { OrePrefixes.plate.get(Materials.AnySyntheticRubber), 20 }) + .itemOutputs(ItemList.Conveyor_Module_ZPM.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 288), Materials.Lubricant.getFluid(750)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_LuV) + .addTo(AssemblyLine); + + // UV Conveyor + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Conveyor_Module_ZPM.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + ItemList.Electric_Motor_UV.get(2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 2), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Neutronium, 4), + GT_OreDictUnificator.get(OrePrefixes.round, Materials.Neutronium, 32), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.NaquadahAlloy, 2), + new Object[] { OrePrefixes.plate.get(Materials.AnySyntheticRubber), 40 }) + .itemOutputs(ItemList.Conveyor_Module_UV.get(1)) + .fluidInputs( + Materials.Naquadria.getMolten(1296), + new FluidStack(solderIndalloy, 1296), + Materials.Lubricant.getFluid(2000)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + } + + // Pistons + { + // LuV Piston + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electric_Piston_IV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + ItemList.Electric_Motor_LuV.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.HSSS, 6), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.HSSS, 4), + GT_OreDictUnificator.get(OrePrefixes.round, Materials.HSSS, 32), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.HSSS, 4), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.HSSS, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.HSSS, 2), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.YttriumBariumCuprate, 4)) + .itemOutputs(ItemList.Electric_Piston_LuV.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 144), Materials.Lubricant.getFluid(250)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_IV) + .addTo(AssemblyLine); + + // ZPM Pistons + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electric_Piston_LuV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + ItemList.Electric_Motor_ZPM.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NaquadahAlloy, 6), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.NaquadahAlloy, 4), + GT_OreDictUnificator.get(OrePrefixes.round, Materials.NaquadahAlloy, 32), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.NaquadahAlloy, 4), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.NaquadahAlloy, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.NaquadahAlloy, 2), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 4)) + .itemOutputs(ItemList.Electric_Piston_ZPM.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 288), Materials.Lubricant.getFluid(750)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_LuV) + .addTo(AssemblyLine); + + // UV Piston + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electric_Piston_ZPM.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + ItemList.Electric_Motor_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 6), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Neutronium, 4), + GT_OreDictUnificator.get(OrePrefixes.round, Materials.Neutronium, 32), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Neutronium, 4), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Neutronium, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Neutronium, 2), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.NaquadahAlloy, 4)) + .itemOutputs(ItemList.Electric_Piston_UV.get(1)) + .fluidInputs( + Materials.Naquadria.getMolten(1296), + new FluidStack(solderIndalloy, 1296), + Materials.Lubricant.getFluid(2000)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + } + + // RobotArms + { + // LuV Robot Arm + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Robot_Arm_IV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.HSSS, 4), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.HSSS, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.HSSS, 3), + ItemList.Electric_Motor_LuV.get(2), + ItemList.Electric_Piston_LuV.get(1), + new Object[] { OrePrefixes.circuit.get(Materials.Master), 2 }, + new Object[] { OrePrefixes.circuit.get(Materials.Elite), 4 }, + new Object[] { OrePrefixes.circuit.get(Materials.Data), 8 }, + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.YttriumBariumCuprate, 6)) + .itemOutputs(ItemList.Robot_Arm_LuV.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 576), Materials.Lubricant.getFluid(250)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_IV) + .addTo(AssemblyLine); + + // ZPM Robot Arm + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Robot_Arm_LuV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.NaquadahAlloy, 4), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.NaquadahAlloy, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.NaquadahAlloy, 3), + ItemList.Electric_Motor_ZPM.get(2), + ItemList.Electric_Piston_ZPM.get(1), + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 2 }, + new Object[] { OrePrefixes.circuit.get(Materials.Master), 4 }, + new Object[] { OrePrefixes.circuit.get(Materials.Elite), 8 }, + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 6)) + .itemOutputs(ItemList.Robot_Arm_ZPM.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 1152), Materials.Lubricant.getFluid(750)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_LuV) + .addTo(AssemblyLine); + + // UV Robot Arm + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Robot_Arm_ZPM.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Neutronium, 4), + GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Neutronium, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Neutronium, 3), + ItemList.Electric_Motor_UV.get(2), + ItemList.Electric_Piston_UV.get(1), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 2 }, + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 4 }, + new Object[] { OrePrefixes.circuit.get(Materials.Master), 8 }, + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.NaquadahAlloy, 6)) + .itemOutputs(ItemList.Robot_Arm_UV.get(1)) + .fluidInputs( + Materials.Naquadria.getMolten(1296), + new FluidStack(solderIndalloy, 2304), + Materials.Lubricant.getFluid(2000)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + } + + // Emitters + { + // LuV Emitter + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Emitter_IV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.HSSS, 1), + ItemList.Electric_Motor_LuV.get(1), + GT_OreDictUnificator.get(OrePrefixes.stick, LuVMat, 8), + ItemList.QuantumStar.get(1), + new Object[] { OrePrefixes.circuit.get(Materials.Master), 4 }, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gallium, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gallium, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gallium, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.YttriumBariumCuprate, 7)) + .itemOutputs(ItemList.Emitter_LuV.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 576)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_IV) + .addTo(AssemblyLine); + + // ZPM Emitter + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Emitter_LuV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 1), + ItemList.Electric_Motor_ZPM.get(1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Osmiridium, 8), + ItemList.QuantumStar.get(2), + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 4 }, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Trinium, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Trinium, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Trinium, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 7)) + .itemOutputs(ItemList.Emitter_ZPM.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 1152)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_LuV) + .addTo(AssemblyLine); + + // UV Emitter + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Emitter_ZPM.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 1), + ItemList.Electric_Motor_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Neutronium, 8), + ItemList.Gravistar.get(4), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4 }, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadria, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadria, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadria, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.NaquadahAlloy, 7)) + .itemOutputs(ItemList.Emitter_UV.get(1)) + .fluidInputs(Materials.Naquadria.getMolten(1296), new FluidStack(solderIndalloy, 2304)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + } + + // Sensors + { + // LuV Sensor + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Sensor_IV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.HSSS, 1), + ItemList.Electric_Motor_LuV.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, LuVMat, 8), + ItemList.QuantumStar.get(1), + new Object[] { OrePrefixes.circuit.get(Materials.Master), 4 }, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gallium, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gallium, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gallium, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.YttriumBariumCuprate, 7)) + .itemOutputs(ItemList.Sensor_LuV.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 576)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_IV) + .addTo(AssemblyLine); + + // ZPM Sensor + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Sensor_LuV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 1), + ItemList.Electric_Motor_ZPM.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Osmiridium, 8), + ItemList.QuantumStar.get(2), + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 4 }, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Trinium, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Trinium, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Trinium, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 7)) + .itemOutputs(ItemList.Sensor_ZPM.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 1152)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_LuV) + .addTo(AssemblyLine); + + // UV Sensor + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Sensor_ZPM.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 1), + ItemList.Electric_Motor_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 8), + ItemList.Gravistar.get(4), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4 }, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadria, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadria, 64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadria, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.NaquadahAlloy, 7)) + .itemOutputs(ItemList.Sensor_UV.get(1)) + .fluidInputs(Materials.Naquadria.getMolten(1296), new FluidStack(solderIndalloy, 2304)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + } + + // Field Generators + { + // LuV Field Generator + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Field_Generator_IV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.HSSS, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.HSSS, 6), + ItemList.QuantumStar.get(2), + ItemList.Emitter_LuV.get(4), + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 4 }, + GT_OreDictUnificator.get(OrePrefixes.wireFine, LuVMat, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, LuVMat, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, LuVMat, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, LuVMat, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.YttriumBariumCuprate, 8)) + .itemOutputs(ItemList.Field_Generator_LuV.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 576)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_IV) + .addTo(AssemblyLine); + + // ZPM Field Generator + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Field_Generator_LuV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NaquadahAlloy, 6), + ItemList.QuantumStar.get(2), + ItemList.Emitter_ZPM.get(4), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4 }, + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Europium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Europium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Europium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Europium, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 8)) + .itemOutputs(ItemList.Field_Generator_ZPM.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 1152)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_LuV) + .addTo(AssemblyLine); + + // UV Field Generator + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Field_Generator_ZPM.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 6), + ItemList.Gravistar.get(2), + ItemList.Emitter_UV.get(4), + new Object[] { OrePrefixes.circuit.get(Materials.Infinite), 4 }, + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Americium, 64), + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.NaquadahAlloy, 8)) + .itemOutputs(ItemList.Field_Generator_UV.get(1)) + .fluidInputs(Materials.Naquadria.getMolten(1296), new FluidStack(solderIndalloy, 2304)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + } + + // Energy Hatches + { + // LuV Energy Hatch + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Hatch_Energy_IV.get(1)) + .metadata(RESEARCH_TIME, 60 * MINUTES) + .itemInputs( + ItemList.Hull_LuV.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 2), + ItemList.Circuit_Chip_UHPIC.get(2), + new Object[] { OrePrefixes.circuit.get(Materials.Master), 2 }, + ItemList.LuV_Coil.get(2), + new ItemStack[] { ItemList.Reactor_Coolant_He_3.get(1), ItemList.Reactor_Coolant_NaK_3.get(1), + ItemList.Reactor_Coolant_Sp_1.get(1) }, + new ItemStack[] { ItemList.Reactor_Coolant_He_3.get(1), ItemList.Reactor_Coolant_NaK_3.get(1), + ItemList.Reactor_Coolant_Sp_1.get(1) }, + ItemList.Electric_Pump_LuV.get(1)) + .itemOutputs(ItemList.Hatch_Energy_LuV.get(1)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("ic2coolant"), 2000), + new FluidStack(solderIndalloy, 720)) + .duration(20 * SECONDS) + .eut((int) TierEU.RECIPE_LuV) + .addTo(AssemblyLine); + + // ZPM Energy Hatch + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Hatch_Energy_LuV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + ItemList.Hull_ZPM.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt02, Materials.SuperconductorZPM, 2), + ItemList.Circuit_Chip_NPIC.get(2), + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 2 }, + ItemList.ZPM_Coil.get(2), + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + ItemList.Electric_Pump_ZPM.get(1)) + .itemOutputs(ItemList.Hatch_Energy_ZPM.get(1)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("ic2coolant"), 4000), + new FluidStack(solderIndalloy, 1440)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + + // UV Energy Hatch + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Hatch_Energy_ZPM.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + ItemList.Hull_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt02, Materials.SuperconductorUV, 2), + ItemList.Circuit_Chip_PPIC.get(2), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 2 }, + ItemList.UV_Coil.get(2), + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + ItemList.Electric_Pump_UV.get(1)) + .itemOutputs(ItemList.Hatch_Energy_UV.get(1)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("ic2coolant"), 8000), + new FluidStack(solderIndalloy, 2880)) + .duration(40 * SECONDS) + .eut((int) TierEU.RECIPE_UV) + .addTo(AssemblyLine); + } + + // Dynamo Hatches + { + // LuV Dynamo Hatch + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Hatch_Dynamo_IV.get(1)) + .metadata(RESEARCH_TIME, 60 * MINUTES) + .itemInputs( + ItemList.Hull_LuV.get(1), + GT_OreDictUnificator.get( + OrePrefixes.spring, + Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, + 2), + ItemList.Circuit_Chip_UHPIC.get(2), + new Object[] { OrePrefixes.circuit.get(Materials.Master), 2 }, + ItemList.LuV_Coil.get(2), + new ItemStack[] { ItemList.Reactor_Coolant_He_3.get(1), ItemList.Reactor_Coolant_NaK_3.get(1), + ItemList.Reactor_Coolant_Sp_1.get(1) }, + new ItemStack[] { ItemList.Reactor_Coolant_He_3.get(1), ItemList.Reactor_Coolant_NaK_3.get(1), + ItemList.Reactor_Coolant_Sp_1.get(1) }, + ItemList.Electric_Pump_LuV.get(1)) + .itemOutputs(ItemList.Hatch_Dynamo_LuV.get(1)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("ic2coolant"), 2000), + new FluidStack(solderIndalloy, 720)) + .duration(20 * SECONDS) + .eut((int) TierEU.RECIPE_LuV) + .addTo(AssemblyLine); + + // ZPM Dynamo Hatch + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Hatch_Dynamo_LuV.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + ItemList.Hull_ZPM.get(1), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 4), + ItemList.Circuit_Chip_NPIC.get(2), + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 2 }, + ItemList.ZPM_Coil.get(2), + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + ItemList.Electric_Pump_ZPM.get(1)) + .itemOutputs(ItemList.Hatch_Dynamo_ZPM.get(1)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("ic2coolant"), 4000), + new FluidStack(solderIndalloy, 1440)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + + // UV Dynamo Hatch + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Hatch_Dynamo_ZPM.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + ItemList.Hull_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Longasssuperconductornameforuvwire, 4), + ItemList.Circuit_Chip_PPIC.get(2), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 2 }, + ItemList.UV_Coil.get(2), + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + new ItemStack[] { ItemList.Reactor_Coolant_He_6.get(1), ItemList.Reactor_Coolant_NaK_6.get(1), + ItemList.Reactor_Coolant_Sp_2.get(1) }, + ItemList.Electric_Pump_UV.get(1)) + .itemOutputs(ItemList.Hatch_Dynamo_UV.get(1)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("ic2coolant"), 8000), + new FluidStack(solderIndalloy, 2880)) + .duration(40 * SECONDS) + .eut((int) TierEU.RECIPE_UV) + .addTo(AssemblyLine); + } + + // Fusion Controller + { + // mkI + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + ItemList.Casing_Fusion_Coil.get(1), + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.NaquadahAlloy, 4), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Osmiridium, 4), + ItemList.Field_Generator_LuV.get(2), + ItemList.Circuit_Wafer_UHPIC.get(32), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 32)) + .itemOutputs(ItemList.FusionComputer_LuV.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 2880), Materials.VanadiumGallium.getMolten(1152)) + .duration(50 * SECONDS) + .eut((int) TierEU.RECIPE_LuV) + .addTo(AssemblyLine); + + // mkII + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, GT_OreDictUnificator.get(OrePrefixes.block, Materials.Europium, 1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + ItemList.Casing_Fusion_Coil.get(1), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Europium, 4), + ItemList.Field_Generator_ZPM.get(2), + ItemList.Circuit_Wafer_PPIC.get(48), + GT_OreDictUnificator.get(OrePrefixes.wireGt02, Materials.SuperconductorZPM, 32)) + .itemOutputs(ItemList.FusionComputer_ZPMV.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 2880), Materials.NiobiumTitanium.getMolten(1152)) + .duration(50 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(AssemblyLine); + + // mkIII + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, GT_OreDictUnificator.get(OrePrefixes.block, Materials.Americium, 1)) + .metadata(RESEARCH_TIME, 6 * HOURS) + .itemInputs( + ItemList.Casing_Fusion_Coil.get(1), + new Object[] { OrePrefixes.circuit.get(Materials.Infinite), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.Infinite), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.Infinite), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.Infinite), 1 }, + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Americium, 4), + ItemList.Field_Generator_UV.get(2), + ItemList.Circuit_Wafer_QPIC.get(64), + GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorUV, 32)) + .itemOutputs(ItemList.FusionComputer_UV.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 2880), Materials.ElectrumFlux.getMolten(1152)) + .duration(50 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + } + // Energy Module + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Energy_LapotronicOrb2.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 16), + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, + ItemList.Energy_LapotronicOrb2.get(8), + ItemList.Field_Generator_LuV.get(2), + ItemList.Circuit_Wafer_SoC2.get(64), + ItemList.Circuit_Wafer_SoC2.get(64), + ItemList.Circuit_Parts_DiodeASMD.get(8), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 32)) + .itemOutputs(ItemList.Energy_Module.get(1)) + .fluidInputs( + new FluidStack(solderIndalloy, 2880), + new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .addTo(AssemblyLine); + + // Energy Cluster + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Energy_Module.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 32), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + ItemList.Energy_Module.get(8), + ItemList.Field_Generator_ZPM.get(2), + ItemList.Circuit_Wafer_HPIC.get(64), + ItemList.Circuit_Wafer_HPIC.get(64), + ItemList.Circuit_Parts_DiodeASMD.get(16), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy, 32)) + .itemOutputs(ItemList.Energy_Cluster.get(1)) + .fluidInputs( + new FluidStack(solderIndalloy, 2880), + new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(200000) + .addTo(AssemblyLine); + + // Integrated Ore Factory + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Machine_IV_OreWasher.get(1)) + .metadata(RESEARCH_TIME, 6 * HOURS) + .itemInputs( + ItemList.Hull_MAX.get(1), + ItemList.Electric_Motor_UHV.get(32), + ItemList.Electric_Piston_UHV.get(8), + ItemList.Electric_Pump_UHV.get(16), + ItemList.Conveyor_Module_UHV.get(8), + ItemList.Robot_Arm_UHV.get(8), + new Object[] { OrePrefixes.circuit.get(Materials.Bio), 4 }, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.Duranium, 32), + GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.NaquadahAlloy, 32) }, + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Polybenzimidazole, 64), + new ItemStack[] { ItemList.Component_Grinder_Tungsten.get(64), + ItemList.Component_Grinder_Diamond.get(64) }, + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.StainlessSteel, 32), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Chrome, 16)) + .itemOutputs(ItemList.Ore_Processor.get(1)) + .fluidInputs(new FluidStack(solderIndalloy, 2880), Materials.Naquadria.getMolten(1440)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(AssemblyLine); + + // Drone T2 + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.TierdDrone0.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.NaquadahAlloy, 16), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4 }, + NewHorizonsCoreMod.isModLoaded() + ? GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.HeavyDutyRocketEngineTier3", 4) + : ItemList.Casing_Firebox_TungstenSteel.get(16), + ItemList.Large_Fluid_Cell_Osmium.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.MysteriousCrystal, 1), + ItemList.Emitter_ZPM.get(4), + ItemList.Energy_Module.get(1), + ItemList.Cover_WirelessNeedsMaintainance.get(1)) + .itemOutputs(ItemList.TierdDrone1.get(4)) + .fluidInputs( + new FluidStack(solderIndalloy, 576), + FluidRegistry.getFluidStack(GTPlusPlus.isModLoaded() ? "fluid.rocketfuelmixc" : "nitrofuel", 4000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(AssemblyLine); + + // Drone T3 + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.TierdDrone1.get(1)) + .metadata(RESEARCH_TIME, 8 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Infinity, 16), + new Object[] { OrePrefixes.circuit.get(Materials.Bio), 4 }, + ItemList.Field_Generator_UV.get(16), + ItemList.Gravistar.get(8), + ItemList.Emitter_UV.get(4), + TecTech.isModLoaded() ? GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 16, 15497) + : ItemList.Hatch_AutoMaintenance.get(64), + ItemList.Energy_Cluster.get(8), + ItemList.Cover_WirelessNeedsMaintainance.get(1)) + .itemOutputs(ItemList.TierdDrone2.get(1)) + .fluidInputs( + new FluidStack(solderIndalloy, 144000), + GTPlusPlus.isModLoaded() ? FluidRegistry.getFluidStack("molten.ethylcyanoacrylatesuperglue", 2000) + : Materials.AdvancedGlue.getFluid(256000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(AssemblyLine); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java new file mode 100644 index 0000000000..519d584136 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java @@ -0,0 +1,234 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class AutoclaveRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Energium_Dust.get(9L)) + .itemOutputs(ItemList.IC2_EnergyCrystal.get(1L)) + .outputChances(10000) + .fluidInputs(Materials.EnergeticAlloy.getMolten(288)) + .duration(30 * SECONDS) + .eut(256) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Energium_Dust.get(9L)) + .itemOutputs(ItemList.IC2_EnergyCrystal.get(1L)) + .outputChances(10000) + .fluidInputs(Materials.ConductiveIron.getMolten(576)) + .duration(60 * SECONDS) + .eut(256) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 0)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 10)) + .outputChances(8000) + .fluidInputs(Materials.Water.getFluid(200L)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 600)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 11)) + .outputChances(8000) + .fluidInputs(Materials.Water.getFluid(200L)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 1200)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 12)) + .outputChances(8000) + .fluidInputs(Materials.Water.getFluid(200L)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 0)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 10)) + .outputChances(9000) + .fluidInputs(GT_ModHandler.getDistilledWater(100L)) + .duration(50 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 600)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 11)) + .outputChances(9000) + .fluidInputs(GT_ModHandler.getDistilledWater(100L)) + .duration(50 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 1200)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 12)) + .outputChances(9000) + .fluidInputs(GT_ModHandler.getDistilledWater(100L)) + .duration(50 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 0)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 10)) + .outputChances(10000) + .fluidInputs(Materials.Void.getMolten(36L)) + .duration(25 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 600)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 11)) + .outputChances(10000) + .fluidInputs(Materials.Void.getMolten(36L)) + .duration(25 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 1200)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 12)) + .outputChances(10000) + .fluidInputs(Materials.Void.getMolten(36L)) + .duration(25 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 32)) + .itemOutputs(GT_ModHandler.getIC2Item("carbonFiber", 64L)) + .outputChances(10000) + .fluidInputs(Materials.Polybenzimidazole.getMolten(36L)) + .duration(7 * SECONDS + 10 * TICKS) + .eut((int) TierEU.RECIPE_EV) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 64)) + .itemOutputs(GT_ModHandler.getIC2Item("carbonFiber", 64L)) + .outputChances(10000) + .fluidInputs(Materials.Epoxid.getMolten(144L)) + .duration(15 * SECONDS) + .eut((int) TierEU.RECIPE_HV) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 64)) + .itemOutputs(GT_ModHandler.getIC2Item("carbonFiber", 32L)) + .outputChances(10000) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(288L)) + .duration(20 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 64)) + .itemOutputs(GT_ModHandler.getIC2Item("carbonFiber", 16L)) + .outputChances(10000) + .fluidInputs(Materials.Plastic.getMolten(576L)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherStar, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherStar, 1)) + .outputChances(3333) + .fluidInputs(Materials.UUMatter.getFluid(576L)) + .duration(60 * MINUTES) + .eut((int) TierEU.RECIPE_HV) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(ItemList.QuantumStar.get(1L))) + .itemOutputs(ItemList.Gravistar.get(1L)) + .outputChances(10000) + .fluidInputs(Materials.Neutronium.getMolten(288)) + .duration(24 * SECONDS) + .eut((int) TierEU.RECIPE_IV) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(ItemList.Gravistar.get(16L))) + .itemOutputs(ItemList.NuclearStar.get(1L)) + .outputChances(10000) + .fluidInputs(Materials.Infinity.getMolten(288)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SiliconDioxide.getDust(1)) + .itemOutputs(Materials.Quartzite.getGems(1)) + .outputChances(750) + .fluidInputs(Materials.Water.getFluid(200L)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SiliconDioxide.getDust(1)) + .itemOutputs(Materials.Quartzite.getGems(1)) + .outputChances(1000) + .fluidInputs(GT_ModHandler.getDistilledWater(100L)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SiliconDioxide.getDust(1)) + .itemOutputs(Materials.Quartzite.getGems(1)) + .outputChances(10000) + .fluidInputs(Materials.Void.getMolten(36L)) + .duration(50 * SECONDS) + .eut(24) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3)) + .outputChances(7500) + .fluidInputs(Materials.Water.getFluid(1000L)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3)) + .outputChances(9000) + .fluidInputs(GT_ModHandler.getDistilledWater(1000L)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(autoclaveRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java new file mode 100644 index 0000000000..192422437a --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java @@ -0,0 +1,330 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class BenderRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Aluminium, 20L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 48L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 32L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Bronze, 32L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 24L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.StainlessSteel, 16L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Titanium, 12L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 9L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iridium, 6L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Osmium, 3L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Osmiridium, 2L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Obsidian, 24L), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(ItemList.RC_Rail_Reinforced.get(64L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.StainlessSteel, 12L), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(ItemList.RC_Rail_Reinforced.get(64L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 6L), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(ItemList.RC_Rail_Reinforced.get(64L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iridium, 3L), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(ItemList.RC_Rail_Reinforced.get(64L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Osmium, 1L), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(ItemList.RC_Rail_Reinforced.get(64L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Aluminium, 20L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.RC_Rebar.get(64L)) + .duration(10 * SECONDS) + .eut(200) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 48L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.RC_Rebar.get(64L)) + .duration(10 * SECONDS) + .eut(200) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 24L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.RC_Rebar.get(64L)) + .duration(10 * SECONDS) + .eut(200) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Bronze, 32L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.RC_Rebar.get(64L)) + .duration(10 * SECONDS) + .eut(200) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 16L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.RC_Rebar.get(64L)) + .duration(10 * SECONDS) + .eut(200) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.StainlessSteel, 12L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.RC_Rebar.get(64L)) + .duration(10 * SECONDS) + .eut(200) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Titanium, 8), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.RC_Rebar.get(64L)) + .duration(10 * SECONDS) + .eut(200) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 6L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.RC_Rebar.get(64L)) + .duration(10 * SECONDS) + .eut(200) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iridium, 4L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.RC_Rebar.get(64L)) + .duration(10 * SECONDS) + .eut(200) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Osmium, 2L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.RC_Rebar.get(64L)) + .duration(10 * SECONDS) + .eut(200) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Mixed_Metal_Ingot.get(1L), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Advanced, 1L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 2L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.Cell_Empty.get(1L)) + .duration(10 * SECONDS) + .eut(8) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 1L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.Cell_Empty.get(1L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Polytetrafluoroethylene, 1L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(ItemList.Cell_Empty.get(4L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 3L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(new ItemStack(Items.bucket, 1, 0)) + .duration(10 * SECONDS) + .eut(4) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 3L), + GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(new ItemStack(Items.bucket, 1, 0)) + .duration(10 * SECONDS) + .eut(4) + .addTo(benderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Iron, 2L), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_ModHandler.getIC2Item("fuelRod", 1L)) + .duration(5 * SECONDS) + .eut(8) + .addTo(benderRecipes); + + if (GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Tin, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Tin, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.IC2_Food_Can_Empty.get(1L)) + .duration(20 * TICKS) + .eut((int) TierEU.RECIPE_HV) + .addTo(benderRecipes); + } + + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java new file mode 100644 index 0000000000..b05f585950 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java @@ -0,0 +1,690 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.BartWorks; +import static gregtech.api.enums.Mods.GTNHLanthanides; +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.primitiveBlastRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.ADDITIVE_AMOUNT; +import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.GT_Mod; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsKevlar; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class BlastFurnaceRecipes implements Runnable { + + @Override + public void run() { + this.registerBlastFurnaceRecipes(); + this.registerPrimitiveBlastFurnaceRecipes(); + } + + public void registerBlastFurnaceRecipes() { + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Gypsum.getDust(8)) + .itemOutputs(Materials.Quicklime.getDust(1)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1500)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_HV) + .metadata(COIL_HEAT, 3200) + .addTo(blastFurnaceRecipes); + + // Carbothermic Reduction + // Depend on real amount except real ores + int outputIngotAmount = GT_Mod.gregtechproxy.mMixedOreOnlyYieldsTwoThirdsOfPureOre ? 2 : 3; + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.RoastedCopper.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Copper.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.RoastedAntimony.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Antimony.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.RoastedIron.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.RoastedNickel.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Nickel.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.RoastedZinc.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Zinc.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.RoastedCobalt.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Cobalt.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.RoastedArsenic.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Arsenic.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.RoastedLead.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Lead.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Malachite.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Copper.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(3000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.BandedIron.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDustTiny(2)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Magnetite.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.YellowLimonite.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.BrownLimonite.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.BasalticMineralSand.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.GraniticMineralSand.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Cassiterite.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Tin.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CassiteriteSand.getDust(2), Materials.Carbon.getDust(1)) + .itemOutputs(Materials.Tin.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SiliconDioxide.getDust(3), Materials.Carbon.getDust(2)) + .itemOutputs(Materials.Silicon.getIngots(1), Materials.Ash.getDust(1)) + .outputChances(10000, 1111) + .fluidOutputs(Materials.CarbonMonoxide.getGas(2000)) + .duration(4 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + if (GT_Mod.gregtechproxy.mMixedOreOnlyYieldsTwoThirdsOfPureOre) { + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CupricOxide.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Copper.getIngots(1), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Malachite.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Copper.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(3000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.AntimonyTrioxide.getDust(5), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Antimony.getIngots(2), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(3000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.BandedIron.getDust(5), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Iron.getIngots(2), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Magnetite.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.YellowLimonite.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.BrownLimonite.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.BasalticMineralSand.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.GraniticMineralSand.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Iron.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Cassiterite.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Tin.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CassiteriteSand.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Tin.getIngots(outputIngotAmount), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Garnierite.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Nickel.getIngots(1), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CobaltOxide.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Cobalt.getIngots(1), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.ArsenicTrioxide.getDust(5), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Arsenic.getIngots(2), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Massicot.getDust(2), Materials.Carbon.getDustSmall(4)) + .itemOutputs(Materials.Lead.getIngots(1), Materials.Ash.getDust(1)) + .outputChances(10000, 2222) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 32), + ItemList.GalliumArsenideCrystalSmallPart.get(1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Circuit_Silicon_Ingot.get(1)) + .duration(7 * MINUTES + 30 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1784) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 64), + ItemList.GalliumArsenideCrystalSmallPart.get(2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 8), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Circuit_Silicon_Ingot2.get(1)) + .fluidInputs(Materials.Nitrogen.getGas(8000)) + .duration(10 * MINUTES) + .eut((int) TierEU.RECIPE_HV) + .metadata(COIL_HEAT, 2484) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.SiliconSG, 16), + ItemList.GalliumArsenideCrystal.get(1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Circuit_Silicon_Ingot3.get(1)) + .fluidInputs(Materials.Argon.getGas(8000)) + .duration(12 * MINUTES + 30 * SECONDS) + .eut((int) TierEU.RECIPE_EV) + .metadata(COIL_HEAT, 4484) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.SiliconSG, 32), + ItemList.GalliumArsenideCrystal.get(2), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Europium, 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Circuit_Silicon_Ingot4.get(1)) + .fluidInputs(Materials.Radon.getGas(8000)) + .duration(15 * MINUTES) + .eut((int) TierEU.RECIPE_IV) + .metadata(COIL_HEAT, 6484) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.SiliconSG, 64), + ItemList.GalliumArsenideCrystal.get(4), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Americium, 4), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.Circuit_Silicon_Ingot5.get(1)) + .fluidInputs(Materials.Radon.getGas(16000)) + .duration(17 * MINUTES + 30 * SECONDS) + .eut((int) TierEU.RECIPE_LuV) + .metadata(COIL_HEAT, 9000) + .addTo(blastFurnaceRecipes); + + // CaH2 + 2Si = CaSi2 + 2H + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calciumhydride, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CalciumDisilicide, 3)) + .fluidOutputs(Materials.Hydrogen.getGas(2000)) + .duration(15 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1273) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SuperconductorUEVBase, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUEVBase, 1)) + .duration(16 * MINUTES + 23 * SECONDS) + .eut((int) TierEU.RECIPE_UV) + .metadata(COIL_HEAT, 11800) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SuperconductorUEVBase, 1), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUEVBase, 1)) + .fluidInputs(Materials.Radon.getGas(1000)) + .duration(7 * MINUTES + 22 * SECONDS + 7 * TICKS) + .eut((int) TierEU.RECIPE_UV) + .metadata(COIL_HEAT, 11800) + .addTo(blastFurnaceRecipes); + + // 0.45 * 19660 = 8847 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SuperconductorUIVBase, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUIVBase, 1)) + .duration(16 * MINUTES + 23 * SECONDS) + .eut((int) TierEU.RECIPE_UHV) + .metadata(COIL_HEAT, 12700) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SuperconductorUIVBase, 1), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUIVBase, 1)) + .fluidInputs(Materials.Radon.getGas(1000)) + .duration(7 * MINUTES + 22 * SECONDS + 7 * TICKS) + .eut((int) TierEU.RECIPE_UHV) + .metadata(COIL_HEAT, 12700) + .addTo(blastFurnaceRecipes); + + // 0.45 * 19660 = 8847 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SuperconductorUMVBase, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUMVBase, 1)) + .duration(16 * MINUTES + 23 * SECONDS) + .eut((int) TierEU.RECIPE_UEV) + .metadata(COIL_HEAT, 13600) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SuperconductorUMVBase, 1), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUMVBase, 1)) + .fluidInputs(Materials.Radon.getGas(1000)) + .duration(7 * MINUTES + 22 * SECONDS + 7 * TICKS) + .eut((int) TierEU.RECIPE_UEV) + .metadata(COIL_HEAT, 13600) + .addTo(blastFurnaceRecipes); + + // 0.45 * 19660 = 8847 + // CaO + 3C = CaC2 + CO + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Quicklime.getDust(2), Materials.Carbon.getDust(3)) + .itemOutputs(MaterialsKevlar.CalciumCarbide.getDust(3)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_HV) + .metadata(COIL_HEAT, 2573) + .addTo(blastFurnaceRecipes); + + // Ni + 3Al = NiAl3 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Nickel.getDust(1), Materials.Aluminium.getDust(3)) + .itemOutputs(MaterialsKevlar.NickelAluminide.getIngots(4)) + .duration(45 * SECONDS) + .eut((int) TierEU.RECIPE_HV) + .metadata(COIL_HEAT, 1688) + .addTo(blastFurnaceRecipes); + + ItemStack[] tSiliconDioxide = new ItemStack[] { Materials.SiliconDioxide.getDust(3), + Materials.NetherQuartz.getDust(3), Materials.CertusQuartz.getDust(3), Materials.Quartzite.getDust(6) }; + + // Roasting + + for (ItemStack silicon : tSiliconDioxide) { + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chalcopyrite.getDust(1), silicon) + .itemOutputs(Materials.RoastedCopper.getDust(1), Materials.Ferrosilite.getDust(5)) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Tetrahedrite.getDust(1)) + .itemOutputs(Materials.RoastedCopper.getDust(1), Materials.RoastedAntimony.getDustTiny(3)) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Pyrite.getDust(1)) + .itemOutputs(Materials.RoastedIron.getDust(1), Materials.Ash.getDust(1)) + .outputChances(10000, 1111) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Pentlandite.getDust(1)) + .itemOutputs(Materials.RoastedNickel.getDust(1), Materials.Ash.getDust(1)) + .outputChances(10000, 1111) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sphalerite.getDust(1)) + .itemOutputs(Materials.RoastedZinc.getDust(1), Materials.Ash.getDust(1)) + .outputChances(10000, 1111) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Cobaltite.getDust(1)) + .itemOutputs(Materials.RoastedCobalt.getDust(1), Materials.RoastedArsenic.getDust(1)) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Stibnite.getDust(1)) + .itemOutputs(Materials.RoastedAntimony.getDust(1), Materials.Ash.getDust(1)) + .outputChances(10000, 1111) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(1500)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Galena.getDust(1)) + .itemOutputs(Materials.RoastedLead.getDust(1), Materials.Ash.getDust(1)) + .outputChances(10000, 1111) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_MV) + .metadata(COIL_HEAT, 1200) + .addTo(blastFurnaceRecipes); + + if (GTNHLanthanides.isModLoaded() && GTPlusPlus.isModLoaded()) { + + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsUEVplus.TranscendentMetal.getDust(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, MaterialsUEVplus.TranscendentMetal, 1)) + .fluidInputs(Materials.Tungsten.getMolten(144)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("molten.celestialtungsten"), 72)) + .duration(3 * MINUTES) + .eut(32000000) + .metadata(COIL_HEAT, 11701) + .addTo(blastFurnaceRecipes); + + // Rh + 3Cl = RhCl3 + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 1L, 78), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(MaterialsKevlar.RhodiumChloride.getDust(4)) + .fluidInputs(Materials.Chlorine.getGas(3000)) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_HV) + .metadata(COIL_HEAT, 573) + .addTo(blastFurnaceRecipes); + } + } + + public void registerPrimitiveBlastFurnaceRecipes() { + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Iron.getIngots(1)) + .itemOutputs(Materials.Steel.getIngots(1)) + .duration(6 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 4) + .addTo(primitiveBlastRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Iron.getDust(1)) + .itemOutputs(Materials.Steel.getIngots(1)) + .duration(6 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 4) + .addTo(primitiveBlastRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Iron.getBlocks(1)) + .itemOutputs(Materials.Steel.getIngots(9)) + .duration(54 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 36) + .addTo(primitiveBlastRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Steel.getDust(1)) + .itemOutputs(Materials.Steel.getIngots(1)) + .duration(6 * MINUTES) + .metadata(ADDITIVE_AMOUNT, 2) + .addTo(primitiveBlastRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/BreweryRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/BreweryRecipes.java new file mode 100644 index 0000000000..7538b50c6c --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/BreweryRecipes.java @@ -0,0 +1,562 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.recipe.RecipeMaps.brewingRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class BreweryRecipes implements Runnable { + + @Override + public void run() { + ItemStack[] brewingItems = new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Talc, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Soapstone, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L) }; + + for (ItemStack item : brewingItems) { + // creosote to lubricant recipes + GT_Values.RA.stdBuilder() + .itemInputs(item) + .fluidInputs(getFluidStack("creosote", 750)) + .fluidOutputs(getFluidStack("lubricant", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + // seed oil to lubricant recipes + GT_Values.RA.stdBuilder() + .itemInputs(item) + .fluidInputs(getFluidStack("seedoil", 750)) + .fluidOutputs(getFluidStack("lubricant", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + // lubricant recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(item) + .fluidInputs(getFluidStack("oil", 750)) + .fluidOutputs(getFluidStack("lubricant", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(item) + .fluidInputs(getFluidStack("liquid_light_oil", 750)) + .fluidOutputs(getFluidStack("lubricant", 500)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(item) + .fluidInputs(getFluidStack("liquid_medium_oil", 750)) + .fluidOutputs(getFluidStack("lubricant", 500)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(item) + .fluidInputs(getFluidStack("liquid_heavy_oil", 500)) + .fluidOutputs(getFluidStack("lubricant", 750)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(brewingRecipes); + } + } + + // water based recipe input + { + Fluid[] waterArray; + + /* + * if IC2 isn't loaded, getDistilledWater returns the base minecraft water, so no need to do the recipe + * loading twice. + */ + if (IndustrialCraft2.isModLoaded()) { + waterArray = new Fluid[] { FluidRegistry.WATER, GT_ModHandler.getDistilledWater(1L) + .getFluid() }; + } else { + waterArray = new Fluid[] { FluidRegistry.WATER }; + } + for (Fluid tFluid : waterArray) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Milk, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("milk", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.wheatyjuice", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Potassium, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mineralwater", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mineralwater", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mineralwater", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mineralwater", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.thick", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mundane", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mundane", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mundane", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.magma_cream, 1, 0)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mundane", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.fermented_spider_eye, 1, 0)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mundane", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.spider_eye, 1, 0)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mundane", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.speckled_melon, 1, 0)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mundane", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.ghast_tear, 1, 0)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.mundane", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.nether_wart, 1, 0)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.awkward", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.red_mushroom, 1, 0)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.poison", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.fish, 1, 3)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.poison.strong", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Grin_Powder.get(1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.poison.strong", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.reeds, 1, 0)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.reedwater", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.apple, 1, 0)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.applejuice", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.golden_apple, 1, 0)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.goldenapplejuice", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.golden_apple, 1, 1)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.idunsapplejuice", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Hops.get(1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.hopsjuice", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.darkcoffee", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)) + .fluidInputs(new FluidStack(tFluid, 750)) + .fluidOutputs(getFluidStack("potion.chillysauce", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + } + } + + // potion brewing 1 + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)) + .fluidInputs(getFluidStack("potion.chillysauce", 750)) + .fluidOutputs(getFluidStack("potion.hotsauce", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)) + .fluidInputs(getFluidStack("potion.hotsauce", 750)) + .fluidOutputs(getFluidStack("potion.diabolosauce", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)) + .fluidInputs(getFluidStack("potion.diabolosauce", 750)) + .fluidOutputs(getFluidStack("potion.diablosauce", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L)) + .fluidInputs(getFluidStack("milk", 750)) + .fluidOutputs(getFluidStack("potion.coffee", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) + .fluidInputs(getFluidStack("milk", 750)) + .fluidOutputs(getFluidStack("potion.darkchocolatemilk", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Hops.get(1L)) + .fluidInputs(getFluidStack("potion.wheatyjuice", 750)) + .fluidOutputs(getFluidStack("potion.wheatyhopsjuice", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L)) + .fluidInputs(getFluidStack("potion.hopsjuice", 750)) + .fluidOutputs(getFluidStack("potion.wheatyhopsjuice", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) + .fluidInputs(getFluidStack("potion.tea", 750)) + .fluidOutputs(getFluidStack("potion.sweettea", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) + .fluidInputs(getFluidStack("potion.coffee", 750)) + .fluidOutputs(getFluidStack("potion.cafeaulait", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) + .fluidInputs(getFluidStack("potion.cafeaulait", 750)) + .fluidOutputs(getFluidStack("potion.laitaucafe", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) + .fluidInputs(getFluidStack("potion.lemonjuice", 750)) + .fluidOutputs(getFluidStack("potion.lemonade", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) + .fluidInputs(getFluidStack("potion.darkcoffee", 750)) + .fluidOutputs(getFluidStack("potion.darkcafeaulait", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) + .fluidInputs(getFluidStack("potion.darkchocolatemilk", 750)) + .fluidOutputs(getFluidStack("potion.chocolatemilk", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L)) + .fluidInputs(getFluidStack("potion.tea", 750)) + .fluidOutputs(getFluidStack("potion.icetea", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L)) + .fluidInputs(getFluidStack("potion.lemonade", 750)) + .fluidOutputs(getFluidStack("potion.cavejohnsonsgrenadejuice", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) + .fluidInputs(getFluidStack("potion.mundane", 750)) + .fluidOutputs(getFluidStack("potion.purpledrink", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.fermented_spider_eye, 1, 0)) + .fluidInputs(getFluidStack("potion.mundane", 750)) + .fluidOutputs(getFluidStack("potion.weakness", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.fermented_spider_eye, 1, 0)) + .fluidInputs(getFluidStack("potion.thick", 750)) + .fluidOutputs(getFluidStack("potion.weakness", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + } + + // biomass recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Forestry.ID, "fertilizerBio", 4L, 0)) + .fluidInputs(GT_ModHandler.getWater(750L)) + .fluidOutputs(getFluidStack("biomass", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Forestry.ID, "mulch", 16L, 0)) + .fluidInputs(GT_ModHandler.getDistilledWater(750L)) + .fluidOutputs(getFluidStack("biomass", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Forestry.ID, "mulch", 8L, 0)) + .fluidInputs(getFluidStack("juice", 500)) + .fluidOutputs(getFluidStack("biomass", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + } + + // ic2 biomass recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("biochaff", 1)) + .fluidInputs(GT_ModHandler.getWater(1000L)) + .fluidOutputs(getFluidStack("ic2biomass", 1000)) + .duration(8 * SECONDS + 10 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + // Would add 2 different amount of water input if IC2 isn't loaded + if (IndustrialCraft2.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("biochaff", 1)) + .fluidInputs(GT_ModHandler.getDistilledWater(500L)) + .fluidOutputs(getFluidStack("ic2biomass", 1000)) + .duration(10 * TICKS) + .eut((int) TierEU.RECIPE_LV) + .addTo(brewingRecipes); + } + } + + // potion brewing 2 + { + this.addPotionRecipes("waterbreathing", new ItemStack(Items.fish, 1, 3)); + this.addPotionRecipes("fireresistance", new ItemStack(Items.magma_cream, 1, 0)); + this.addPotionRecipes("nightvision", new ItemStack(Items.golden_carrot, 1, 0)); + this.addPotionRecipes("weakness", new ItemStack(Items.fermented_spider_eye, 1, 0)); + this.addPotionRecipes("poison", new ItemStack(Items.spider_eye, 1, 0)); + this.addPotionRecipes("health", new ItemStack(Items.speckled_melon, 1, 0)); + this.addPotionRecipes("regen", new ItemStack(Items.ghast_tear, 1, 0)); + this.addPotionRecipes("speed", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)); + this.addPotionRecipes("strength", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L)); + } + } + + public void addPotionRecipes(String aName, ItemStack aItem) { + // normal + GT_Values.RA.stdBuilder() + .itemInputs(aItem) + .fluidInputs(getFluidStack("potion.awkward", 750)) + .fluidOutputs(getFluidStack("potion." + aName, 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + + // strong + if (aName.equals("regen") || aName.equals("speed") + || aName.equals("health") + || aName.equals("strength") + || aName.equals("poison")) { + GT_Values.RA.stdBuilder() + .itemInputs(aItem) + .fluidInputs(getFluidStack("potion.thick", 750)) + .fluidOutputs(getFluidStack("potion." + aName + ".strong", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + } + + // long + if (!aName.equals("health")) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L)) + .fluidInputs(getFluidStack("potion." + aName, 750)) + .fluidOutputs(getFluidStack("potion." + aName + ".long", 750)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(brewingRecipes); + } + + MixerRecipes.addMixerPotionRecipes(aName); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/CannerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CannerRecipes.java new file mode 100644 index 0000000000..aef837a6b3 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/CannerRecipes.java @@ -0,0 +1,74 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class CannerRecipes implements Runnable { + + @Override + public void run() { + // fuel rod canner recipes + + if (IndustrialCraft2.isModLoaded()) { + // todo: remove tiny dust in this recipe + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getIC2Item("fuelRod", 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lithium, 1L)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorLithiumCell", 1, 1)) + .duration(16 * TICKS) + .eut(64) + .addTo(cannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getIC2Item("fuelRod", 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 3)) + .itemOutputs(ItemList.ThoriumCell_1.get(1L)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(cannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("UranFuel", 1)) + .itemOutputs(ItemList.Uraniumcell_1.get(1)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(cannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("MOXFuel", 1)) + .itemOutputs(ItemList.Moxcell_1.get(1)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(cannerRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Large_Fluid_Cell_TungstenSteel.get(1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NaquadahEnriched, 3)) + .itemOutputs(ItemList.NaquadahCell_1.get(1L)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(cannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Large_Fluid_Cell_TungstenSteel.get(1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 3)) + .itemOutputs(ItemList.MNqCell_1.get(1L)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(cannerRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/CentrifugeRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CentrifugeRecipes.java new file mode 100644 index 0000000000..b9375ebb1d --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/CentrifugeRecipes.java @@ -0,0 +1,823 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.ExtraUtilities; +import static gregtech.api.enums.Mods.GregTech; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.enums.Mods.ThaumicTinkerer; +import static gregtech.api.enums.Mods.TwilightForest; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsOreAlum; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class CentrifugeRecipes implements Runnable { + + @Override + public void run() { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedGold, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1), + getModItem(Thaumcraft.ID, "ItemResource", 2L, 14)) + .outputChances(10000, 10000, 9000) + .fluidInputs(Materials.Mercury.getFluid(200)) + .duration(20 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Cell_Empty.get(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1)) + .fluidInputs(Materials.Air.getGas(10000)) + .fluidOutputs(Materials.Nitrogen.getGas(3900)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(8) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PlatinumGroupSludge, 9)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Palladium, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iridium, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Osmium, 3)) + .outputChances(10000, 10000, 10000, 9500, 9000, 8500) + .duration(6 * MINUTES + 45 * SECONDS) + .eut(30) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemOutputs( + Materials.Stone.getDust(1), + Materials.Iron.getDust(1), + Materials.Copper.getDust(1), + Materials.Tin.getDust(1), + Materials.Nickel.getDust(1), + Materials.Antimony.getDust(1)) + .outputChances(10000, 4000, 2000, 2000, 2000, 2000) + .fluidInputs(MaterialsOreAlum.SluiceJuice.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(500)) + .duration(2 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + + // food ->CH4 + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.golden_apple, 1, 1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Items.gold_ingot, 64)) + .fluidOutputs(Materials.Methane.getGas(4608)) + .duration(7 * MINUTES + 40 * SECONDS + 16 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.golden_apple, 1, 0), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Items.gold_ingot, 7)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(7 * MINUTES + 40 * SECONDS + 16 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.golden_carrot, 1, 0), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Items.gold_nugget, 6)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(7 * MINUTES + 40 * SECONDS + 16 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.speckled_melon, 1, 0), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Items.gold_nugget, 6)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(7 * MINUTES + 40 * SECONDS + 16 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.mushroom_stew, 16, 0), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Items.bowl, 16, 0)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.apple, 32, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.bread, 64, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.porkchop, 12, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.cooked_porkchop, 16, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.beef, 12, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.cooked_beef, 16, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.fish, 12, 32767), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.cooked_fished, 16, 32767), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.chicken, 12, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.cooked_chicken, 16, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.melon, 64, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.pumpkin, 16, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.rotten_flesh, 16, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.spider_eye, 32, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.carrot, 16, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Raw_Potato.get(16), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Poisonous_Potato.get(12), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Baked_Potato.get(24), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.cookie, 64, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.cake, 8, 0), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.brown_mushroom_block, 12, 32767), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.red_mushroom_block, 12, 32767), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.brown_mushroom, 32, 32767), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.red_mushroom, 32, 32767), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.nether_wart, 32, 32767), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("terraWart", 16), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(TwilightForest.ID, "item.meefRaw", 12L, 32767), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(TwilightForest.ID, "item.meefSteak", 16L, 32767), GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(TwilightForest.ID, "item.venisonRaw", 12L, 32767), + GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(TwilightForest.ID, "item.venisonCooked", 16L, 32767), + GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(576)) + .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 1), + GT_Utility.getIntegratedCircuit(1)) + .fluidOutputs(Materials.Methane.getGas(60)) + .duration(10 * SECONDS) + .eut(20) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.sand, 1, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Diamond, 1), + new ItemStack(Blocks.sand, 1)) + .outputChances(5000, 100, 5000) + .duration(30 * SECONDS) + .eut((int) TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.dirt, 1, 32767)) + .itemOutputs( + ItemList.IC2_Plantball.get(1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Clay, 1), + new ItemStack(Blocks.sand, 1)) + .outputChances(1250, 5000, 5000) + .duration(12 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.grass, 1, 32767)) + .itemOutputs( + ItemList.IC2_Plantball.get(1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Clay, 1), + new ItemStack(Blocks.sand, 1)) + .outputChances(2500, 5000, 5000) + .duration(12 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.mycelium, 1, 32767)) + .itemOutputs( + new ItemStack(Blocks.brown_mushroom, 1), + new ItemStack(Blocks.red_mushroom, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Clay, 1), + new ItemStack(Blocks.sand, 1)) + .outputChances(2500, 2500, 5000, 5000) + .duration(32 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Resin.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 3), + ItemList.IC2_Plantball.get(1)) + .outputChances(10000, 1000) + .fluidOutputs(Materials.Glue.getFluid(100)) + .duration(15 * SECONDS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium235, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 1)) + .outputChances(1000, 500) + .duration(1 * MINUTES + 40 * SECONDS) + .eut((int) TierEU.RECIPE_HV) + .addTo(centrifugeRecipes); + + // Uranium Enrichment in Centrifuge by adding Fluorine (Uranium Hexafluoride) + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium235, 1)) + .outputChances(10000) + .fluidInputs(Materials.Fluorine.getGas(4000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut((int) TierEU.RECIPE_EV) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plutonium241, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium, 1)) + .outputChances(2000, 3000) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(320) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 9)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NaquadahEnriched, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 1)) + .outputChances(5000, 1000) + .duration(24 * MINUTES) + .eut(320) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NaquadahEnriched, 4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 1)) + .outputChances(2000, 3000) + .duration(21 * MINUTES + 20 * SECONDS) + .eut(640) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Hydrogen.getGas(160)) + .fluidOutputs(Materials.Deuterium.getGas(40)) + .duration(8 * SECONDS) + .eut(20) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Deuterium.getGas(160)) + .fluidOutputs(Materials.Tritium.getGas(40)) + .duration(8 * SECONDS) + .eut(80) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Helium.getGas(80)) + .fluidOutputs(Materials.Helium_3.getGas(5)) + .duration(8 * SECONDS) + .eut(80) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1)) + .duration(48 * SECONDS + 16 * TICKS) + .eut(80) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 36)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungstate, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 1), + new ItemStack(Blocks.sand, 36)) + .outputChances(3750, 2500, 9000) + .fluidOutputs(Materials.Helium.getGas(4320)) + .duration(9 * MINUTES + 36 * SECONDS) + .eut(20) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 36)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1)) + .outputChances(5625, 9900, 5625, 2500) + .duration(4 * MINUTES + 48 * SECONDS) + .eut(20) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(10)) + .itemOutputs( + Materials.SiliconDioxide.getDust(1), + Materials.Magnesia.getDust(1), + Materials.Quicklime.getDust(1), + Materials.Gold.getNuggets(4), + Materials.Sapphire.getDust(1), + Materials.Tantalite.getDust(1)) + .outputChances(5000, 1000, 1000, 250, 1250, 500) + .fluidInputs(Materials.Lava.getFluid(400)) + .duration(16 * SECONDS) + .eut(80) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(20)) + .itemOutputs( + Materials.SiliconDioxide.getDust(5), + Materials.Magnesia.getDust(1), + Materials.Quicklime.getDust(1), + Materials.Gold.getIngots(1), + Materials.Sapphire.getDust(3), + Materials.Tantalite.getDust(1)) + .outputChances(9000, 9000, 9000, 1000, 3750, 4500) + .fluidInputs(Materials.Lava.getFluid(3600)) + .duration(2 * MINUTES + 24 * SECONDS) + .eut(80) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.soul_sand, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1), + new ItemStack(Blocks.sand, 1)) + .outputChances(1000, 700, 9000) + .fluidOutputs(Materials.Oil.getFluid(200)) + .duration(10 * SECONDS) + .eut(12) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(10)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 1), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tin, 1), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Phosphorus, 1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Scheelite, 1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Bauxite, 1)) + .outputChances(2000, 1000, 250, 50, 250, 500) + .fluidInputs(getFluidStack("ic2pahoehoelava", 100)) + .duration(2 * SECONDS) + .eut(1024) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(20)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Scheelite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bauxite, 1)) + .outputChances(8000, 4000, 1000, 450, 2250, 4500) + .fluidInputs(getFluidStack("ic2pahoehoelava", 3600)) + .duration(16 * SECONDS + 8 * TICKS) + .eut(4096) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 45), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.BasalticMineralSand, 1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Olivine, 1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Obsidian, 1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Basalt, 1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Flint, 1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.RareEarth, 1)) + .outputChances(2000, 2000, 2000, 2000, 2000, 2000) + .duration(3 * SECONDS + 4 * TICKS) + .eut(20) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 36L, 45), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BasalticMineralSand, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Olivine, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Basalt, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Flint, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RareEarth, 2)) + .outputChances(9000, 9000, 9000, 9000, 9000, 9000) + .duration(25 * SECONDS + 18 * TICKS) + .eut(80) + .addTo(centrifugeRecipes); + + // Ash centrifuge recipes + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ash.getDust(36)) + .itemOutputs( + Materials.Quicklime.getDust(18), + Materials.Potash.getDust(9), + Materials.Magnesia.getDust(1), + Materials.PhosphorousPentoxide.getDust(2), + Materials.SodaAsh.getDust(1), + Materials.BandedIron.getDust(4)) + .outputChances(6400, 6000, 4500, 10000, 10000, 10000) + .duration(5 * MINUTES) + .eut(30) + .addTo(centrifugeRecipes); + + // Stone Dust and Metal Mixture centrifuge recipes + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Stone.getDust(36)) + .itemOutputs( + Materials.Quartzite.getDust(9), + Materials.PotassiumFeldspar.getDust(9), + Materials.Marble.getDust(8), + Materials.Biotite.getDust(4), + Materials.MetalMixture.getDust(3), + Materials.Sodalite.getDust(2)) + .outputChances(10000, 10000, 10000, 10000, 10000, 10000) + .duration(7 * MINUTES + 12 * SECONDS) + .eut(30) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.MetalMixture.getDust(36)) + .itemOutputs( + Materials.BandedIron.getDust(9), + Materials.Bauxite.getDust(9), + Materials.Pyrolusite.getDust(8), + Materials.Barite.getDust(4), + Materials.Chromite.getDust(3), + Materials.Ilmenite.getDust(2)) + .outputChances(10000, 10000, 10000, 10000, 10000, 10000) + .duration(10 * MINUTES + 56 * SECONDS + 5 * TICKS) + .eut((int) TierEU.RECIPE_EV) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Propane.getGas(320)) + .fluidOutputs(Materials.LPG.getFluid(290)) + .duration(20 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Butane.getGas(320)) + .fluidOutputs(Materials.LPG.getFluid(370)) + .duration(20 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ElectrumFlux, 8)) + .outputChances(10000, 10000) + .fluidInputs(Materials.EnrichedNaquadria.getFluid(9216)) + .fluidOutputs(Materials.FluidNaquadahFuel.getFluid(4806)) + .duration(30 * SECONDS) + .eut(2000000) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(5) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.magma_cream, 1)) + .itemOutputs(new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.slime_ball, 1)) + .duration(25 * SECONDS) + .eut(5) + .addTo(centrifugeRecipes); + + if (Thaumcraft.isModLoaded()) { + // air + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 144), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedAir, 1)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(12) + .addTo(centrifugeRecipes); + + // fire + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 146), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedFire, 1)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(12) + .addTo(centrifugeRecipes); + + // aqua + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 147), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedWater, 1)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(12) + .addTo(centrifugeRecipes); + + // terra + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 145), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEarth, 1)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(12) + .addTo(centrifugeRecipes); + + // ordo + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 148), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedOrder, 1)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(12) + .addTo(centrifugeRecipes); + + // perditio + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 149), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEntropy, 1)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(12) + .addTo(centrifugeRecipes); + + // Nethershard + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 152), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(ThaumicTinkerer.ID, "kamiResource", 1L, 6)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(512) + .addTo(centrifugeRecipes); + + // Endshard + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 153), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(ThaumicTinkerer.ID, "kamiResource", 1L, 7)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(512) + .addTo(centrifugeRecipes); + } + + if (ExtraUtilities.isModLoaded()) { + // Caelestis red + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 154), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 2), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 10), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 14), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 1), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 12), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 6)) + .duration(25 * SECONDS + 12 * TICKS) + .eut(12) + .addTo(centrifugeRecipes); + + // Caelestis green + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 155), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 13), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 5), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 4), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 8), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 0)) + .duration(25 * SECONDS + 12 * TICKS) + .eut(12) + .addTo(centrifugeRecipes); + + // Caelestis blue + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 156), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 3), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 9), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 11), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 7), + getModItem(ExtraUtilities.ID, "greenscreen", 1L, 15)) + .duration(25 * SECONDS + 12 * TICKS) + .eut(12) + .addTo(centrifugeRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java new file mode 100644 index 0000000000..8ca67db192 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java @@ -0,0 +1,404 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.BuildCraftTransport; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsKevlar; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class ChemicalBathRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Raw_Fries.get(1)) + .itemOutputs(ItemList.Food_Fries.get(1)) + .fluidInputs(Materials.FryingOilHot.getFluid(10)) + .duration(16 * TICKS) + .eut(4) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("dynamite", 1)) + .itemOutputs(GT_ModHandler.getIC2Item("stickyDynamite", 1)) + .fluidInputs(Materials.Glue.getFluid(10)) + .duration(16 * TICKS) + .eut(4) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1)) + .itemOutputs(GT_ModHandler.getIC2Item("reinforcedStone", 1)) + .fluidInputs(Materials.Concrete.getMolten(144)) + .duration(10 * SECONDS) + .eut(4) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1)) + .fluidInputs(Materials.Water.getFluid(125)) + .duration(12 * TICKS) + .eut(4) + .addTo(chemicalBathRecipes); + + // paper creation recipes + ItemStack[] paperSources = new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Paper, 1L), new ItemStack(Items.reeds, 1, 32767) }; + for (ItemStack paperSource : paperSources) { + GT_Values.RA.stdBuilder() + .itemInputs(paperSource) + .itemOutputs(new ItemStack(Items.paper, 1, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(4) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(paperSource) + .itemOutputs(new ItemStack(Items.paper, 1, 0)) + .fluidInputs(GT_ModHandler.getDistilledWater(100)) + .duration(10 * SECONDS) + .eut(4) + .addTo(chemicalBathRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1)) + .fluidInputs(GT_ModHandler.getDistilledWater(125)) + .duration(12 * TICKS) + .eut(4) + .addTo(chemicalBathRecipes); + + for (int i = 1; i < 16; i++) { + // wool cleaning recipes + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.wool, 1, i)) + .itemOutputs(new ItemStack(Blocks.wool, 1, 0)) + .fluidInputs(Materials.Chlorine.getGas(50)) + .duration(20 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + // carpet cleaning recipes + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.carpet, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.carpet, 1, 0)) + .fluidInputs(Materials.Chlorine.getGas(25)) + .duration(20 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + } + + // stained hardened clay cleaning + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.stained_hardened_clay, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.hardened_clay, 1, 0)) + .fluidInputs(Materials.Chlorine.getGas(50)) + .duration(20 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + // stained glass cleaning + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.stained_glass, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.glass, 1, 0)) + .fluidInputs(Materials.Chlorine.getGas(50)) + .duration(20 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + // stained glass pane cleaning + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.stained_glass_pane, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.glass_pane, 1, 0)) + .fluidInputs(Materials.Chlorine.getGas(20)) + .duration(20 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + // light -> dark concrete recipes + for (int i = 0; i < 8; i++) { + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(GregTech_API.sBlockConcretes, 1, i + 8)) + .itemOutputs(new ItemStack(GregTech_API.sBlockConcretes, 1, i)) + .fluidInputs(Materials.Water.getFluid(250)) + .duration(10 * SECONDS) + .eut(4) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(GregTech_API.sBlockConcretes, 1, i + 8)) + .itemOutputs(new ItemStack(GregTech_API.sBlockConcretes, 1, i)) + .fluidInputs(GT_ModHandler.getDistilledWater(250)) + .duration(10 * SECONDS) + .eut(4) + .addTo(chemicalBathRecipes); + } + + // reinforced blocks + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Bronze, 1)) + .itemOutputs(ItemList.Block_BronzePlate.get(1)) + .fluidInputs(Materials.Concrete.getMolten(144)) + .duration(10 * SECONDS) + .eut(4) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1)) + .itemOutputs(ItemList.Block_SteelPlate.get(1)) + .fluidInputs(Materials.Steel.getMolten(288)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Titanium, 1)) + .itemOutputs(ItemList.Block_TitaniumPlate.get(1)) + .fluidInputs(Materials.Titanium.getMolten(144)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1)) + .itemOutputs(ItemList.Block_TungstenSteelReinforced.get(1)) + .fluidInputs(Materials.TungstenSteel.getMolten(144)) + .duration(17 * SECONDS + 10 * TICKS) + .eut(64) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Iridium, 1)) + .itemOutputs(ItemList.Block_IridiumTungstensteel.get(1)) + .fluidInputs(Materials.Iridium.getMolten(144)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Naquadah, 1)) + .itemOutputs(ItemList.Block_NaquadahPlate.get(1)) + .fluidInputs(Materials.Osmium.getMolten(144)) + .duration(22 * SECONDS + 10 * TICKS) + .eut(256) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 1)) + .itemOutputs(ItemList.Block_NeutroniumPlate.get(1)) + .fluidInputs(Materials.Naquadria.getMolten(144)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1)) + .itemOutputs(ItemList.Block_TungstenSteelReinforced.get(1)) + .fluidInputs(Materials.Concrete.getMolten(144)) + .duration(10 * SECONDS) + .eut(4) + .addTo(chemicalBathRecipes); + } + + for (int j = 0; j < Dyes.dyeRed.getSizeOfFluidList(); j++) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1)) + .itemOutputs(getModItem(BuildCraftTransport.ID, "pipeWire", 4L, 0)) + .fluidInputs(Dyes.dyeRed.getFluidDye(j, 72)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(16) + .addTo(chemicalBathRecipes); + } + for (int j = 0; j < Dyes.dyeBlue.getSizeOfFluidList(); j++) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1)) + .itemOutputs(getModItem(BuildCraftTransport.ID, "pipeWire", 4L, 1)) + .fluidInputs(Dyes.dyeBlue.getFluidDye(j, 72)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(16) + .addTo(chemicalBathRecipes); + } + for (int j = 0; j < Dyes.dyeGreen.getSizeOfFluidList(); j++) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1)) + .itemOutputs(getModItem(BuildCraftTransport.ID, "pipeWire", 4L, 2)) + .fluidInputs(Dyes.dyeGreen.getFluidDye(j, 72)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(16) + .addTo(chemicalBathRecipes); + } + for (int j = 0; j < Dyes.dyeYellow.getSizeOfFluidList(); j++) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1)) + .itemOutputs(getModItem(BuildCraftTransport.ID, "pipeWire", 4L, 3)) + .fluidInputs(Dyes.dyeYellow.getFluidDye(j, 72)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(16) + .addTo(chemicalBathRecipes); + } + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + for (int j = 0; j < Dyes.VALUES[i].getSizeOfFluidList(); j++) { + if (i != 15) { + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.wool, 1, 0)) + .itemOutputs(new ItemStack(Blocks.wool, 1, 15 - i)) + .fluidInputs(Dyes.VALUES[i].getFluidDye(j, 72)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(chemicalBathRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.glass, 1, 0)) + .itemOutputs(new ItemStack(Blocks.stained_glass, 1, 15 - i)) + .fluidInputs(Dyes.VALUES[i].getFluidDye(j, 18)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.hardened_clay, 1, 0)) + .itemOutputs(new ItemStack(Blocks.stained_hardened_clay, 1, 15 - i)) + .fluidInputs(Dyes.VALUES[i].getFluidDye(j, 18)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(chemicalBathRecipes); + } + } + + // Rn relate quantum recipe + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderEye, 1)) + .itemOutputs(ItemList.QuantumEye.get(1)) + .fluidInputs(Materials.Radon.getGas(250)) + .duration(24 * SECONDS) + .eut(384) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherStar, 1)) + .itemOutputs(ItemList.QuantumStar.get(1)) + .fluidInputs(Materials.Radon.getGas(1250)) + .duration(1 * MINUTES + 36 * SECONDS) + .eut(384) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.WovenKevlar.get(1)) + .itemOutputs(MaterialsKevlar.Kevlar.getPlates(1)) + .fluidInputs(MaterialsKevlar.PolyurethaneResin.getFluid(1000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalBathRecipes); + + // Na + H2O = NaOH + H + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sodium.getDust(1)) + .itemOutputs(Materials.SodiumHydroxide.getDust(3)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(1000)) + .duration(5 * SECONDS) + .eut(4) + .addTo(chemicalBathRecipes); + + // Custom Sodium Persulfate Ore Processing Recipes + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Tantalite, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Tantalite, 1), + Materials.Tantalum.getDust(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1)) + .outputChances(10000, 3000, 4000) + .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) + .duration(40 * SECONDS) + .eut(8) + .addTo(chemicalBathRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Pyrolusite, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Pyrolusite, 1), + Materials.Manganese.getDust(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1)) + .outputChances(10000, 7000, 4000) + .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) + .duration(40 * SECONDS) + .eut(8) + .addTo(chemicalBathRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Quartzite, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Quartzite, 1), + Materials.CertusQuartz.getDust(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1)) + .outputChances(10000, 3000, 4000) + .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) + .duration(40 * SECONDS) + .eut(8) + .addTo(chemicalBathRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.CertusQuartz, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.CertusQuartz, 1), + Materials.Barium.getDust(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1)) + .outputChances(10000, 7000, 4000) + .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) + .duration(40 * SECONDS) + .eut(8) + .addTo(chemicalBathRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Bauxite, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Bauxite, 1), + Materials.Rutile.getDust(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1)) + .outputChances(10000, 5000, 4000) + .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) + .duration(40 * SECONDS) + .eut(8) + .addTo(chemicalBathRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Thorium, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Thorium, 1), + Materials.Uranium.getDust(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1)) + .outputChances(10000, 3000, 4000) + .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) + .duration(40 * SECONDS) + .eut(8) + .addTo(chemicalBathRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Stibnite, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Stibnite, 1), + Materials.Antimony.getDust(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1)) + .outputChances(10000, 5000, 4000) + .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) + .duration(40 * SECONDS) + .eut(8) + .addTo(chemicalBathRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ChemicalRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ChemicalRecipes.java new file mode 100644 index 0000000000..d099157c1c --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ChemicalRecipes.java @@ -0,0 +1,5973 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.BartWorks; +import static gregtech.api.enums.Mods.GTNHLanthanides; +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.GalaxySpace; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.chemicalReactorRecipes; +import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; +import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsKevlar; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ChemicalRecipes implements Runnable { + + @Override + public void run() { + singleBlockOnly(); + multiblockOnly(); + registerBoth(); + + polymerizationRecipes(); + } + + public void registerBoth() { + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.paper, 1), new ItemStack(Items.string, 1)) + .itemOutputs(GT_ModHandler.getIC2Item("dynamite", 1)) + .fluidInputs(Materials.Glyceryl.getFluid(500)) + .duration(8 * SECONDS) + .eut(4) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Indium, 1)) + .fluidInputs(new FluidStack(ItemList.sIndiumConcentrate, 8000)) + .fluidOutputs(new FluidStack(ItemList.sLeadZincSolution, 8000)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 36), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Indium, 1)) + .fluidInputs(new FluidStack(ItemList.sIndiumConcentrate, 72000)) + .fluidOutputs(new FluidStack(ItemList.sLeadZincSolution, 72000)) + .duration(22 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // Platinum Group Sludge chain + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Pentlandite, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.PlatinumGroupSludge, 1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(new FluidStack(ItemList.sNickelSulfate, 2000)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Chalcopyrite, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.PlatinumGroupSludge, 1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(new FluidStack(ItemList.sBlueVitriol, 2000)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(UniversalChemical); + + // Fe + 3HCl = FeCl3 + 3H + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1), ItemList.Cell_Empty.get(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 3)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(3000)) + .fluidOutputs(Materials.IronIIIChloride.getFluid(1000)) + .duration(20 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedGold, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 8)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thaumium, 16)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("ic2coolant"), 1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GalaxySpace.ID, "item.UnknowCrystal", 4), Materials.Osmiridium.getDust(2)) + .itemOutputs(ItemList.Circuit_Chip_Stemcell.get(64)) + .fluidInputs(Materials.GrowthMediumSterilized.getFluid(1000)) + .fluidOutputs(getFluidStack("bacterialsludge", 1000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Chip_Stemcell.get(32), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CosmicNeutronium, 4)) + .itemOutputs(ItemList.Circuit_Chip_Biocell.get(32)) + .fluidInputs(Materials.BioMediumSterilized.getFluid(2000)) + .fluidOutputs(getFluidStack("mutagen", 2000)) + .duration(60 * SECONDS) + .eut(500000) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Items.sugar), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plastic, 1)) + .itemOutputs(ItemList.GelledToluene.get(2)) + .fluidInputs(new FluidStack(ItemList.sToluene, 133)) + .duration(7 * SECONDS) + .eut(192) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.sugar, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 1)) + .itemOutputs(ItemList.GelledToluene.get(18)) + .fluidInputs(new FluidStack(ItemList.sToluene, 1197)) + .duration(1 * MINUTES + 3 * SECONDS) + .eut(192) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.GelledToluene.get(4), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Blocks.tnt, 1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(250)) + .duration(10 * SECONDS) + .eut(24) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.GelledToluene.get(4), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_ModHandler.getIC2Item("industrialTnt", 1)) + .fluidInputs(new FluidStack(ItemList.sNitrationMixture, 200)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(150)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HydricSulfide, 1), + Materials.Empty.getCells(1)) + .fluidInputs(Materials.NatruralGas.getGas(16000)) + .fluidOutputs(Materials.Gas.getGas(16000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NatruralGas, 2), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Gas, 2)) + .fluidInputs(Materials.Hydrogen.getGas(250)) + .fluidOutputs(Materials.HydricSulfide.getGas(125)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HydricSulfide, 1), + Materials.Empty.getCells(1)) + .fluidInputs(Materials.SulfuricGas.getGas(16000)) + .fluidOutputs(Materials.Gas.getGas(16000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricGas, 2), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Gas, 2)) + .fluidInputs(Materials.Hydrogen.getGas(250)) + .fluidOutputs(Materials.HydricSulfide.getGas(125)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HydricSulfide, 1), + Materials.Empty.getCells(1)) + .fluidInputs(Materials.SulfuricNaphtha.getFluid(12000)) + .fluidOutputs(Materials.Naphtha.getFluid(12000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricNaphtha, 3), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Naphtha, 3)) + .fluidInputs(Materials.Hydrogen.getGas(500)) + .fluidOutputs(Materials.HydricSulfide.getGas(250)) + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HydricSulfide, 1), + Materials.Empty.getCells(1)) + .fluidInputs(Materials.SulfuricLightFuel.getFluid(12000)) + .fluidOutputs(Materials.LightFuel.getFluid(12000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricLightFuel, 3), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LightFuel, 3)) + .fluidInputs(Materials.Hydrogen.getGas(500)) + .fluidOutputs(Materials.HydricSulfide.getGas(250)) + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HydricSulfide, 1), + Materials.Empty.getCells(1)) + .fluidInputs(Materials.SulfuricHeavyFuel.getFluid(8000)) + .fluidOutputs(Materials.HeavyFuel.getFluid(8000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricHeavyFuel, 1), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HeavyFuel, 1)) + .fluidInputs(Materials.Hydrogen.getGas(250)) + .fluidOutputs(Materials.HydricSulfide.getGas(125)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Potassium, 1)) + .fluidInputs(Materials.Naphtha.getFluid(576)) + .fluidOutputs(Materials.Polycaprolactam.getMolten(1296)) + .duration(32 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 9), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Potassium, 1)) + .fluidInputs(Materials.Naphtha.getFluid(5184)) + .fluidOutputs(Materials.Polycaprolactam.getMolten(11664)) + .duration(4 * MINUTES + 48 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + for (Fluid tFluid : new Fluid[] { FluidRegistry.WATER, GT_ModHandler.getDistilledWater(1L) + .getFluid() }) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(2)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TricalciumPhosphate, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(3)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(2)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3)) + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(3)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TricalciumPhosphate, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(4)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(3)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3)) + .itemOutputs(ItemList.IC2_Fertilizer.get(2)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(2)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(3)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TricalciumPhosphate, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(4)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(3)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3)) + .itemOutputs(ItemList.IC2_Fertilizer.get(2)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(2)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(3)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TricalciumPhosphate, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(4)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(3)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3)) + .itemOutputs(ItemList.IC2_Fertilizer.get(2)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(2)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(3)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TricalciumPhosphate, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(4)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(3)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3)) + .itemOutputs(ItemList.IC2_Fertilizer.get(2)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(2)) + .fluidInputs(new FluidStack(tFluid, 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + } + + // 3quartz dust + Na + H2O = 3quartz gem (Na loss + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 3)) + .fluidInputs(Materials.Water.getFluid(1000)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.CertusQuartz, 3)) + .fluidInputs(Materials.Water.getFluid(1000)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Quartzite, 3)) + .fluidInputs(Materials.Water.getFluid(1000)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 3)) + .fluidInputs(GT_ModHandler.getDistilledWater(1000)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.CertusQuartz, 3)) + .fluidInputs(GT_ModHandler.getDistilledWater(1000)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Quartzite, 3)) + .fluidInputs(GT_ModHandler.getDistilledWater(1000)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // 3UO2 + 4Al = 3U + 2Al2O3 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uraninite, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 10)) + .duration(50 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // UO2 + 2Mg = U + 2MgO + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uraninite, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesia, 4)) + .duration(50 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // Ca + C + 3O = CaCO3 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 5)) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // C + 4H = CH4 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Carbon.getDust(1), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Hydrogen.getGas(4000)) + .fluidOutputs(Materials.Methane.getGas(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // TiO2 + 2C + 4Cl = TiCl4 + 2CO + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rutile, 3), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Carbon, 2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.CarbonMonoxide, 2)) + .fluidInputs(Materials.Chlorine.getGas(4000)) + .fluidOutputs(Materials.Titaniumtetrachloride.getFluid(1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rutile, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 2)) + .fluidInputs(Materials.Chlorine.getGas(4000)) + .fluidOutputs(Materials.Titaniumtetrachloride.getFluid(1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rutile, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 2)) + .fluidInputs(Materials.Chlorine.getGas(4000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(2000), Materials.Titaniumtetrachloride.getFluid(1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // 4Na + 2MgCl2 = 2Mg + 4NaCl + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesiumchloride, 6)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 8)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // rubber + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1)) + .fluidOutputs(Materials.Rubber.getMolten(1296)) + .duration(30 * SECONDS) + .eut(16) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Sulfur, 1)) + .fluidOutputs(Materials.Rubber.getMolten(144)) + .duration(5 * SECONDS) + .eut(16) + .addTo(UniversalChemical); + + // vanilla recipe + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 8), + new ItemStack(Items.melon, 1, 32767)) + .itemOutputs(new ItemStack(Items.speckled_melon, 1, 0)) + .duration(50) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 8), + new ItemStack(Items.carrot, 1, 32767)) + .itemOutputs(new ItemStack(Items.golden_carrot, 1, 0)) + .duration(50) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 8), + new ItemStack(Items.apple, 1, 32767)) + .itemOutputs(new ItemStack(Items.golden_apple, 1, 0)) + .duration(50) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Gold, 8), + new ItemStack(Items.apple, 1, 32767)) + .itemOutputs(new ItemStack(Items.golden_apple, 1, 1)) + .duration(50) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderEye, 1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1), + new ItemStack(Items.slime_ball, 1, 32767)) + .itemOutputs(new ItemStack(Items.magma_cream, 1, 0)) + .duration(50) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // 1/9U +Air ==Pu== 0.1Rn + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Plutonium, 8), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 8)) + .fluidInputs(Materials.Air.getGas(1000)) + .fluidOutputs(Materials.Radon.getGas(100)) + .duration(10 * MINUTES) + .eut(8) + .addTo(UniversalChemical); + + // Silicon Line + // SiO2 + 2Mg = 2MgO + Si + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesia, 4)) + .duration(5 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesia, 4)) + .duration(5 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 6), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesia, 4)) + .duration(5 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesia, 4)) + .duration(5 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + // 3SiF4 + 4Al = 3Si + 4AlF3 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.AluminiumFluoride, 16)) + .fluidInputs(Materials.SiliconTetrafluoride.getGas(3000)) + .duration(30 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // SiO2 + 4HF = SiF4 + 2H2O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3), + GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.HydrofluoricAcid.getFluid(4000)) + .fluidOutputs(Materials.SiliconTetrafluoride.getGas(1000)) + .duration(15 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 3), + GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.HydrofluoricAcid.getFluid(4000)) + .fluidOutputs(Materials.SiliconTetrafluoride.getGas(1000)) + .duration(15 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 3), + GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.HydrofluoricAcid.getFluid(4000)) + .fluidOutputs(Materials.SiliconTetrafluoride.getGas(1000)) + .duration(15 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 6), + GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.HydrofluoricAcid.getFluid(4000)) + .fluidOutputs(Materials.SiliconTetrafluoride.getGas(1000)) + .duration(15 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // 4Na + SiCl4 = 4NaCl + Si + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 8)) + .fluidInputs(Materials.SiliconTetrachloride.getFluid(1000)) + .duration(5 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // HSiCl3 + 2H = 3HCl + Si + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1), ItemList.Cell_Empty.get(2)) + .fluidInputs(Materials.Trichlorosilane.getFluid(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(3000)) + .duration(15 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Trichlorosilane, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1), ItemList.Cell_Empty.get(1)) + .fluidInputs(Materials.Hydrogen.getGas(2000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(3000)) + .duration(15 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // 4HSiCl3 = 3SiCl4 + SiH4 + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Cell_Empty.get(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Silane, 1)) + .fluidInputs(Materials.Trichlorosilane.getFluid(4000)) + .fluidOutputs(Materials.SiliconTetrachloride.getFluid(3000)) + .duration(12 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // SiH4 = Si + 4H + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1)) + .fluidInputs(Materials.Silane.getGas(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(4000)) + .duration(15 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // Ca + 2H = CaH2 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calciumhydride, 3)) + .fluidInputs(Materials.Hydrogen.getGas(2000)) + .duration(20 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // Si + 4Cl = SiCl4 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1), + GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.Chlorine.getGas(4000)) + .fluidOutputs(Materials.SiliconTetrachloride.getFluid(1000)) + .duration(20 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // 2Na + S = Na2S + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sodium.getDust(2), Materials.Sulfur.getDust(1)) + .itemOutputs(Materials.SodiumSulfide.getDust(3)) + .duration(60) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // H2S + H2O + (O2) = 0.5H2SO4(Diluted) ( S loss + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydricSulfide.getCells(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(750)) + .duration(3 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.HydricSulfide.getGas(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(750)) + .duration(3 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // Ni + 4CO = Ni(CO)4 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.CarbonMonoxide, 4)) + .itemOutputs(ItemList.Cell_Empty.get(4)) + .fluidOutputs(MaterialsKevlar.NickelTetracarbonyl.getFluid(1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1), + GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.CarbonMonoxide.getGas(4000)) + .fluidOutputs(MaterialsKevlar.NickelTetracarbonyl.getFluid(1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1), ItemList.Cell_Empty.get(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.NickelTetracarbonyl, 1)) + .fluidInputs(Materials.CarbonMonoxide.getGas(4000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(UniversalChemical); + + // C2H4O + H2O = C2H6O2 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.EthyleneOxide, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cell_Empty.get(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(MaterialsKevlar.Ethyleneglycol.getFluid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // C2H4 + O = C2H4O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ethylene, 2), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.Cell_Empty.get(2)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(MaterialsKevlar.Acetaldehyde.getGas(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.Cell_Empty.get(1)) + .fluidInputs(Materials.Ethylene.getGas(2000)) + .fluidOutputs(MaterialsKevlar.Acetaldehyde.getGas(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // NiAl3 + 2NaOH + 2H2O = NiAl + 2NaAlO2 + 6H + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, MaterialsKevlar.NickelAluminide, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 6)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.RaneyNickelActivated, 2), + Materials.SodiumAluminate.getDust(8)) + .fluidInputs(Materials.Water.getFluid(2000)) + .fluidOutputs(Materials.Hydrogen.getGas(6000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(UniversalChemical); + + // Cu + O = CuO + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CupricOxide, 2), + ItemList.Cell_Empty.get(1)) + .duration(5 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CupricOxide, 2)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .duration(5 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // 2Bi + 3O = Bi2O3 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bismuth, 4), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 6)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.BismuthIIIOxide, 10), + ItemList.Cell_Empty.get(6)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bismuth, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.BismuthIIIOxide, 10)) + .fluidInputs(Materials.Oxygen.getGas(6000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // C4H6O2 + CNH5 = C5H9NO + H2O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.Methylamine, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.GammaButyrolactone, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.NMethylIIPyrrolidone, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 8), + GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.Chlorine.getGas(16000)) + .fluidOutputs(MaterialsKevlar.SulfurDichloride.getFluid(8000)) + .duration(40 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // SCl2 + SO3 = SO2 + SOCl2 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfurTrioxide, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.SulfurDichloride, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.ThionylChloride, 1), + ItemList.Cell_Empty.get(1)) + .fluidOutputs(Materials.SulfurDioxide.getGas(1000)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // C8H10 + 6O =CoC22H14O4= C8H6O4 + 2H2O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.IVDimethylbenzene, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.CobaltIINaphthenate, 41)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.TerephthalicAcid, 1)) + .fluidInputs(Materials.Oxygen.getGas(6000)) + .fluidOutputs(Materials.Water.getFluid(2000)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // 2CH4 + C6H6 = C8H10 + 4H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methane.getCells(2), GT_Utility.getIntegratedCircuit(13)) + .itemOutputs(MaterialsKevlar.IIIDimethylbenzene.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Benzene.getFluid(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(4000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Benzene.getCells(1), GT_Utility.getIntegratedCircuit(14)) + .itemOutputs(MaterialsKevlar.IIIDimethylbenzene.getCells(1)) + .fluidInputs(Materials.Methane.getGas(2000)) + .fluidOutputs(Materials.Hydrogen.getGas(4000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // 2CH4 + C6H6 = C8H10 + 4H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methane.getCells(2), GT_Utility.getIntegratedCircuit(15)) + .itemOutputs(MaterialsKevlar.IVDimethylbenzene.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Benzene.getFluid(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(4000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Benzene.getCells(1), GT_Utility.getIntegratedCircuit(16)) + .itemOutputs(MaterialsKevlar.IVDimethylbenzene.getCells(1)) + .fluidInputs(Materials.Methane.getGas(2000)) + .fluidOutputs(Materials.Hydrogen.getGas(4000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsKevlar.CobaltIIHydroxide.getDust(5), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(MaterialsKevlar.CobaltIINaphthenate.getDust(41)) + .fluidInputs(MaterialsKevlar.NaphthenicAcid.getFluid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsKevlar.CobaltIIAcetate.getDust(15), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(MaterialsKevlar.CobaltIINaphthenate.getDust(41)) + .fluidInputs(MaterialsKevlar.NaphthenicAcid.getFluid(1000)) + .fluidOutputs(Materials.AceticAcid.getFluid(1500)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // Co + 2HNO3 = Co(NO3)2 + 2H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Cobalt.getDust(1), Materials.NitricAcid.getCells(2)) + .itemOutputs( + MaterialsKevlar.CobaltIINitrate.getDust(9), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // Co(NO3)2 + 2KOH = CoH2O2 + 2KNO3 + + GT_Values.RA.stdBuilder() + .itemInputs( + MaterialsKevlar.CobaltIINitrate.getDust(9), + getModItem(NewHorizonsCoreMod.ID, "item.PotassiumHydroxideDust", 6L, 0)) + .itemOutputs(MaterialsKevlar.CobaltIIHydroxide.getDust(5), Materials.Saltpeter.getDust(10)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // CoO + 2C2H4O2 = CoC4H6O4 + 2H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CobaltOxide.getDust(2), Materials.AceticAcid.getCells(2)) + .itemOutputs(MaterialsKevlar.CobaltIIAcetate.getDust(15), ItemList.Cell_Empty.get(2)) + .fluidOutputs(Materials.Water.getFluid(2000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Phosphorus.getDust(1), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Chlorine.getGas(3000)) + .fluidOutputs(MaterialsKevlar.PhosphorusTrichloride.getFluid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Phosphorus.getDust(9), GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.Chlorine.getGas(27000)) + .fluidOutputs(MaterialsKevlar.PhosphorusTrichloride.getFluid(9000)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // Na + H = NaH + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sodium.getDust(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(MaterialsKevlar.SodiumHydride.getDust(2)) + .fluidInputs(Materials.Hydrogen.getGas(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // CH3ONa + H2O = CH4O + NaOH + + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsKevlar.SodiumMethoxide.getDust(6), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.SodiumHydroxide.getDust(3)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.Methanol.getFluid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // K + HNO3 = KNO3 + H (not real, but gameplay + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Potassium.getDust(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Saltpeter.getDust(5)) + .fluidInputs(Materials.NitricAcid.getFluid(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(1000)) + .duration(5 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // CH3COOH + CH3OH = CH3COOCH3 + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.AceticAcid.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .fluidOutputs(Materials.MethylAcetate.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(1000)) + .fluidOutputs(Materials.MethylAcetate.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.AceticAcid.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .fluidOutputs(Materials.MethylAcetate.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(1000)) + .fluidOutputs(Materials.MethylAcetate.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.AceticAcid.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.MethylAcetate.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.MethylAcetate.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.AceticAcid.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.MethylAcetate.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.MethylAcetate.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // CO and CO2 recipes + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Carbon.getDust(1), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(2 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Coal.getGems(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Ash.getDustTiny(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(4 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Coal.getDust(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Ash.getDustTiny(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(4 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Charcoal.getGems(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Ash.getDustTiny(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(4 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Charcoal.getDust(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Ash.getDustTiny(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(4 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Carbon.getDust(1), GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(2 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Coal.getGems(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Ash.getDustTiny(1)) + .fluidInputs(Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(2 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Coal.getDust(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Ash.getDustTiny(1)) + .fluidInputs(Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(2 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Charcoal.getGems(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Ash.getDustTiny(1)) + .fluidInputs(Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(2 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Charcoal.getDust(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Ash.getDustTiny(1)) + .fluidInputs(Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(2 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Carbon.getDust(1)) + .fluidInputs(Materials.CarbonDioxide.getGas(1000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(2000)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Coal.getGems(9), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(Materials.Ash.getDust(1)) + .fluidInputs(Materials.Oxygen.getGas(9000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(9000)) + .duration(36 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Coal.getDust(9), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(Materials.Ash.getDust(1)) + .fluidInputs(Materials.Oxygen.getGas(9000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(9000)) + .duration(36 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Charcoal.getGems(9), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(Materials.Ash.getDust(1)) + .fluidInputs(Materials.Oxygen.getGas(9000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(9000)) + .duration(36 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Charcoal.getDust(9), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(Materials.Ash.getDust(1)) + .fluidInputs(Materials.Oxygen.getGas(9000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(9000)) + .duration(36 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Coal.getGems(9), GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(Materials.Ash.getDust(1)) + .fluidInputs(Materials.Oxygen.getGas(18000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(9000)) + .duration(18 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Coal.getDust(9), GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(Materials.Ash.getDust(1)) + .fluidInputs(Materials.Oxygen.getGas(18000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(9000)) + .duration(18 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Charcoal.getGems(9), GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(Materials.Ash.getDust(1)) + .fluidInputs(Materials.Oxygen.getGas(18000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(9000)) + .duration(18 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Charcoal.getDust(9), GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(Materials.Ash.getDust(1)) + .fluidInputs(Materials.Oxygen.getGas(18000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(9000)) + .duration(18 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + // CO + 4H = CH3OH + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CarbonMonoxide.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(4000)) + .fluidOutputs(Materials.Methanol.getFluid(1000)) + .duration(6 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(4), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(4)) + .fluidInputs(Materials.CarbonMonoxide.getGas(1000)) + .fluidOutputs(Materials.Methanol.getFluid(1000)) + .duration(6 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CarbonMonoxide.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Methanol.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(4000)) + .duration(6 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(4), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Methanol.getCells(1), Materials.Empty.getCells(3)) + .fluidInputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(6 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + // CO2 + 6H = CH3OH + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CarbonDioxide.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(6000)) + .fluidOutputs(Materials.Methanol.getFluid(1000)) + .duration(6 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(6), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(5)) + .fluidInputs(Materials.CarbonDioxide.getGas(1000)) + .fluidOutputs(Materials.Methanol.getFluid(1000)) + .duration(6 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CarbonDioxide.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(6000)) + .fluidOutputs(Materials.Methanol.getFluid(1000)) + .duration(6 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(6), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(6)) + .fluidInputs(Materials.CarbonDioxide.getGas(1000)) + .fluidOutputs(Materials.Methanol.getFluid(1000)) + .duration(6 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CarbonDioxide.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Methanol.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(6000)) + .duration(6 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(6), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Methanol.getCells(1), Materials.Empty.getCells(5)) + .fluidInputs(Materials.CarbonDioxide.getGas(1000)) + .duration(6 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + // CH3OH + CO = CH3COOH + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.CarbonMonoxide.getGas(1000)) + .fluidOutputs(Materials.AceticAcid.getFluid(1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CarbonMonoxide.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .fluidOutputs(Materials.AceticAcid.getFluid(1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.AceticAcid.getCells(1)) + .fluidInputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CarbonMonoxide.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.AceticAcid.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // CH2CH2 + 2O = CH3COOH + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethylene.getCells(1), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.AceticAcid.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(2), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(Materials.Empty.getCells(2)) + .fluidInputs(Materials.Ethylene.getGas(1000)) + .fluidOutputs(Materials.AceticAcid.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethylene.getCells(1), GT_Utility.getIntegratedCircuit(19)) + .itemOutputs(Materials.AceticAcid.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(2000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(2), GT_Utility.getIntegratedCircuit(19)) + .itemOutputs(Materials.AceticAcid.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Ethylene.getGas(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // O + C2H4O2 + C2H4 = C4H6O2 + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethylene.getCells(1), Materials.AceticAcid.getCells(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.VinylAcetate.getFluid(1000)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.AceticAcid.getCells(1), Materials.Oxygen.getCells(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Ethylene.getGas(1000)) + .fluidOutputs(Materials.VinylAcetate.getFluid(1000)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(1), Materials.Ethylene.getCells(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(1000)) + .fluidOutputs(Materials.VinylAcetate.getFluid(1000)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // Ethanol -> Ethylene (Intended loss for Sulfuric Acid) + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethanol.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Ethylene.getCells(1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfuricAcid.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Ethylene.getCells(1)) + .fluidInputs(Materials.Ethanol.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethanol.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.DilutedSulfuricAcid.getCells(1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(Materials.Ethylene.getGas(1000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfuricAcid.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.DilutedSulfuricAcid.getCells(1)) + .fluidInputs(Materials.Ethanol.getFluid(1000)) + .fluidOutputs(Materials.Ethylene.getGas(1000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // H2O + Na = NaOH + H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sodium.getDust(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.SodiumHydroxide.getDust(3)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(1000)) + .duration(10 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // H + Cl = HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.HydrochloricAcid.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.HydrochloricAcid.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + // C3H6 + 2Cl = HCl + C3H5Cl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.HydrochloricAcid.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Propene.getGas(1000)) + .fluidOutputs(Materials.AllylChloride.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Propene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.HydrochloricAcid.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(2000)) + .fluidOutputs(Materials.AllylChloride.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.AllylChloride.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Propene.getGas(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Propene.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.AllylChloride.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(2000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // 2Cl + H2O = HCl + HClO (Intended loss) + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.DilutedHydrochloricAcid.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.HypochlorousAcid.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.DilutedHydrochloricAcid.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(2000)) + .fluidOutputs(Materials.HypochlorousAcid.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.HypochlorousAcid.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.HypochlorousAcid.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(2000)) + .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // HClO + NaOH + C3H5Cl = C3H5ClO + NaCl·H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HypochlorousAcid.getCells(1), Materials.SodiumHydroxide.getDust(3)) + .itemOutputs(Materials.SaltWater.getCells(1)) + .fluidInputs(Materials.AllylChloride.getFluid(1000)) + .fluidOutputs(Materials.Epichlorohydrin.getFluid(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(3), Materials.AllylChloride.getCells(1)) + .itemOutputs(Materials.SaltWater.getCells(1)) + .fluidInputs(Materials.HypochlorousAcid.getFluid(1000)) + .fluidOutputs(Materials.Epichlorohydrin.getFluid(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Water.getCells(2)) + .fluidInputs(Materials.Glycerol.getFluid(1000)) + .fluidOutputs(Materials.Epichlorohydrin.getFluid(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Glycerol.getCells(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Water.getCells(2)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.Epichlorohydrin.getFluid(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Epichlorohydrin.getCells(1)) + .fluidInputs(Materials.Glycerol.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(2000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Glycerol.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Epichlorohydrin.getCells(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(2000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Glycerol.getFluid(1000)) + .fluidOutputs(Materials.Epichlorohydrin.getFluid(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Glycerol.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.Epichlorohydrin.getFluid(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Epichlorohydrin.getCells(1)) + .fluidInputs(Materials.Glycerol.getFluid(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Glycerol.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Epichlorohydrin.getCells(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // P4O10 + 6H2O = 4H3PO4 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.PhosphorousPentoxide.getDust(14)) + .fluidInputs(Materials.Water.getFluid(6000)) + .fluidOutputs(Materials.PhosphoricAcid.getFluid(4000)) + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // C9H12 + 2O = C6H6O + C3H6O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Cumene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Phenol.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.Acetone.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Phenol.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Cumene.getFluid(1000)) + .fluidOutputs(Materials.Acetone.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Cumene.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Acetone.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.Phenol.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Acetone.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Cumene.getFluid(1000)) + .fluidOutputs(Materials.Phenol.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // C15H16O2 + 2C3H5ClO + 2NaOH = C15H14O2(C3H5O)2 + 2NaCl·H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(6), Materials.Epichlorohydrin.getCells(2)) + .itemOutputs(Materials.SaltWater.getCells(2)) + .fluidInputs(Materials.BisphenolA.getFluid(1000)) + .fluidOutputs(Materials.Epoxid.getMolten(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // CH4O + HCl = CH3Cl + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.Chloromethane.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .fluidOutputs(Materials.Chloromethane.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Chloromethane.getCells(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Chloromethane.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.Chloromethane.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .fluidOutputs(Materials.Chloromethane.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Chloromethane.getCells(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Chloromethane.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.HydrochloricAcid.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Methane.getGas(1000)) + .fluidOutputs(Materials.Chloromethane.getGas(1000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methane.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.HydrochloricAcid.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(2000)) + .fluidOutputs(Materials.Chloromethane.getGas(1000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Chloromethane.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Methane.getGas(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methane.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Chloromethane.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(2000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // Cl6 + CH4 = CHCl3 + 3HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(6), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(Materials.HydrochloricAcid.getCells(3), Materials.Empty.getCells(3)) + .fluidInputs(Materials.Methane.getGas(1000)) + .fluidOutputs(Materials.Chloroform.getFluid(1000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(6), GT_Utility.getIntegratedCircuit(13)) + .itemOutputs(Materials.Chloroform.getCells(1), Materials.Empty.getCells(5)) + .fluidInputs(Materials.Methane.getGas(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(3000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methane.getCells(1), GT_Utility.getIntegratedCircuit(13)) + .itemOutputs(Materials.Chloroform.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(6000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(3000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // H + F = HF + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Fluorine.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(1000)) + .fluidOutputs(Materials.HydrofluoricAcid.getFluid(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Fluorine.getGas(1000)) + .fluidOutputs(Materials.HydrofluoricAcid.getFluid(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Fluorine.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.HydrofluoricAcid.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.HydrofluoricAcid.getCells(1)) + .fluidInputs(Materials.Fluorine.getGas(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + // 4HF + 2CHCl3 = C2F4 + 6HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chloroform.getCells(2), Materials.HydrofluoricAcid.getCells(4)) + .itemOutputs(Materials.HydrochloricAcid.getCells(6)) + .fluidOutputs(Materials.Tetrafluoroethylene.getGas(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chloroform.getCells(2), Materials.Empty.getCells(4)) + .itemOutputs(Materials.HydrochloricAcid.getCells(6)) + .fluidInputs(Materials.HydrofluoricAcid.getFluid(4000)) + .fluidOutputs(Materials.Tetrafluoroethylene.getGas(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrofluoricAcid.getCells(4), Materials.Empty.getCells(2)) + .itemOutputs(Materials.HydrochloricAcid.getCells(6)) + .fluidInputs(Materials.Chloroform.getFluid(2000)) + .fluidOutputs(Materials.Tetrafluoroethylene.getGas(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrofluoricAcid.getCells(4), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Tetrafluoroethylene.getCells(1), Materials.Empty.getCells(3)) + .fluidInputs(Materials.Chloroform.getFluid(2000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(6000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chloroform.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Tetrafluoroethylene.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.HydrofluoricAcid.getFluid(4000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(6000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // Si + 2CH3Cl = C2H6Cl2Si + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Silicon.getDust(1), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Chloromethane.getGas(2000)) + .fluidOutputs(Materials.Dimethyldichlorosilane.getFluid(1000)) + .duration(12 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Dimethyldichlorosilane.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Polydimethylsiloxane.getDust(3), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(1000)) + .duration(12 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Polydimethylsiloxane.getDust(3), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Dimethyldichlorosilane.getFluid(1000)) + .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(1000)) + .duration(12 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Dimethyldichlorosilane.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Polydimethylsiloxane.getDust(3), Materials.DilutedHydrochloricAcid.getCells(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .duration(12 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Polydimethylsiloxane.getDust(3), Materials.DilutedHydrochloricAcid.getCells(1)) + .fluidInputs(Materials.Dimethyldichlorosilane.getFluid(1000)) + .duration(12 * SECONDS) + .eut(96) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Polydimethylsiloxane.getDust(9), Materials.Sulfur.getDust(1)) + .fluidOutputs(Materials.Silicone.getMolten(1296)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // Potassium Nitride + // K + HNO3 = KNO3 + H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Potassium.getDust(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.PotassiumNitrade.getDust(5)) + .fluidInputs(Materials.NitricAcid.getFluid(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(1000)) + .duration(5 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // Chromium Trioxide + // CrO2 + O = CrO3 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.ChromiumDioxide.getDust(3), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.ChromiumTrioxide.getDust(4)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // Nitrochlorobenzene + // C6H5Cl + HNO3 = C6H4ClNO2 + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorobenzene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Nitrochlorobenzene.getCells(1)) + .fluidInputs(Materials.NitrationMixture.getFluid(2000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorobenzene.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.DilutedSulfuricAcid.getCells(1)) + .fluidInputs(Materials.NitrationMixture.getFluid(2000)) + .fluidOutputs(Materials.Nitrochlorobenzene.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitrationMixture.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Nitrochlorobenzene.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Chlorobenzene.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitrationMixture.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.DilutedSulfuricAcid.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Chlorobenzene.getFluid(1000)) + .fluidOutputs(Materials.Nitrochlorobenzene.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // C6H6 + 2CH4 = C8H10 + 4H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methane.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Dimethylbenzene.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Benzene.getFluid(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(4000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Benzene.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Dimethylbenzene.getCells(1)) + .fluidInputs(Materials.Methane.getGas(2000)) + .fluidOutputs(Materials.Hydrogen.getGas(4000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // Phthalic Acid + // C8H10 + 6O =K2Cr2O7= C8H6O4 + 2H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Dimethylbenzene.getCells(1), Materials.Potassiumdichromate.getDustTiny(1)) + .itemOutputs(Materials.PhthalicAcid.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(6000)) + .fluidOutputs(Materials.Water.getFluid(2000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(6), Materials.Potassiumdichromate.getDustTiny(1)) + .itemOutputs(Materials.PhthalicAcid.getCells(1), ItemList.Cell_Empty.get(5)) + .fluidInputs(Materials.Dimethylbenzene.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(2000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Dimethylbenzene.getCells(9), Materials.Potassiumdichromate.getDust(1)) + .itemOutputs(Materials.PhthalicAcid.getCells(9)) + .fluidInputs(Materials.Oxygen.getGas(54000)) + .fluidOutputs(Materials.Water.getFluid(18000)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(54), Materials.Potassiumdichromate.getDust(1)) + .itemOutputs(Materials.PhthalicAcid.getCells(9), ItemList.Cell_Empty.get(45)) + .fluidInputs(Materials.Dimethylbenzene.getFluid(9000)) + .fluidOutputs(Materials.Water.getFluid(18000)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(UniversalChemical); + + // These following recipes are broken in element term. + // But they are kept in gamewise, too much existed setup will be broken. + // Dichlorobenzidine + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Copper.getDustTiny(1), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Nitrochlorobenzene.getFluid(2000)) + .fluidOutputs(Materials.Dichlorobenzidine.getFluid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Copper.getDust(1), GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.Nitrochlorobenzene.getFluid(18000)) + .fluidOutputs(Materials.Dichlorobenzidine.getFluid(9000)) + .duration(1 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(UniversalChemical); + + // Diphenyl Isophthalate + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.PhthalicAcid.getCells(1), Materials.SulfuricAcid.getCells(1)) + .itemOutputs(Materials.Diphenylisophthalate.getCells(1), ItemList.Cell_Empty.get(1)) + .fluidInputs(Materials.Phenol.getFluid(2000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.PhthalicAcid.getCells(1), Materials.Phenol.getCells(2)) + .itemOutputs(Materials.Diphenylisophthalate.getCells(1), ItemList.Cell_Empty.get(2)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfuricAcid.getCells(1), Materials.Phenol.getCells(2)) + .itemOutputs(Materials.Diphenylisophthalate.getCells(1), ItemList.Cell_Empty.get(2)) + .fluidInputs(Materials.PhthalicAcid.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(UniversalChemical); + + // Diaminobenzidin + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(2), Materials.Zinc.getDust(1)) + .itemOutputs(Materials.Diaminobenzidin.getCells(1), ItemList.Cell_Empty.get(1)) + .fluidInputs(Materials.Dichlorobenzidine.getFluid(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(2000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(UniversalChemical); + + // Polybenzimidazole + // C12H14N4 + C20H14O4 = C20H12N4 + 2C6H6O + 2H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Diphenylisophthalate.getCells(1), Materials.Diaminobenzidin.getCells(1)) + .itemOutputs(Materials.Phenol.getCells(2)) + .fluidOutputs(Materials.Polybenzimidazole.getMolten(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 1)) + .itemOutputs(getModItem(Railcraft.ID, "glass", 6)) + .fluidInputs(Materials.Glass.getMolten(864)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // NH3 + 2CH4O = C2H7N + 2H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(2)) + .fluidInputs(Materials.Ammonia.getGas(1000)) + .fluidOutputs(Materials.Dimethylamine.getGas(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Dimethylamine.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Ammonia.getGas(1000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Dimethylamine.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(2000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(2), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(2)) + .fluidInputs(Materials.Ammonia.getGas(1000)) + .fluidOutputs(Materials.Dimethylamine.getGas(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(2), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Dimethylamine.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Ammonia.getGas(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Dimethylamine.getCells(1)) + .fluidInputs(Materials.Methanol.getFluid(2000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // NH3 + HClO = NH2Cl + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1)) + .fluidInputs(Materials.HypochlorousAcid.getFluid(1000)) + .fluidOutputs(Materials.Chloramine.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HypochlorousAcid.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1)) + .fluidInputs(Materials.Ammonia.getGas(1000)) + .fluidOutputs(Materials.Chloramine.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Chloramine.getCells(1)) + .fluidInputs(Materials.HypochlorousAcid.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HypochlorousAcid.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Chloramine.getCells(1)) + .fluidInputs(Materials.Ammonia.getGas(1000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.HypochlorousAcid.getFluid(1000)) + .fluidOutputs(Materials.Chloramine.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HypochlorousAcid.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Ammonia.getGas(1000)) + .fluidOutputs(Materials.Chloramine.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Chloramine.getCells(1)) + .fluidInputs(Materials.HypochlorousAcid.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HypochlorousAcid.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Chloramine.getCells(1)) + .fluidInputs(Materials.Ammonia.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // 2NO2 = N2O4 + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.NitrogenDioxide.getGas(2000)) + .fluidOutputs(Materials.DinitrogenTetroxide.getGas(1000)) + .duration(32 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitrogenDioxide.getCells(2), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(2)) + .fluidOutputs(Materials.DinitrogenTetroxide.getGas(1000)) + .duration(32 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitrogenDioxide.getCells(2), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.DinitrogenTetroxide.getCells(1), Materials.Empty.getCells(1)) + .duration(32 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // 2NH3 + 5O = 2NO + 3H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(4), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.NitricOxide.getCells(4)) + .fluidInputs(Materials.Oxygen.getGas(10000)) + .fluidOutputs(Materials.Water.getFluid(6000)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(10), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.NitricOxide.getCells(4), Materials.Empty.getCells(6)) + .fluidInputs(Materials.Ammonia.getGas(4000)) + .fluidOutputs(Materials.Water.getFluid(6000)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(10), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Water.getCells(6), Materials.Empty.getCells(4)) + .fluidInputs(Materials.Ammonia.getGas(4000)) + .fluidOutputs(Materials.NitricOxide.getGas(4000)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(4), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.NitricOxide.getCells(4)) + .fluidInputs(Materials.Oxygen.getGas(10000)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(10), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.NitricOxide.getCells(4), Materials.Empty.getCells(6)) + .fluidInputs(Materials.Ammonia.getGas(4000)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(10), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Empty.getCells(10)) + .fluidInputs(Materials.Ammonia.getGas(4000)) + .fluidOutputs(Materials.NitricOxide.getGas(4000)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // NO + O = NO2 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitricOxide.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.NitrogenDioxide.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.NitricOxide.getGas(1000)) + .fluidOutputs(Materials.NitrogenDioxide.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitricOxide.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.NitrogenDioxide.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.NitrogenDioxide.getCells(1)) + .fluidInputs(Materials.NitricOxide.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // H2O + 3NO2 = 2HNO3 + NO + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.NitricOxide.getCells(1)) + .fluidInputs(Materials.NitrogenDioxide.getGas(3000)) + .fluidOutputs(Materials.NitricAcid.getFluid(2000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitrogenDioxide.getCells(3), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.NitricOxide.getCells(1), Materials.Empty.getCells(2)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.NitricAcid.getFluid(2000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitrogenDioxide.getCells(3), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.NitricAcid.getCells(2), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.NitricOxide.getGas(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // S + 2H = H2S + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sulfur.getDust(1), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Hydrogen.getGas(2000)) + .fluidOutputs(Materials.HydricSulfide.getGas(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + // S + 2O = SO2 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sulfur.getDust(1), GT_Utility.getIntegratedCircuit(3)) + .fluidInputs(Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + // H2S + 3O = SO2 + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydricSulfide.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(3), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(2)) + .fluidInputs(Materials.HydricSulfide.getGas(1000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydricSulfide.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.SulfurDioxide.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(3), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.SulfurDioxide.getCells(1), Materials.Empty.getCells(2)) + .fluidInputs(Materials.HydricSulfide.getGas(1000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydricSulfide.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(3), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Empty.getCells(3)) + .fluidInputs(Materials.HydricSulfide.getGas(1000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydricSulfide.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.SulfurDioxide.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(3), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.SulfurDioxide.getCells(1), Materials.Empty.getCells(2)) + .fluidInputs(Materials.HydricSulfide.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // 2H2S + SO2 = 3S + 2H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfurDioxide.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Sulfur.getDust(3), Materials.Empty.getCells(1)) + .fluidInputs(Materials.HydricSulfide.getGas(2000)) + .fluidOutputs(Materials.Water.getFluid(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydricSulfide.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Sulfur.getDust(3), Materials.Empty.getCells(2)) + .fluidInputs(Materials.SulfurDioxide.getGas(1000)) + .fluidOutputs(Materials.Water.getFluid(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfurDioxide.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Sulfur.getDust(3), Materials.Empty.getCells(1)) + .fluidInputs(Materials.HydricSulfide.getGas(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydricSulfide.getCells(2), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Sulfur.getDust(3), Materials.Empty.getCells(2)) + .fluidInputs(Materials.SulfurDioxide.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // SO2 + O = SO3 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.SulfurDioxide.getGas(1000)) + .fluidOutputs(Materials.SulfurTrioxide.getGas(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfurDioxide.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.SulfurTrioxide.getGas(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.SulfurTrioxide.getCells(1)) + .fluidInputs(Materials.SulfurDioxide.getGas(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfurDioxide.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.SulfurTrioxide.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // SO3 + H2O = H2SO4 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.SulfurTrioxide.getGas(1000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) + .duration(16 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfurTrioxide.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) + .duration(16 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.SulfuricAcid.getCells(1)) + .fluidInputs(Materials.SulfurTrioxide.getGas(1000)) + .duration(16 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfurTrioxide.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.SulfuricAcid.getCells(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .duration(16 * SECONDS) + .eut(8) + .addTo(UniversalChemical); + + // C2H4 + 2Cl = C2H3Cl + HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.HydrochloricAcid.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Ethylene.getGas(1000)) + .fluidOutputs(Materials.VinylChloride.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethylene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.HydrochloricAcid.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(2000)) + .fluidOutputs(Materials.VinylChloride.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.VinylChloride.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Ethylene.getGas(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethylene.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.VinylChloride.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(2000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // C2H4O2 =H2SO4= C2H2O + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.AceticAcid.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Ethenone.getCells(1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfuricAcid.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Ethenone.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.AceticAcid.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.DilutedSulfuricAcid.getCells(1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(Materials.Ethenone.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SulfuricAcid.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.DilutedSulfuricAcid.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(1000)) + .fluidOutputs(Materials.Ethenone.getGas(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // C2H2O + 8HNO3 = 2CN4O8 + 9H2O + // Chemically this recipe is wrong, but kept for minimizing breaking change. + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethenone.getCells(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Tetranitromethane.getCells(2)) + .fluidInputs(Materials.NitricAcid.getFluid(8000)) + .fluidOutputs(Materials.Water.getFluid(9000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethenone.getCells(1), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.NitricAcid.getFluid(8000)) + .fluidOutputs(Materials.Tetranitromethane.getFluid(2000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitricAcid.getCells(8), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Tetranitromethane.getCells(2), Materials.Empty.getCells(6)) + .fluidInputs(Materials.Ethenone.getGas(1000)) + .fluidOutputs(Materials.Water.getFluid(9000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitricAcid.getCells(8), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Tetranitromethane.getCells(2), Materials.Empty.getCells(6)) + .fluidInputs(Materials.Ethenone.getGas(1000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitricAcid.getCells(8), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.Empty.getCells(8)) + .fluidInputs(Materials.Ethenone.getGas(1000)) + .fluidOutputs(Materials.Tetranitromethane.getFluid(2000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitricAcid.getCells(8), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Water.getCells(9)) + .fluidInputs(Materials.Ethenone.getGas(1000)) + .fluidOutputs(Materials.Tetranitromethane.getFluid(2000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethenone.getCells(1), Materials.NitricAcid.getCells(8)) + .itemOutputs(Materials.Water.getCells(9)) + .fluidOutputs(Materials.Tetranitromethane.getFluid(2000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + // C3H6 + C2H4 = C5H8 + 2H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Propene.getCells(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Hydrogen.getCells(2)) + .fluidInputs(Materials.Ethylene.getGas(1000)) + .fluidOutputs(Materials.Isoprene.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethylene.getCells(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Hydrogen.getCells(2)) + .fluidInputs(Materials.Propene.getGas(1000)) + .fluidOutputs(Materials.Isoprene.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Propene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Isoprene.getCells(1)) + .fluidInputs(Materials.Ethylene.getGas(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethylene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Isoprene.getCells(1)) + .fluidInputs(Materials.Propene.getGas(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(Materials.Methane.getCells(1)) + .fluidInputs(Materials.Propene.getGas(2000)) + .fluidOutputs(Materials.Isoprene.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Propene.getCells(2), GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(Materials.Methane.getCells(1), Materials.Empty.getCells(1)) + .fluidOutputs(Materials.Isoprene.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(15)) + .itemOutputs(Materials.Isoprene.getCells(1)) + .fluidInputs(Materials.Propene.getGas(2000)) + .fluidOutputs(Materials.Methane.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Propene.getCells(2), GT_Utility.getIntegratedCircuit(15)) + .itemOutputs(Materials.Isoprene.getCells(1), Materials.Empty.getCells(1)) + .fluidOutputs(Materials.Methane.getGas(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Cell_Air.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.RawRubber.getDust(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Isoprene.getFluid(144)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.RawRubber.getDust(3), Materials.Empty.getCells(2)) + .fluidInputs(Materials.Isoprene.getFluid(288)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Isoprene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.RawRubber.getDust(7), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Air.getGas(14000)) + .duration(56 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Isoprene.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.RawRubber.getDust(21), Materials.Empty.getCells(2)) + .fluidInputs(Materials.Oxygen.getGas(14000)) + .duration(1 * MINUTES + 52 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Benzene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Styrene.getCells(1)) + .fluidInputs(Materials.Ethylene.getGas(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethylene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Styrene.getCells(1)) + .fluidInputs(Materials.Benzene.getFluid(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(2000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.RawStyreneButadieneRubber.getDust(9), Materials.Sulfur.getDust(1)) + .fluidOutputs(Materials.StyreneButadieneRubber.getMolten(1296)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // C6H6 + 4Cl = C6H4Cl2 + 2HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Benzene.getCells(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Dichlorobenzene.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(4000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(2000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(4), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Dichlorobenzene.getCells(1), Materials.Empty.getCells(3)) + .fluidInputs(Materials.Benzene.getFluid(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(2000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(4), GT_Utility.getIntegratedCircuit(12)) + .itemOutputs(Materials.HydrochloricAcid.getCells(2), Materials.Empty.getCells(2)) + .fluidInputs(Materials.Benzene.getFluid(1000)) + .fluidOutputs(Materials.Dichlorobenzene.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumSulfide.getDust(3), ItemList.Cell_Air.get(8)) + .itemOutputs(Materials.Salt.getDust(4), Materials.Empty.getCells(8)) + .fluidInputs(Materials.Dichlorobenzene.getFluid(1000)) + .fluidOutputs(Materials.PolyphenyleneSulfide.getMolten(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumSulfide.getDust(3), Materials.Oxygen.getCells(8)) + .itemOutputs(Materials.Salt.getDust(4), Materials.Empty.getCells(8)) + .fluidInputs(Materials.Dichlorobenzene.getFluid(1000)) + .fluidOutputs(Materials.PolyphenyleneSulfide.getMolten(1500)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // NaCl + H2SO4 = NaHSO4 + HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Salt.getDust(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.SodiumBisulfate.getDust(7)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(3 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // NaOH + H2SO4 = NaHSO4 + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(3), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.SodiumBisulfate.getDust(7)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(3 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // Biodiesel recipes + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDustTiny(1), Materials.Methanol.getCells(1)) + .itemOutputs(Materials.Glycerol.getCells(1)) + .fluidInputs(Materials.SeedOil.getFluid(6000)) + .fluidOutputs(Materials.BioDiesel.getFluid(6000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDustTiny(1), Materials.SeedOil.getCells(6)) + .itemOutputs(Materials.BioDiesel.getCells(6)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .fluidOutputs(Materials.Glycerol.getFluid(1000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDustTiny(1), Materials.Methanol.getCells(1)) + .itemOutputs(Materials.Glycerol.getCells(1)) + .fluidInputs(Materials.FishOil.getFluid(6000)) + .fluidOutputs(Materials.BioDiesel.getFluid(6000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDustTiny(1), Materials.FishOil.getCells(6)) + .itemOutputs(Materials.BioDiesel.getCells(6)) + .fluidInputs(Materials.Methanol.getFluid(1000)) + .fluidOutputs(Materials.Glycerol.getFluid(1000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDustTiny(1), Materials.Ethanol.getCells(1)) + .itemOutputs(Materials.Glycerol.getCells(1)) + .fluidInputs(Materials.SeedOil.getFluid(6000)) + .fluidOutputs(Materials.BioDiesel.getFluid(6000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDustTiny(1), Materials.SeedOil.getCells(6)) + .itemOutputs(Materials.BioDiesel.getCells(6)) + .fluidInputs(Materials.Ethanol.getFluid(1000)) + .fluidOutputs(Materials.Glycerol.getFluid(1000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDustTiny(1), Materials.Ethanol.getCells(1)) + .itemOutputs(Materials.Glycerol.getCells(1)) + .fluidInputs(Materials.FishOil.getFluid(6000)) + .fluidOutputs(Materials.BioDiesel.getFluid(6000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDustTiny(1), Materials.FishOil.getCells(6)) + .itemOutputs(Materials.BioDiesel.getCells(6)) + .fluidInputs(Materials.Ethanol.getFluid(1000)) + .fluidOutputs(Materials.Glycerol.getFluid(1000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(1), Materials.Methanol.getCells(9)) + .itemOutputs(Materials.Glycerol.getCells(9)) + .fluidInputs(Materials.SeedOil.getFluid(54000)) + .fluidOutputs(Materials.BioDiesel.getFluid(54000)) + .duration(4 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(1), Materials.SeedOil.getCells(54)) + .itemOutputs(Materials.BioDiesel.getCells(54)) + .fluidInputs(Materials.Methanol.getFluid(9000)) + .fluidOutputs(Materials.Glycerol.getFluid(9000)) + .duration(4 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(1), Materials.Methanol.getCells(9)) + .itemOutputs(Materials.Glycerol.getCells(9)) + .fluidInputs(Materials.FishOil.getFluid(54000)) + .fluidOutputs(Materials.BioDiesel.getFluid(54000)) + .duration(4 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(1), Materials.FishOil.getCells(54)) + .itemOutputs(Materials.BioDiesel.getCells(54)) + .fluidInputs(Materials.Methanol.getFluid(9000)) + .fluidOutputs(Materials.Glycerol.getFluid(9000)) + .duration(4 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(1), Materials.Ethanol.getCells(9)) + .itemOutputs(Materials.Glycerol.getCells(9)) + .fluidInputs(Materials.SeedOil.getFluid(54000)) + .fluidOutputs(Materials.BioDiesel.getFluid(54000)) + .duration(4 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(1), Materials.SeedOil.getCells(54)) + .itemOutputs(Materials.BioDiesel.getCells(54)) + .fluidInputs(Materials.Ethanol.getFluid(9000)) + .fluidOutputs(Materials.Glycerol.getFluid(9000)) + .duration(4 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(1), Materials.Ethanol.getCells(9)) + .itemOutputs(Materials.Glycerol.getCells(9)) + .fluidInputs(Materials.FishOil.getFluid(54000)) + .fluidOutputs(Materials.BioDiesel.getFluid(54000)) + .duration(4 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(1), Materials.FishOil.getCells(54)) + .itemOutputs(Materials.BioDiesel.getCells(54)) + .fluidInputs(Materials.Ethanol.getFluid(9000)) + .fluidOutputs(Materials.Glycerol.getFluid(9000)) + .duration(4 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // C3H8O3 + 3HNO3 =H2SO4= C3H5N3O9 + 3H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Glycerol.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Glyceryl.getCells(1)) + .fluidInputs(Materials.NitrationMixture.getFluid(6000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(3000)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitrationMixture.getCells(6), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Glyceryl.getCells(1), Materials.Empty.getCells(5)) + .fluidInputs(Materials.Glycerol.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(3000)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitrationMixture.getCells(6), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.DilutedSulfuricAcid.getCells(3), Materials.Empty.getCells(3)) + .fluidInputs(Materials.Glycerol.getFluid(1000)) + .fluidOutputs(Materials.Glyceryl.getFluid(1000)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // CaO + CO2 = CaCO3 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Quicklime.getDust(2)) + .itemOutputs(Materials.Calcite.getDust(5)) + .fluidInputs(Materials.CarbonDioxide.getGas(1000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Calcite.getDust(5), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Quicklime.getDust(2)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // MgO + CO2 = MgCO3 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Magnesia.getDust(2)) + .itemOutputs(Materials.Magnesite.getDust(5)) + .fluidInputs(Materials.CarbonDioxide.getGas(1000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Magnesite.getDust(5), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Magnesia.getDust(2)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // C6H6 + 2Cl = C6H5Cl + HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Benzene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Chlorobenzene.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(2000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Chlorobenzene.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Benzene.getFluid(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.HydrochloricAcid.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Benzene.getFluid(1000)) + .fluidOutputs(Materials.Chlorobenzene.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // C6H5Cl + H2O = C6H6O + HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.DilutedHydrochloricAcid.getCells(1)) + .fluidInputs(Materials.Chlorobenzene.getFluid(1000)) + .fluidOutputs(Materials.Phenol.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorobenzene.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.DilutedHydrochloricAcid.getCells(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.Phenol.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Phenol.getCells(1)) + .fluidInputs(Materials.Chlorobenzene.getFluid(1000)) + .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorobenzene.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Phenol.getCells(1)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // C6H5Cl + NaOH = C6H6O + NaCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(12), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Salt.getDust(8)) + .fluidInputs(Materials.Chlorobenzene.getFluid(4000)) + .fluidOutputs(Materials.Phenol.getFluid(4000)) + .duration(48 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // Oxide Recipe + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2), Materials.Antimony.getDust(2)) + .itemOutputs(Materials.AntimonyTrioxide.getDust(5)) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .duration(20 * TICKS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2), Materials.Lead.getDust(1)) + .itemOutputs(Materials.Massicot.getDust(2)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .duration(20 * TICKS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2), Materials.Arsenic.getDust(2)) + .itemOutputs(Materials.ArsenicTrioxide.getDust(5)) + .fluidInputs(Materials.Oxygen.getGas(3000)) + .duration(20 * TICKS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2), Materials.Cobalt.getDust(1)) + .itemOutputs(Materials.CobaltOxide.getDust(2)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .duration(20 * TICKS) + .eut(30) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2), Materials.Zinc.getDust(1)) + .itemOutputs(Materials.Zincite.getDust(2)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .duration(20 * TICKS) + .eut(30) + .addTo(UniversalChemical); + + if (BartWorks.isModLoaded()) { + // CaSi2 + 2HCl = 2Si + CaCl2 + 2H + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CalciumDisilicide, 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 2), + getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 3L, 63)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(2000)) + .fluidOutputs(Materials.Hydrogen.getGas(2000)) + .duration(45 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // SiCl4 + 2Zn = 2ZnCl2 + Si + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1), + getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 6L, 10052)) + .fluidInputs(Materials.SiliconTetrachloride.getFluid(1000)) + .duration(20 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + } + + if (GTNHLanthanides.isModLoaded() && GTPlusPlus.isModLoaded()) { + + // C4H8O + 2H =Pd= C4H10O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.Butyraldehyde, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Palladium, 1)) + .itemOutputs(ItemList.Cell_Empty.get(1)) + .fluidInputs(Materials.Hydrogen.getGas(2000)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("butanol"), 1000)) + .duration(10 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // 4CH2O + C2H4O =NaOH= C5H12O4 + CO + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(GTPlusPlus.ID, "Formaldehyde", 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.Pentaerythritol, 21), + Materials.Empty.getCells(4)) + .fluidInputs(MaterialsKevlar.Acetaldehyde.getGas(1000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // 4CH2O + C2H4O =NaOH= C5H12O4 + CO + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.Acetaldehyde, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.Pentaerythritol, 21), + Materials.Empty.getCells(1)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("fluid.formaldehyde"), 4000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // CaC2 + 2H2O = Ca(OH)2 + C2H2 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.CalciumCarbide, 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(GTPlusPlus.ID, "itemDustCalciumHydroxide", 5)) + .fluidInputs(Materials.Water.getFluid(2000)) + .fluidOutputs(MaterialsKevlar.Acetylene.getGas(1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + // Co(NO3)2 + 2NaOH = Co(OH)2 + 2NaNO3 + + GT_Values.RA.stdBuilder() + .itemInputs( + MaterialsKevlar.CobaltIINitrate.getDust(9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 6)) + .itemOutputs( + MaterialsKevlar.CobaltIIHydroxide.getDust(5), + getModItem(GTPlusPlus.ID, "itemDustSodiumNitrate", 10)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + } + } + + public void addDefaultPolymerizationRecipes(Fluid aBasicMaterial, ItemStack aBasicMaterialCell, Fluid aPolymer) { + // Oxygen/Titaniumtetrafluoride -> +50% Output each + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Cell_Air.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(new FluidStack(aBasicMaterial, 144)) + .fluidOutputs(new FluidStack(aPolymer, 144)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(new FluidStack(aBasicMaterial, 144)) + .fluidOutputs(new FluidStack(aPolymer, 216)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(aBasicMaterialCell, GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Air.getGas(14000)) + .fluidOutputs(new FluidStack(aPolymer, 1000)) + .duration(56 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(aBasicMaterialCell, GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(7000)) + .fluidOutputs(new FluidStack(aPolymer, 1500)) + .duration(56 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs( + new FluidStack(aBasicMaterial, 2160), + Materials.Air.getGas(7500), + Materials.Titaniumtetrachloride.getFluid(100)) + .fluidOutputs(new FluidStack(aPolymer, 3240)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs( + new FluidStack(aBasicMaterial, 2160), + Materials.Oxygen.getGas(7500), + Materials.Titaniumtetrachloride.getFluid(100)) + .fluidOutputs(new FluidStack(aPolymer, 4320)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(multiblockChemicalReactorRecipes); + + } + + public void polymerizationRecipes() { + addDefaultPolymerizationRecipes( + Materials.VinylAcetate.mFluid, + Materials.VinylAcetate.getCells(1), + Materials.PolyvinylAcetate.mFluid); + + addDefaultPolymerizationRecipes( + Materials.Ethylene.mGas, + Materials.Ethylene.getCells(1), + Materials.Plastic.mStandardMoltenFluid); + + addDefaultPolymerizationRecipes( + Materials.Tetrafluoroethylene.mGas, + Materials.Tetrafluoroethylene.getCells(1), + Materials.Polytetrafluoroethylene.mStandardMoltenFluid); + + addDefaultPolymerizationRecipes( + Materials.VinylChloride.mGas, + Materials.VinylChloride.getCells(1), + Materials.PolyvinylChloride.mStandardMoltenFluid); + + addDefaultPolymerizationRecipes( + Materials.Styrene.mFluid, + Materials.Styrene.getCells(1), + Materials.Polystyrene.mStandardMoltenFluid); + } + + public void singleBlockOnly() { + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.GasolineRaw.getCells(10), Materials.Toluene.getCells(1)) + .itemOutputs(Materials.GasolineRegular.getCells(11)) + .duration(10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Benzene.getCells(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Hydrogen.getCells(2)) + .fluidInputs(Materials.Ethylene.getGas(1000)) + .fluidOutputs(Materials.Styrene.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethylene.getCells(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Hydrogen.getCells(2)) + .fluidInputs(Materials.Benzene.getFluid(1000)) + .fluidOutputs(Materials.Styrene.getFluid(1000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methane.getCells(1), Materials.Empty.getCells(2)) + .itemOutputs(Materials.HydrochloricAcid.getCells(3)) + .fluidInputs(Materials.Chlorine.getGas(6000)) + .fluidOutputs(Materials.Chloroform.getFluid(1000)) + .duration(4 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Silicon.getDust(1), Materials.Chloromethane.getCells(2)) + .itemOutputs(Materials.Empty.getCells(2)) + .fluidOutputs(Materials.Dimethyldichlorosilane.getFluid(1000)) + .duration(12 * SECONDS) + .eut(96) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Dimethyldichlorosilane.getCells(1), Materials.Water.getCells(1)) + .itemOutputs(Materials.Polydimethylsiloxane.getDust(3), Materials.Empty.getCells(2)) + .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(1000)) + .duration(12 * SECONDS) + .eut(96) + .addTo(chemicalReactorRecipes); + + // Ca5(PO4)3Cl + 5H2SO4 + 10H2O = 5CaSO4(H2O)2 + HCl + 3H3PO4 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Apatite.getDust(9), Materials.SulfuricAcid.getCells(5)) + .itemOutputs(Materials.HydrochloricAcid.getCells(1), Materials.Empty.getCells(4)) + .fluidInputs(Materials.Water.getFluid(10000)) + .fluidOutputs(Materials.PhosphoricAcid.getFluid(3000)) + .duration(16 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // 10O + 4P = P4O10 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Phosphorus.getDust(4)) + .itemOutputs(Materials.PhosphorousPentoxide.getDust(14)) + .fluidInputs(Materials.Oxygen.getGas(10000)) + .duration(2 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // HCl + C3H8O3 = C3H5ClO + 2H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), Materials.Glycerol.getCells(1)) + .itemOutputs(Materials.Water.getCells(2)) + .fluidOutputs(Materials.Epichlorohydrin.getFluid(1000)) + .duration(24 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // H2O + Cl =Hg= HClO + H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(10), Materials.Mercury.getCells(1)) + .itemOutputs(Materials.Hydrogen.getCells(10), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Water.getFluid(10000)) + .fluidOutputs(Materials.HypochlorousAcid.getFluid(10000)) + .duration(30 * SECONDS) + .eut(8) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(10), Materials.Mercury.getCells(1)) + .itemOutputs(Materials.Hydrogen.getCells(10), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Chlorine.getGas(10000)) + .fluidOutputs(Materials.HypochlorousAcid.getFluid(10000)) + .duration(30 * SECONDS) + .eut(8) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Chlorine.getCells(1), Materials.Water.getCells(1)) + .itemOutputs(Materials.Hydrogen.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Mercury.getFluid(100)) + .fluidOutputs(Materials.HypochlorousAcid.getFluid(1000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(chemicalReactorRecipes); + + // P + 3Cl = PCl3 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Phosphorus.getDust(1), Materials.Chlorine.getCells(3)) + .itemOutputs(ItemList.Cell_Empty.get(3)) + .fluidOutputs(MaterialsKevlar.PhosphorusTrichloride.getFluid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.EthyleneOxide, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 5)) + .itemOutputs(ItemList.Cell_Empty.get(6)) + .fluidInputs(Materials.Dimethyldichlorosilane.getFluid(4000)) + .fluidOutputs(MaterialsKevlar.SiliconOil.getFluid(5000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.EthyleneOxide, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Dimethyldichlorosilane, 4)) + .itemOutputs(ItemList.Cell_Empty.get(5)) + .fluidInputs(Materials.Water.getFluid(5000)) + .fluidOutputs(MaterialsKevlar.SiliconOil.getFluid(5000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.Cell_Empty.get(1)) + .fluidInputs(MaterialsKevlar.EthyleneOxide.getGas(1000)) + .fluidOutputs(MaterialsKevlar.Ethyleneglycol.getFluid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsKevlar.CobaltIIHydroxide.getDust(5), MaterialsKevlar.NaphthenicAcid.getCells(1)) + .itemOutputs(MaterialsKevlar.CobaltIINaphthenate.getDust(41), ItemList.Cell_Empty.get(1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsKevlar.CobaltIIAcetate.getDust(15), MaterialsKevlar.NaphthenicAcid.getCells(1)) + .itemOutputs(MaterialsKevlar.CobaltIINaphthenate.getDust(41), ItemList.Cell_Empty.get(1)) + .fluidOutputs(Materials.AceticAcid.getFluid(1500)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Chlorine, 4)) + .itemOutputs(ItemList.Cell_Empty.get(4)) + .fluidOutputs(Materials.SiliconTetrachloride.getFluid(1000)) + .duration(20 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Galena, 3), + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Sphalerite, 1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(4000)) + .fluidOutputs(new FluidStack(ItemList.sIndiumConcentrate, 8000)) + .duration(3 * SECONDS) + .eut(150) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Carbon.getDust(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Methane.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(4000)) + .duration(10 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // O + 2H = H2O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(ItemList.Cell_Empty.get(1)) + .fluidInputs(Materials.Hydrogen.getGas(2000)) + .fluidOutputs(GT_ModHandler.getDistilledWater(1000)) + .duration(10 * TICKS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1), + GT_Utility.getIntegratedCircuit(22)) + .itemOutputs(ItemList.Cell_Empty.get(1)) + .fluidInputs(Materials.Oxygen.getGas(500)) + .fluidOutputs(GT_ModHandler.getDistilledWater(500)) + .duration(5 * TICKS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // Si + 4Cl = SiCl4 + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1), ItemList.Cell_Empty.get(2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(3000)) + .fluidOutputs(Materials.Trichlorosilane.getFluid(1000)) + .duration(15 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Silane, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1), ItemList.Cell_Empty.get(1)) + .fluidOutputs(Materials.Hydrogen.getGas(4000)) + .duration(15 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Silane, 1), ItemList.Cell_Empty.get(3)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 4)) + .duration(15 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // S + 2Cl = SCl2 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 8), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Chlorine, 16)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.SulfurDichloride, 8), + ItemList.Cell_Empty.get(8)) + .duration(40 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 8), ItemList.Cell_Empty.get(8)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsKevlar.SulfurDichloride, 8)) + .fluidInputs(Materials.Chlorine.getGas(16000)) + .duration(40 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // C6H6 + C3H6 = C9H12 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Propene.getCells(8), Materials.PhosphoricAcid.getCells(1)) + .itemOutputs(Materials.Empty.getCells(9)) + .fluidInputs(Materials.Benzene.getFluid(8000)) + .fluidOutputs(Materials.Cumene.getFluid(8000)) + .duration(1 * MINUTES + 36 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.PhosphoricAcid.getCells(1), Materials.Benzene.getCells(8)) + .itemOutputs(Materials.Empty.getCells(9)) + .fluidInputs(Materials.Propene.getGas(8000)) + .fluidOutputs(Materials.Cumene.getFluid(8000)) + .duration(1 * MINUTES + 36 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Benzene.getCells(1), Materials.Propene.getCells(1)) + .itemOutputs(Materials.Empty.getCells(2)) + .fluidInputs(Materials.PhosphoricAcid.getFluid(125)) + .fluidOutputs(Materials.Cumene.getFluid(1000)) + .duration(12 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // C3H6O + 2C6H6O =HCl= C15H16O2 + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Acetone.getCells(1), Materials.Phenol.getCells(2)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(2)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.BisphenolA.getFluid(1000)) + .duration(8 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), Materials.Acetone.getCells(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Phenol.getFluid(2000)) + .fluidOutputs(Materials.BisphenolA.getFluid(1000)) + .duration(8 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Phenol.getCells(2), Materials.HydrochloricAcid.getCells(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(2)) + .fluidInputs(Materials.Acetone.getFluid(1000)) + .fluidOutputs(Materials.BisphenolA.getFluid(1000)) + .duration(8 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // N + 3H = NH3 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Nitrogen.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(3000)) + .fluidOutputs(Materials.Ammonia.getGas(1000)) + .duration(16 * SECONDS) + .eut(TierEU.HV * 3 / 4) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(3), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(3)) + .fluidInputs(Materials.Nitrogen.getGas(1000)) + .fluidOutputs(Materials.Ammonia.getGas(1000)) + .duration(16 * SECONDS) + .eut(TierEU.HV * 3 / 4) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Nitrogen.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Ammonia.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(3000)) + .duration(16 * SECONDS) + .eut(TierEU.HV * 3 / 4) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Hydrogen.getCells(3), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Ammonia.getCells(1), Materials.Empty.getCells(2)) + .fluidInputs(Materials.Nitrogen.getGas(1000)) + .duration(16 * SECONDS) + .eut(TierEU.HV * 3 / 4) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Water.getCells(2)) + .fluidInputs(Materials.Methanol.getFluid(2000)) + .fluidOutputs(Materials.Dimethylamine.getGas(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ammonia.getCells(4), Materials.Empty.getCells(2)) + .itemOutputs(Materials.Water.getCells(6)) + .fluidInputs(Materials.Oxygen.getGas(10000)) + .fluidOutputs(Materials.NitricOxide.getGas(4000)) + .duration(16 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.NitricAcid.getCells(2)) + .fluidInputs(Materials.NitrogenDioxide.getGas(3000)) + .fluidOutputs(Materials.NitricOxide.getGas(1000)) + .duration(12 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // 2NO2 + O + H2O = 2HNO3 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.NitrogenDioxide.getCells(2), Materials.Oxygen.getCells(1)) + .itemOutputs(Materials.Empty.getCells(3)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.NitricAcid.getFluid(2000)) + .duration(12 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(1), Materials.Water.getCells(1)) + .itemOutputs(Materials.Empty.getCells(2)) + .fluidInputs(Materials.NitrogenDioxide.getGas(2000)) + .fluidOutputs(Materials.NitricAcid.getFluid(2000)) + .duration(12 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Water.getCells(1), Materials.NitrogenDioxide.getCells(2)) + .itemOutputs(Materials.Empty.getCells(3)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.NitricAcid.getFluid(2000)) + .duration(12 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sulfur.getDust(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.HydricSulfide.getCells(1)) + .fluidInputs(Materials.Hydrogen.getGas(2000)) + .duration(3 * SECONDS) + .eut(8) + .addTo(chemicalReactorRecipes); + + // C2H4 + HCl + O = C2H3Cl + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethylene.getCells(1), Materials.HydrochloricAcid.getCells(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.VinylChloride.getGas(1000)) + .duration(8 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), Materials.Oxygen.getCells(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Ethylene.getGas(1000)) + .fluidOutputs(Materials.VinylChloride.getGas(1000)) + .duration(8 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(1), Materials.Ethylene.getCells(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.VinylChloride.getGas(1000)) + .duration(8 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Butadiene.getCells(1), ItemList.Cell_Air.get(5)) + .itemOutputs(Materials.RawStyreneButadieneRubber.getDust(9), Materials.Empty.getCells(6)) + .fluidInputs(Materials.Styrene.getFluid(350)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Butadiene.getCells(1), Materials.Oxygen.getCells(5)) + .itemOutputs(Materials.RawStyreneButadieneRubber.getDust(13), Materials.Empty.getCells(6)) + .fluidInputs(Materials.Styrene.getFluid(350)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Styrene.getCells(1), ItemList.Cell_Air.get(15)) + .itemOutputs(Materials.RawStyreneButadieneRubber.getDust(27), Materials.Empty.getCells(16)) + .fluidInputs(Materials.Butadiene.getGas(3000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Styrene.getCells(1), Materials.Oxygen.getCells(15)) + .itemOutputs(Materials.RawStyreneButadieneRubber.getDust(41), Materials.Empty.getCells(16)) + .fluidInputs(Materials.Butadiene.getGas(3000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Styrene.getCells(1), Materials.Butadiene.getCells(3)) + .itemOutputs(Materials.RawStyreneButadieneRubber.getDust(27), Materials.Empty.getCells(4)) + .fluidInputs(Materials.Air.getGas(15000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Styrene.getCells(1), Materials.Butadiene.getCells(3)) + .itemOutputs(Materials.RawStyreneButadieneRubber.getDust(41), Materials.Empty.getCells(4)) + .fluidInputs(Materials.Oxygen.getGas(15000)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Benzene.getCells(1), Materials.Empty.getCells(1)) + .itemOutputs(Materials.HydrochloricAcid.getCells(2)) + .fluidInputs(Materials.Chlorine.getGas(4000)) + .fluidOutputs(Materials.Dichlorobenzene.getFluid(1000)) + .duration(12 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Glycerol.getCells(1), Materials.Empty.getCells(2)) + .itemOutputs(Materials.DilutedSulfuricAcid.getCells(3)) + .fluidInputs(Materials.NitrationMixture.getFluid(6000)) + .fluidOutputs(Materials.Glyceryl.getFluid(1000)) + .duration(9 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(12), Materials.Empty.getCells(4)) + .itemOutputs(Materials.Salt.getDust(8), Materials.Phenol.getCells(4)) + .fluidInputs(Materials.Chlorobenzene.getFluid(4000)) + .duration(48 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(12), Materials.Chlorobenzene.getCells(4)) + .itemOutputs(Materials.Salt.getDust(8), Materials.Phenol.getCells(4)) + .duration(48 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // Recipes for gasoline + // 2N + O = N2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Nitrogen.getCells(2), Materials.Oxygen.getCells(1)) + .itemOutputs(Materials.NitrousOxide.getCells(1), Materials.Empty.getCells(2)) + .duration(10 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Nitrogen.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(2)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.NitrousOxide.getGas(1000)) + .duration(10 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Nitrogen.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.NitrousOxide.getCells(1), Materials.Empty.getCells(1)) + .fluidInputs(Materials.Oxygen.getGas(1000)) + .duration(10 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Nitrogen.getGas(2000)) + .fluidOutputs(Materials.NitrousOxide.getGas(1000)) + .duration(10 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Oxygen.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.NitrousOxide.getCells(1)) + .fluidInputs(Materials.Nitrogen.getGas(2000)) + .duration(10 * SECONDS) + .eut(30) + .addTo(chemicalReactorRecipes); + + // C2H6O + C4H8 = C6H14O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Ethanol.getCells(1), Materials.Butene.getCells(1)) + .itemOutputs(Materials.AntiKnock.getCells(1), Materials.Empty.getCells(1)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + + // Potassium Dichromate + // 2KNO3 + 2CrO3 = K2Cr2O7 + 2NO + 3O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Saltpeter.getDust(10), Materials.ChromiumTrioxide.getDust(8)) + .itemOutputs(Materials.Potassiumdichromate.getDust(11)) + .fluidOutputs(Materials.NitricOxide.getGas(2000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.PotassiumNitrade.getDust(10), Materials.ChromiumTrioxide.getDust(8)) + .itemOutputs(Materials.Potassiumdichromate.getDust(11)) + .fluidOutputs(Materials.NitricOxide.getGas(2000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalReactorRecipes); + } + + public void multiblockOnly() { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(22)) + .fluidInputs(Materials.Hydrogen.getGas(16000), Materials.Oxygen.getGas(8000)) + .fluidOutputs(GT_ModHandler.getDistilledWater(8000)) + .duration(4 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.PotassiumNitrade.getDust(10), Materials.ChromiumTrioxide.getDust(8)) + .itemOutputs(Materials.Potassiumdichromate.getDust(11)) + .fluidOutputs(Materials.NitricOxide.getGas(2000), Materials.Oxygen.getGas(3000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Saltpeter.getDust(10), Materials.ChromiumTrioxide.getDust(8)) + .itemOutputs(Materials.Potassiumdichromate.getDust(11)) + .fluidOutputs(Materials.NitricOxide.getGas(2000), Materials.Oxygen.getGas(3000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // Potassium Dichromate shortcut + // 2 Cr + 6O + 10 Saltpeter/Potassium Dichromate = 10 K2Cr2O7 + 2NO + 3O + + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.PotassiumNitrade.getDust(64), + Materials.PotassiumNitrade.getDust(64), + Materials.PotassiumNitrade.getDust(32), + Materials.Chrome.getDust(2 * 16), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs( + Materials.Potassiumdichromate.getDust(64), + Materials.Potassiumdichromate.getDust(64), + Materials.Potassiumdichromate.getDust(48)) + .fluidInputs(Materials.Oxygen.getGas(6000 * 16)) + .fluidOutputs(Materials.NitricOxide.getGas(2000 * 16), Materials.Oxygen.getGas(3000 * 16)) + .duration(2 * MINUTES + 8 * SECONDS) + .eut((int) GT_Values.VP[7]) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Saltpeter.getDust(64), + Materials.Saltpeter.getDust(64), + Materials.Saltpeter.getDust(32), + Materials.Chrome.getDust(2 * 16), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs( + Materials.Potassiumdichromate.getDust(64), + Materials.Potassiumdichromate.getDust(64), + Materials.Potassiumdichromate.getDust(48)) + .fluidInputs(Materials.Oxygen.getGas(6000 * 16)) + .fluidOutputs(Materials.NitricOxide.getGas(2000 * 16), Materials.Oxygen.getGas(3000 * 16)) + .duration(2 * MINUTES + 8 * SECONDS) + .eut((int) GT_Values.VP[7]) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Benzene.getFluid(1000), Materials.Methane.getGas(2000)) + .fluidOutputs(Materials.Dimethylbenzene.getFluid(1000), Materials.Hydrogen.getGas(4000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Galena, 3), + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Sphalerite, 1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(4000)) + .fluidOutputs(new FluidStack(ItemList.sIndiumConcentrate, 8000)) + .duration(3 * SECONDS) + .eut(150) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(8), + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Galena, 27), + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Sphalerite, 9)) + .fluidInputs(Materials.SulfuricAcid.getFluid(36000)) + .fluidOutputs(new FluidStack(ItemList.sIndiumConcentrate, 72000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Pentlandite, 9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PlatinumGroupSludge, 1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(9000)) + .fluidOutputs(new FluidStack(ItemList.sNickelSulfate, 18000)) + .duration(1 * SECONDS + 5 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Chalcopyrite, 9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PlatinumGroupSludge, 1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(9000)) + .fluidOutputs(new FluidStack(ItemList.sBlueVitriol, 18000)) + .duration(1 * SECONDS + 5 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Plutonium, 64), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 64)) + .fluidInputs(Materials.Air.getGas(8000)) + .fluidOutputs(Materials.Radon.getGas(800)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // 3SiO2 + 4Al = 3Si + 2Al2O3 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 10)) + .duration(10 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + // 10Si + 30HCl -> 0.3 SiH2Cl2 + 9 HSiCl3 + 0.3 SiCl4 + 0.2 Si2Cl6 + 20.4H + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 10)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(30000)) + .fluidOutputs( + Materials.Trichlorosilane.getFluid(9000), + Materials.SiliconTetrachloride.getFluid(300), + Materials.Hexachlorodisilane.getFluid(200), + Materials.Dichlorosilane.getGas(300), + Materials.Hydrogen.getGas(20400)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // 2CO + 2C3H6 + 4H =RhHCO(P(C6H5)3)3= C4H8O + C4H8O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4), MaterialsKevlar.OrganorhodiumCatalyst.getDustTiny(1)) + .fluidInputs( + Materials.Hydrogen.getGas(4000), + Materials.Propene.getGas(2000), + Materials.CarbonMonoxide.getGas(2000)) + .fluidOutputs(MaterialsKevlar.Butyraldehyde.getFluid(1000), MaterialsKevlar.Isobutyraldehyde.getFluid(1000)) + .duration(15 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9), MaterialsKevlar.OrganorhodiumCatalyst.getDust(1)) + .fluidInputs( + Materials.Hydrogen.getGas(36000), + Materials.Propene.getGas(18000), + Materials.CarbonMonoxide.getGas(18000)) + .fluidOutputs(MaterialsKevlar.Butyraldehyde.getFluid(9000), MaterialsKevlar.Isobutyraldehyde.getFluid(9000)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + // C2H4 + O =Al2O3,Ag= C2H4O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 1)) + .fluidInputs(Materials.Ethylene.getGas(1000), Materials.Oxygen.getGas(1000)) + .fluidOutputs(MaterialsKevlar.EthyleneOxide.getGas(1000)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 9)) + .fluidInputs(Materials.Ethylene.getGas(9000), Materials.Oxygen.getGas(9000)) + .fluidOutputs(MaterialsKevlar.EthyleneOxide.getGas(9000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs( + MaterialsKevlar.EthyleneOxide.getGas(1000), + Materials.Dimethyldichlorosilane.getFluid(4000), + Materials.Water.getFluid(5000)) + .fluidOutputs(MaterialsKevlar.SiliconOil.getFluid(5000)) + .duration(15 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(8)) + .fluidInputs( + MaterialsKevlar.EthyleneOxide.getGas(9000), + Materials.Dimethyldichlorosilane.getFluid(36000), + Materials.Water.getFluid(45000)) + .fluidOutputs(MaterialsKevlar.SiliconOil.getFluid(45000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // NH3 + CH4O =SiO2,Al2O3= CH5N + H2O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1)) + .fluidInputs(Materials.Methanol.getFluid(1000), Materials.Ammonia.getGas(1000)) + .fluidOutputs(MaterialsKevlar.Methylamine.getGas(1000), Materials.Water.getFluid(1000)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(500000) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.KevlarCatalyst, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.Pentaerythritol, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.DiphenylmethaneDiisocyanate, 5)) + .fluidInputs(MaterialsKevlar.Ethyleneglycol.getFluid(4000), MaterialsKevlar.SiliconOil.getFluid(1000)) + .fluidOutputs(MaterialsKevlar.PolyurethaneResin.getFluid(1000)) + .duration(10 * SECONDS) + .eut(500000) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.KevlarCatalyst, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.Pentaerythritol, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.DiphenylmethaneDiisocyanate, 45)) + .fluidInputs(MaterialsKevlar.Ethyleneglycol.getFluid(36000), MaterialsKevlar.SiliconOil.getFluid(9000)) + .fluidOutputs(MaterialsKevlar.PolyurethaneResin.getFluid(9000)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(500000) + .addTo(multiblockChemicalReactorRecipes); + + // 3NH3 + 6CH4O =Al2O3,SiO2= CH5N + C2H7N + C3H9N + 6H2O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1)) + .fluidInputs(Materials.Methanol.getFluid(6000), Materials.Ammonia.getGas(3000)) + .fluidOutputs( + MaterialsKevlar.Methylamine.getGas(1000), + Materials.Dimethylamine.getGas(1000), + MaterialsKevlar.Trimethylamine.getGas(1000), + Materials.Water.getFluid(6000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(11), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 9)) + .fluidInputs(Materials.Methanol.getFluid(54000), Materials.Ammonia.getGas(27000)) + .fluidOutputs( + MaterialsKevlar.Methylamine.getGas(9000), + Materials.Dimethylamine.getGas(9000), + MaterialsKevlar.Trimethylamine.getGas(9000), + Materials.Water.getFluid(54000)) + .duration(2 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // 18SOCl2 + 5C10H10O4 + 6CO2 = 7C8H4Cl2O2 + 22HCl + 18SO2 + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.TerephthaloylChloride, 64), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.TerephthaloylChloride, 48)) + .fluidInputs( + MaterialsKevlar.ThionylChloride.getFluid(18000), + MaterialsKevlar.DimethylTerephthalate.getFluid(5000), + Materials.CarbonDioxide.getGas(6000)) + .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(22000), Materials.SulfurDioxide.getGas(18000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // 2CH4O + C8H6O4 =H2SO4= C10H10O4 + 2H2O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs( + MaterialsKevlar.TerephthalicAcid.getFluid(1000), + Materials.Methanol.getFluid(2000), + Materials.SulfuricAcid.getFluid(2000)) + .fluidOutputs( + MaterialsKevlar.DimethylTerephthalate.getFluid(1000), + Materials.DilutedSulfuricAcid.getFluid(2000)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs( + MaterialsKevlar.TerephthalicAcid.getFluid(9000), + Materials.Methanol.getFluid(18000), + Materials.SulfuricAcid.getFluid(18000)) + .fluidOutputs( + MaterialsKevlar.DimethylTerephthalate.getFluid(9000), + Materials.DilutedSulfuricAcid.getFluid(18000)) + .duration(1 * MINUTES + 27 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.Benzene.getFluid(1000), Materials.Methane.getGas(2000)) + .fluidOutputs(MaterialsKevlar.IIIDimethylbenzene.getFluid(1000), Materials.Hydrogen.getGas(4000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3)) + .fluidInputs(Materials.Benzene.getFluid(1000), Materials.Methane.getGas(2000)) + .fluidOutputs(MaterialsKevlar.IVDimethylbenzene.getFluid(1000), Materials.Hydrogen.getGas(4000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.CobaltIIHydroxide, 45)) + .itemOutputs( + MaterialsKevlar.CobaltIINaphthenate.getDust(64), + MaterialsKevlar.CobaltIINaphthenate.getDust(64), + MaterialsKevlar.CobaltIINaphthenate.getDust(64), + MaterialsKevlar.CobaltIINaphthenate.getDust(64), + MaterialsKevlar.CobaltIINaphthenate.getDust(64), + MaterialsKevlar.CobaltIINaphthenate.getDust(49)) + .fluidInputs(MaterialsKevlar.NaphthenicAcid.getFluid(10000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.CobaltIIAcetate, 64), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.CobaltIIAcetate, 64), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.CobaltIIAcetate, 7)) + .itemOutputs( + MaterialsKevlar.CobaltIINaphthenate.getDust(64), + MaterialsKevlar.CobaltIINaphthenate.getDust(64), + MaterialsKevlar.CobaltIINaphthenate.getDust(64), + MaterialsKevlar.CobaltIINaphthenate.getDust(64), + MaterialsKevlar.CobaltIINaphthenate.getDust(64), + MaterialsKevlar.CobaltIINaphthenate.getDust(49)) + .fluidInputs(MaterialsKevlar.NaphthenicAcid.getFluid(10000)) + .fluidOutputs(Materials.AceticAcid.getFluid(15000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // PCl3 + 3C6H5Cl + 6Na = 6NaCl + C18H15P + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 6)) + .itemOutputs(MaterialsKevlar.Triphenylphosphene.getDust(34), Materials.Salt.getDust(12)) + .fluidInputs(MaterialsKevlar.PhosphorusTrichloride.getFluid(1000), Materials.Chlorobenzene.getFluid(3000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // 4NaH + C3H9BO3 = NaBH4 + 3CH3ONa + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1), MaterialsKevlar.SodiumHydride.getDust(8)) + .itemOutputs(MaterialsKevlar.SodiumBorohydride.getDust(6), MaterialsKevlar.SodiumMethoxide.getDust(18)) + .fluidInputs(MaterialsKevlar.TrimethylBorate.getFluid(1000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9), MaterialsKevlar.SodiumHydride.getDust(64)) + .itemOutputs( + MaterialsKevlar.SodiumBorohydride.getDust(48), + MaterialsKevlar.SodiumMethoxide.getDust(64), + MaterialsKevlar.SodiumMethoxide.getDust(64), + MaterialsKevlar.SodiumMethoxide.getDust(16)) + .fluidInputs(MaterialsKevlar.TrimethylBorate.getFluid(8000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // 2CH3COOH = CH3COCH3 + CO2 + H + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(0, Materials.Calcite.getDust(5)), GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs( + Materials.Acetone.getFluid(1000), + Materials.CarbonDioxide.getGas(1000), + Materials.Water.getFluid(1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(0, Materials.Calcium.getDust(1)), GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs( + Materials.Acetone.getFluid(1000), + Materials.CarbonDioxide.getGas(1000), + Materials.Water.getFluid(1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(0, Materials.Quicklime.getDust(2)), GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs( + Materials.Acetone.getFluid(1000), + Materials.CarbonDioxide.getGas(1000), + Materials.Water.getFluid(1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // C + 4H + O = CH3OH + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Carbon.getDust(1), GT_Utility.getIntegratedCircuit(23)) + .fluidInputs(Materials.Hydrogen.getGas(4000), Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.Methanol.getFluid(1000)) + .duration(16 * SECONDS) + .eut(96) + .addTo(multiblockChemicalReactorRecipes); + + // This recipe collides with one for Vinyl Chloride + // 2C + 4H + 2O = CH3COOH + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Carbon.getDust(2), GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.Hydrogen.getGas(4000), Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.AceticAcid.getFluid(1000)) + .duration(24 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + // 2CO + 4H = CH3COOH + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.CarbonMonoxide.getGas(2000), Materials.Hydrogen.getGas(4000)) + .fluidOutputs(Materials.AceticAcid.getFluid(1000)) + .duration(16 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(8)) + .fluidInputs(Materials.Hydrogen.getGas(9000), Materials.Chlorine.getGas(9000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(9000)) + .duration(7 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs( + Materials.Chlorine.getGas(10000), + Materials.Water.getFluid(10000), + Materials.Mercury.getFluid(1000)) + .fluidOutputs(Materials.HypochlorousAcid.getFluid(10000), Materials.Hydrogen.getGas(10000)) + .duration(30 * SECONDS) + .eut(8) + .addTo(multiblockChemicalReactorRecipes); + + // H2O + 4Cl + C3H6 + NaOH = C3H5ClO + NaCl·H2O + 2HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(3), GT_Utility.getIntegratedCircuit(23)) + .fluidInputs( + Materials.Propene.getGas(1000), + Materials.Chlorine.getGas(4000), + Materials.Water.getFluid(1000)) + .fluidOutputs( + Materials.Epichlorohydrin.getFluid(1000), + Materials.SaltWater.getFluid(1000), + Materials.HydrochloricAcid.getFluid(2000)) + .duration(32 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + // H2O + 2Cl + C3H6 + NaOH =Hg= C3H5ClO + NaCl·H2O + 2H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(3), GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.Propene.getGas(1000), + Materials.Chlorine.getGas(2000), + Materials.Water.getFluid(1000), + Materials.Mercury.getFluid(100)) + .fluidOutputs( + Materials.Epichlorohydrin.getFluid(1000), + Materials.SaltWater.getFluid(1000), + Materials.Hydrogen.getGas(2000)) + .duration(32 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + // HClO + 2Cl + C3H6 + NaOH = C3H5ClO + NaCl·H2O + HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(3), GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.Propene.getGas(1000), + Materials.Chlorine.getGas(2000), + Materials.HypochlorousAcid.getFluid(1000)) + .fluidOutputs( + Materials.Epichlorohydrin.getFluid(1000), + Materials.SaltWater.getFluid(1000), + Materials.HydrochloricAcid.getFluid(1000)) + .duration(32 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Apatite.getDust(9)) + .itemOutputs(Materials.Gypsum.getDust(40)) + .fluidInputs(Materials.SulfuricAcid.getFluid(5000), Materials.Water.getFluid(10000)) + .fluidOutputs(Materials.PhosphoricAcid.getFluid(3000), Materials.HydrochloricAcid.getFluid(1000)) + .duration(16 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Phosphorus.getDust(4), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.PhosphorousPentoxide.getDust(14)) + .fluidInputs(Materials.Oxygen.getGas(10000)) + .duration(2 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + // 2P + 5O + 3H2O = 2H3PO4 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Phosphorus.getDust(1), GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.Oxygen.getGas(2500), Materials.Water.getFluid(1500)) + .fluidOutputs(Materials.PhosphoricAcid.getFluid(1000)) + .duration(16 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs( + Materials.Propene.getGas(8000), + Materials.Benzene.getFluid(8000), + Materials.PhosphoricAcid.getFluid(1000)) + .fluidOutputs(Materials.Cumene.getFluid(8000)) + .duration(1 * MINUTES + 36 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.Propene.getGas(1000), + Materials.Benzene.getFluid(1000), + Materials.PhosphoricAcid.getFluid(100), + Materials.Oxygen.getGas(2000)) + .fluidOutputs(Materials.Phenol.getFluid(1000), Materials.Acetone.getFluid(1000)) + .duration(24 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs( + Materials.Acetone.getFluid(1000), + Materials.Phenol.getFluid(2000), + Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.BisphenolA.getFluid(1000), Materials.Water.getFluid(1000)) + .duration(8 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(6), GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.Acetone.getFluid(1000), + Materials.Phenol.getFluid(2000), + Materials.HydrochloricAcid.getFluid(1000), + Materials.Epichlorohydrin.getFluid(2000)) + .fluidOutputs(Materials.Epoxid.getMolten(1000), Materials.SaltWater.getFluid(2000)) + .duration(24 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.Hydrogen.getGas(9000), Materials.Fluorine.getGas(9000)) + .fluidOutputs(Materials.HydrofluoricAcid.getFluid(9000)) + .duration(7 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.HydrofluoricAcid.getFluid(4000), + Materials.Methane.getGas(2000), + Materials.Chlorine.getGas(12000)) + .fluidOutputs(Materials.Tetrafluoroethylene.getGas(1000), Materials.HydrochloricAcid.getFluid(12000)) + .duration(27 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Silicon.getDust(1), GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(Materials.Polydimethylsiloxane.getDust(3)) + .fluidInputs( + Materials.Methane.getGas(2000), + Materials.Chlorine.getGas(4000), + Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(2000), Materials.DilutedHydrochloricAcid.getFluid(2000)) + .duration(24 * SECONDS) + .eut(96) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Silicon.getDust(1), GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(Materials.Polydimethylsiloxane.getDust(3)) + .fluidInputs(Materials.Methanol.getFluid(2000), Materials.HydrochloricAcid.getFluid(2000)) + .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(2000)) + .duration(24 * SECONDS) + .eut(96) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Nitrogen.getGas(1000), Materials.Hydrogen.getGas(3000)) + .fluidOutputs(Materials.Ammonia.getGas(1000)) + .duration(16 * SECONDS) + .eut(TierEU.HV * 3 / 4) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.Nitrogen.getGas(10000), Materials.Hydrogen.getGas(30000)) + .fluidOutputs(Materials.Ammonia.getGas(10000)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.HV * 3 / 4) + .addTo(multiblockChemicalReactorRecipes); + + // 2NH3 + 7O = N2O4 + 3H2O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(23)) + .fluidInputs(Materials.Ammonia.getGas(2000), Materials.Oxygen.getGas(7000)) + .fluidOutputs(Materials.DinitrogenTetroxide.getGas(1000), Materials.Water.getFluid(3000)) + .duration(24 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + // 7O + 6H + 2N = N2O4 + 3H2O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(23)) + .fluidInputs( + Materials.Nitrogen.getGas(2000), + Materials.Hydrogen.getGas(6000), + Materials.Oxygen.getGas(7000)) + .fluidOutputs(Materials.DinitrogenTetroxide.getGas(1000), Materials.Water.getFluid(3000)) + .duration(55 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.Oxygen.getGas(100000), Materials.Ammonia.getGas(36000)) + .fluidOutputs(Materials.NitricOxide.getGas(36000), Materials.Water.getFluid(54000)) + .duration(8 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(8)) + .fluidInputs(Materials.Oxygen.getGas(100000), Materials.Ammonia.getGas(36000)) + .fluidOutputs(Materials.NitricOxide.getGas(36000)) + .duration(8 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.NitricOxide.getGas(9000), Materials.Oxygen.getGas(9000)) + .fluidOutputs(Materials.NitrogenDioxide.getGas(9000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.NitrogenDioxide.getGas(27000), Materials.Water.getFluid(9000)) + .fluidOutputs(Materials.NitricAcid.getFluid(18000), Materials.NitricOxide.getGas(9000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.Hydrogen.getGas(3000), + Materials.Nitrogen.getGas(1000), + Materials.Oxygen.getGas(4000)) + .fluidOutputs(Materials.NitricAcid.getFluid(1000), Materials.Water.getFluid(1000)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.Ammonia.getGas(1000), Materials.Oxygen.getGas(4000)) + .fluidOutputs(Materials.NitricAcid.getFluid(1000), Materials.Water.getFluid(1000)) + .duration(16 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.NitrogenDioxide.getGas(2000), + Materials.Oxygen.getGas(1000), + Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.NitricAcid.getFluid(2000)) + .duration(16 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9), Materials.Sulfur.getDust(9)) + .fluidInputs(Materials.Hydrogen.getGas(18000)) + .fluidOutputs(Materials.HydricSulfide.getGas(9000)) + .duration(4 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9), Materials.Sulfur.getDust(9)) + .fluidInputs(Materials.Oxygen.getGas(18000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(9000)) + .duration(4 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.HydricSulfide.getGas(9000), Materials.Oxygen.getGas(27000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(9000), Materials.Water.getFluid(9000)) + .duration(3 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(8)) + .fluidInputs(Materials.HydricSulfide.getGas(9000), Materials.Oxygen.getGas(27000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(9000)) + .duration(3 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(7)) + .itemOutputs(Materials.Sulfur.getDust(27)) + .fluidInputs(Materials.SulfurDioxide.getGas(9000), Materials.HydricSulfide.getGas(18000)) + .duration(3 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.SulfurTrioxide.getGas(9000), Materials.Water.getFluid(9000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(9000)) + .duration(13 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // S + O3 + H2O = H2SO4 + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24), Materials.Sulfur.getDust(1)) + .fluidInputs(Materials.Oxygen.getGas(3000), Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) + .duration(24 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(7), Materials.Sulfur.getDust(9)) + .fluidInputs(Materials.Oxygen.getGas(27000), Materials.Water.getFluid(9000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(9000)) + .duration(13 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // H2S + O4 = H2SO4 + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.HydricSulfide.getGas(1000), Materials.Oxygen.getGas(4000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) + .duration(24 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + // SO2 + O + H2O = H2SO4 + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.SulfurDioxide.getGas(1000), + Materials.Oxygen.getGas(1000), + Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) + .duration(30 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs( + Materials.SulfurDioxide.getGas(9000), + Materials.Oxygen.getGas(9000), + Materials.Water.getFluid(9000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(9000)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs( + Materials.HydrochloricAcid.getFluid(1000), + Materials.Ethylene.getGas(1000), + Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.VinylChloride.getGas(1000), Materials.Water.getFluid(1000)) + .duration(8 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.Chlorine.getGas(2000), + Materials.Ethylene.getGas(2000), + Materials.Oxygen.getGas(1000)) + .fluidOutputs(Materials.VinylChloride.getGas(2000), Materials.Water.getFluid(1000)) + .duration(12 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.RawRubber.getDust(18)) + .fluidInputs( + Materials.Isoprene.getFluid(1728), + Materials.Air.getGas(6000), + Materials.Titaniumtetrachloride.getFluid(80)) + .duration(32 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.RawRubber.getDust(24)) + .fluidInputs( + Materials.Isoprene.getFluid(1728), + Materials.Oxygen.getGas(6000), + Materials.Titaniumtetrachloride.getFluid(80)) + .duration(32 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(Materials.RawStyreneButadieneRubber.getDust(1)) + .fluidInputs(Materials.Styrene.getFluid(36), Materials.Butadiene.getGas(108), Materials.Air.getGas(2000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(Materials.RawStyreneButadieneRubber.getDust(3)) + .fluidInputs(Materials.Styrene.getFluid(72), Materials.Butadiene.getGas(216), Materials.Oxygen.getGas(2000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4)) + .itemOutputs( + Materials.RawStyreneButadieneRubber.getDust(22), + Materials.RawStyreneButadieneRubber.getDustSmall(2)) + .fluidInputs( + Materials.Styrene.getFluid(540), + Materials.Butadiene.getGas(1620), + Materials.Titaniumtetrachloride.getFluid(100), + Materials.Air.getGas(15000)) + .duration(32 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(Materials.RawStyreneButadieneRubber.getDust(30)) + .fluidInputs( + Materials.Styrene.getFluid(540), + Materials.Butadiene.getGas(1620), + Materials.Titaniumtetrachloride.getFluid(100), + Materials.Oxygen.getGas(7500)) + .duration(32 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9), Materials.Salt.getDust(18)) + .itemOutputs(Materials.SodiumBisulfate.getDust(63)) + .fluidInputs(Materials.SulfuricAcid.getFluid(9000)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(9000)) + .duration(6 * SECONDS + 15 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9), Materials.SodiumHydroxide.getDust(27)) + .itemOutputs(Materials.SodiumBisulfate.getDust(63)) + .fluidInputs(Materials.SulfuricAcid.getFluid(9000)) + .fluidOutputs(Materials.Water.getFluid(9000)) + .duration(6 * SECONDS + 15 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.Benzene.getFluid(1000), + Materials.Chlorine.getGas(2000), + Materials.Water.getFluid(1000)) + .fluidOutputs( + Materials.Phenol.getFluid(1000), + Materials.HydrochloricAcid.getFluid(1000), + Materials.DilutedHydrochloricAcid.getFluid(1000)) + .duration(28 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + // C6H6 + 2Cl + NaOH = C6H6O + NaCl + HCl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(6), GT_Utility.getIntegratedCircuit(24)) + .itemOutputs(Materials.Salt.getDust(4)) + .fluidInputs(Materials.Benzene.getFluid(2000), Materials.Chlorine.getGas(4000)) + .fluidOutputs(Materials.Phenol.getFluid(2000), Materials.HydrochloricAcid.getFluid(2000)) + .duration(56 * SECONDS) + .eut(30) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.LightFuel.getFluid(20000), Materials.HeavyFuel.getFluid(4000)) + .fluidOutputs(Materials.Fuel.getFluid(24000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.Fuel.getFluid(10000), Materials.Tetranitromethane.getFluid(200)) + .fluidOutputs(Materials.NitroFuel.getFluid(10000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.BioDiesel.getFluid(10000), Materials.Tetranitromethane.getFluid(400)) + .fluidOutputs(Materials.NitroFuel.getFluid(9000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // CH4 + 2H2O = CO2 + 8H + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(11)) + .fluidInputs(Materials.Methane.getGas(5000), GT_ModHandler.getDistilledWater(10000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(5000), Materials.Hydrogen.getGas(40000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // CH4 + H2O = CO + 6H + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(12)) + .fluidInputs(Materials.Methane.getGas(5000), GT_ModHandler.getDistilledWater(5000)) + .fluidOutputs(Materials.CarbonMonoxide.getGas(5000), Materials.Hydrogen.getGas(30000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.Nitrogen.getGas(20000), Materials.Oxygen.getGas(10000)) + .fluidOutputs(Materials.NitrousOxide.getGas(10000)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.Naphtha.getFluid(16000), + Materials.Gas.getGas(2000), + Materials.Methanol.getFluid(1000), + Materials.Acetone.getFluid(1000)) + .fluidOutputs(Materials.GasolineRaw.getFluid(20000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.GasolineRaw.getFluid(10000), Materials.Toluene.getFluid(1000)) + .fluidOutputs(Materials.GasolineRegular.getFluid(11000)) + .duration(10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.GasolineRegular.getFluid(20000), + Materials.Octane.getFluid(2000), + Materials.NitrousOxide.getGas(6000), + Materials.Toluene.getFluid(1000), + Materials.AntiKnock.getFluid(3000)) + .fluidOutputs(Materials.GasolinePremium.getFluid(32000)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // C2H6O + C4H8 = C6H14O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.Ethanol.getFluid(1000), Materials.Butene.getGas(1000)) + .fluidOutputs(Materials.AntiKnock.getFluid(1000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // CH4O + C4H8 = C5H12O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.Methanol.getFluid(1000), Materials.Butene.getGas(1000)) + .fluidOutputs(Materials.MTBEMixture.getGas(1000)) + .duration(20 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + Materials.Naquadria.getMolten(4608), + Materials.ElectrumFlux.getMolten(4608), + Materials.Radon.getGas(16000)) + .fluidOutputs(Materials.EnrichedNaquadria.getFluid(9216)) + .duration(30 * SECONDS) + .eut(500000) + .addTo(multiblockChemicalReactorRecipes); + + if (GTNHLanthanides.isModLoaded() && GTPlusPlus.isModLoaded()) { + // CH2O + 2C6H7N + HCl = C13H14N2(HCl) + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("fluid.formaldehyde"), 1000), + new FluidStack(FluidRegistry.getFluid("aniline"), 2000), + Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(MaterialsKevlar.DiaminodiphenylmethanMixture.getFluid(1000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // C6H5NO2 + 6H =Pd= C6H7N + 2H2O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Palladium, 1)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("nitrobenzene"), 9000), + Materials.Hydrogen.getGas(54000)) + .fluidOutputs(Materials.Water.getFluid(18000), new FluidStack(FluidRegistry.getFluid("aniline"), 9000)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // C6H6 + HNO3 =H2SO4= C6H5NO2 + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs( + Materials.Benzene.getFluid(5000), + Materials.SulfuricAcid.getFluid(3000), + Materials.NitricAcid.getFluid(5000), + GT_ModHandler.getDistilledWater(10000)) + .fluidOutputs( + new FluidStack(FluidRegistry.getFluid("nitrobenzene"), 5000), + Materials.DilutedSulfuricAcid.getFluid(3000)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(multiblockChemicalReactorRecipes); + + // C13H14N2(HCl) + 2COCl2 = C15H10N2O2(5HCl) + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs( + MaterialsKevlar.DiaminodiphenylmethanMixture.getFluid(1000), + new FluidStack(FluidRegistry.getFluid("phosgene"), 2000)) + .fluidOutputs(MaterialsKevlar.DiphenylmethaneDiisocyanateMixture.getFluid(1000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Palladium, 1)) + .fluidInputs(MaterialsKevlar.Butyraldehyde.getFluid(9000), Materials.Hydrogen.getGas(18000)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("butanol"), 9000)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.KevlarCatalyst, 1)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("butanol"), 2000), + new FluidStack(FluidRegistry.getFluid("propionicacid"), 1000), + Materials.IronIIIChloride.getFluid(100)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.KevlarCatalyst, 9)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("butanol"), 18000), + new FluidStack(FluidRegistry.getFluid("propionicacid"), 9000), + Materials.IronIIIChloride.getFluid(900)) + .duration(3 * MINUTES + 45 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // C2H4 + CO + H2O =C4NiO= C3H6O2 + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs( + Materials.Ethylene.getGas(1000), + Materials.CarbonMonoxide.getGas(1000), + MaterialsKevlar.NickelTetracarbonyl.getFluid(100), + Materials.Water.getFluid(1000)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("propionicacid"), 1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs( + Materials.Ethylene.getGas(9000), + Materials.CarbonMonoxide.getGas(9000), + MaterialsKevlar.NickelTetracarbonyl.getFluid(900), + Materials.Water.getFluid(9000)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("propionicacid"), 9000)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // C6H7N + HNO3 =H2SO4,C4H6O3= C6H6N2O2 + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("aniline"), 1000), + new FluidStack(FluidRegistry.getFluid("molten.aceticanhydride"), 100), + Materials.NitrationMixture.getFluid(2000)) + .fluidOutputs( + MaterialsKevlar.IVNitroaniline.getFluid(1000), + Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("aniline"), 9000), + new FluidStack(FluidRegistry.getFluid("molten.aceticanhydride"), 900), + Materials.NitrationMixture.getFluid(18000)) + .fluidOutputs( + MaterialsKevlar.IVNitroaniline.getFluid(9000), + Materials.DilutedSulfuricAcid.getFluid(9000)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // C6H6N2O2 + 6H =Pd,NO2= C6H8N2 + 2H2O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Palladium, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.ParaPhenylenediamine, 16)) + .fluidInputs( + Materials.NitrogenDioxide.getGas(100), + Materials.Hydrogen.getGas(6000), + MaterialsKevlar.IVNitroaniline.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(2000)) + .duration(20 * SECONDS) + .eut(500000) + .addTo(multiblockChemicalReactorRecipes); + + // C4H10O2 =Cu= C4H6O2 + 4H + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("1,4-butanediol"), 1000)) + .fluidOutputs(MaterialsKevlar.GammaButyrolactone.getFluid(1000), Materials.Hydrogen.getGas(4000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 9)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("1,4-butanediol"), 9000)) + .fluidOutputs(MaterialsKevlar.GammaButyrolactone.getFluid(9000), Materials.Hydrogen.getGas(36000)) + .duration(35 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // 2CH2O + C2H2 =SiO2,CuO,Bi2O3= C4H6O2 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CupricOxide, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.BismuthIIIOxide, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.IIButinIIVdiol, 12)) + .fluidInputs( + MaterialsKevlar.Acetylene.getGas(1000), + new FluidStack(FluidRegistry.getFluid("fluid.formaldehyde"), 2000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CupricOxide, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.BismuthIIIOxide, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 9)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.IIButinIIVdiol, 64), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.IIButinIIVdiol, 44)) + .fluidInputs( + MaterialsKevlar.Acetylene.getGas(9000), + new FluidStack(FluidRegistry.getFluid("fluid.formaldehyde"), 18000)) + .duration(2 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // C4H6O2 + 4H =NiAl= C4H10O2 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.IIButinIIVdiol, 12), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.RaneyNickelActivated, 1)) + .fluidInputs(Materials.Hydrogen.getGas(4000)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("1,4-butanediol"), 1000)) + .duration(15 * SECONDS) + .eut(500000) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + getModItem(GTPlusPlus.ID, "itemDustCalciumChloride", 1), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.ParaPhenylenediamine, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.TerephthaloylChloride, 9)) + .fluidInputs(MaterialsKevlar.NMethylIIPyrrolidone.getFluid(1000)) + .fluidOutputs( + MaterialsKevlar.LiquidCrystalKevlar.getFluid(9000), + Materials.DilutedHydrochloricAcid.getFluid(2000)) + .duration(30 * SECONDS) + .eut(500000) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + getModItem(GTPlusPlus.ID, "itemDustCalciumChloride", 7), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.ParaPhenylenediamine, 63), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.TerephthaloylChloride, 63)) + .fluidInputs(MaterialsKevlar.NMethylIIPyrrolidone.getFluid(7000)) + .fluidOutputs( + MaterialsKevlar.LiquidCrystalKevlar.getFluid(63000), + Materials.DilutedHydrochloricAcid.getFluid(14000)) + .duration(2 * MINUTES + 55 * SECONDS) + .eut(500000) + .addTo(multiblockChemicalReactorRecipes); + + // Na2B4O7(H2O)10 + 2HCl = 2NaCl + 4H3BO3 + 5H2O + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Borax, 23)) + .itemOutputs(Materials.Salt.getDust(4)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(2000)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("boricacid"), 4000), Materials.Water.getFluid(5000)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + // H3BO3 + 3CH4O =H2SO4= C3H9BO3 + 3H2O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs( + Materials.Methanol.getFluid(3000), + new FluidStack(FluidRegistry.getFluid("boricacid"), 1000), + Materials.SulfuricAcid.getFluid(6000)) + .fluidOutputs( + Materials.DilutedSulfuricAcid.getFluid(6000), + MaterialsKevlar.TrimethylBorate.getFluid(1000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs( + Materials.Methanol.getFluid(27000), + new FluidStack(FluidRegistry.getFluid("boricacid"), 9000), + Materials.SulfuricAcid.getFluid(54000)) + .fluidOutputs( + Materials.DilutedSulfuricAcid.getFluid(54000), + MaterialsKevlar.TrimethylBorate.getFluid(9000)) + .duration(3 * MINUTES + 45 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // RhCl3 + 3C18H15P + 3NaBH4 + CO = RhC55H46P3O + 3NaCl + 3B + 11H + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.RhodiumChloride, 4), + MaterialsKevlar.Triphenylphosphene.getDust(64), + MaterialsKevlar.Triphenylphosphene.getDust(38), + MaterialsKevlar.SodiumBorohydride.getDust(18)) + .itemOutputs( + MaterialsKevlar.OrganorhodiumCatalyst.getDust(64), + MaterialsKevlar.OrganorhodiumCatalyst.getDust(42), + Materials.Salt.getDust(6), + Materials.Boron.getDust(3)) + .fluidInputs(Materials.CarbonMonoxide.getGas(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(11000)) + .duration(40 * SECONDS) + .eut(500000) + .addTo(multiblockChemicalReactorRecipes); + + // 2NaOH + N2H4 =Mn= 2N + 2H2O + 2NaH + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + Materials.SodiumHydroxide.getDust(6), + Materials.Manganese.getDustTiny(1)) + .itemOutputs(MaterialsKevlar.SodiumHydride.getDust(4)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("fluid.hydrazine"), 1000)) + .fluidOutputs(Materials.Nitrogen.getGas(2000), Materials.Water.getFluid(2000)) + .duration(10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(18), + Materials.SodiumHydroxide.getDust(54), + Materials.Manganese.getDust(1)) + .itemOutputs(MaterialsKevlar.SodiumHydride.getDust(36)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("fluid.hydrazine"), 9000)) + .fluidOutputs(Materials.Nitrogen.getGas(18000), Materials.Water.getFluid(18000)) + .duration(3 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/CircuitAssemblerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CircuitAssemblerRecipes.java new file mode 100644 index 0000000000..10aaff6b4d --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/CircuitAssemblerRecipes.java @@ -0,0 +1,326 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.circuitAssemblerRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.loaders.postload.GT_MachineRecipeLoader.solderingMats; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class CircuitAssemblerRecipes implements Runnable { + + @Override + public void run() { + registerRailcraftRecipes(); + registerForestryRecipes(); + + } + + public void registerRailcraftRecipes() { + if (!Railcraft.isModLoaded()) { + return; + } + + for (Materials tMat : solderingMats) { + int tMultiplier = tMat.contains(SubTag.SOLDERING_MATERIAL_GOOD) ? 1 + : tMat.contains(SubTag.SOLDERING_MATERIAL_BAD) ? 4 : 2; + + // Railcraft Circuits + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Coated_Basic.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 1), + ItemList.Cover_Controller.get(1)) + .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 4L, 0)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(15 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Coated_Basic.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 1), + ItemList.Sensor_LV.get(1)) + .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 4L, 1)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(15 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Coated_Basic.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 1), + getModItem(Railcraft.ID, "part.signal.lamp", 1L, 0)) + .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 4L, 2)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(15 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Phenolic_Good.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1), + ItemList.Cover_Controller.get(1)) + .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 8L, 0)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(20 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Phenolic_Good.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1), + ItemList.Sensor_LV.get(1)) + .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 8L, 1)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(20 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Phenolic_Good.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1), + getModItem(Railcraft.ID, "part.signal.lamp", 1L, 0)) + .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 8L, 2)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(20 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Epoxy_Advanced.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1), + ItemList.Cover_Controller.get(1)) + .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 16L, 0)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(25 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Epoxy_Advanced.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1), + ItemList.Sensor_LV.get(1)) + .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 16L, 1)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(25 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Epoxy_Advanced.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1), + getModItem(Railcraft.ID, "part.signal.lamp", 1L, 0)) + .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 16L, 2)) + .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) + .duration(25 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Coated_Basic.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Primitive, 2), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Iron, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Iron, 4), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Iron, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 0)) + .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Coated_Basic.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 2), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Bronze, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Bronze, 4), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Bronze, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 1)) + .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Phenolic_Good.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 2), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Steel, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Steel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 2)) + .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Phenolic_Good.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Electrum, 4), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Electrum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 3)) + .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + } + } + + public void registerForestryRecipes() { + if (!Forestry.isModLoaded()) { + return; + } + + // alternative version of the copper electron tube + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1), + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Gold, 2), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Copper, 2), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.AnnealedCopper, 2)) + .itemOutputs(getModItem(Forestry.ID, "thermionicTubes", 4L, 0)) + .fluidInputs(Materials.Glass.getMolten(576)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + // alternative version of the iron electron tube + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1), + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Gold, 2), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Copper, 2), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.WroughtIron, 2)) + .itemOutputs(getModItem(Forestry.ID, "thermionicTubes", 4L, 3)) + .fluidInputs(Materials.Glass.getMolten(576)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + ItemStack[] rodMaterials = new ItemStack[] { + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Copper, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Tin, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Bronze, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Iron, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Gold, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Diamond, 2L), + getModItem(NewHorizonsCoreMod.ID, "item.LongObsidianRod", 2L, 0), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Blaze, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Rubber, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Emerald, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Apatite, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Lapis, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.EnderEye, 2L), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Uranium, 2L), }; + + for (int metaid = 0; metaid < rodMaterials.length; metaid++) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1), + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Gold, 2), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Copper, 2), + rodMaterials[metaid]) + .itemOutputs(getModItem(Forestry.ID, "thermionicTubes", 4L, metaid)) + .fluidInputs(Materials.Glass.getMolten(576)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + } + + for (Materials tMat : solderingMats) { + + int tMultiplier = tMat.contains(SubTag.SOLDERING_MATERIAL_GOOD) ? 1 + : tMat.contains(SubTag.SOLDERING_MATERIAL_BAD) ? 4 : 2; + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Coated_Basic.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Primitive, 2), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Iron, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Iron, 4), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Iron, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 0)) + .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Coated_Basic.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 2), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Bronze, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Bronze, 4), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Bronze, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 1)) + .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Phenolic_Good.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 2), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Steel, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Steel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 2)) + .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Board_Phenolic_Good.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, 2), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Electrum, 4), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Electrum, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 3)) + .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) + .duration(10 * SECONDS) + .eut((int) TierEU.RECIPE_LV) + .addTo(circuitAssemblerRecipes); + + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java new file mode 100644 index 0000000000..ef7441c13b --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java @@ -0,0 +1,154 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import mods.railcraft.common.blocks.aesthetics.cube.EnumCube; +import mods.railcraft.common.items.RailcraftToolItems; + +public class CompressorRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GTPlusPlus.ID, "blockRainforestOakSapling", 8, 0)) + .itemOutputs(ItemList.IC2_Plantball.get(1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Compressed_Coal_Chunk.get(1)) + .itemOutputs(ItemList.IC2_Industrial_Diamond.get(1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1)) + .itemOutputs(GT_ModHandler.getIC2Item("Uran238", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium235, 1)) + .itemOutputs(GT_ModHandler.getIC2Item("Uran235", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 1)) + .itemOutputs(GT_ModHandler.getIC2Item("Plutonium", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium235, 1)) + .itemOutputs(GT_ModHandler.getIC2Item("smallUran235", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plutonium, 1)) + .itemOutputs(GT_ModHandler.getIC2Item("smallPlutonium", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.ice, 2, 32767)) + .itemOutputs(new ItemStack(Blocks.packed_ice, 1, 0)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1)) + .itemOutputs(new ItemStack(Blocks.ice, 1, 0)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.CertusQuartz, 4)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "tile.BlockQuartz", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8L, 10)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "tile.BlockQuartz", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8L, 11)) + .itemOutputs(new ItemStack(Blocks.quartz_block, 1, 0)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8L, 12)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "tile.BlockFluix", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.quartz, 4, 0)) + .itemOutputs(new ItemStack(Blocks.quartz_block, 1, 0)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + /* + * GT_Values.RA.stdBuilder() .itemInputs( new ItemStack(Items.wheat, 9, 0) ) .itemOutputs( new + * ItemStack(Blocks.hay_block, 1, 0) ) .duration(15 * SECONDS) .eut(2) + * .addTo(sCompressorRecipes); + */ + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 4)) + .itemOutputs(new ItemStack(Blocks.glowstone, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Fireclay.getDust(1)) + .itemOutputs(ItemList.CompressedFireclay.get(1)) + .duration(4 * SECONDS) + .eut(4) + .addTo(compressorRecipes); + + if (Railcraft.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs(RailcraftToolItems.getCoalCoke(9)) + .itemOutputs(EnumCube.COKE_BLOCK.getItem()) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/CropProcessingRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CropProcessingRecipes.java new file mode 100644 index 0000000000..e69af249ee --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/CropProcessingRecipes.java @@ -0,0 +1,176 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; +import static gregtech.api.recipe.RecipeMaps.extractorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.GT_Mod; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_Utility; + +public class CropProcessingRecipes implements Runnable { + + @Override + public void run() { + ItemStack tCrop; + // Metals Line + tCrop = ItemList.Crop_Drop_Coppon.get(1); + this.addProcess(tCrop, Materials.Copper, 100, true); + this.addProcess(tCrop, Materials.Tetrahedrite, 100, false); + this.addProcess(tCrop, Materials.Chalcopyrite, 100, false); + this.addProcess(tCrop, Materials.Malachite, 100, false); + this.addProcess(tCrop, Materials.Pyrite, 100, false); + this.addProcess(tCrop, Materials.Stibnite, 100, false); + tCrop = ItemList.Crop_Drop_Tine.get(1); + this.addProcess(tCrop, Materials.Tin, 100, true); + this.addProcess(tCrop, Materials.Cassiterite, 100, false); + this.addProcess(tCrop, Materials.CassiteriteSand, 100, true); + tCrop = ItemList.Crop_Drop_Plumbilia.get(1); + this.addProcess(tCrop, Materials.Lead, 100, true); + this.addProcess(tCrop, Materials.Galena, 100, false); // + tCrop = ItemList.Crop_Drop_Ferru.get(1); + this.addProcess(tCrop, Materials.Iron, 100, true); + this.addProcess(tCrop, Materials.Magnetite, 100, false); + this.addProcess(tCrop, Materials.BrownLimonite, 100, false); + this.addProcess(tCrop, Materials.YellowLimonite, 100, false); + this.addProcess(tCrop, Materials.VanadiumMagnetite, 100, false); + this.addProcess(tCrop, Materials.BandedIron, 100, false); + this.addProcess(tCrop, Materials.Pyrite, 100, false); + this.addProcess(tCrop, Materials.MeteoricIron, 100, false); + tCrop = ItemList.Crop_Drop_Nickel.get(1); + this.addProcess(tCrop, Materials.Nickel, 100, true); + this.addProcess(tCrop, Materials.Garnierite, 100, false); + this.addProcess(tCrop, Materials.Pentlandite, 100, false); + this.addProcess(tCrop, Materials.Cobaltite, 100, false); + this.addProcess(tCrop, Materials.Wulfenite, 100, false); + this.addProcess(tCrop, Materials.Powellite, 100, false); + tCrop = ItemList.Crop_Drop_Zinc.get(1); + this.addProcess(tCrop, Materials.Zinc, 100, true); + this.addProcess(tCrop, Materials.Sphalerite, 100, false); + this.addProcess(tCrop, Materials.Sulfur, 100, false); + tCrop = ItemList.Crop_Drop_Argentia.get(1); + this.addProcess(tCrop, Materials.Silver, 100, true); + this.addProcess(tCrop, Materials.Galena, 100, false); + tCrop = ItemList.Crop_Drop_Aurelia.get(1); + this.addProcess(tCrop, Materials.Gold, 100, true); + this.addProcess(tCrop, Materials.Magnetite, Materials.Gold, 100, false); + tCrop = ItemList.Crop_Drop_Mica.get(1); + this.addProcess(tCrop, Materials.Mica, 75, true); + + // Rare Metals Line + tCrop = ItemList.Crop_Drop_Bauxite.get(1); + this.addProcess(tCrop, Materials.Aluminium, 60, true); + this.addProcess(tCrop, Materials.Bauxite, 100, false); + tCrop = ItemList.Crop_Drop_Manganese.get(1); + this.addProcess(tCrop, Materials.Manganese, 30, true); + this.addProcess(tCrop, Materials.Grossular, 100, false); + this.addProcess(tCrop, Materials.Spessartine, 100, false); + this.addProcess(tCrop, Materials.Pyrolusite, 100, false); + this.addProcess(tCrop, Materials.Tantalite, 100, false); + tCrop = ItemList.Crop_Drop_Ilmenite.get(1); + this.addProcess(tCrop, Materials.Titanium, 100, true); + this.addProcess(tCrop, Materials.Ilmenite, 100, false); + this.addProcess(tCrop, Materials.Bauxite, 100, false); + this.addProcess(tCrop, Materials.Rutile, 100, false); + tCrop = ItemList.Crop_Drop_Scheelite.get(1); + this.addProcess(tCrop, Materials.Scheelite, 100, true); + this.addProcess(tCrop, Materials.Tungstate, 100, false); + this.addProcess(tCrop, Materials.Lithium, 100, false); + this.addProcess(tCrop, Materials.Tungsten, 75, false); + tCrop = ItemList.Crop_Drop_Platinum.get(1); + this.addProcess(tCrop, Materials.Platinum, 40, true); + this.addProcess(tCrop, Materials.Cooperite, 40, false); + this.addProcess(tCrop, Materials.Palladium, 40, false); + this.addProcess(tCrop, Materials.Neodymium, 100, false); + this.addProcess(tCrop, Materials.Bastnasite, 100, false); + tCrop = ItemList.Crop_Drop_Iridium.get(1); + this.addProcess(tCrop, Materials.Iridium, 20, true); + tCrop = ItemList.Crop_Drop_Osmium.get(1); + this.addProcess(tCrop, Materials.Osmium, 20, true); + + // Radioactive Line + tCrop = ItemList.Crop_Drop_Pitchblende.get(1); + this.addProcess(tCrop, Materials.Pitchblende, 50, true); + tCrop = ItemList.Crop_Drop_Uraninite.get(1); + this.addProcess(tCrop, Materials.Uraninite, 50, false); + this.addProcess(tCrop, Materials.Uranium, 50, true); + this.addProcess(tCrop, Materials.Pitchblende, 50, false); + this.addProcess(tCrop, Materials.Uranium235, 50, false); + tCrop = ItemList.Crop_Drop_Thorium.get(1); + this.addProcess(tCrop, Materials.Thorium, 50, true); + tCrop = ItemList.Crop_Drop_Naquadah.get(1); + this.addProcess(tCrop, Materials.Naquadah, 10, true); + this.addProcess(tCrop, Materials.NaquadahEnriched, 10, false); + this.addProcess(tCrop, Materials.Naquadria, 10, false); + + // Gem Line + tCrop = ItemList.Crop_Drop_BobsYerUncleRanks.get(1); + this.addProcess(tCrop, Materials.Emerald, 100, true); + this.addProcess(tCrop, Materials.Beryllium, 100, false); + } + + public void addProcess(ItemStack tCrop, Materials aMaterial, int chance, boolean aMainOutput) { + addProcess(tCrop, aMaterial, aMaterial, chance, aMainOutput); + } + + public void addProcess(ItemStack tCrop, Materials aMaterial, Materials aMaterialOut, int chance, + boolean aMainOutput) { + if (tCrop == null || aMaterial == null || GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1) == null) + return; + if (GT_Mod.gregtechproxy.mNerfedCrops) { + FluidStack fluidOutputChemReactor = aMaterialOut.mOreByProducts.isEmpty() ? null + : aMaterialOut.mOreByProducts.get(0) + .getMolten(144); + + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder + .itemInputs( + GT_Utility.copyAmount(9, tCrop), + GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4)) + .fluidInputs(Materials.Water.getFluid(1000)); + if (fluidOutputChemReactor != null) { + recipeBuilder.fluidOutputs(fluidOutputChemReactor); + } + recipeBuilder.duration(4 * SECONDS + 16 * TICKS) + .eut(24) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(16, tCrop)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 1)) + .fluidInputs(Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass() + 9) / 10)))) + .duration((int) (aMaterial.getMass() * 128)) + .eut(384) + .addTo(autoclaveRecipes); + + } else { + if (aMainOutput) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9, tCrop)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + } + } + } + + public void addProcess(ItemStack tCrop, Materials aMaterial, int chance) { + addProcess(tCrop, aMaterial, chance, true); + } + + public void addProcess(ItemStack tCrop, Materials aMaterial, Materials aMaterialOut, int chance) { + addProcess(tCrop, aMaterial, aMaterialOut, chance, true); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/CuttingRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CuttingRecipes.java new file mode 100644 index 0000000000..dd81fd2d66 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/CuttingRecipes.java @@ -0,0 +1,283 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.BuildCraftTransport; +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.TinkerConstruct; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class CuttingRecipes implements Runnable { + + @Override + public void run() { + // silicon wafer recipes + { + recipeWithClassicFluids( + new ItemStack[] { ItemList.Circuit_Silicon_Ingot.get(1) }, + new ItemStack[] { ItemList.Circuit_Silicon_Wafer.get(16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 4) }, + 20 * SECONDS, + TierEU.RECIPE_LV, + false); + + recipeWithClassicFluids( + new ItemStack[] { ItemList.Circuit_Silicon_Ingot2.get(1) }, + new ItemStack[] { ItemList.Circuit_Silicon_Wafer2.get(32), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 8) }, + 40 * SECONDS, + TierEU.RECIPE_MV, + true); + + recipeWithClassicFluids( + new ItemStack[] { ItemList.Circuit_Silicon_Ingot3.get(1) }, + new ItemStack[] { ItemList.Circuit_Silicon_Wafer3.get(64), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 16) }, + 1 * MINUTES + 20 * SECONDS, + TierEU.RECIPE_HV, + true); + + recipeWithClassicFluids( + new ItemStack[] { ItemList.Circuit_Silicon_Ingot4.get(1) }, + new ItemStack[] { ItemList.Circuit_Silicon_Wafer4.get(64), ItemList.Circuit_Silicon_Wafer4.get(32), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 32) }, + 2 * MINUTES, + TierEU.RECIPE_EV, + true); + + recipeWithClassicFluids( + new ItemStack[] { ItemList.Circuit_Silicon_Ingot5.get(1) }, + new ItemStack[] { ItemList.Circuit_Silicon_Wafer5.get(64), ItemList.Circuit_Silicon_Wafer5.get(64), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 64) }, + 2 * MINUTES + 40 * SECONDS, + TierEU.RECIPE_IV, + true); + + } + + // glass pane recipes + { + // stained-glass -> glass pane recipes + for (int i = 0; i < 16; i++) { + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.stained_glass, 3, i) }, + new ItemStack[] { new ItemStack(Blocks.stained_glass_pane, 8, i) }, + 2 * SECONDS + 10 * TICKS, + 8, + false); + + } + + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.glass, 3, 0) }, + new ItemStack[] { new ItemStack(Blocks.glass_pane, 8, 0) }, + 2 * SECONDS + 10 * TICKS, + 8, + false); + + if (TinkerConstruct.isModLoaded()) { + recipeWithClassicFluids( + new ItemStack[] { getModItem(TinkerConstruct.ID, "GlassBlock", 3L, 0) }, + new ItemStack[] { getModItem(TinkerConstruct.ID, "GlassPane", 8L, 0) }, + 2 * SECONDS + 10 * TICKS, + 8, + false); + } + } + + // stone slab recipes + { + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.stone, 1, 0) }, + new ItemStack[] { new ItemStack(Blocks.stone_slab, 2, 0) }, + 1 * SECONDS + 5 * TICKS, + 8, + false); + + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.sandstone, 1, 0) }, + new ItemStack[] { new ItemStack(Blocks.stone_slab, 2, 1) }, + 1 * SECONDS + 5 * TICKS, + 8, + false); + + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.cobblestone, 1, 0) }, + new ItemStack[] { new ItemStack(Blocks.stone_slab, 2, 3) }, + 1 * SECONDS + 5 * TICKS, + 8, + false); + + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.brick_block, 1, 0) }, + new ItemStack[] { new ItemStack(Blocks.stone_slab, 2, 4) }, + 1 * SECONDS + 5 * TICKS, + 8, + false); + + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.stonebrick, 1, 0) }, + new ItemStack[] { new ItemStack(Blocks.stone_slab, 2, 5) }, + 1 * SECONDS + 5 * TICKS, + 8, + false); + + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.nether_brick, 1, 0) }, + new ItemStack[] { new ItemStack(Blocks.stone_slab, 2, 6) }, + 1 * SECONDS + 5 * TICKS, + 8, + false); + + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.quartz_block, 1, 32767) }, + new ItemStack[] { new ItemStack(Blocks.stone_slab, 2, 7) }, + 1 * SECONDS + 5 * TICKS, + 8, + false); + } + + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.glowstone, 1, 0) }, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Glowstone, 4) }, + 5 * SECONDS, + 16, + false); + + for (byte i = 0; i < 16; i++) { + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.wool, 1, i) }, + new ItemStack[] { new ItemStack(Blocks.carpet, 2, i) }, + 2 * SECONDS + 10 * TICKS, + 8, + false); + } + + // vanilla planks recipes + { + ItemStack[] plankArray = new ItemStack[] { ItemList.Plank_Oak.get(2L), ItemList.Plank_Spruce.get(2L), + ItemList.Plank_Birch.get(2L), ItemList.Plank_Jungle.get(2L), ItemList.Plank_Acacia.get(2L), + ItemList.Plank_DarkOak.get(2L) }; + for (int i = 0; i < 6; i++) { + recipeWithClassicFluids( + new ItemStack[] { new ItemStack(Blocks.wooden_slab, 1, i) }, + new ItemStack[] { plankArray[i] }, + 2 * SECONDS + 10 * TICKS, + 8, + false); + } + } + + if (Forestry.isModLoaded()) { + ItemStack[] coverIDs = { ItemList.Plank_Larch.get(2L), ItemList.Plank_Teak.get(2L), + ItemList.Plank_Acacia_Green.get(2L), ItemList.Plank_Lime.get(2L), ItemList.Plank_Chestnut.get(2L), + ItemList.Plank_Wenge.get(2L), ItemList.Plank_Baobab.get(2L), ItemList.Plank_Sequoia.get(2L), + ItemList.Plank_Kapok.get(2L), ItemList.Plank_Ebony.get(2L), ItemList.Plank_Mahagony.get(2L), + ItemList.Plank_Balsa.get(2L), ItemList.Plank_Willow.get(2L), ItemList.Plank_Walnut.get(2L), + ItemList.Plank_Greenheart.get(2L), ItemList.Plank_Cherry.get(2L), ItemList.Plank_Mahoe.get(2L), + ItemList.Plank_Poplar.get(2L), ItemList.Plank_Palm.get(2L), ItemList.Plank_Papaya.get(2L), + ItemList.Plank_Pine.get(2L), ItemList.Plank_Plum.get(2L), ItemList.Plank_Maple.get(2L), + ItemList.Plank_Citrus.get(2L) }; + for (int i = 0; i < coverIDs.length; i++) { + ItemStack slabWood = getModItem(Forestry.ID, "slabs", 1, i); + ItemStack slabWoodFireproof = getModItem(Forestry.ID, "slabsFireproof", 1, i); + + recipeWithClassicFluids( + new ItemStack[] { slabWood }, + new ItemStack[] { coverIDs[i] }, + 2 * SECONDS, + 8, + false); + + recipeWithClassicFluids( + new ItemStack[] { slabWoodFireproof }, + new ItemStack[] { coverIDs[i] }, + 2 * SECONDS, + 8, + false); + + } + } + + if (BuildCraftTransport.isModLoaded()) { + recipeWithClassicFluids( + new ItemStack[] { + getModItem(BuildCraftTransport.ID, "item.buildcraftPipe.pipestructurecobblestone", 1L, 0) }, + new ItemStack[] { getModItem(BuildCraftTransport.ID, "pipePlug", 8L, 0) }, + 1 * SECONDS + 12 * TICKS, + 16, + false); + + } + + } + + public void recipeWithClassicFluids(ItemStack[] inputs, ItemStack[] outputs, int duration, long eut, + boolean cleanroomRequired) { + if (cleanroomRequired) { + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(outputs) + .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, duration * eut / 320)))) + .duration(2 * duration) + .eut(eut) + .requiresCleanRoom() + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(outputs) + .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, duration * eut / 426)))) + .duration(2 * duration) + .eut(eut) + .requiresCleanRoom() + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(outputs) + .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, duration * eut / 1280)))) + .duration(duration) + .eut(eut) + .requiresCleanRoom() + .addTo(cutterRecipes); + } else { + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(outputs) + .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, duration * eut / 320)))) + .duration(2 * duration) + .eut(eut) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(outputs) + .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, duration * eut / 426)))) + .duration(2 * duration) + .eut(eut) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(outputs) + .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, duration * eut / 1280)))) + .duration(duration) + .eut(eut) + .addTo(cutterRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/DistilleryRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/DistilleryRecipes.java new file mode 100644 index 0000000000..6008eea927 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/DistilleryRecipes.java @@ -0,0 +1,1280 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.TinkerConstruct; +import static gregtech.api.recipe.RecipeMaps.distillationTowerRecipes; +import static gregtech.api.recipe.RecipeMaps.distilleryRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsKevlar; +import gregtech.api.enums.MaterialsOreAlum; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_Utility; + +public class DistilleryRecipes implements Runnable { + + @Override + public void run() { + + distillationTowerRecipes(); + universalDistillationTowerRecipes(); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.Creosote.getFluid(100L)) + .fluidOutputs(Materials.Lubricant.getFluid(32L)) + .duration(12 * SECONDS) + .eut(30) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.SeedOil.getFluid(32L)) + .fluidOutputs(Materials.Lubricant.getFluid(8L)) + .duration(4 * SECONDS) + .eut(30) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.FishOil.getFluid(32L)) + .fluidOutputs(Materials.Lubricant.getFluid(8L)) + .duration(4 * SECONDS) + .eut(30) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.Oil.getFluid(120L)) + .fluidOutputs(Materials.Lubricant.getFluid(60L)) + .duration(8 * SECONDS) + .eut(30) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.OilLight.getFluid(120L)) + .fluidOutputs(Materials.Lubricant.getFluid(30L)) + .duration(8 * SECONDS) + .eut(30) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.OilMedium.getFluid(120L)) + .fluidOutputs(Materials.Lubricant.getFluid(60L)) + .duration(8 * SECONDS) + .eut(30) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs(Materials.OilHeavy.getFluid(120L)) + .fluidOutputs(Materials.Lubricant.getFluid(90L)) + .duration(8 * SECONDS) + .eut(30) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Biomass.getFluid(40L)) + .fluidOutputs(Materials.Ethanol.getFluid(12L)) + .duration(16 * TICKS) + .eut(24) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(5)) + .fluidInputs(Materials.Biomass.getFluid(40L)) + .fluidOutputs(Materials.Water.getFluid(12L)) + .duration(16 * TICKS) + .eut(24) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(5)) + .fluidInputs(Materials.Water.getFluid(5L)) + .fluidOutputs(GT_ModHandler.getDistilledWater(5L)) + .duration(16 * TICKS) + .eut(10) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(getFluidStack("potion.potatojuice", 2)) + .fluidOutputs(getFluidStack("potion.vodka", 1)) + .duration(16 * TICKS) + .eut(16) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(getFluidStack("potion.lemonade", 2)) + .fluidOutputs(getFluidStack("potion.alcopops", 1)) + .duration(16 * TICKS) + .eut(16) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4)) + .fluidInputs(Materials.OilLight.getFluid(300L)) + .fluidOutputs(Materials.Oil.getFluid(100L)) + .duration(16 * TICKS) + .eut(24) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4)) + .fluidInputs(Materials.OilMedium.getFluid(200L)) + .fluidOutputs(Materials.Oil.getFluid(100L)) + .duration(16 * TICKS) + .eut(24) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4)) + .fluidInputs(Materials.OilHeavy.getFluid(100L)) + .fluidOutputs(Materials.Oil.getFluid(100L)) + .duration(16 * TICKS) + .eut(24) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(MaterialsOreAlum.SluiceSand.getDust(1)) + .fluidInputs(MaterialsOreAlum.SluiceJuice.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(500)) + .duration(5 * SECONDS) + .eut(16) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(6)) + .fluidInputs(Materials.WoodTar.getFluid(200)) + .fluidOutputs(MaterialsKevlar.IIIDimethylbenzene.getFluid(30)) + .duration(16 * TICKS) + .eut(64) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(6)) + .fluidInputs(Materials.CharcoalByproducts.getGas(200)) + .fluidOutputs(MaterialsKevlar.IIIDimethylbenzene.getFluid(20)) + .duration(5 * SECONDS) + .eut(64) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(7)) + .fluidInputs(Materials.WoodTar.getFluid(200)) + .fluidOutputs(MaterialsKevlar.IVDimethylbenzene.getFluid(30)) + .duration(16 * TICKS) + .eut(64) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(7)) + .fluidInputs(Materials.CharcoalByproducts.getGas(200)) + .fluidOutputs(MaterialsKevlar.IVDimethylbenzene.getFluid(20)) + .duration(5 * SECONDS) + .eut(64) + .addTo(distilleryRecipes); + // (NaCl·H2O) = NaCl + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Salt.getDust(2)) + .fluidInputs(Materials.SaltWater.getFluid(1000)) + .fluidOutputs(GT_ModHandler.getDistilledWater(1000)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(30) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(Materials.FermentedBiomass.getFluid(1000)) + .fluidOutputs(Materials.AceticAcid.getFluid(25)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(8) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(Materials.FermentedBiomass.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(375)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(8) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(Materials.FermentedBiomass.getFluid(1000)) + .fluidOutputs(Materials.Ethanol.getFluid(150)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(8) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(Materials.FermentedBiomass.getFluid(1000)) + .fluidOutputs(Materials.Methanol.getFluid(150)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(8) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(Materials.FermentedBiomass.getFluid(1000)) + .fluidOutputs(Materials.Ammonia.getGas(100)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(8) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(6)) + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(Materials.FermentedBiomass.getFluid(1000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(400)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(8) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(7)) + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(Materials.FermentedBiomass.getFluid(1000)) + .fluidOutputs(Materials.Methane.getGas(600)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(8) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(17)) + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(Materials.FermentedBiomass.getFluid(1000)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("ic2biogas"), 1800)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(8) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Methane.getGas(1000)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("ic2biogas"), 3000)) + .duration(8 * SECONDS) + .eut(8) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.HeavyFuel.getFluid(100)) + .fluidOutputs(Materials.Benzene.getFluid(40)) + .duration(8 * SECONDS) + .eut(24) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3)) + .fluidInputs(Materials.HeavyFuel.getFluid(100)) + .fluidOutputs(Materials.Phenol.getFluid(25)) + .duration(8 * SECONDS) + .eut(24) + .addTo(distilleryRecipes); + // Dimethylbenzene + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(5)) + .fluidInputs(Materials.WoodTar.getFluid(200)) + .fluidOutputs(Materials.Dimethylbenzene.getFluid(30)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(5)) + .fluidInputs(Materials.CharcoalByproducts.getGas(200)) + .fluidOutputs(Materials.Dimethylbenzene.getFluid(20)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(new FluidStack(ItemList.sOilExtraHeavy, 10)) + .fluidOutputs(Materials.OilHeavy.getFluid(15)) + .duration(16 * TICKS) + .eut(24) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.HeavyFuel.getFluid(10L)) + .fluidOutputs(new FluidStack(ItemList.sToluene, 4)) + .duration(16 * TICKS) + .eut(24) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(new FluidStack(ItemList.sToluene, 30)) + .fluidOutputs(Materials.LightFuel.getFluid(30L)) + .duration(16 * TICKS) + .eut(24) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("ic2biomass"), 20)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("ic2biogas"), 32)) + .duration(2 * SECONDS) + .eut(16) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("ic2biomass"), 4)) + .fluidOutputs(Materials.Water.getFluid(2)) + .duration(4 * SECONDS) + .eut(30) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(getFluidStack("potion.wheatyjuice", 75)) + .fluidOutputs(getFluidStack("potion.scotch", 1)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distilleryRecipes); + + if (TinkerConstruct.isModLoaded()) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Glue.getFluid(8L)) + .fluidOutputs(getFluidStack("glue", 8)) + .duration(1 * TICKS) + .eut(24) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(getFluidStack("glue", 8)) + .fluidOutputs(Materials.Glue.getFluid(4L)) + .duration(1 * TICKS) + .eut(24) + .addTo(distilleryRecipes); + + } + } + + public void distillationTowerRecipes() { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.Creosote.getFluid(1000L)) + .fluidOutputs(Materials.Lubricant.getFluid(500L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.SeedOil.getFluid(1400L)) + .fluidOutputs(Materials.Lubricant.getFluid(500L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.FishOil.getFluid(1200L)) + .fluidOutputs(Materials.Lubricant.getFluid(500L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L)) + .fluidInputs(Materials.Biomass.getFluid(1000L)) + .fluidOutputs(Materials.Ethanol.getFluid(600L), Materials.Water.getFluid(300L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(400) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Water.getFluid(1000L)) + .fluidOutputs(GT_ModHandler.getDistilledWater(1000L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.OilLight.getFluid(1000L)) + .fluidOutputs(Materials.Lubricant.getFluid(250L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.OilMedium.getFluid(1000L)) + .fluidOutputs(Materials.Lubricant.getFluid(500L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.OilHeavy.getFluid(1000L)) + .fluidOutputs(Materials.Lubricant.getFluid(750L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distillationTowerRecipes); + // C15H10N2O2(5HCl) = C15H10N2O2 + 5HCl + + GT_Values.RA.stdBuilder() + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsKevlar.DiphenylmethaneDiisocyanate, 29L)) + .fluidInputs(MaterialsKevlar.DiphenylmethaneDiisocyanateMixture.getFluid(1000L)) + .fluidOutputs(Materials.HydrochloricAcid.getFluid(5000L)) + .duration(2 * MINUTES + 5 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Charcoal.getDustSmall(1)) + .fluidInputs(Materials.CharcoalByproducts.getGas(1000)) + .fluidOutputs( + Materials.WoodTar.getFluid(250), + Materials.WoodVinegar.getFluid(400), + Materials.WoodGas.getGas(250), + MaterialsKevlar.IIIDimethylbenzene.getFluid(100)) + .duration(2 * SECONDS) + .eut(256) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.WoodTar.getFluid(1000)) + .fluidOutputs( + Materials.Creosote.getFluid(250), + Materials.Phenol.getFluid(100), + Materials.Benzene.getFluid(400), + Materials.Toluene.getFluid(100), + MaterialsKevlar.IIIDimethylbenzene.getFluid(150)) + .duration(2 * SECONDS) + .eut(256) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(Materials.Charcoal.getDustSmall(1)) + .fluidInputs(Materials.CharcoalByproducts.getGas(1000)) + .fluidOutputs( + Materials.WoodTar.getFluid(250), + Materials.WoodVinegar.getFluid(400), + Materials.WoodGas.getGas(250), + MaterialsKevlar.IVDimethylbenzene.getFluid(100)) + .duration(2 * SECONDS) + .eut(256) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(Materials.Charcoal.getDustSmall(1)) + .fluidInputs(Materials.CharcoalByproducts.getGas(1000)) + .fluidOutputs( + Materials.WoodTar.getFluid(250), + Materials.WoodVinegar.getFluid(400), + Materials.WoodGas.getGas(250), + Materials.Dimethylbenzene.getFluid(20), + MaterialsKevlar.IIIDimethylbenzene.getFluid(60), + MaterialsKevlar.IVDimethylbenzene.getFluid(20)) + .duration(2 * SECONDS) + .eut(256) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4)) + .fluidInputs(Materials.WoodTar.getFluid(1000)) + .fluidOutputs( + Materials.Creosote.getFluid(250), + Materials.Phenol.getFluid(100), + Materials.Benzene.getFluid(400), + Materials.Toluene.getFluid(100), + Materials.Dimethylbenzene.getFluid(30), + MaterialsKevlar.IIIDimethylbenzene.getFluid(90), + MaterialsKevlar.IVDimethylbenzene.getFluid(30)) + .duration(2 * SECONDS) + .eut(256) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.OilLight.getFluid(1500)) + .fluidOutputs( + Materials.SulfuricHeavyFuel.getFluid(100), + Materials.SulfuricLightFuel.getFluid(200), + Materials.SulfuricNaphtha.getFluid(300), + MaterialsKevlar.NaphthenicAcid.getFluid(25), + Materials.SulfuricGas.getGas(2400)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.OilMedium.getFluid(1000)) + .fluidOutputs( + Materials.SulfuricHeavyFuel.getFluid(100), + Materials.SulfuricLightFuel.getFluid(500), + Materials.SulfuricNaphtha.getFluid(1500), + MaterialsKevlar.NaphthenicAcid.getFluid(25), + Materials.SulfuricGas.getGas(600)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.Oil.getFluid(500L)) + .fluidOutputs( + Materials.SulfuricHeavyFuel.getFluid(150), + Materials.SulfuricLightFuel.getFluid(500), + Materials.SulfuricNaphtha.getFluid(200), + MaterialsKevlar.NaphthenicAcid.getFluid(25), + Materials.SulfuricGas.getGas(600)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs(Materials.OilHeavy.getFluid(1000)) + .fluidOutputs( + Materials.SulfuricHeavyFuel.getFluid(2500), + Materials.SulfuricLightFuel.getFluid(450), + Materials.SulfuricNaphtha.getFluid(150), + MaterialsKevlar.NaphthenicAcid.getFluid(50), + Materials.SulfuricGas.getGas(600)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(distillationTowerRecipes); + // 9C5H12O = 4C6H14O + 5CH4O + 4C4H8 + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.MTBEMixture.getGas(900L)) + .fluidOutputs( + Materials.AntiKnock.getFluid(400L), + Materials.Methanol.getFluid(500L), + Materials.Butene.getGas(400L)) + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(Materials.FermentedBiomass.getFluid(1000)) + .fluidOutputs( + Materials.AceticAcid.getFluid(25), + Materials.Water.getFluid(375), + Materials.Ethanol.getFluid(150), + Materials.Methanol.getFluid(150), + Materials.Ammonia.getGas(100), + Materials.CarbonDioxide.getGas(400), + Materials.Methane.getGas(600)) + .duration(3 * SECONDS + 15 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .itemOutputs(ItemList.IC2_Fertilizer.get(1)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("ic2biomass"), 3000)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("ic2biogas"), 8000), Materials.Water.getFluid(125L)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(distillationTowerRecipes); + GT_Values.RA.stdBuilder() + .fluidInputs(new FluidStack(ItemList.sOilExtraHeavy, 1000)) + .fluidOutputs(Materials.OilHeavy.getFluid(1500)) + .duration(16 * TICKS) + .eut(2400) + .addTo(distillationTowerRecipes); + } + + public void universalDistillationTowerRecipes() { + addUniversalDistillationRecipewithCircuit( + Materials.WoodTar.getFluid(1000), + new ItemStack[] { GT_Utility.getIntegratedCircuit(3) }, + new FluidStack[] { Materials.Creosote.getFluid(250), Materials.Phenol.getFluid(100), + Materials.Benzene.getFluid(400), Materials.Toluene.getFluid(100), + MaterialsKevlar.IVDimethylbenzene.getFluid(150) }, + GT_Values.NI, + 40, + 256); + + addUniversalDistillationRecipewithCircuit( + Materials.CharcoalByproducts.getGas(1000), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.WoodTar.getFluid(250), Materials.WoodVinegar.getFluid(400), + Materials.WoodGas.getGas(250), Materials.Dimethylbenzene.getFluid(100) }, + Materials.Charcoal.getDustSmall(1), + 40, + 256); + + addUniversalDistillationRecipewithCircuit( + Materials.WoodGas.getGas(1000), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.CarbonDioxide.getGas(390), Materials.Ethylene.getGas(120), + Materials.Methane.getGas(130), Materials.CarbonMonoxide.getGas(240), Materials.Hydrogen.getGas(120) }, + GT_Values.NI, + 40, + 256); + addUniversalDistillationRecipewithCircuit( + Materials.WoodVinegar.getFluid(1000), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.AceticAcid.getFluid(100), Materials.Water.getFluid(500), + Materials.Ethanol.getFluid(10), Materials.Methanol.getFluid(300), Materials.Acetone.getFluid(50), + Materials.MethylAcetate.getFluid(10) }, + GT_Values.NI, + 40, + 256); + addUniversalDistillationRecipewithCircuit( + Materials.WoodTar.getFluid(1000), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.Creosote.getFluid(250), Materials.Phenol.getFluid(100), + Materials.Benzene.getFluid(400), Materials.Toluene.getFluid(100), + Materials.Dimethylbenzene.getFluid(150) }, + GT_Values.NI, + 40, + 256); + + addUniversalDistillationRecipewithCircuit( + Materials.OilLight.getFluid(150), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.SulfuricHeavyFuel.getFluid(10), Materials.SulfuricLightFuel.getFluid(20), + Materials.SulfuricNaphtha.getFluid(30), Materials.SulfuricGas.getGas(240) }, + null, + 20, + 96); + addUniversalDistillationRecipewithCircuit( + Materials.OilMedium.getFluid(100), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.SulfuricHeavyFuel.getFluid(10), Materials.SulfuricLightFuel.getFluid(50), + Materials.SulfuricNaphtha.getFluid(150), Materials.SulfuricGas.getGas(60) }, + null, + 20, + 96); + addUniversalDistillationRecipewithCircuit( + Materials.Oil.getFluid(50L), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.SulfuricHeavyFuel.getFluid(15), Materials.SulfuricLightFuel.getFluid(50), + Materials.SulfuricNaphtha.getFluid(20), Materials.SulfuricGas.getGas(60) }, + null, + 20, + 96); + addUniversalDistillationRecipewithCircuit( + Materials.OilHeavy.getFluid(100), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.SulfuricHeavyFuel.getFluid(250), Materials.SulfuricLightFuel.getFluid(45), + Materials.SulfuricNaphtha.getFluid(15), Materials.SulfuricGas.getGas(60) }, + null, + 20, + 288); + + // 2 0.5HCl(Diluted) = HCl + H2O + addUniversalDistillationRecipe( + Materials.DilutedHydrochloricAcid.getFluid(2000), + new FluidStack[] { Materials.Water.getFluid(1000), Materials.HydrochloricAcid.getFluid(1000) }, + GT_Values.NI, + 600, + 64); + + addUniversalDistillationRecipe( + getFluidStack("potion.vinegar", 40), + new FluidStack[] { Materials.AceticAcid.getFluid(5), Materials.Water.getFluid(35) }, + GT_Values.NI, + 20, + 64); + + addUniversalDistillationRecipe( + Materials.CalciumAcetateSolution.getFluid(1000), + new FluidStack[] { Materials.Acetone.getFluid(1000), Materials.CarbonDioxide.getGas(1000) }, + Materials.Quicklime.getDust(2), + 80, + 480); + + addUniversalDistillationRecipe( + Materials.DilutedSulfuricAcid.getFluid(3000), + new FluidStack[] { Materials.SulfuricAcid.getFluid(2000), Materials.Water.getFluid(1000) }, + GT_Values.NI, + 600, + 120); + + // C3H6O = C2H2O + CH4 + addUniversalDistillationRecipe( + Materials.Acetone.getFluid(1000), + new FluidStack[] { Materials.Ethenone.getGas(1000), Materials.Methane.getGas(1000) }, + GT_Values.NI, + 80, + 640); + + addUniversalDistillationRecipe( + Materials.Gas.getGas(1000), + new FluidStack[] { Materials.Butane.getGas(60), Materials.Propane.getGas(70), Materials.Ethane.getGas(100), + Materials.Methane.getGas(750), Materials.Helium.getGas(20) }, + GT_Values.NI, + 240, + 120); + + addUniversalDistillationRecipe( + Materials.Ethylene.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.Ethane.getGas(1000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Ethylene.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(2000) }, + null, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Ethylene.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(2000), Materials.Hydrogen.getGas(2000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Ethylene.getLightlySteamCracked(1000), + new FluidStack[] { Materials.Methane.getGas(1000) }, + Materials.Carbon.getDust(1), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Ethylene.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.Methane.getGas(1000) }, + Materials.Carbon.getDust(1), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Ethylene.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.Methane.getGas(1000) }, + Materials.Carbon.getDust(1), + 120, + 120); + + addUniversalDistillationRecipe( + Materials.Ethane.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(2000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Ethane.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(2000), Materials.Hydrogen.getGas(2000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Ethane.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(2000), Materials.Hydrogen.getGas(4000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Ethane.getLightlySteamCracked(1000), + new FluidStack[] { Materials.Ethylene.getGas(250), Materials.Methane.getGas(1250) }, + Materials.Carbon.getDustSmall(1), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Ethane.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.Ethylene.getGas(125), Materials.Methane.getGas(1375) }, + Materials.Carbon.getDustTiny(6), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Ethane.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.Methane.getGas(1500) }, + Materials.Carbon.getDustSmall(2), + 120, + 120); + + addUniversalDistillationRecipe( + Materials.Propene.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.Propane.getGas(500), Materials.Ethylene.getGas(500), + Materials.Methane.getGas(500) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Propene.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.Ethane.getGas(1000), Materials.Methane.getGas(1000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Propene.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(3000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Propene.getLightlySteamCracked(1000), + new FluidStack[] { Materials.Ethylene.getGas(1000), Materials.Methane.getGas(500) }, + Materials.Carbon.getDustSmall(2), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Propene.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.Ethylene.getGas(750), Materials.Methane.getGas(750) }, + Materials.Carbon.getDustSmall(3), + 180, + 120); + addUniversalDistillationRecipe( + Materials.Propene.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.Methane.getGas(1500) }, + Materials.Carbon.getDustSmall(6), + 180, + 120); + + addUniversalDistillationRecipe( + Materials.Propane.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.Ethane.getGas(1000), Materials.Methane.getGas(1000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Propane.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(3000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Propane.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(3000), Materials.Hydrogen.getGas(2000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Propane.getLightlySteamCracked(1000), + new FluidStack[] { Materials.Ethylene.getGas(750), Materials.Methane.getGas(1250) }, + Materials.Carbon.getDustTiny(2), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Propane.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.Ethylene.getGas(500), Materials.Methane.getGas(1500) }, + Materials.Carbon.getDustSmall(1), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Propane.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.Ethylene.getGas(250), Materials.Methane.getGas(1750) }, + Materials.Carbon.getDustTiny(4), + 120, + 120); + + addUniversalDistillationRecipe( + Materials.Butadiene.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.Butene.getGas(667), Materials.Ethylene.getGas(667) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butadiene.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.Butane.getGas(223), Materials.Propene.getGas(223), + Materials.Ethane.getGas(400), Materials.Ethylene.getGas(445), Materials.Methane.getGas(223) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butadiene.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.Propane.getGas(260), Materials.Ethane.getGas(926), + Materials.Ethylene.getGas(389), Materials.Methane.getGas(2667) }, + GT_Values.NI, + 112, + 120); + addUniversalDistillationRecipe( + Materials.Butadiene.getLightlySteamCracked(1000), + new FluidStack[] { Materials.Propene.getGas(750), Materials.Ethylene.getGas(188), + Materials.Methane.getGas(188) }, + Materials.Carbon.getDustSmall(3), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butadiene.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.Propene.getGas(125), Materials.Ethylene.getGas(1125), + Materials.Methane.getGas(188) }, + Materials.Carbon.getDustSmall(3), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butadiene.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.Propene.getGas(125), Materials.Ethylene.getGas(188), + Materials.Methane.getGas(1125) }, + Materials.Carbon.getDust(1), + 120, + 120); + + addUniversalDistillationRecipe( + Materials.Butene.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.Butane.getGas(334), Materials.Propene.getGas(334), + Materials.Ethane.getGas(334), Materials.Ethylene.getGas(334), Materials.Methane.getGas(334) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butene.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.Propane.getGas(389), Materials.Ethane.getGas(556), + Materials.Ethylene.getGas(334), Materials.Methane.getGas(1056) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butene.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.Ethane.getGas(1000), Materials.Methane.getGas(2000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butene.getLightlySteamCracked(1000), + new FluidStack[] { Materials.Propene.getGas(750), Materials.Ethylene.getGas(500), + Materials.Methane.getGas(250) }, + Materials.Carbon.getDustSmall(1), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butene.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.Propene.getGas(200), Materials.Ethylene.getGas(1300), + Materials.Methane.getGas(400) }, + Materials.Carbon.getDustSmall(1), + 192, + 120); + addUniversalDistillationRecipe( + Materials.Butene.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.Propene.getGas(125), Materials.Ethylene.getGas(313), + Materials.Methane.getGas(1500) }, + Materials.Carbon.getDustSmall(6), + 120, + 120); + + addUniversalDistillationRecipe( + Materials.Butane.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.Propane.getGas(667), Materials.Ethane.getGas(667), + Materials.Methane.getGas(667) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butane.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.Ethane.getGas(1000), Materials.Methane.getGas(2000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butane.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(1000) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butane.getLightlySteamCracked(1000), + new FluidStack[] { Materials.Propane.getGas(750), Materials.Ethane.getGas(125), + Materials.Ethylene.getGas(125), Materials.Methane.getGas(1063) }, + Materials.Carbon.getDustTiny(2), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butane.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.Propane.getGas(125), Materials.Ethane.getGas(750), + Materials.Ethylene.getGas(750), Materials.Methane.getGas(438) }, + Materials.Carbon.getDustTiny(2), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Butane.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.Propane.getGas(125), Materials.Ethane.getGas(125), + Materials.Ethylene.getGas(125), Materials.Methane.getGas(2000) }, + Materials.Carbon.getDustTiny(11), + 120, + 120); + + addUniversalDistillationRecipe( + Materials.Gas.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(1300), Materials.Hydrogen.getGas(1500), + Materials.Helium.getGas(100) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Gas.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(1400), Materials.Hydrogen.getGas(3000), + Materials.Helium.getGas(150) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Gas.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.Methane.getGas(1500), Materials.Hydrogen.getGas(4000), + Materials.Helium.getGas(200) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Gas.getLightlySteamCracked(1000), + new FluidStack[] { Materials.Propene.getGas(50), Materials.Ethane.getGas(10), + Materials.Ethylene.getGas(100), Materials.Methane.getGas(500), Materials.Helium.getGas(50) }, + Materials.Carbon.getDustTiny(1), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Gas.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.Propene.getGas(10), Materials.Ethane.getGas(50), + Materials.Ethylene.getGas(200), Materials.Methane.getGas(600), Materials.Helium.getGas(70) }, + Materials.Carbon.getDustTiny(1), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Gas.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.Propene.getGas(10), Materials.Ethane.getGas(10), + Materials.Ethylene.getGas(300), Materials.Methane.getGas(700), Materials.Helium.getGas(100) }, + Materials.Carbon.getDustTiny(1), + 120, + 120); + + addUniversalDistillationRecipe( + Materials.Naphtha.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.Butane.getGas(800), Materials.Propane.getGas(300), + Materials.Ethane.getGas(250), Materials.Methane.getGas(250) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Naphtha.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.Butane.getGas(200), Materials.Propane.getGas(1100), + Materials.Ethane.getGas(400), Materials.Methane.getGas(400) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Naphtha.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.Butane.getGas(125), Materials.Propane.getGas(125), + Materials.Ethane.getGas(1500), Materials.Methane.getGas(1500) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.Naphtha.getLightlySteamCracked(1000), + new FluidStack[] { Materials.HeavyFuel.getFluid(75), Materials.LightFuel.getFluid(150), + Materials.Toluene.getFluid(40), Materials.Benzene.getFluid(150), Materials.Butene.getGas(80), + Materials.Butadiene.getGas(150), Materials.Propane.getGas(15), Materials.Propene.getGas(200), + Materials.Ethane.getGas(35), Materials.Ethylene.getGas(200), Materials.Methane.getGas(200) }, + Materials.Carbon.getDustTiny(1), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Naphtha.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.HeavyFuel.getFluid(50), Materials.LightFuel.getFluid(100), + Materials.Toluene.getFluid(30), Materials.Benzene.getFluid(125), Materials.Butene.getGas(65), + Materials.Butadiene.getGas(100), Materials.Propane.getGas(30), Materials.Propene.getGas(400), + Materials.Ethane.getGas(50), Materials.Ethylene.getGas(350), Materials.Methane.getGas(350) }, + Materials.Carbon.getDustTiny(2), + 120, + 120); + addUniversalDistillationRecipe( + Materials.Naphtha.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.HeavyFuel.getFluid(25), Materials.LightFuel.getFluid(50), + Materials.Toluene.getFluid(20), Materials.Benzene.getFluid(100), Materials.Butene.getGas(50), + Materials.Butadiene.getGas(50), Materials.Propane.getGas(15), Materials.Propene.getGas(300), + Materials.Ethane.getGas(65), Materials.Ethylene.getGas(500), Materials.Methane.getGas(500) }, + Materials.Carbon.getDustTiny(3), + 120, + 120); + + addUniversalDistillationRecipe( + Materials.LightFuel.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.Naphtha.getFluid(800), Materials.Octane.getFluid(100), + Materials.Butane.getGas(150), Materials.Propane.getGas(200), Materials.Ethane.getGas(125), + Materials.Methane.getGas(125) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.LightFuel.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.Naphtha.getFluid(500), Materials.Octane.getFluid(50), + Materials.Butane.getGas(200), Materials.Propane.getGas(1100), Materials.Ethane.getGas(400), + Materials.Methane.getGas(400) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.LightFuel.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.Naphtha.getFluid(200), Materials.Octane.getFluid(20), + Materials.Butane.getGas(125), Materials.Propane.getGas(125), Materials.Ethane.getGas(1500), + Materials.Methane.getGas(1500) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.LightFuel.getLightlySteamCracked(1000), + new FluidStack[] { Materials.HeavyFuel.getFluid(150), Materials.Naphtha.getFluid(400), + Materials.Toluene.getFluid(40), Materials.Benzene.getFluid(200), Materials.Butene.getGas(75), + Materials.Butadiene.getGas(60), Materials.Propane.getGas(20), Materials.Propene.getGas(150), + Materials.Ethane.getGas(10), Materials.Ethylene.getGas(50), Materials.Methane.getGas(50) }, + Materials.Carbon.getDustTiny(1), + 120, + 120); + addUniversalDistillationRecipe( + Materials.LightFuel.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.HeavyFuel.getFluid(100), Materials.Naphtha.getFluid(250), + Materials.Toluene.getFluid(50), Materials.Benzene.getFluid(300), Materials.Butene.getGas(90), + Materials.Butadiene.getGas(75), Materials.Propane.getGas(35), Materials.Propene.getGas(200), + Materials.Ethane.getGas(30), Materials.Ethylene.getGas(150), Materials.Methane.getGas(150) }, + Materials.Carbon.getDustTiny(2), + 120, + 120); + addUniversalDistillationRecipe( + Materials.LightFuel.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.HeavyFuel.getFluid(50), Materials.Naphtha.getFluid(100), + Materials.Toluene.getFluid(30), Materials.Benzene.getFluid(150), Materials.Butene.getGas(65), + Materials.Butadiene.getGas(50), Materials.Propane.getGas(50), Materials.Propene.getGas(250), + Materials.Ethane.getGas(50), Materials.Ethylene.getGas(250), Materials.Methane.getGas(250) }, + Materials.Carbon.getDustTiny(3), + 120, + 120); + + addUniversalDistillationRecipe( + Materials.HeavyFuel.getLightlyHydroCracked(1000), + new FluidStack[] { Materials.LightFuel.getFluid(600), Materials.Naphtha.getFluid(100), + Materials.Butane.getGas(100), Materials.Propane.getGas(100), Materials.Ethane.getGas(75), + Materials.Methane.getGas(75) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.HeavyFuel.getModeratelyHydroCracked(1000), + new FluidStack[] { Materials.LightFuel.getFluid(400), Materials.Naphtha.getFluid(400), + Materials.Butane.getGas(150), Materials.Propane.getGas(150), Materials.Ethane.getGas(100), + Materials.Methane.getGas(100) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.HeavyFuel.getSeverelyHydroCracked(1000), + new FluidStack[] { Materials.LightFuel.getFluid(200), Materials.Naphtha.getFluid(250), + Materials.Butane.getGas(300), Materials.Propane.getGas(300), Materials.Ethane.getGas(175), + Materials.Methane.getGas(175) }, + GT_Values.NI, + 120, + 120); + addUniversalDistillationRecipe( + Materials.HeavyFuel.getLightlySteamCracked(1000), + new FluidStack[] { Materials.LightFuel.getFluid(300), Materials.Naphtha.getFluid(50), + Materials.Toluene.getFluid(25), Materials.Benzene.getFluid(125), Materials.Butene.getGas(25), + Materials.Butadiene.getGas(15), Materials.Propane.getGas(3), Materials.Propene.getGas(30), + Materials.Ethane.getGas(5), Materials.Ethylene.getGas(50), Materials.Methane.getGas(50) }, + Materials.Carbon.getDustTiny(1), + 120, + 120); + addUniversalDistillationRecipe( + Materials.HeavyFuel.getModeratelySteamCracked(1000), + new FluidStack[] { Materials.LightFuel.getFluid(200), Materials.Naphtha.getFluid(200), + Materials.Toluene.getFluid(40), Materials.Benzene.getFluid(200), Materials.Butene.getGas(40), + Materials.Butadiene.getGas(25), Materials.Propane.getGas(5), Materials.Propene.getGas(50), + Materials.Ethane.getGas(7), Materials.Ethylene.getGas(75), Materials.Methane.getGas(75) }, + Materials.Carbon.getDustTiny(2), + 120, + 120); + addUniversalDistillationRecipe( + Materials.HeavyFuel.getSeverelySteamCracked(1000), + new FluidStack[] { Materials.LightFuel.getFluid(100), Materials.Naphtha.getFluid(125), + Materials.Toluene.getFluid(80), Materials.Benzene.getFluid(400), Materials.Butene.getGas(80), + Materials.Butadiene.getGas(50), Materials.Propane.getGas(10), Materials.Propene.getGas(100), + Materials.Ethane.getGas(15), Materials.Ethylene.getGas(150), Materials.Methane.getGas(150) }, + Materials.Carbon.getDustTiny(3), + 120, + 120); + + if (GregTech_API.sSpecialFile.get("general", "EnableLagencyOilGalactiCraft", false) + && FluidRegistry.getFluid("oilgc") != null) + addUniversalDistillationRecipe( + new FluidStack(FluidRegistry.getFluid("oilgc"), 50), + new FluidStack[] { Materials.SulfuricHeavyFuel.getFluid(15), Materials.SulfuricLightFuel.getFluid(50), + Materials.SulfuricNaphtha.getFluid(20), Materials.SulfuricGas.getGas(60) }, + null, + 20, + 96); + } + + public void addUniversalDistillationRecipewithCircuit(FluidStack aInput, ItemStack[] aCircuit, + FluidStack[] aOutputs, ItemStack aOutput2, int aDuration, int aEUt) { + for (int i = 0; i < Math.min(aOutputs.length, 11); i++) { + GT_RecipeBuilder buildDistillation = GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(i + 1)); + if (aOutput2 != GT_Values.NI) { + buildDistillation.itemOutputs(aOutput2); + } + buildDistillation.fluidInputs(aInput) + .fluidOutputs(aOutputs[i]) + .duration(2 * aDuration) + .eut(aEUt / 4) + .addTo(distilleryRecipes); + } + GT_RecipeBuilder buildDT = GT_Values.RA.stdBuilder() + .itemInputs(aCircuit); + if (aOutput2 != GT_Values.NI) { + buildDT.itemOutputs(aOutput2); + } + buildDT.fluidInputs(aInput) + .fluidOutputs(aOutputs) + .duration(aDuration) + .eut(aEUt) + .addTo(distillationTowerRecipes); + } + + public void addUniversalDistillationRecipe(FluidStack aInput, FluidStack[] aOutputs, ItemStack aOutput2, + int aDuration, int aEUt) { + for (int i = 0; i < Math.min(aOutputs.length, 11); i++) { + GT_RecipeBuilder buildDistillation = GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(i + 1)); + if (aOutput2 != GT_Values.NI) { + buildDistillation.itemOutputs(aOutput2); + } + buildDistillation.fluidInputs(aInput) + .fluidOutputs(aOutputs[i]) + .duration(2 * aDuration) + .eut(aEUt / 4) + .addTo(distilleryRecipes); + } + GT_RecipeBuilder buildDT = GT_Values.RA.stdBuilder(); + if (aOutput2 != GT_Values.NI) { + buildDT.itemOutputs(aOutput2); + } + buildDT.fluidInputs(aInput) + .fluidOutputs(aOutputs) + .duration(aDuration) + .eut(aEUt) + .addTo(distillationTowerRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ElectrolyzerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ElectrolyzerRecipes.java new file mode 100644 index 0000000000..efcfa7e3dc --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ElectrolyzerRecipes.java @@ -0,0 +1,301 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ElectrolyzerRecipes implements Runnable { + + @Override + public void run() { + // H2O = 2H + O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1), ItemList.Cell_Empty.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L)) + .fluidInputs(Materials.Water.getFluid(1000L)) + .fluidOutputs(Materials.Hydrogen.getGas(2000L)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2), ItemList.Cell_Empty.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L)) + .fluidInputs(GT_ModHandler.getDistilledWater(1000L)) + .fluidOutputs(Materials.Hydrogen.getGas(2000L)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3), ItemList.Cell_Empty.get(2L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2L)) + .fluidInputs(Materials.Water.getFluid(1000L)) + .fluidOutputs(Materials.Oxygen.getGas(1000L)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4), ItemList.Cell_Empty.get(2L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2L)) + .fluidInputs(GT_ModHandler.getDistilledWater(1000L)) + .fluidOutputs(Materials.Oxygen.getGas(1000L)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("electrolyzedWaterCell", 1L), ItemList.Cell_Empty.get(2L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2L), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("electrolyzedWaterCell", 1L), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L)) + .fluidOutputs(Materials.Hydrogen.getGas(2000L)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L)) + .itemOutputs(GT_ModHandler.getIC2Item("electrolyzedWaterCell", 1L)) + .duration(1 * MINUTES + 13 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Dye_Bonemeal.get(3L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L)) + .duration(4 * SECONDS + 18 * TICKS) + .eut(26) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.sand, 8, 0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3L)) + .duration(25 * SECONDS) + .eut(25) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.sand, 8, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3L)) + .duration(25 * SECONDS) + .eut(25) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 4)) + .duration(5 * SECONDS) + .eut(64) + .addTo(electrolyzerRecipes); + // ZnS = Zn + S + 1 Ga(9.17%) + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sphalerite, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gallium, 1)) + .outputChances(10000, 10000, 917) + .duration(10 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + // IC2 Fertilizer = H2O + CaCO3 + C + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Fertilizer.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L)) + .fluidOutputs(Materials.Water.getFluid(1000L)) + .duration(5 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + // NaOH = Na + O + H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumHydroxide.getDust(3), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Sodium.getDust(1), Materials.Hydrogen.getCells(1)) + .outputChances(10000, 10000) + .fluidOutputs(Materials.Oxygen.getGas(1000)) + .duration(50 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Carbon.getDust(1)) + .fluidInputs(Materials.CarbonDioxide.getGas(1000)) + .fluidOutputs(Materials.Oxygen.getGas(2000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(11), Materials.Empty.getCells(2)) + .itemOutputs(Materials.Carbon.getDust(1), Materials.Oxygen.getCells(2)) + .fluidInputs(Materials.CarbonDioxide.getGas(1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + // SO2 = S + 2O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Sulfur.getDust(1)) + .fluidInputs(Materials.SulfurDioxide.getGas(1000)) + .fluidOutputs(Materials.Oxygen.getGas(2000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(11), Materials.Empty.getCells(2)) + .itemOutputs(Materials.Sulfur.getDust(1), Materials.Oxygen.getCells(2)) + .fluidInputs(Materials.SulfurDioxide.getGas(1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + // NaCl = Na +Cl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Salt.getDust(2)) + .itemOutputs(Materials.Sodium.getDust(1)) + .fluidOutputs(Materials.Chlorine.getGas(1000)) + .duration(16 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + // (NaCl·H2O)= NaOH + H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.SodiumHydroxide.getDust(3), Materials.Hydrogen.getCells(1)) + .fluidInputs(Materials.SaltWater.getFluid(1000)) + .fluidOutputs(Materials.Chlorine.getGas(1000)) + .duration(36 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.SodiumHydroxide.getDust(3), Materials.Chlorine.getCells(1)) + .fluidInputs(Materials.SaltWater.getFluid(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(1000)) + .duration(36 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + // HCl = H + Cl + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Hydrogen.getCells(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.Chlorine.getGas(1000)) + .duration(36 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Chlorine.getCells(1)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(1000)) + .duration(36 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Hydrogen.getCells(1)) + .fluidOutputs(Materials.Chlorine.getGas(1000)) + .duration(36 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.Chlorine.getCells(1)) + .fluidOutputs(Materials.Hydrogen.getGas(1000)) + .duration(36 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + // 2NaHSO4 = 2H + Na2S2O8 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.SodiumBisulfate.getDust(14), Materials.Empty.getCells(2)) + .itemOutputs(Materials.Hydrogen.getCells(2)) + .fluidOutputs(Materials.SodiumPersulfate.getFluid(1000)) + .duration(30 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lead, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 4)) + .fluidInputs(new FluidStack(ItemList.sLeadZincSolution, 8000)) + .fluidOutputs(Materials.Water.getFluid(2000)) + .duration(15 * SECONDS) + .eut(192) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Cell_Empty.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1)) + .fluidInputs(new FluidStack(ItemList.sBlueVitriol, 2000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) + .duration(45 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Cell_Empty.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1)) + .fluidInputs(new FluidStack(ItemList.sNickelSulfate, 2000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) + .duration(45 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Cell_Empty.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1)) + .fluidInputs(new FluidStack(ItemList.sGreenVitriol, 2000)) + .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) + .duration(45 * SECONDS) + .eut(30) + .addTo(electrolyzerRecipes); + + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ElectromagneticSeparatorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ElectromagneticSeparatorRecipes.java new file mode 100644 index 0000000000..d9031ac64f --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ElectromagneticSeparatorRecipes.java @@ -0,0 +1,34 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.electroMagneticSeparatorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsOreAlum; +import gregtech.api.enums.TierEU; + +public class ElectromagneticSeparatorRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsOreAlum.SluiceSand.getDust(1)) + .itemOutputs(Materials.Iron.getDust(1), Materials.Neodymium.getDust(1), Materials.Chrome.getDust(1)) + .outputChances(4000, 2000, 2000) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV / 2) + .addTo(electroMagneticSeparatorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.TengamRaw.getDust(1)) + .itemOutputs( + Materials.TengamPurified.getDust(1), + Materials.NeodymiumMagnetic.getDust(1), + Materials.SamariumMagnetic.getDust(1)) + .outputChances(10000, 1000, 1000) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(electroMagneticSeparatorRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ExtractorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ExtractorRecipes.java new file mode 100644 index 0000000000..e26c4fef97 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ExtractorRecipes.java @@ -0,0 +1,48 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.extractorRecipes; +import static gregtech.api.util.GT_ModHandler.getIC2Item; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.WILDCARD; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; + +public class ExtractorRecipes implements Runnable { + + @Override + public void run() { + addExtractionRecipe(new ItemStack(Blocks.bookshelf, 1, WILDCARD), new ItemStack(Items.book, 3, 0)); + addExtractionRecipe( + new ItemStack(Items.slime_ball, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 2L)); + addExtractionRecipe( + ItemList.IC2_Resin.get(1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 3L)); + addExtractionRecipe( + getIC2Item("rubberSapling", 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 1L)); + addExtractionRecipe( + getIC2Item("rubberLeaves", 16L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 1L)); + + addExtractionRecipe(ItemList.Cell_Air.get(1L), ItemList.Cell_Empty.get(1L)); + } + + public void addExtractionRecipe(ItemStack input, ItemStack output) { + output = GT_OreDictUnificator.get(true, output); + GT_Values.RA.stdBuilder() + .itemInputs(input) + .itemOutputs(output) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ExtruderRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ExtruderRecipes.java new file mode 100644 index 0000000000..e52ad3d4fb --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ExtruderRecipes.java @@ -0,0 +1,29 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; + +public class ExtruderRecipes implements Runnable { + + @Override + public void run() { + // wax capsule + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.FR_Wax.get(1L), ItemList.Shape_Extruder_Cell.get(0L)) + .itemOutputs(ItemList.FR_WaxCapsule.get(1L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(extruderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.FR_RefractoryWax.get(1L), ItemList.Shape_Extruder_Cell.get(0L)) + .itemOutputs(ItemList.FR_RefractoryCapsule.get(1L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(16) + .addTo(extruderRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/FermenterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FermenterRecipes.java new file mode 100644 index 0000000000..c0954fda18 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/FermenterRecipes.java @@ -0,0 +1,294 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.fermentingRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; + +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; + +public class FermenterRecipes implements Runnable { + + @Override + public void run() { + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Biomass.getFluid(100)) + .fluidOutputs(Materials.FermentedBiomass.getFluid(100)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(new FluidStack(FluidRegistry.getFluid("ic2biomass"), 100)) + .fluidOutputs(Materials.FermentedBiomass.getFluid(100)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("milk", 50)) + .fluidOutputs(getFluidStack("potion.mundane", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.lemonjuice", 50)) + .fluidOutputs(getFluidStack("potion.limoncello", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.applejuice", 50)) + .fluidOutputs(getFluidStack("potion.cider", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.goldenapplejuice", 50)) + .fluidOutputs(getFluidStack("potion.goldencider", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.idunsapplejuice", 50)) + .fluidOutputs(getFluidStack("potion.notchesbrew", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.reedwater", 50)) + .fluidOutputs(getFluidStack("potion.rum", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.rum", 50)) + .fluidOutputs(getFluidStack("potion.piratebrew", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.grapejuice", 50)) + .fluidOutputs(getFluidStack("potion.wine", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.wine", 50)) + .fluidOutputs(getFluidStack("potion.vinegar", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.scotch", 50)) + .fluidOutputs(getFluidStack("potion.glenmckenner", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.wheatyhopsjuice", 50)) + .fluidOutputs(getFluidStack("potion.beer", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.hopsjuice", 50)) + .fluidOutputs(getFluidStack("potion.darkbeer", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.darkbeer", 50)) + .fluidOutputs(getFluidStack("potion.dragonblood", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.beer", 75)) + .fluidOutputs(getFluidStack("potion.vinegar", 50)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.cider", 75)) + .fluidOutputs(getFluidStack("potion.vinegar", 50)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.goldencider", 75)) + .fluidOutputs(getFluidStack("potion.vinegar", 50)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.rum", 75)) + .fluidOutputs(getFluidStack("potion.vinegar", 50)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.wine", 75)) + .fluidOutputs(getFluidStack("potion.vinegar", 50)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.awkward", 50)) + .fluidOutputs(getFluidStack("potion.weakness", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.mundane", 50)) + .fluidOutputs(getFluidStack("potion.weakness", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.thick", 50)) + .fluidOutputs(getFluidStack("potion.weakness", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.poison", 50)) + .fluidOutputs(getFluidStack("potion.damage", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.health", 50)) + .fluidOutputs(getFluidStack("potion.damage", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.waterbreathing", 50)) + .fluidOutputs(getFluidStack("potion.damage", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.nightvision", 50)) + .fluidOutputs(getFluidStack("potion.invisibility", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.fireresistance", 50)) + .fluidOutputs(getFluidStack("potion.slowness", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.speed", 50)) + .fluidOutputs(getFluidStack("potion.slowness", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.strength", 50)) + .fluidOutputs(getFluidStack("potion.weakness", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.regen", 50)) + .fluidOutputs(getFluidStack("potion.poison", 25)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.poison.strong", 50)) + .fluidOutputs(getFluidStack("potion.damage.strong", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.health.strong", 50)) + .fluidOutputs(getFluidStack("potion.damage.strong", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.nightvision.long", 50)) + .fluidOutputs(getFluidStack("potion.invisibility.long", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.regen.strong", 50)) + .fluidOutputs(getFluidStack("potion.poison.strong", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.fireresistance.long", 50)) + .fluidOutputs(getFluidStack("potion.slowness.long", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.speed.long", 50)) + .fluidOutputs(getFluidStack("potion.slowness.long", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.strength.long", 50)) + .fluidOutputs(getFluidStack("potion.weakness.long", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(getFluidStack("potion.regen.long", 50)) + .fluidOutputs(getFluidStack("potion.poison.long", 10)) + .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) + .eut(2) + .addTo(fermentingRecipes); + + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/FluidCannerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FluidCannerRecipes.java new file mode 100644 index 0000000000..ea2b87996f --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/FluidCannerRecipes.java @@ -0,0 +1,93 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.fluidCannerRecipes; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; + +public class FluidCannerRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_Hull_LV.get(1)) + .itemOutputs(ItemList.IC2_ReBattery.get(1)) + .fluidInputs(Materials.Redstone.getMolten(288)) + .duration(4) + .eut(1) + .addTo(fluidCannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_Hull_LV.get(1)) + .itemOutputs(ItemList.Battery_SU_LV_Mercury.getWithCharge(1, Integer.MAX_VALUE)) + .fluidInputs(Materials.Mercury.getFluid(1000)) + .duration(16) + .eut(1) + .addTo(fluidCannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_Hull_MV.get(1)) + .itemOutputs(ItemList.Battery_SU_MV_Mercury.getWithCharge(1, Integer.MAX_VALUE)) + .fluidInputs(Materials.Mercury.getFluid(4000)) + .duration(64) + .eut(1) + .addTo(fluidCannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_Hull_HV.get(1)) + .itemOutputs(ItemList.Battery_SU_HV_Mercury.getWithCharge(1, Integer.MAX_VALUE)) + .fluidInputs(Materials.Mercury.getFluid(16000)) + .duration(258) + .eut(1) + .addTo(fluidCannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_Hull_LV.get(1)) + .itemOutputs(ItemList.Battery_SU_LV_SulfuricAcid.getWithCharge(1, Integer.MAX_VALUE)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .duration(16) + .eut(1) + .addTo(fluidCannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_Hull_MV.get(1)) + .itemOutputs(ItemList.Battery_SU_MV_SulfuricAcid.getWithCharge(1, Integer.MAX_VALUE)) + .fluidInputs(Materials.SulfuricAcid.getFluid(4000)) + .duration(64) + .eut(1) + .addTo(fluidCannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_Hull_HV.get(1)) + .itemOutputs(ItemList.Battery_SU_HV_SulfuricAcid.getWithCharge(1, Integer.MAX_VALUE)) + .fluidInputs(Materials.SulfuricAcid.getFluid(16000)) + .duration(258) + .eut(1) + .addTo(fluidCannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.TF_Vial_FieryTears.get(1)) + .itemOutputs(ItemList.Bottle_Empty.get(1)) + .fluidOutputs(Materials.FierySteel.getFluid(250)) + .duration(4) + .eut(1) + .addTo(fluidCannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Spray_Color_Remover_Empty.get(1)) + .fluidInputs(Materials.Acetone.getFluid(4000)) + .itemOutputs(ItemList.Spray_Color_Remover.get(1)) + .duration(74) + .eut(1) + .addTo(fluidCannerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Spray_Color_Remover.get(1)) + .itemOutputs(ItemList.Spray_Color_Remover_Empty.get(1)) + .fluidOutputs(Materials.Acetone.getFluid(4000)) + .duration(74) + .eut(1) + .addTo(fluidCannerRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/FluidExtractorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FluidExtractorRecipes.java new file mode 100644 index 0000000000..11861a9618 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/FluidExtractorRecipes.java @@ -0,0 +1,569 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.BartWorks; +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.GregTech; +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeCategories; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class FluidExtractorRecipes implements Runnable { + + @Override + public void run() { + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Dye_SquidInk.get(1L)) + .fluidOutputs(getFluidStack("squidink", 144)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Dye_Indigo.get(1L)) + .fluidOutputs(getFluidStack("indigo", 144)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Crop_Drop_Indigo.get(1L)) + .fluidOutputs(getFluidStack("indigo", 144)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Crop_Drop_MilkWart.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Milk, 1L)) + .outputChances(1000) + .fluidOutputs(GT_ModHandler.getMilk(150L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Crop_Drop_OilBerry.get(1L)) + .fluidOutputs(Materials.Oil.getFluid(100L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Crop_Drop_UUMBerry.get(1L)) + .fluidOutputs(Materials.UUMatter.getFluid(4L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Crop_Drop_UUABerry.get(1L)) + .fluidOutputs(Materials.UUAmplifier.getFluid(4L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.fish, 1, 0)) + .fluidOutputs(Materials.FishOil.getFluid(40L)) + .duration(16 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.fish, 1, 1)) + .fluidOutputs(Materials.FishOil.getFluid(60L)) + .duration(16 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.fish, 1, 2)) + .fluidOutputs(Materials.FishOil.getFluid(70L)) + .duration(16 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.fish, 1, 3)) + .fluidOutputs(Materials.FishOil.getFluid(30L)) + .duration(16 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.coal, 1, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L)) + .outputChances(1000) + .fluidOutputs(Materials.WoodTar.getFluid(100L)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)) + .itemOutputs(ItemList.IC2_Plantball.get(1L)) + .outputChances(100) + .fluidOutputs(Materials.Creosote.getFluid(5L)) + .duration(16 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L)) + .outputChances(10000) + .fluidOutputs(Materials.Water.getFluid(100L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Thaumcraft.ID, "ItemResource", 1, 3)) + .fluidOutputs(Materials.Mercury.getFluid(1000L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Mercury, 1L)) + .fluidOutputs(Materials.Mercury.getFluid(1000L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Monazite, 1L)) + .fluidOutputs(Materials.Helium.getGas(200L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(64) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(IndustrialCraft2.ID, "blockAlloyGlass", 1L, 0)) + .fluidOutputs(Materials.ReinforceGlass.getMolten(144)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(NewHorizonsCoreMod.ID, "item.ReinforcedGlassPlate", 1L, 0)) + .fluidOutputs(Materials.ReinforceGlass.getMolten(72)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(NewHorizonsCoreMod.ID, "item.ReinforcedGlassLense", 1L, 0)) + .fluidOutputs(Materials.ReinforceGlass.getMolten(54)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Fluid.get(1L)) + .fluidOutputs(Materials.Steel.getMolten(19 * 144)) + .duration(20 * SECONDS) + .eut(90) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Item.get(1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 7L)) + .outputChances(10000) + .fluidOutputs(Materials.Tin.getMolten(12 * 144)) + .duration(20 * SECONDS) + .eut(90) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Fluid_Pipe.get(4L)) + .fluidOutputs(Materials.Steel.getMolten(189)) + .duration(2 * SECONDS) + .eut(90) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Item_Pipe.get(16L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 3L)) + .outputChances(10000) + .fluidOutputs(Materials.Steel.getMolten(324)) + .duration(20 * SECONDS) + .eut(90) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("TritiumCell", 1)) + .itemOutputs(GT_ModHandler.getIC2Item("fuelRod", 1)) + .outputChances(10000) + .fluidOutputs(Materials.Tritium.getGas(32)) + .duration(16 * TICKS) + .eut(64) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 1L)) + .fluidOutputs(Materials.Glass.getMolten(72)) + .duration(30 * SECONDS) + .eut(28) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 0)) + .fluidOutputs(Materials.Iron.getMolten(288)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 1)) + .fluidOutputs(Materials.Iron.getMolten(144)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 6)) + .outputChances(10000) + .fluidOutputs(Materials.Bronze.getMolten(1728)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 13)) + .fluidOutputs(Materials.Steel.getMolten(288)) + .duration(20 * SECONDS) + .eut(90) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 14)) + .fluidOutputs(Materials.Steel.getMolten(144)) + .duration(20 * SECONDS) + .eut(90) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 15)) + .fluidOutputs(Materials.Steel.getMolten(1836)) + .duration(20 * SECONDS) + .eut(90) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 0)) + .fluidOutputs(Materials.Aluminium.getMolten(288)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 1)) + .fluidOutputs(Materials.Aluminium.getMolten(144)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 12L)) + .outputChances(10000) + .fluidOutputs(Materials.Aluminium.getMolten(108L)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 3)) + .fluidOutputs(Materials.StainlessSteel.getMolten(288)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 4)) + .fluidOutputs(Materials.StainlessSteel.getMolten(144)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 5)) + .fluidOutputs(Materials.StainlessSteel.getMolten(1836)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 6)) + .fluidOutputs(Materials.Titanium.getMolten(288)) + .duration(35 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 7)) + .fluidOutputs(Materials.Titanium.getMolten(144)) + .duration(35 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 8)) + .fluidOutputs(Materials.Titanium.getMolten(1836)) + .duration(35 * SECONDS) + .eut(TierEU.RECIPE_MV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 9)) + .fluidOutputs(Materials.TungstenSteel.getMolten(288)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_HV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 10)) + .fluidOutputs(Materials.TungstenSteel.getMolten(144)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_HV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 11)) + .fluidOutputs(Materials.TungstenSteel.getMolten(1836)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_HV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 12)) + .fluidOutputs(Materials.Palladium.getMolten(288)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 13)) + .fluidOutputs(Materials.Palladium.getMolten(144)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 14)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Chrome, 6L)) + .outputChances(10000) + .fluidOutputs(Materials.NiobiumTitanium.getMolten(1728)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 0)) + .fluidOutputs(Materials.Iridium.getMolten(288)) + .duration(50 * SECONDS) + .eut(TierEU.RECIPE_HV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 1)) + .fluidOutputs(Materials.Iridium.getMolten(144)) + .duration(50 * SECONDS) + .eut(TierEU.RECIPE_HV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iridium, 6L)) + .outputChances(10000) + .fluidOutputs(Materials.Enderium.getMolten(1728)) + .duration(50 * SECONDS) + .eut(TierEU.RECIPE_HV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 3)) + .fluidOutputs(Materials.Osmium.getMolten(288)) + .duration(55 * SECONDS) + .eut(TierEU.RECIPE_EV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 4)) + .fluidOutputs(Materials.Osmium.getMolten(144)) + .duration(55 * SECONDS) + .eut(TierEU.RECIPE_EV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 5)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Osmium, 6L)) + .outputChances(10000) + .fluidOutputs(Materials.Naquadah.getMolten(1728)) + .duration(55 * SECONDS) + .eut(TierEU.RECIPE_EV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 6)) + .fluidOutputs(Materials.Neutronium.getMolten(288)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_EV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 7)) + .fluidOutputs(Materials.Neutronium.getMolten(144)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_EV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 8)) + .fluidOutputs(Materials.Neutronium.getMolten(1836)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_EV) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.wheat_seeds, 1, 32767)) + .fluidOutputs(Materials.SeedOil.getFluid(10)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(2) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.melon_seeds, 1, 32767)) + .fluidOutputs(Materials.SeedOil.getFluid(10)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(2) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.pumpkin_seeds, 1, 32767)) + .fluidOutputs(Materials.SeedOil.getFluid(10)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(2) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Crop_Drop_Rape.get(1)) + .fluidOutputs(Materials.SeedOil.getFluid(125)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(2) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.snowball, 1, 0)) + .fluidOutputs(Materials.Water.getFluid(250L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.snow, 1, 0)) + .fluidOutputs(Materials.Water.getFluid(1000L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L)) + .fluidOutputs(Materials.Ice.getSolid(1000L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Forestry.ID, "phosphor", 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L)) + .outputChances(1000) + .fluidOutputs(Materials.Lava.getFluid(800L)) + .duration(12 * SECONDS + 16 * TICKS) + .eut(128) + .addTo(fluidExtractionRecipes); + + // Beecombs fluid extractor recipes + if (BartWorks.isModLoaded()) { + // xenon + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 134)) + .fluidOutputs(getFluidStack("xenon", 250)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_IV) + .addTo(fluidExtractionRecipes); + + // neon + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 135)) + .fluidOutputs(getFluidStack("neon", 250)) + .duration(15 * TICKS) + .eut(TierEU.RECIPE_IV) + .addTo(fluidExtractionRecipes); + + // krpton + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(GregTech.ID, "gt.comb", 1L, 136)) + .fluidOutputs(getFluidStack("krypton", 250)) + .duration(1 * SECONDS + 5 * TICKS) + .eut(TierEU.RECIPE_IV) + .addTo(fluidExtractionRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/FluidHeaterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FluidHeaterRecipes.java new file mode 100644 index 0000000000..b9cdfc4aa3 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/FluidHeaterRecipes.java @@ -0,0 +1,95 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.fluidHeaterRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Utility; + +public class FluidHeaterRecipes implements Runnable { + + @Override + public void run() { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.GrowthMediumRaw.getFluid(1000)) + .fluidOutputs(Materials.GrowthMediumSterilized.getFluid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(fluidHeaterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.BioMediumRaw.getFluid(1000)) + .fluidOutputs(Materials.BioMediumSterilized.getFluid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(fluidHeaterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Water.getFluid(6)) + .fluidOutputs(Materials.Water.getGas(960)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(fluidHeaterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(GT_ModHandler.getDistilledWater(6)) + .fluidOutputs(Materials.Water.getGas(960)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(fluidHeaterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.SeedOil.getFluid(16)) + .fluidOutputs(Materials.FryingOilHot.getFluid(16)) + .duration(16 * TICKS) + .eut(30) + .addTo(fluidHeaterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.FishOil.getFluid(16)) + .fluidOutputs(Materials.FryingOilHot.getFluid(16)) + .duration(16 * TICKS) + .eut(30) + .addTo(fluidHeaterRecipes); + // Ca(CH3COO)2 = CH3COCH3 + CaO + CO2 + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.CalciumAcetateSolution.getFluid(1000)) + .fluidOutputs(Materials.Acetone.getFluid(1000)) + .duration(4 * SECONDS) + .eut(30) + .addTo(fluidHeaterRecipes); + // Fluid Sodium + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sodium.getDust(1)) + .fluidInputs( + + ) + .fluidOutputs(Materials.Sodium.getFluid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(fluidHeaterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Acetone.getFluid(1000)) + .fluidOutputs(Materials.Ethenone.getGas(1000)) + .duration(8 * SECONDS) + .eut(160) + .addTo(fluidHeaterRecipes); + + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/FluidSolidifierRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FluidSolidifierRecipes.java new file mode 100644 index 0000000000..2d52f9eb69 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/FluidSolidifierRecipes.java @@ -0,0 +1,577 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.INGOTS; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsKevlar; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class FluidSolidifierRecipes implements Runnable { + + @Override + public void run() { + Materials[] materialArray = new Materials[] { Materials.Iron, Materials.WroughtIron, Materials.Gold, + Materials.Bronze, Materials.Copper, Materials.AnnealedCopper, Materials.Tin, Materials.Lead, + Materials.Steel }; + + ItemStack[] materialCasing = new ItemStack[] { ItemList.IC2_Item_Casing_Iron.get(1L), + ItemList.IC2_Item_Casing_Iron.get(1L), ItemList.IC2_Item_Casing_Gold.get(1L), + ItemList.IC2_Item_Casing_Bronze.get(1L), ItemList.IC2_Item_Casing_Copper.get(1L), + ItemList.IC2_Item_Casing_Copper.get(1L), ItemList.IC2_Item_Casing_Tin.get(1L), + ItemList.IC2_Item_Casing_Lead.get(1L), ItemList.IC2_Item_Casing_Steel.get(1L) }; + + for (int i = 0; i < materialArray.length; i++) { + if (materialArray[i].mStandardMoltenFluid == null) { + continue; + } + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Casing.get(0L)) + .itemOutputs(materialCasing[i]) + .fluidInputs(materialArray[i].getMolten(72L)) + .duration(16 * TICKS) + .eut(8) + .addTo(fluidSolidifierRecipes); + } + + { + ItemStack flask = ItemList.VOLUMETRIC_FLASK.get(1); + NBTTagCompound nbtFlask = new NBTTagCompound(); + nbtFlask.setInteger("Capacity", 1000); + flask.setTagCompound(nbtFlask); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ball.get(0)) + .itemOutputs(flask) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("molten.borosilicateglass"), 144)) + .duration(2 * SECONDS + 4 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(fluidSolidifierRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) + .itemOutputs(getModItem(Thaumcraft.ID, "ItemResource", 1, 3)) + .fluidInputs(Materials.Mercury.getFluid(1000L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Mercury, 1L)) + .fluidInputs(Materials.Mercury.getFluid(1000L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) + .itemOutputs(new ItemStack(Items.snowball, 1, 0)) + .fluidInputs(Materials.Water.getFluid(250L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) + .itemOutputs(new ItemStack(Items.snowball, 1, 0)) + .fluidInputs(GT_ModHandler.getDistilledWater(250L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(new ItemStack(Blocks.snow, 1, 0)) + .fluidInputs(Materials.Water.getFluid(1000L)) + .duration(25 * SECONDS + 12 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(new ItemStack(Blocks.snow, 1, 0)) + .fluidInputs(GT_ModHandler.getDistilledWater(1000L)) + .duration(25 * SECONDS + 12 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(new ItemStack(Blocks.obsidian, 1, 0)) + .fluidInputs(Materials.Lava.getFluid(1000L)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(new ItemStack(GregTech_API.sBlockConcretes, 1, 8)) + .fluidInputs(Materials.Concrete.getMolten(144L)) + .duration(12 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(new ItemStack(Blocks.glowstone, 1, 0)) + .fluidInputs(Materials.Glowstone.getMolten(576L)) + .duration(12 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(new ItemStack(Blocks.glass, 1, 0)) + .fluidInputs(Materials.Glass.getMolten(144L)) + .duration(12 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Plate.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Glass, 1L)) + .fluidInputs(Materials.Glass.getMolten(144L)) + .duration(12 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Bottle.get(0L)) + .itemOutputs(ItemList.Bottle_Empty.get(1L)) + .fluidInputs(Materials.Glass.getMolten(144L)) + .duration(12 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Cylinder.get(0L)) + .itemOutputs(ItemList.Food_Cheese.get(1L)) + .fluidInputs(Materials.Milk.getFluid(250L)) + .duration(51 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Cylinder.get(0L)) + .itemOutputs(ItemList.Food_Cheese.get(1L)) + .fluidInputs(Materials.Cheese.getMolten(144L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(8) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Anvil.get(0L)) + .itemOutputs(new ItemStack(Blocks.anvil, 1, 0)) + .fluidInputs(Materials.Iron.getMolten(4464L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(16) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Anvil.get(0L)) + .itemOutputs(new ItemStack(Blocks.anvil, 1, 0)) + .fluidInputs(Materials.WroughtIron.getMolten(4464L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(16) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Boron.getDust(1)) + .fluidInputs(Materials.Boron.getMolten(144L)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(30) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Cylinder.get(0)) + .itemOutputs(ItemList.Circuit_Parts_PetriDish.get(1)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(36)) + .duration(8 * SECONDS) + .eut(16) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Cylinder.get(0)) + .itemOutputs(ItemList.Circuit_Parts_PetriDish.get(1)) + .fluidInputs(Materials.Polystyrene.getMolten(36)) + .duration(8 * SECONDS) + .eut(16) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Cylinder.get(0)) + .itemOutputs(ItemList.Circuit_Parts_PetriDish.get(1)) + .fluidInputs(Materials.BorosilicateGlass.getMolten(72)) + .duration(8 * SECONDS) + .eut(16) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Plate.get(0L)) + .itemOutputs(getModItem(NewHorizonsCoreMod.ID, "item.ReinforcedGlassPlate", 1L, 0)) + .fluidInputs(Materials.ReinforceGlass.getMolten(72)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(getModItem(IndustrialCraft2.ID, "blockAlloyGlass", 1L)) + .fluidInputs(Materials.ReinforceGlass.getMolten(144)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) + .itemOutputs(ItemList.Circuit_Parts_Glass_Tube.get(1)) + .fluidInputs(Materials.Glass.getMolten(144)) + .duration(10 * SECONDS) + .eut(24) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) + .itemOutputs(ItemList.Circuit_Parts_Reinforced_Glass_Tube.get(1)) + .fluidInputs(Materials.ReinforceGlass.getMolten(288)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) + .itemOutputs(ItemList.Circuit_Parts_Glass_Tube.get(1)) + .fluidInputs(getFluidStack("glass.molten", 1000)) + .duration(10 * SECONDS) + .eut(24) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) + .itemOutputs(ItemList.GelledToluene.get(1)) + .fluidInputs(new FluidStack(ItemList.sToluene, 100)) + .duration(5 * SECONDS) + .eut(16) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Nugget.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 1L)) + .fluidInputs(Materials.AnnealedCopper.getMolten(16)) + .duration(16 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ingot.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L)) + .fluidInputs(Materials.AnnealedCopper.getMolten(144)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Copper, 1L)) + .fluidInputs(Materials.AnnealedCopper.getMolten(1296)) + .duration(14 * SECONDS + 8 * TICKS) + .eut(8) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Nugget.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 1L)) + .fluidInputs(Materials.WroughtIron.getMolten(16)) + .duration(16 * TICKS) + .eut(4) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ingot.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L)) + .fluidInputs(Materials.WroughtIron.getMolten(144)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L)) + .fluidInputs(Materials.WroughtIron.getMolten(1296)) + .duration(14 * SECONDS + 8 * TICKS) + .eut(8) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Spinneret.get(0L)) + .itemOutputs(ItemList.KevlarFiber.get(8L)) + .fluidInputs(MaterialsKevlar.LiquidCrystalKevlar.getFluid(144L)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Anvil.get(0L)) + .itemOutputs(getModItem(Railcraft.ID, "anvil", 1L, 0)) + .fluidInputs(Materials.Steel.getMolten(4464L)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(16) + .addTo(fluidSolidifierRecipes); + + final int whiteDwarfShapeSolidifierTime = 10 * SECONDS; + final int fluidPerShapeSolidifierRecipe = 4 * INGOTS; + { + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Bottle.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Bottle.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Plate.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Plate.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Cell.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Cell.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Ring.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Ring.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Rod.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Rod.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Bolt.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Bolt.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Ingot.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Ingot.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Wire.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Wire.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Casing.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Casing.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Pipe_Tiny.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Pipe_Tiny.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Pipe_Small.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Pipe_Small.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Pipe_Medium.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Pipe_Medium.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Pipe_Large.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Pipe_Large.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Pipe_Huge.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Pipe_Huge.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Block.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Block.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Sword.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Sword.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Pickaxe.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Pickaxe.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Shovel.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Shovel.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Axe.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Axe.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Hoe.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Hoe.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Hammer.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Hammer.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_File.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_File.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Saw.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Saw.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Gear.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Gear.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Rotor.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Rotor.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Turbine_Blade.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Turbine_Blade.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_Small_Gear.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_Small_Gear.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Extruder_ToolHeadDrill.get(1)) + .itemOutputs(ItemList.White_Dwarf_Shape_Extruder_ToolHeadDrill.get(1)) + .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) + .duration(whiteDwarfShapeSolidifierTime) + .eut(TierEU.RECIPE_UMV) + .addTo(fluidSolidifierRecipes); + + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ForgeHammerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ForgeHammerRecipes.java new file mode 100644 index 0000000000..49ad1154c7 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ForgeHammerRecipes.java @@ -0,0 +1,158 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.HardcoreEnderExpansion; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_OreDictUnificator; + +public class ForgeHammerRecipes implements Runnable { + + @Override + public void run() { + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.stonebrick, 1, 0)) + .itemOutputs(new ItemStack(Blocks.stonebrick, 1, 2)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.stone, 1, 0)) + .itemOutputs(new ItemStack(Blocks.cobblestone, 1, 0)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.cobblestone, 1, 0)) + .itemOutputs(new ItemStack(Blocks.gravel, 1, 0)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.gravel, 1, 0)) + .itemOutputs(new ItemStack(Blocks.sand, 1, 0)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.sandstone, 1, 32767)) + .itemOutputs(new ItemStack(Blocks.sand, 1, 0)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.ice, 1, 0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.packed_ice, 1, 0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 2)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.brick_block, 1, 0)) + .itemOutputs(new ItemStack(Items.brick, 3, 0)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.nether_brick, 1, 0)) + .itemOutputs(new ItemStack(Items.netherbrick, 3, 0)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.stained_glass, 1, 32767)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 1)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.glass, 1, 32767)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 1)) + .duration(10 * TICKS) + .eut(10) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.stained_glass_pane, 1, 32767)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.glass_pane, 1, 32767)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Brick.getIngots(1)) + .itemOutputs(Materials.Brick.getDustSmall(1)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Firebrick.get(1)) + .itemOutputs(Materials.Brick.getDust(1)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Firebricks.get(1)) + .itemOutputs(ItemList.Firebrick.get(3)) + .duration(10 * TICKS) + .eut(16) + .addTo(hammerRecipes); + + if (GTPlusPlus.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Tesseract.get(1L), getModItem(GTPlusPlus.ID, "MU-metaitem.01", 1, 32105)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(2880L)) + .fluidOutputs(MaterialsUEVplus.Space.getMolten(1440L), MaterialsUEVplus.Time.getMolten(1440L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_UXV) + .addTo(hammerRecipes); + } + + if (HardcoreEnderExpansion.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(HardcoreEnderExpansion.ID, "endium_ore", 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.HeeEndium, 1)) + .duration(16) + .eut(10) + .addTo(hammerRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/FormingPressRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FormingPressRecipes.java new file mode 100644 index 0000000000..80a34561e6 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/FormingPressRecipes.java @@ -0,0 +1,196 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.BuildCraftSilicon; +import static gregtech.api.recipe.RecipeMaps.formingPressRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_OreDictUnificator; + +public class FormingPressRecipes implements Runnable { + + @Override + public void run() { + if (BuildCraftSilicon.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), + getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0)) + .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), + getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0)) + .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L), + getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0)) + .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), + getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0)) + .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 3)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1L), + getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0)) + .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 2L, 4)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NetherQuartz, 1L), + getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0)) + .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 5)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Items.comparator, 1, 32767), + getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0)) + .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 6)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(formingPressRecipes); + } + + if (AppliedEnergistics2.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 10), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 0L, 13)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 16)) + .duration(10 * SECONDS) + .eut(16) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CertusQuartz, 1L), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 0L, 13)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 16)) + .duration(10 * SECONDS) + .eut(16) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 0L, 14)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 17)) + .duration(10 * SECONDS) + .eut(16) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 0L, 15)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 18)) + .duration(10 * SECONDS) + .eut(16) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.SiliconSG, 1L), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 0L, 19)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 20)) + .duration(10 * SECONDS) + .eut(16) + .addTo(formingPressRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Dough_Sugar.get(4L), ItemList.Shape_Mold_Cylinder.get(0L)) + .itemOutputs(ItemList.Food_Raw_Cake.get(1L)) + .duration(19 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.glass, 1, 32767), ItemList.Shape_Mold_Arrow.get(0L)) + .itemOutputs(ItemList.Arrow_Head_Glass_Emtpy.get(1L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Cupronickel, 1L), + ItemList.Shape_Mold_Credit.get(0L)) + .itemOutputs(ItemList.Credit_Greg_Cupronickel.get(4L)) + .duration(5 * SECONDS) + .eut(16) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Brass, 1L), + ItemList.Shape_Mold_Credit.get(0L)) + .itemOutputs(ItemList.Coin_Doge.get(4L)) + .duration(5 * SECONDS) + .eut(16) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), + ItemList.Shape_Mold_Credit.get(0L)) + .itemOutputs(ItemList.Credit_Iron.get(4L)) + .duration(5 * SECONDS) + .eut(16) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), + ItemList.Shape_Mold_Credit.get(0L)) + .itemOutputs(ItemList.Credit_Iron.get(4L)) + .duration(5 * SECONDS) + .eut(16) + .addTo(formingPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brick, 1L), + ItemList.Shape_Mold_Ingot.get(0L)) + .itemOutputs(new ItemStack(Items.brick, 1, 0)) + .duration(5 * SECONDS) + .eut(16) + .addTo(formingPressRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/FuelRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FuelRecipes.java new file mode 100644 index 0000000000..2c3c979b11 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/FuelRecipes.java @@ -0,0 +1,127 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.ForbiddenMagic; +import static gregtech.api.enums.Mods.TaintedMagic; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.enums.Mods.ThaumicTinkerer; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_RecipeConstants; + +public class FuelRecipes implements Runnable { + + // todo: add an enum for the fuel type, int values are mysterious + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("biogasCell", 1L)) + .metadata(FUEL_VALUE, 40) + .metadata(FUEL_TYPE, 1) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.golden_apple, 1, 1)) + .itemOutputs(new ItemStack(Items.apple, 1)) + .metadata(FUEL_VALUE, 6400) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Thaumcraft.ID, "ItemShard", 1L, 6)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ForbiddenMagic.ID, "GluttonyShard", 1L)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ForbiddenMagic.ID, "FMResource", 1L, 3)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 1)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 2)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 3)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 4)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 5)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 6)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(TaintedMagic.ID, "ItemMaterial", 1L, 3)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(TaintedMagic.ID, "ItemMaterial", 1L, 4)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(TaintedMagic.ID, "ItemMaterial", 1L, 5)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ThaumicTinkerer.ID, "kamiResource", 1L, 6)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(ThaumicTinkerer.ID, "kamiResource", 1L, 7)) + .metadata(FUEL_VALUE, 720) + .metadata(FUEL_TYPE, 5) + .addTo(GT_RecipeConstants.Fuel); + + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java new file mode 100644 index 0000000000..bbe10d89f6 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java @@ -0,0 +1,296 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.fusionRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.FUSION_THRESHOLD; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.TierEU; + +public class FusionReactorRecipes implements Runnable { + + @Override + public void run() { + // Fusion tiering -T1 32768EU/t -T2 65536EU/t - T3 131073EU/t + // Fusion with margin 32700 65450 131000 + // Startup max 160M EU 320M EU 640M EU + // Fluid input,Fluid input,Fluid output,ticks,EU/t,Startup + // F FT2, FT3 - fusion tier required, + - requires different startup recipe (startup cost bigger than + // available on the tier) + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Lithium.getMolten(16), Materials.Tungsten.getMolten(16)) + .fluidOutputs(Materials.Iridium.getMolten(16)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(TierEU.RECIPE_LuV) + .metadata(FUSION_THRESHOLD, 300000000) + .addTo(fusionRecipes); // FT1+ - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Deuterium.getGas(125), Materials.Tritium.getGas(125)) + .fluidOutputs(Materials.Helium.getPlasma(125)) + .duration(16 * TICKS) + .eut(4096) + .metadata(FUSION_THRESHOLD, 40000000) + .addTo(fusionRecipes); // FT1 Cheap - farmable + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Deuterium.getGas(125), Materials.Helium_3.getGas(125)) + .fluidOutputs(Materials.Helium.getPlasma(125)) + .duration(16 * TICKS) + .eut(2048) + .metadata(FUSION_THRESHOLD, 60000000) + .addTo(fusionRecipes); // FT1 Expensive // + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Aluminium.getMolten(16), Materials.Lithium.getMolten(16)) + .fluidOutputs(Materials.Sulfur.getPlasma(144)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(10240) + .metadata(FUSION_THRESHOLD, 240000000) + .addTo(fusionRecipes); // FT1+ Cheap + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Beryllium.getMolten(16), Materials.Deuterium.getGas(375)) + .fluidOutputs(Materials.Nitrogen.getPlasma(125)) + .duration(16 * TICKS) + .eut(16384) + .metadata(FUSION_THRESHOLD, 180000000) + .addTo(fusionRecipes); // FT1+ Expensive // + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Silicon.getMolten(16), Materials.Magnesium.getMolten(16)) + .fluidOutputs(Materials.Iron.getPlasma(144)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8192) + .metadata(FUSION_THRESHOLD, 360000000) + .addTo(fusionRecipes); // FT1++ Cheap // + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Potassium.getMolten(16), Materials.Fluorine.getGas(144)) + .fluidOutputs(Materials.Nickel.getPlasma(144)) + .duration(16 * TICKS) + .eut(TierEU.RECIPE_LuV) + .metadata(FUSION_THRESHOLD, 480000000) + .addTo(fusionRecipes); // FT1++ Expensive // + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Beryllium.getMolten(16), Materials.Tungsten.getMolten(16)) + .fluidOutputs(Materials.Platinum.getMolten(16)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_LuV) + .metadata(FUSION_THRESHOLD, 150000000) + .addTo(fusionRecipes); // FT1 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Neodymium.getMolten(16), Materials.Hydrogen.getGas(48)) + .fluidOutputs(Materials.Europium.getMolten(16)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(24576) + .metadata(FUSION_THRESHOLD, 150000000) + .addTo(fusionRecipes); // FT1 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Lutetium.getMolten(16), Materials.Chrome.getMolten(16)) + .fluidOutputs(Materials.Americium.getMolten(16)) + .duration(4 * SECONDS + 16 * TICKS) + .eut(49152) + .metadata(FUSION_THRESHOLD, 200000000) + .addTo(fusionRecipes); // FT2 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Plutonium.getMolten(16), Materials.Thorium.getMolten(16)) + .fluidOutputs(Materials.Naquadah.getMolten(16)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(TierEU.RECIPE_LuV) + .metadata(FUSION_THRESHOLD, 300000000) + .addTo(fusionRecipes); // FT1+ - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Americium.getMolten(144), Materials.Naquadria.getMolten(144)) + .fluidOutputs(Materials.Neutronium.getMolten(144)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .metadata(FUSION_THRESHOLD, 640000000) + .addTo(fusionRecipes); // FT3 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Glowstone.getMolten(16), Materials.Helium.getPlasma(4)) + .fluidOutputs(Materials.Sunnarium.getMolten(16)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_IV) + .metadata(FUSION_THRESHOLD, 40000000) + .addTo(fusionRecipes); // Mark 1 Expensive + // // + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Tungsten.getMolten(16), Materials.Helium.getGas(16)) + .fluidOutputs(Materials.Osmium.getMolten(16)) + .duration(12 * SECONDS + 16 * TICKS) + .eut(24578) + .metadata(FUSION_THRESHOLD, 150000000) + .addTo(fusionRecipes); // FT1 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Manganese.getMolten(16), Materials.Hydrogen.getGas(16)) + .fluidOutputs(Materials.Iron.getMolten(16)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(8192) + .metadata(FUSION_THRESHOLD, 120000000) + .addTo(fusionRecipes); // FT1 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Magnesium.getMolten(128), Materials.Oxygen.getGas(128)) + .fluidOutputs(Materials.Calcium.getPlasma(16)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(8192) + .metadata(FUSION_THRESHOLD, 120000000) + .addTo(fusionRecipes); // + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Mercury.getFluid(16), Materials.Magnesium.getMolten(16)) + .fluidOutputs(Materials.Uranium.getMolten(16)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(49152) + .metadata(FUSION_THRESHOLD, 240000000) + .addTo(fusionRecipes); // FT2 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Gold.getMolten(16), Materials.Aluminium.getMolten(16)) + .fluidOutputs(Materials.Uranium.getMolten(16)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(49152) + .metadata(FUSION_THRESHOLD, 240000000) + .addTo(fusionRecipes); // FT2 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Uranium.getMolten(16), Materials.Helium.getGas(16)) + .fluidOutputs(Materials.Plutonium.getMolten(16)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(49152) + .metadata(FUSION_THRESHOLD, 480000000) + .addTo(fusionRecipes); // FT2+ - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Vanadium.getMolten(16), Materials.Hydrogen.getGas(125)) + .fluidOutputs(Materials.Chrome.getMolten(16)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(24576) + .metadata(FUSION_THRESHOLD, 140000000) + .addTo(fusionRecipes); // FT1 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Gallium.getMolten(16), Materials.Radon.getGas(125)) + .fluidOutputs(Materials.Duranium.getMolten(16)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16384) + .metadata(FUSION_THRESHOLD, 140000000) + .addTo(fusionRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Titanium.getMolten(48), Materials.Duranium.getMolten(32)) + .fluidOutputs(Materials.Tritanium.getMolten(16)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(TierEU.RECIPE_LuV) + .metadata(FUSION_THRESHOLD, 200000000) + .addTo(fusionRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Tantalum.getMolten(16), Materials.Tritium.getGas(16)) + .fluidOutputs(Materials.Tungsten.getMolten(16)) + .duration(16 * TICKS) + .eut(24576) + .metadata(FUSION_THRESHOLD, 200000000) + .addTo(fusionRecipes); // + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Silver.getMolten(16), Materials.Lithium.getMolten(16)) + .fluidOutputs(Materials.Indium.getMolten(16)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(24576) + .metadata(FUSION_THRESHOLD, 380000000) + .addTo(fusionRecipes); // + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Copper.getMolten(72), Materials.Tritium.getGas(250)) + .fluidOutputs(Materials.Zinc.getPlasma(72)) + .duration(16 * TICKS) + .eut(49152) + .metadata(FUSION_THRESHOLD, 180000000) + .addTo(fusionRecipes); // FT2 - farmable + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Cobalt.getMolten(144), Materials.Silicon.getMolten(144)) + .fluidOutputs(Materials.Niobium.getPlasma(144)) + .duration(16 * TICKS) + .eut(49152) + .metadata(FUSION_THRESHOLD, 200000000) + .addTo(fusionRecipes); // FT2 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Gold.getMolten(144), Materials.Arsenic.getMolten(144)) + .fluidOutputs(Materials.Silver.getPlasma(144)) + .duration(16 * TICKS) + .eut(49152) + .metadata(FUSION_THRESHOLD, 350000000) + .addTo(fusionRecipes); // FT2+ + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Silver.getMolten(144), Materials.Helium_3.getGas(375)) + .fluidOutputs(Materials.Tin.getPlasma(288)) + .duration(16 * TICKS) + .eut(49152) + .metadata(FUSION_THRESHOLD, 280000000) + .addTo(fusionRecipes); // FT2 + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Tantalum.getMolten(144), Materials.Zinc.getPlasma(72)) + .fluidOutputs(Materials.Bismuth.getPlasma(144)) + .duration(16 * TICKS) + .eut(98304) + .metadata(FUSION_THRESHOLD, 350000000) + .addTo(fusionRecipes); // FT3 - farmable + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Iridium.getMolten(144), Materials.Fluorine.getGas(500)) + .fluidOutputs(Materials.Radon.getPlasma(144)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(98304) + .metadata(FUSION_THRESHOLD, 450000000) + .addTo(fusionRecipes); // FT3 - utility + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Plutonium241.getMolten(144), Materials.Hydrogen.getGas(2000)) + .fluidOutputs(Materials.Americium.getPlasma(144)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(98304) + .metadata(FUSION_THRESHOLD, 500000000) + .addTo(fusionRecipes); // FT3 + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Lutetium.getMolten(288), Materials.Vanadium.getMolten(288)) + .fluidOutputs(Materials.Plutonium241.getPlasma(288)) + .duration(4 * TICKS) + .eut(TierEU.RECIPE_UEV / 2) + .metadata(FUSION_THRESHOLD, 1_000_000_000) + .addTo(fusionRecipes); // FT5 because of UEV voltage + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Tellurium.getMolten(288), Materials.Zinc.getMolten(288)) + .fluidOutputs(Materials.Lead.getPlasma(288)) + .duration(4 * TICKS) + .eut(TierEU.RECIPE_UEV / 2) + .metadata(FUSION_THRESHOLD, 1_000_000_000) + .addTo(fusionRecipes); // FT5 because of UEV voltage + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Osmium.getMolten(288), Materials.Silicon.getMolten(288)) + .fluidOutputs(Materials.Thorium.getPlasma(288)) + .duration(4 * TICKS) + .eut(TierEU.RECIPE_UEV / 2) + .metadata(FUSION_THRESHOLD, 1_000_000_000) + .addTo(fusionRecipes); // FT5 because of UEV voltage + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ImplosionCompressorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ImplosionCompressorRecipes.java new file mode 100644 index 0000000000..a671fd6977 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ImplosionCompressorRecipes.java @@ -0,0 +1,74 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.GalacticraftCore; +import static gregtech.api.enums.Mods.GalacticraftMars; +import static gregtech.api.recipe.RecipeMaps.implosionRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeConstants; + +public class ImplosionCompressorRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Compressed_Coal_Chunk.get(1L)) + .itemOutputs( + ItemList.IC2_Industrial_Diamond.get(1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)) + .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, 8) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Ingot_IridiumAlloy.get(1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Iridium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)) + .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, 8) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + + if (GalacticraftMars.isModLoaded()) { + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Ingot_Heavy1.get(1L)) + .itemOutputs( + getModItem(GalacticraftCore.ID, "item.heavyPlating", 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.StainlessSteel, 1L)) + .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, 8) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Ingot_Heavy2.get(1L)) + .itemOutputs( + getModItem(GalacticraftMars.ID, "item.null", 1L, 3), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.TungstenSteel, 2L)) + .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, 16) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Ingot_Heavy3.get(1L)) + .itemOutputs( + getModItem(GalacticraftMars.ID, "item.itemBasicAsteroids", 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Platinum, 3L)) + .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, 24) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(implosionRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/LaserEngraverRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/LaserEngraverRecipes.java new file mode 100644 index 0000000000..be21c84d66 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/LaserEngraverRecipes.java @@ -0,0 +1,62 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.TierEU; + +public class LaserEngraverRecipes implements Runnable { + + @Override + public void run() { + + GT_Values.RA.stdBuilder() + .fluidInputs(MaterialsUEVplus.DimensionallyTranscendentCrudeCatalyst.getFluid(1000)) + .fluidOutputs(MaterialsUEVplus.ExcitedDTCC.getFluid(1000)) + .requiresCleanRoom() + .duration(41 * MINUTES + 40 * SECONDS) + .eut((int) TierEU.RECIPE_ZPM) + .noOptimize() + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(MaterialsUEVplus.DimensionallyTranscendentProsaicCatalyst.getFluid(1000)) + .fluidOutputs(MaterialsUEVplus.ExcitedDTPC.getFluid(1000)) + .requiresCleanRoom() + .duration(41 * MINUTES + 40 * SECONDS) + .eut((int) TierEU.RECIPE_UV) + .noOptimize() + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(MaterialsUEVplus.DimensionallyTranscendentResplendentCatalyst.getFluid(1000)) + .fluidOutputs(MaterialsUEVplus.ExcitedDTRC.getFluid(1000)) + .requiresCleanRoom() + .duration(41 * MINUTES + 40 * SECONDS) + .eut((int) TierEU.RECIPE_UHV) + .noOptimize() + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(MaterialsUEVplus.DimensionallyTranscendentExoticCatalyst.getFluid(1000)) + .fluidOutputs(MaterialsUEVplus.ExcitedDTEC.getFluid(1000)) + .requiresCleanRoom() + .duration(41 * MINUTES + 40 * SECONDS) + .eut((int) TierEU.RECIPE_UEV) + .noOptimize() + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(MaterialsUEVplus.DimensionallyTranscendentStellarCatalyst.getFluid(1000)) + .fluidOutputs(MaterialsUEVplus.ExcitedDTSC.getFluid(1000)) + .requiresCleanRoom() + .duration(41 * MINUTES + 40 * SECONDS) + .eut((int) TierEU.RECIPE_UIV) + .noOptimize() + .addTo(laserEngraverRecipes); + + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/LatheRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/LatheRecipes.java new file mode 100644 index 0000000000..4413f61200 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/LatheRecipes.java @@ -0,0 +1,40 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; + +public class LatheRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.wooden_slab, 1, GT_Values.W)) + .itemOutputs( + new ItemStack(Items.bowl, 1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(8) + .addTo(latheRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Forestry.ID, "slabs", 1L, GT_Values.W)) + .itemOutputs( + new ItemStack(Items.bowl, 1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(8) + .addTo(latheRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/MatterAmplifierRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/MatterAmplifierRecipes.java new file mode 100644 index 0000000000..863f0ae440 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/MatterAmplifierRecipes.java @@ -0,0 +1,29 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.amplifierRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.TierEU; + +public class MatterAmplifierRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Scrap.get(9L)) + .fluidOutputs(Materials.UUAmplifier.getFluid(1)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(amplifierRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Scrapbox.get(1L)) + .fluidOutputs(Materials.UUAmplifier.getFluid(1)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(amplifierRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java new file mode 100644 index 0000000000..fd315542e5 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java @@ -0,0 +1,1689 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.BiomesOPlenty; +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.Natura; +import static gregtech.api.enums.Mods.PamsHarvestCraft; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsKevlar; +import gregtech.api.enums.MaterialsOreAlum; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import mods.railcraft.common.blocks.aesthetics.cube.EnumCube; + +public class MixerRecipes implements Runnable { + + @Override + public void run() { + + registerSingleBlockAndMulti(); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderPearl, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.EnderEye, OrePrefixes.dust.mMaterialAmount)) + .duration(5 * SECONDS) + .eut(48) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Electrum, 2L * OrePrefixes.dust.mMaterialAmount)) + .duration(10 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Invar, 3L * OrePrefixes.dust.mMaterialAmount)) + .duration(15 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Invar, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Manganese, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.StainlessSteel, 9L * OrePrefixes.dust.mMaterialAmount)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Kanthal, 3L * OrePrefixes.dust.mMaterialAmount)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Brass, 4L * OrePrefixes.dust.mMaterialAmount)) + .duration(2 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Bronze, 4L * OrePrefixes.dust.mMaterialAmount)) + .duration(2 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Cupronickel, 2L * OrePrefixes.dust.mMaterialAmount)) + .duration(10 * SECONDS) + .eut(24) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 4), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.SterlingSilver, 5L * OrePrefixes.dust.mMaterialAmount)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Electrum, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.BlackBronze, 5L * OrePrefixes.dust.mMaterialAmount)) + .duration(25 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bismuth, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.BismuthBronze, 5L * OrePrefixes.dust.mMaterialAmount)) + .duration(25 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackBronze, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.BlackSteel, 5L * OrePrefixes.dust.mMaterialAmount)) + .duration(25 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SterlingSilver, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BismuthBronze, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackSteel, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.RedSteel, 8L * OrePrefixes.dust.mMaterialAmount)) + .duration(40 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RoseGold, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackSteel, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.BlueSteel, 8L * OrePrefixes.dust.mMaterialAmount)) + .duration(40 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 5), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 15), + GT_Utility.getIntegratedCircuit(14)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.BlackSteel, 25L * OrePrefixes.dust.mMaterialAmount)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bismuth, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackSteel, 20), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 10), + GT_Utility.getIntegratedCircuit(15)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.RedSteel, 40L * OrePrefixes.dust.mMaterialAmount)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 19), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 5), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackSteel, 64), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackSteel, 16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 40), + GT_Utility.getIntegratedCircuit(16)) + .itemOutputs( + GT_OreDictUnificator.getDust(Materials.BlueSteel, 64L * OrePrefixes.dust.mMaterialAmount), + GT_OreDictUnificator.getDust(Materials.BlueSteel, 64L * OrePrefixes.dust.mMaterialAmount), + GT_OreDictUnificator.getDust(Materials.BlueSteel, 32L * OrePrefixes.dust.mMaterialAmount)) + .duration(3 * MINUTES) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cobalt, 5), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Molybdenum, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Ultimet, 9L * OrePrefixes.dust.mMaterialAmount)) + .duration(45 * SECONDS) + .eut(500) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 7), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cobalt, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.CobaltBrass, 9L * OrePrefixes.dust.mMaterialAmount)) + .duration(45 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Gunpowder, 6L * OrePrefixes.dust.mMaterialAmount)) + .duration(30 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Charcoal, 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Gunpowder, 6L * OrePrefixes.dust.mMaterialAmount)) + .duration(30 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Gunpowder, 6L * OrePrefixes.dust.mMaterialAmount)) + .duration(30 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Indium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gallium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs( + GT_OreDictUnificator.getDust(Materials.IndiumGalliumPhosphide, 3L * OrePrefixes.dust.mMaterialAmount)) + .duration(10 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brick, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Fireclay, 2L * OrePrefixes.dust.mMaterialAmount)) + .duration(10 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Nichrome, 5L * OrePrefixes.dust.mMaterialAmount)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Osmium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iridium, 3), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.Osmiridium, 4L * OrePrefixes.dust.mMaterialAmount)) + .duration(2 * SECONDS) + .eut(2000) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Niobium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.NiobiumTitanium, 2L * OrePrefixes.dust.mMaterialAmount)) + .duration(10 * SECONDS) + .eut(2000) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Vanadium, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gallium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.VanadiumGallium, 4L * OrePrefixes.dust.mMaterialAmount)) + .duration(2 * SECONDS) + .eut(2000) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.TungstenCarbide, 2L * OrePrefixes.dust.mMaterialAmount)) + .duration(10 * SECONDS) + .eut(500) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.TungstenSteel, 2L * OrePrefixes.dust.mMaterialAmount)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Vanadium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.TPV, 7L * OrePrefixes.dust.mMaterialAmount)) + .duration(8 * SECONDS + 15 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 5), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Molybdenum, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Vanadium, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.HSSG, 9L * OrePrefixes.dust.mMaterialAmount)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HSSG, 6), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cobalt, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Manganese, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.HSSE, 9L * OrePrefixes.dust.mMaterialAmount)) + .duration(35 * SECONDS) + .eut(4096) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HSSG, 6), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iridium, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Osmium, 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.HSSS, 9L * OrePrefixes.dust.mMaterialAmount)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 4), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.getDust(Materials.FerriteMixture, 6L * OrePrefixes.dust.mMaterialAmount)) + .duration(10 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Boron, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 7)) + .itemOutputs( + GT_OreDictUnificator.getDust(Materials.BorosilicateGlass, 8L * OrePrefixes.dust.mMaterialAmount)) + .duration(10 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Items.rotten_flesh, 1, 0), + new ItemStack(Items.fermented_spider_eye, 1, 0), + ItemList.IC2_Scrap.get(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1)) + .itemOutputs(ItemList.Food_Chum.get(4)) + .fluidInputs(getFluidStack("potion.purpledrink", 750)) + .fluidOutputs(getFluidStack("sludge", 1000)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(24) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1)) + .itemOutputs(ItemList.Food_Dough.get(2)) + .fluidInputs(Materials.Water.getFluid(1000)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1), + ItemList.Food_PotatoChips.get(1)) + .itemOutputs(ItemList.Food_ChiliChips.get(1)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Redstone, 5), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ruby, 4)) + .itemOutputs(ItemList.IC2_Energium_Dust.get(1)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 5), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ruby, 4)) + .itemOutputs(ItemList.IC2_Energium_Dust.get(9)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1), + new ItemStack(Blocks.brown_mushroom, 1), + new ItemStack(Items.spider_eye, 1)) + .itemOutputs(new ItemStack(Items.fermented_spider_eye, 1)) + .duration(5 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 2)) + .duration(5 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 9), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 18)) + .duration(45 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Fluix, 2)) + .fluidInputs(Materials.Water.getFluid(500)) + .duration(20 * TICKS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Fluix, 2)) + .fluidInputs(GT_ModHandler.getDistilledWater(500)) + .duration(20 * TICKS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.IC2_Fertilizer.get(1), + new ItemStack(Blocks.dirt, 8, 32767), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "soil", 8L, 0)) + .fluidInputs(Materials.Water.getFluid(1000)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.FR_Fertilizer.get(1), + new ItemStack(Blocks.dirt, 8, 32767), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "soil", 8L, 0)) + .fluidInputs(Materials.Water.getFluid(1000)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.FR_Compost.get(1), + new ItemStack(Blocks.dirt, 8, 32767), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "soil", 8L, 0)) + .fluidInputs(Materials.Water.getFluid(1000)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.FR_Mulch.get(8), + new ItemStack(Blocks.dirt, 8, 32767), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "soil", 8L, 0)) + .fluidInputs(Materials.Water.getFluid(1000)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.sand, 1, 32767), + new ItemStack(Blocks.dirt, 1, 32767), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(Forestry.ID, "soil", 2L, 1)) + .fluidInputs(Materials.Water.getFluid(250)) + .duration(16 * TICKS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LightFuel, 5), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HeavyFuel, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 6)) + .duration(16 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LightFuel, 5), + Materials.Empty.getCells(1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 6)) + .fluidInputs(Materials.HeavyFuel.getFluid(1000)) + .duration(16 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HeavyFuel, 1), + Materials.Empty.getCells(5), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 6)) + .fluidInputs(Materials.LightFuel.getFluid(5000)) + .duration(16 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LightFuel, 5), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs(Materials.Empty.getCells(5)) + .fluidInputs(Materials.HeavyFuel.getFluid(1000)) + .fluidOutputs(Materials.Fuel.getFluid(6000)) + .duration(16 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HeavyFuel, 1), + GT_Utility.getIntegratedCircuit(6)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.LightFuel.getFluid(5000)) + .fluidOutputs(Materials.Fuel.getFluid(6000)) + .duration(16 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 5), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1)) + .itemOutputs(Materials.Empty.getCells(5)) + .fluidInputs(Materials.Lubricant.getFluid(20)) + .fluidOutputs(new FluidStack(ItemList.sDrillingFluid, 5000)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lapis, 1), + GT_Utility.getIntegratedCircuit(4)) + .fluidInputs(Materials.Water.getFluid(125)) + .fluidOutputs(getFluidStack("ic2coolant", 125)) + .duration(12 * SECONDS + 16 * TICKS) + .eut(48) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lapis, 1), + GT_Utility.getIntegratedCircuit(4)) + .fluidInputs(GT_ModHandler.getDistilledWater(1000)) + .fluidOutputs(getFluidStack("ic2coolant", 1000)) + .duration(12 * SECONDS + 16 * TICKS) + .eut(48) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.SFMixture.get(4)) + .fluidInputs(Materials.AdvancedGlue.getFluid(200)) + .duration(40 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.SFMixture.get(8)) + .fluidInputs(Materials.AdvancedGlue.getFluid(200)) + .duration(40 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Caesium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.SFMixture.get(12)) + .fluidInputs(Materials.AdvancedGlue.getFluid(200)) + .duration(40 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.SFMixture.get(64)) + .fluidInputs(Materials.McGuffium239.getFluid(12)) + .duration(20 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.SFMixture.get(64)) + .fluidInputs(Materials.McGuffium239.getFluid(8)) + .duration(20 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Caesium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.SFMixture.get(64)) + .fluidInputs(Materials.McGuffium239.getFluid(4)) + .duration(20 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.SFMixture.get(2), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderEye, 1)) + .itemOutputs(ItemList.MSFMixture.get(4)) + .fluidInputs(Materials.Mercury.getFluid(1000)) + .duration(15 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.SFMixture.get(1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1)) + .itemOutputs(ItemList.MSFMixture.get(1)) + .fluidInputs(Materials.Mercury.getFluid(500)) + .duration(15 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lignite, 4), + ItemList.MSFMixture.get(24), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(4)) + .fluidInputs(Materials.NitroFuel.getFluid(4000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Charcoal, 4), + ItemList.MSFMixture.get(16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(4)) + .fluidInputs(Materials.NitroFuel.getFluid(3000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 4), + ItemList.MSFMixture.get(8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(4)) + .fluidInputs(Materials.NitroFuel.getFluid(2000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lignite, 4), + ItemList.MSFMixture.get(24), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(4)) + .fluidInputs(Materials.GasolinePremium.getFluid(1600)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Charcoal, 4), + ItemList.MSFMixture.get(16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(4)) + .fluidInputs(Materials.GasolinePremium.getFluid(1200)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 4), + ItemList.MSFMixture.get(8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(4)) + .fluidInputs(Materials.GasolinePremium.getFluid(800)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + if (Thaumcraft.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(20), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedAir, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(20)) + .fluidInputs(Materials.FierySteel.getFluid(50)) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(20), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedEarth, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(20)) + .fluidInputs(Materials.FierySteel.getFluid(50)) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(20), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedEntropy, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(20)) + .fluidInputs(Materials.FierySteel.getFluid(50)) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(20), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedFire, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(20)) + .fluidInputs(Materials.FierySteel.getFluid(50)) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(20), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedOrder, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(20)) + .fluidInputs(Materials.FierySteel.getFluid(50)) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(20), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedWater, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(20)) + .fluidInputs(Materials.FierySteel.getFluid(50)) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + FluidStack tFD = getFluidStack("fluiddeath", 30); + if (tFD != null && tFD.getFluid() != null && tFD.amount > 0) { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(30), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedAir, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(30)) + .fluidInputs(tFD) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(30), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedEarth, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(30)) + .fluidInputs(tFD) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(30), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedEntropy, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(30)) + .fluidInputs(tFD) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(30), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedFire, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(30)) + .fluidInputs(tFD) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(30), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedOrder, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(30)) + .fluidInputs(tFD) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.SFMixture.get(30), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.InfusedWater, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.MSFMixture.get(30)) + .fluidInputs(tFD) + .duration(10 * SECONDS) + .eut(64) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lignite, 1), + ItemList.MSFMixture.get(6), + getModItem(Thaumcraft.ID, "ItemResource", 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(1)) + .fluidInputs(Materials.NitroFuel.getFluid(1000)) + .duration(7 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Charcoal, 1), + ItemList.MSFMixture.get(4), + getModItem(Thaumcraft.ID, "ItemResource", 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(1)) + .fluidInputs(Materials.NitroFuel.getFluid(750)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 1), + ItemList.MSFMixture.get(2), + getModItem(Thaumcraft.ID, "ItemResource", 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(1)) + .fluidInputs(Materials.NitroFuel.getFluid(500)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lignite, 1), + ItemList.MSFMixture.get(6), + getModItem(Thaumcraft.ID, "ItemResource", 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(1)) + .fluidInputs(Materials.GasolinePremium.getFluid(400)) + .duration(7 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Charcoal, 1), + ItemList.MSFMixture.get(4), + getModItem(Thaumcraft.ID, "ItemResource", 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(1)) + .fluidInputs(Materials.GasolinePremium.getFluid(300)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 1), + ItemList.MSFMixture.get(2), + getModItem(Thaumcraft.ID, "ItemResource", 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(1)) + .fluidInputs(Materials.GasolinePremium.getFluid(200)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + } + } + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lignite, 1), + ItemList.SFMixture.get(6), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_SSFUEL.get(1)) + .fluidInputs(Materials.NitroFuel.getFluid(1000)) + .duration(7 * SECONDS) + .eut(250) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Charcoal, 1), + ItemList.SFMixture.get(4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_SSFUEL.get(1)) + .fluidInputs(Materials.NitroFuel.getFluid(750)) + .duration(6 * SECONDS) + .eut(250) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 1), + ItemList.SFMixture.get(2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_SSFUEL.get(1)) + .fluidInputs(Materials.NitroFuel.getFluid(500)) + .duration(5 * SECONDS) + .eut(250) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lignite, 1), + ItemList.SFMixture.get(6), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_SSFUEL.get(1)) + .fluidInputs(Materials.GasolinePremium.getFluid(400)) + .duration(7 * SECONDS) + .eut(250) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Charcoal, 1), + ItemList.SFMixture.get(4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_SSFUEL.get(1)) + .fluidInputs(Materials.GasolinePremium.getFluid(300)) + .duration(6 * SECONDS) + .eut(250) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 1), + ItemList.SFMixture.get(2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_SSFUEL.get(1)) + .fluidInputs(Materials.GasolinePremium.getFluid(200)) + .duration(5 * SECONDS) + .eut(250) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricAcid, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cell_Empty.get(1)) + .fluidInputs(Materials.NitricAcid.getFluid(1000)) + .fluidOutputs(new FluidStack(ItemList.sNitrationMixture, 2000)) + .duration(24 * SECONDS) + .eut(2) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricAcid, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NitricAcid, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NitrationMixture, 2)) + .duration(24 * SECONDS) + .eut(2) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 32767), + new ItemStack(Items.wheat, 4, 32767), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 2), + new ItemStack(Items.wheat, 4, 32767), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 32767), + getModItem(BiomesOPlenty.ID, "plants", 4, 6), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 2), + getModItem(BiomesOPlenty.ID, "plants", 4, 6), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 32767), + getModItem(PamsHarvestCraft.ID, "oatsItem", 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 2), + getModItem(PamsHarvestCraft.ID, "oatsItem", 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 32767), + getModItem(PamsHarvestCraft.ID, "ryeItem", 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 2), + getModItem(PamsHarvestCraft.ID, "ryeItem", 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 32767), + getModItem(PamsHarvestCraft.ID, "barleyItem", 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 2), + getModItem(PamsHarvestCraft.ID, "barleyItem", 4, 6), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 32767), + getModItem(Natura.ID, "barleyFood", 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 2), + getModItem(Natura.ID, "barleyFood", 4), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 32767), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(Blocks.dirt, 1, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(getModItem(Forestry.ID, "fertilizerBio", 1L, 0)) + .fluidInputs(Materials.Water.getFluid(100)) + .duration(10 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + // radiation manufacturing + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("fuelRod", 1), new ItemStack(Items.glowstone_dust, 9)) + .itemOutputs(ItemList.GlowstoneCell.get(1)) + .fluidInputs(Materials.Helium.getGas(250)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsOreAlum.SluiceSand.getDust(1)) + .fluidInputs(Materials.Water.getFluid(500)) + .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(1000)) + .duration(5 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + // NaCl + H2O = (NaCl·H2O) + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Salt.getDust(2), GT_Utility.getIntegratedCircuit(3)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(Materials.SaltWater.getFluid(1000)) + .duration(5 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + // CaCO3 + 2 CH3COOH = Ca(CH3COO)2 + H2O + CO2 + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1), Materials.CarbonDioxide.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs(Materials.CalciumAcetateSolution.getFluid(1000)) + .duration(12 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(2), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.CalciumAcetateSolution.getCells(1), Materials.CarbonDioxide.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(12 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(2), GT_Utility.getIntegratedCircuit(21)) + .itemOutputs(Materials.Water.getCells(1), Materials.CalciumAcetateSolution.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(Materials.CarbonDioxide.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs(Materials.CalciumAcetateSolution.getFluid(1000)) + .duration(12 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(14)) + .itemOutputs(Materials.CalciumAcetateSolution.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(12 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + // Ca + 2 CH3COOH = Ca(CH3COO)2 + 2H + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Calcium.getDust(1), Materials.Empty.getCells(2), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Hydrogen.getCells(2)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs(Materials.CalciumAcetateSolution.getFluid(1000)) + .duration(4 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Calcium.getDust(1), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.CalciumAcetateSolution.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs(Materials.Hydrogen.getGas(2000)) + .duration(4 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + // CaO + 2 CH3COOH = Ca(CH3COO)2 + H2O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Quicklime.getDust(2), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Water.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs(Materials.CalciumAcetateSolution.getFluid(1000)) + .duration(4 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Quicklime.getDust(2), + Materials.Empty.getCells(1), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(Materials.CalciumAcetateSolution.getCells(1)) + .fluidInputs(Materials.AceticAcid.getFluid(2000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(4 * SECONDS) + .eut(16) + .addTo(mixerRecipes); + + // 2CH3COOCH3 + 3CH3COCH3/(C4H6O2)n = 5Glue + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Acetone.getCells(3)) + .itemOutputs(Materials.Empty.getCells(3)) + .fluidInputs(Materials.PolyvinylAcetate.getFluid(2000)) + .fluidOutputs(Materials.AdvancedGlue.getFluid(5000)) + .duration(5 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.PolyvinylAcetate.getCells(2)) + .itemOutputs(Materials.Empty.getCells(2)) + .fluidInputs(Materials.Acetone.getFluid(3000)) + .fluidOutputs(Materials.AdvancedGlue.getFluid(5000)) + .duration(5 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.MethylAcetate.getCells(3)) + .itemOutputs(Materials.Empty.getCells(3)) + .fluidInputs(Materials.PolyvinylAcetate.getFluid(2000)) + .fluidOutputs(Materials.AdvancedGlue.getFluid(5000)) + .duration(5 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.PolyvinylAcetate.getCells(2)) + .itemOutputs(Materials.Empty.getCells(2)) + .fluidInputs(Materials.MethylAcetate.getFluid(3000)) + .fluidOutputs(Materials.AdvancedGlue.getFluid(5000)) + .duration(5 * SECONDS) + .eut(8) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sugar.getDust(4)) + .itemOutputs(Materials.Charcoal.getGems(1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(60 * SECONDS) + .eut(2) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Wood.getDust(4)) + .itemOutputs(Materials.Charcoal.getGems(1)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) + .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) + .duration(60 * SECONDS) + .eut(2) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Fuel.getCells(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Tetranitromethane.getFluid(20)) + .fluidOutputs(Materials.NitroFuel.getFluid(1000)) + .duration(20 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.BioDiesel.getCells(1)) + .itemOutputs(Materials.Empty.getCells(1)) + .fluidInputs(Materials.Tetranitromethane.getFluid(40)) + .fluidOutputs(Materials.NitroFuel.getFluid(900)) + .duration(20 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + // CH4O + C4H8 = C5H12O + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Methanol.getCells(1), Materials.Butene.getCells(1)) + .itemOutputs(Materials.MTBEMixture.getCells(1), Materials.Empty.getCells(1)) + .duration(20 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Naphtha.getCells(16), + Materials.Gas.getCells(2), + Materials.Methanol.getCells(1), + Materials.Acetone.getCells(1)) + .itemOutputs(Materials.GasolineRaw.getCells(20)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.GasolineRegular.getCells(20), + Materials.Octane.getCells(2), + Materials.NitrousOxide.getCells(6), + Materials.Toluene.getCells(1)) + .itemOutputs(Materials.Empty.getCells(29)) + .fluidInputs(Materials.AntiKnock.getFluid(3000)) + .fluidOutputs(Materials.GasolinePremium.getFluid(32000)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_EV) + .addTo(mixerRecipes); + + if (Railcraft.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs( + EnumCube.COKE_BLOCK.getItem(), + ItemList.SFMixture.get(2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_SSFUEL.get(1)) + .fluidInputs(Materials.NitroFuel.getFluid(300)) + .duration(5 * SECONDS) + .eut(250) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + EnumCube.COKE_BLOCK.getItem(), + ItemList.SFMixture.get(2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_SSFUEL.get(1)) + .fluidInputs(Materials.GasolinePremium.getFluid(120)) + .duration(5 * SECONDS) + .eut(250) + .addTo(mixerRecipes); + } + + if (Thaumcraft.isModLoaded() && Railcraft.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs( + EnumCube.COKE_BLOCK.getItem(), + ItemList.MSFMixture.get(2), + getModItem(Thaumcraft.ID, "ItemResource", 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(1)) + .fluidInputs(Materials.NitroFuel.getFluid(300)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + EnumCube.COKE_BLOCK.getItem(), + ItemList.MSFMixture.get(2), + getModItem(Thaumcraft.ID, "ItemResource", 4), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_MSSFUEL.get(1)) + .fluidInputs(Materials.GasolinePremium.getFluid(120)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + } + } + + public static void addMixerPotionRecipes(String aName) { + + boolean splash = !(FluidRegistry.getFluid("potion." + aName) == null + || FluidRegistry.getFluid("potion." + aName + ".splash") == null); + boolean splashStrong = !(FluidRegistry.getFluid("potion." + aName + ".strong") == null + || FluidRegistry.getFluid("potion." + aName + ".strong.splash") == null); + boolean splashLong = !(FluidRegistry.getFluid("potion." + aName + ".long") == null + || FluidRegistry.getFluid("potion." + aName + ".long.splash") == null); + + if (splash) GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("potion." + aName), 750)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion." + aName + ".splash"), 750)) + .duration(10 * SECONDS) + .eut(24) + .addTo(mixerRecipes); + + if (splashStrong) GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("potion." + aName + ".strong"), 750)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion." + aName + ".strong.splash"), 750)) + .duration(10 * SECONDS) + .eut(24) + .addTo(mixerRecipes); + + if (splashLong) GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("potion." + aName + ".long"), 750)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion." + aName + ".long.splash"), 750)) + .duration(10 * SECONDS) + .eut(24) + .addTo(mixerRecipes); + } + + public void registerSingleBlockAndMulti() { + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.NaquadahEnriched.getDust(8), + Materials.Holmium.getDust(2), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(Materials.EnrichedHolmium.getDust(10)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(mixerRecipes); + + // Catalysts for Plasma Forge. + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(9)) + .fluidInputs( + Materials.Helium.getPlasma(1000L), + Materials.Iron.getPlasma(1000L), + Materials.Calcium.getPlasma(1000L), + Materials.Niobium.getPlasma(1000L)) + .fluidOutputs(MaterialsUEVplus.DimensionallyTranscendentCrudeCatalyst.getFluid(1000L)) + .duration(41 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .noOptimize() + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(10)) + .fluidInputs( + MaterialsUEVplus.DimensionallyTranscendentCrudeCatalyst.getFluid(1000L), + Materials.Radon.getPlasma(1000L), + Materials.Nickel.getPlasma(1000L), + Materials.Boron.getPlasma(1000L), + Materials.Sulfur.getPlasma(1000L)) + .fluidOutputs(MaterialsUEVplus.DimensionallyTranscendentProsaicCatalyst.getFluid(1000L)) + .duration(41 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UV) + .noOptimize() + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(11)) + .fluidInputs( + MaterialsUEVplus.DimensionallyTranscendentProsaicCatalyst.getFluid(1000L), + Materials.Nitrogen.getPlasma(1000L), + Materials.Zinc.getPlasma(1000L), + Materials.Silver.getPlasma(1000L), + Materials.Titanium.getPlasma(1000L)) + .fluidOutputs(MaterialsUEVplus.DimensionallyTranscendentResplendentCatalyst.getFluid(1000L)) + .duration(41 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .noOptimize() + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(12)) + .fluidInputs( + MaterialsUEVplus.DimensionallyTranscendentResplendentCatalyst.getFluid(1000L), + Materials.Americium.getPlasma(1000L), + Materials.Bismuth.getPlasma(1000L), + Materials.Oxygen.getPlasma(1000L), + Materials.Tin.getPlasma(1000L)) + .fluidOutputs(MaterialsUEVplus.DimensionallyTranscendentExoticCatalyst.getFluid(1000L)) + .duration(41 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .noOptimize() + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(13)) + .fluidInputs( + MaterialsUEVplus.DimensionallyTranscendentExoticCatalyst.getFluid(1000L), + Materials.Lead.getPlasma(1000), + Materials.Thorium.getPlasma(1000), + Materials.Plutonium241.getPlasma(1000L), + MaterialsUEVplus.RawStarMatter.getFluid(25L)) + .fluidOutputs(MaterialsUEVplus.DimensionallyTranscendentStellarCatalyst.getFluid(1000L)) + .duration(41 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .noOptimize() + .addTo(mixerRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Spray_WeedEx.get(1)) + .fluidInputs(MaterialsKevlar.NaphthenicAcid.getFluid(10)) + .fluidOutputs(Materials.WeedEX9000.getFluid(750)) + .duration(5 * SECONDS) + .eut(100) + .addTo(mixerRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/NEIHiding.java b/src/main/java/gregtech/loaders/postload/recipes/NEIHiding.java new file mode 100644 index 0000000000..dad2388ae6 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/NEIHiding.java @@ -0,0 +1,40 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.NotEnoughItems; + +import net.minecraft.item.ItemStack; + +import codechicken.nei.api.API; +import gregtech.api.enums.ItemList; +import gregtech.common.items.GT_MetaGenerated_Item_03; + +public class NEIHiding implements Runnable { + + @Override + public void run() { + if (!NotEnoughItems.isModLoaded()) { + return; + } + + for (int i = 0; i < 16; i++) { + API.hideItem(new ItemStack(GT_MetaGenerated_Item_03.INSTANCE, 1, i)); + } + + if (Forestry.isModLoaded()) { + ItemStack[] coverIDs = { ItemList.Plank_Larch.get(2L), ItemList.Plank_Teak.get(2L), + ItemList.Plank_Acacia_Green.get(2L), ItemList.Plank_Lime.get(2L), ItemList.Plank_Chestnut.get(2L), + ItemList.Plank_Wenge.get(2L), ItemList.Plank_Baobab.get(2L), ItemList.Plank_Sequoia.get(2L), + ItemList.Plank_Kapok.get(2L), ItemList.Plank_Ebony.get(2L), ItemList.Plank_Mahagony.get(2L), + ItemList.Plank_Balsa.get(2L), ItemList.Plank_Willow.get(2L), ItemList.Plank_Walnut.get(2L), + ItemList.Plank_Greenheart.get(2L), ItemList.Plank_Cherry.get(2L), ItemList.Plank_Mahoe.get(2L), + ItemList.Plank_Poplar.get(2L), ItemList.Plank_Palm.get(2L), ItemList.Plank_Papaya.get(2L), + ItemList.Plank_Pine.get(2L), ItemList.Plank_Plum.get(2L), ItemList.Plank_Maple.get(2L), + ItemList.Plank_Citrus.get(2L) }; + + for (ItemStack cover : coverIDs) { + API.hideItem(cover); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/OreDictUnification.java b/src/main/java/gregtech/loaders/postload/recipes/OreDictUnification.java new file mode 100644 index 0000000000..f8c816dc5c --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/OreDictUnification.java @@ -0,0 +1,23 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.HardcoreEnderExpansion; +import static gregtech.api.util.GT_ModHandler.getModItem; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; + +public class OreDictUnification implements Runnable { + + @Override + public void run() { + if (HardcoreEnderExpansion.isModLoaded()) { + GT_OreDictUnificator.set( + OrePrefixes.ingot, + Materials.HeeEndium, + getModItem(HardcoreEnderExpansion.ID, "endium_ingot", 1), + true, + true); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/PackagerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/PackagerRecipes.java new file mode 100644 index 0000000000..bb434cbf7d --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/PackagerRecipes.java @@ -0,0 +1,51 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.packagerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; + +public class PackagerRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Scrap.get(9), ItemList.Schematic_3by3.get(0)) + .itemOutputs(ItemList.IC2_Scrapbox.get(1)) + .duration(16 * TICKS) + .eut(1) + .addTo(packagerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Food_Fries.get(1), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Paper, 1)) + .itemOutputs(ItemList.Food_Packaged_Fries.get(1)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(packagerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Food_PotatoChips.get(1), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1)) + .itemOutputs(ItemList.Food_Packaged_PotatoChips.get(1)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(packagerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Food_ChiliChips.get(1), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1)) + .itemOutputs(ItemList.Food_Packaged_ChiliChips.get(1)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(packagerRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java new file mode 100644 index 0000000000..fe0f7c7ed5 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java @@ -0,0 +1,50 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.GoodGenerator; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.recipe.RecipeMaps.plasmaForgeRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.TierEU; + +public class PlasmaForgeRecipes implements Runnable { + + @Override + public void run() { + // Giga chad trophy. + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Field_Generator_UEV.get(64), + ItemList.Field_Generator_UIV.get(64), + ItemList.Field_Generator_UMV.get(64)) + .fluidInputs( + MaterialsUEVplus.ExcitedDTEC.getFluid(100_000_000), + MaterialsUEVplus.SpaceTime.getMolten(64 * 2 * 9 * 144)) + .itemOutputs(ItemList.GigaChad.get(1)) + .duration(86400 * 20 * 2) + .eut(2_000_000_000) + .metadata(COIL_HEAT, 13500) + .addTo(plasmaForgeRecipes); + + // Quantum anomaly recipe bypass for UEV+. Avoids RNG. + GT_Values.RA.stdBuilder() + .itemInputs( + getModItem(GTPlusPlus.ID, "particleBase", 1, 24), + getModItem(NewHorizonsCoreMod.ID, "item.ChromaticLens", 0), + getModItem(GoodGenerator.ID, "huiCircuit", 0, 4)) + .fluidInputs(MaterialsUEVplus.ExcitedDTRC.getFluid(92), Materials.Duranium.getMolten(144)) + .itemOutputs(getModItem(GTPlusPlus.ID, "MU-metaitem.01", 1, 32105)) + .fluidOutputs(MaterialsUEVplus.DimensionallyTranscendentResidue.getFluid(46)) + .duration(60 * SECONDS) + .eut((int) TierEU.RECIPE_UEV) + .metadata(COIL_HEAT, 10800) + .addTo(plasmaForgeRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/PrinterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/PrinterRecipes.java new file mode 100644 index 0000000000..e8a52dd1f8 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/PrinterRecipes.java @@ -0,0 +1,64 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.printerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class PrinterRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Paper, 1L)) + .itemOutputs(ItemList.Paper_Punch_Card_Empty.get(1L)) + .fluidInputs(getFluidStack("squidink", 36)) + .duration(5 * SECONDS) + .eut(2) + .addTo(printerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Paper_Punch_Card_Empty.get(1L)) + .specialItem(ItemList.Tool_DataStick.getWithName(0L, "With Punch Card Data")) + .itemOutputs(ItemList.Paper_Punch_Card_Encoded.get(1L)) + .fluidInputs(getFluidStack("squidink", 36)) + .duration(5 * SECONDS) + .eut(2) + .addTo(printerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3L)) + .specialItem(ItemList.Tool_DataStick.getWithName(0L, "With Scanned Book Data")) + .itemOutputs(ItemList.Paper_Printed_Pages.get(1L)) + .fluidInputs(getFluidStack("squidink", 144)) + .duration(20 * SECONDS) + .eut(2) + .addTo(printerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.map, 1, 32767)) + .specialItem(ItemList.Tool_DataStick.getWithName(0L, "With Scanned Map Data")) + .itemOutputs(new ItemStack(Items.filled_map, 1, 0)) + .fluidInputs(getFluidStack("squidink", 144)) + .duration(20 * SECONDS) + .eut(2) + .addTo(printerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.book, 1, 32767)) + .itemOutputs(GT_Utility.getWrittenBook("Manual_Printer", ItemList.Book_Written_01.get(1L))) + .fluidInputs(getFluidStack("squidink", 144)) + .duration(20 * SECONDS) + .eut(2) + .addTo(printerRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/Pulverizer.java b/src/main/java/gregtech/loaders/postload/recipes/Pulverizer.java new file mode 100644 index 0000000000..c24dd2dbae --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/Pulverizer.java @@ -0,0 +1,581 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.HardcoreEnderExpansion; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_OreDictUnificator; + +public class Pulverizer implements Runnable { + + @Override + public void run() { + // recycling Long Distance Pipes + { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Fluid.get(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 19)) + .duration(15 * SECONDS) + .eut(4) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Item.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 12), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 7)) + .duration(15 * SECONDS) + .eut(4) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Fluid_Pipe.get(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Steel, 2)) + .duration(10 * TICKS) + .eut(4) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Long_Distance_Pipeline_Item_Pipe.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tin, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Steel, 1)) + .duration(10 * TICKS) + .eut(4) + .addTo(maceratorRecipes); + } + + // marbe dust( stone dust + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Marble, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Marble, 1)) + .duration(8 * SECONDS) + .eut(4) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Thaumcraft.ID, "ItemResource", 1, 18)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1)) + .duration(1 * SECONDS + 1 * TICKS) + .eut(4) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.reeds, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_Cupronickel.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cupronickel, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 2)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_Kanthal.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Kanthal, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cupronickel, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 3)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_Nichrome.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nichrome, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Kanthal, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 4)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_TungstenSteel.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TPV, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nichrome, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 5)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_HSSG.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HSSG, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TPV, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 6)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_HSSS.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HSSS, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HSSG, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 7)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_Naquadah.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HSSS, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 8)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_NaquadahAlloy.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NaquadahAlloy, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 9)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_Trinium.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Trinium, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NaquadahAlloy, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 10)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_ElectrumFlux.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ElectrumFlux, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Trinium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 11)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Coil_AwakenedDraconium.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DraconiumAwakened, 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ElectrumFlux, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 12)) + .duration(1 * MINUTES + 15 * SECONDS) + .eut(80) + .addTo(maceratorRecipes); + + if (Railcraft.isModLoaded()) { + // recycling RC Tanks + // Iron + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 2)) + .duration(15 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(15 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 12), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Iron, 3)) + .duration(15 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + // Steel + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 13)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 2)) + .duration(15 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 14)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(15 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 15)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 12), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Steel, 3)) + .duration(15 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + // Aluminium + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 2)) + .duration(22 * SECONDS + 10 * TICKS) + .eut(8) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(22 * SECONDS + 10 * TICKS) + .eut(8) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 12), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Aluminium, 3)) + .duration(22 * SECONDS + 10 * TICKS) + .eut(8) + .addTo(maceratorRecipes); + + // Stainless Steel + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 2)) + .duration(30 * SECONDS) + .eut(16) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(30 * SECONDS) + .eut(16) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 5)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 12), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.StainlessSteel, 3)) + .duration(30 * SECONDS) + .eut(16) + .addTo(maceratorRecipes); + + // Titanium + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 6)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 2)) + .duration(30 * SECONDS) + .eut(30) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 7)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(30 * SECONDS) + .eut(30) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 12), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Titanium, 3)) + .duration(30 * SECONDS) + .eut(30) + .addTo(maceratorRecipes); + + // Tungesten Steel + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 9)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 2)) + .duration(30 * SECONDS) + .eut(30) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 10)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(30 * SECONDS) + .eut(30) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 11)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 12), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.TungstenSteel, 3)) + .duration(30 * SECONDS) + .eut(30) + .addTo(maceratorRecipes); + + // Palladium + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 12)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Palladium, 2)) + .duration(37 * SECONDS + 10 * TICKS) + .eut(64) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 13)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Palladium, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(37 * SECONDS + 10 * TICKS) + .eut(64) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 14)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NiobiumTitanium, 12), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Chrome, 3)) + .duration(37 * SECONDS + 10 * TICKS) + .eut(64) + .addTo(maceratorRecipes); + + // Iridium + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iridium, 2)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iridium, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Enderium, 12), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Iridium, 3)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(maceratorRecipes); + + // Osmium + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Osmium, 2)) + .duration(52 * SECONDS + 10 * TICKS) + .eut(256) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 4)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Osmium, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(52 * SECONDS + 10 * TICKS) + .eut(256) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 5)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 12), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Osmium, 3)) + .duration(52 * SECONDS + 10 * TICKS) + .eut(256) + .addTo(maceratorRecipes); + + // Neutronium + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 6)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neutronium, 2)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 7)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neutronium, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neutronium, 12), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Neutronium, 3)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(maceratorRecipes); + } + + if (AppliedEnergistics2.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "tile.BlockSkyStone", 1L, 32767)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 45)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(AppliedEnergistics2.ID, "tile.BlockSkyChest", 1L, 32767)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8L, 45)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.blaze_rod, 1)) + .itemOutputs(new ItemStack(Items.blaze_powder, 3), new ItemStack(Items.blaze_powder, 1)) + .outputChances(10000, 5000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.web, 1, 0)) + .itemOutputs(new ItemStack(Items.string, 1), new ItemStack(Items.string, 1)) + .outputChances(10000, 5000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.red_mushroom, 1, 32767)) + .itemOutputs(ItemList.IC2_Grin_Powder.get(1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.item_frame, 1, 32767)) + .itemOutputs( + new ItemStack(Items.leather, 1), + GT_OreDictUnificator.getDust(Materials.Wood, OrePrefixes.stick.mMaterialAmount * 4L)) + .outputChances(10000, 9500) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.bow, 1, 0)) + .itemOutputs( + new ItemStack(Items.string, 3), + GT_OreDictUnificator.getDust(Materials.Wood, OrePrefixes.stick.mMaterialAmount * 3)) + .outputChances(10000, 9500) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Brick.getIngots(1)) + .itemOutputs(Materials.Brick.getDustSmall(1)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.brick_stairs, 1, 0)) + .itemOutputs(Materials.Brick.getDustSmall(6)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.CompressedFireclay.get(1)) + .itemOutputs(Materials.Fireclay.getDustSmall(1)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Firebrick.get(1)) + .itemOutputs(Materials.Brick.getDust(1)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Casing_Firebricks.get(1)) + .itemOutputs(Materials.Brick.getDust(4)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Machine_Bricked_BlastFurnace.get(1)) + .itemOutputs(Materials.Brick.getDust(8), Materials.Iron.getDust(1)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + if (HardcoreEnderExpansion.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(HardcoreEnderExpansion.ID, "endium_ore", 1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.HeeEndium, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 1)) + .outputChances(10000, 5000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/PyrolyseRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/PyrolyseRecipes.java new file mode 100644 index 0000000000..51017358b4 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/PyrolyseRecipes.java @@ -0,0 +1,137 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.pyrolyseRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import mods.railcraft.common.blocks.aesthetics.cube.EnumCube; +import mods.railcraft.common.items.RailcraftToolItems; + +public class PyrolyseRecipes implements Runnable { + + @Override + public void run() { + if (Railcraft.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 16), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(RailcraftToolItems.getCoalCoke(16)) + .fluidOutputs(Materials.Creosote.getFluid(8000)) + .duration(32 * SECONDS) + .eut(64) + .addTo(pyrolyseRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 16), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(RailcraftToolItems.getCoalCoke(16)) + .fluidInputs(Materials.Nitrogen.getGas(1000)) + .fluidOutputs(Materials.Creosote.getFluid(8000)) + .duration(16 * SECONDS) + .eut(96) + .addTo(pyrolyseRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 8), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(EnumCube.COKE_BLOCK.getItem(8)) + .fluidOutputs(Materials.Creosote.getFluid(32000)) + .duration(2 * MINUTES + 8 * SECONDS) + .eut(64) + .addTo(pyrolyseRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 8), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(EnumCube.COKE_BLOCK.getItem(8)) + .fluidInputs(Materials.Nitrogen.getGas(1000)) + .fluidOutputs(Materials.Creosote.getFluid(32000)) + .duration(1 * MINUTES + 4 * SECONDS) + .eut(96) + .addTo(pyrolyseRecipes); + } + + if (Forestry.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Forestry.ID, "fertilizerBio", 4), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Water.getFluid(4000)) + .fluidOutputs(Materials.Biomass.getFluid(5000)) + .duration(45 * SECONDS) + .eut(10) + .addTo(pyrolyseRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Forestry.ID, "mulch", 32), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Water.getFluid(4000)) + .fluidOutputs(Materials.Biomass.getFluid(5000)) + .duration(45 * SECONDS) + .eut(10) + .addTo(pyrolyseRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("biochaff", 4), GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.Water.getFluid(4000)) + .fluidOutputs(new FluidStack(FluidRegistry.getFluid("ic2biomass"), 5000)) + .duration(45 * SECONDS) + .eut(10) + .addTo(pyrolyseRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("biochaff", 1), GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.Water.getFluid(1500)) + .fluidOutputs(Materials.FermentedBiomass.getFluid(1500)) + .duration(10 * SECONDS) + .eut(10) + .addTo(pyrolyseRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("ic2biomass"), 1000)) + .fluidOutputs(Materials.FermentedBiomass.getFluid(1000)) + .duration(5 * SECONDS) + .eut(10) + .addTo(pyrolyseRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(Materials.Biomass.getFluid(1000)) + .fluidOutputs(Materials.FermentedBiomass.getFluid(1000)) + .duration(5 * SECONDS) + .eut(10) + .addTo(pyrolyseRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sugar.getDust(23), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Charcoal.getDust(12)) + .fluidOutputs(Materials.Water.getFluid(1500)) + .duration(16 * SECONDS) + .eut(64) + .addTo(pyrolyseRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Sugar.getDust(23), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(Materials.Charcoal.getDust(12)) + .fluidInputs(Materials.Nitrogen.getGas(500)) + .fluidOutputs(Materials.Water.getFluid(1500)) + .duration(8 * SECONDS) + .eut(96) + .addTo(pyrolyseRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/RecipeRemover.java b/src/main/java/gregtech/loaders/postload/recipes/RecipeRemover.java new file mode 100644 index 0000000000..10132ece09 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/RecipeRemover.java @@ -0,0 +1,166 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.ExtraTrees; +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.util.GT_ModHandler.getModItem; + +import java.util.Iterator; +import java.util.Map; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import ic2.api.recipe.ILiquidHeatExchangerManager; +import ic2.api.recipe.Recipes; + +public class RecipeRemover implements Runnable { + + @Override + public void run() { + GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Fertilizer.get(1L)); + removeCrafting(); + removeSmelting(); + removeIC2Recipes(); + } + + public void removeCrafting() { + GT_ModHandler.removeRecipe(new ItemStack(Items.lava_bucket), ItemList.Cell_Empty.get(1L)); + GT_ModHandler.removeRecipe(new ItemStack(Items.water_bucket), ItemList.Cell_Empty.get(1L)); + } + + public void removeIC2Recipes() { + + try { + GT_Utility.removeSimpleIC2MachineRecipe( + GT_Values.NI, + Recipes.metalformerExtruding.getRecipes(), + ItemList.Cell_Empty.get(3L)); + GT_Utility.removeSimpleIC2MachineRecipe( + ItemList.IC2_Energium_Dust.get(1L), + Recipes.compressor.getRecipes(), + GT_Values.NI); + GT_Utility.removeSimpleIC2MachineRecipe( + new ItemStack(Items.gunpowder), + Recipes.extractor.getRecipes(), + GT_Values.NI); + GT_Utility.removeSimpleIC2MachineRecipe( + new ItemStack(Blocks.wool, 1, 32767), + Recipes.extractor.getRecipes(), + GT_Values.NI); + GT_Utility.removeSimpleIC2MachineRecipe( + new ItemStack(Blocks.gravel), + Recipes.oreWashing.getRecipes(), + GT_Values.NI); + } catch (Throwable ignored) {} + GT_Utility.removeIC2BottleRecipe( + GT_ModHandler.getIC2Item("fuelRod", 1), + GT_ModHandler.getIC2Item("UranFuel", 1), + Recipes.cannerBottle.getRecipes(), + GT_ModHandler.getIC2Item("reactorUraniumSimple", 1, 1)); + GT_Utility.removeIC2BottleRecipe( + GT_ModHandler.getIC2Item("fuelRod", 1), + GT_ModHandler.getIC2Item("MOXFuel", 1), + Recipes.cannerBottle.getRecipes(), + GT_ModHandler.getIC2Item("reactorMOXSimple", 1, 1)); + + GT_Utility.removeSimpleIC2MachineRecipe( + new ItemStack(Blocks.cobblestone), + GT_ModHandler.getMaceratorRecipeList(), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)); + GT_Utility.removeSimpleIC2MachineRecipe( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lapis, 1L), + GT_ModHandler.getMaceratorRecipeList(), + ItemList.IC2_Plantball.get(1L)); + GT_Utility.removeSimpleIC2MachineRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), + GT_ModHandler.getMaceratorRecipeList(), + ItemList.IC2_Plantball.get(1L)); + GT_Utility.removeSimpleIC2MachineRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), + GT_ModHandler.getMaceratorRecipeList(), + ItemList.IC2_Plantball.get(1L)); + GT_Utility.removeSimpleIC2MachineRecipe( + GT_Values.NI, + GT_ModHandler.getMaceratorRecipeList(), + getModItem(IndustrialCraft2.ID, "itemBiochaff", 1L)); + + GT_Utility.removeSimpleIC2MachineRecipe( + new ItemStack(Blocks.cactus, 8, 0), + GT_ModHandler.getCompressorRecipeList(), + getModItem(IndustrialCraft2.ID, "itemFuelPlantBall", 1L)); + GT_Utility.removeSimpleIC2MachineRecipe( + getModItem(ExtraTrees.ID, "food", 8L, 24), + GT_ModHandler.getCompressorRecipeList(), + getModItem(IndustrialCraft2.ID, "itemFuelPlantBall", 1L)); + + GT_Utility.removeSimpleIC2MachineRecipe( + ItemList.Crop_Drop_BobsYerUncleRanks.get(1L), + GT_ModHandler.getExtractorRecipeList(), + null); + GT_Utility.removeSimpleIC2MachineRecipe( + ItemList.Crop_Drop_Ferru.get(1L), + GT_ModHandler.getExtractorRecipeList(), + null); + GT_Utility.removeSimpleIC2MachineRecipe( + ItemList.Crop_Drop_Aurelia.get(1L), + GT_ModHandler.getExtractorRecipeList(), + null); + + try { + Map<String, ILiquidHeatExchangerManager.HeatExchangeProperty> tLiqExchange = Recipes.liquidCooldownManager + .getHeatExchangeProperties(); + Iterator<Map.Entry<String, ILiquidHeatExchangerManager.HeatExchangeProperty>> tIterator = tLiqExchange + .entrySet() + .iterator(); + while (tIterator.hasNext()) { + Map.Entry<String, ILiquidHeatExchangerManager.HeatExchangeProperty> tEntry = tIterator.next(); + if (tEntry.getKey() + .equals("ic2hotcoolant")) { + tIterator.remove(); + Recipes.liquidCooldownManager.addFluid("ic2hotcoolant", "ic2coolant", 100); + } + } + } catch (Throwable e) { + /* Do nothing */ + } + + try { + Map<String, ILiquidHeatExchangerManager.HeatExchangeProperty> tLiqExchange = Recipes.liquidHeatupManager + .getHeatExchangeProperties(); + Iterator<Map.Entry<String, ILiquidHeatExchangerManager.HeatExchangeProperty>> tIterator = tLiqExchange + .entrySet() + .iterator(); + while (tIterator.hasNext()) { + Map.Entry<String, ILiquidHeatExchangerManager.HeatExchangeProperty> tEntry = tIterator.next(); + if (tEntry.getKey() + .equals("ic2coolant")) { + tIterator.remove(); + Recipes.liquidHeatupManager.addFluid("ic2coolant", "ic2hotcoolant", 100); + } + } + } catch (Throwable e) { + /* Do nothing */ + } + + } + + public void removeSmelting() { + GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.ore, Materials.Graphite, 1L)); + GT_ModHandler + .removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreBlackgranite, Materials.Graphite, 1L)); + GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreEndstone, Materials.Graphite, 1L)); + GT_ModHandler + .removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreNetherrack, Materials.Graphite, 1L)); + GT_ModHandler + .removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreRedgranite, Materials.Graphite, 1L)); + GT_ModHandler.removeFurnaceSmelting(ItemList.IC2_Resin.get(1L)); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java new file mode 100644 index 0000000000..8d3614d76a --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java @@ -0,0 +1,47 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.sifterRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; + +public class SifterRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.gravel, 1, 0)) + .itemOutputs( + new ItemStack(Items.flint, 1, 0), + new ItemStack(Items.flint, 1, 0), + new ItemStack(Items.flint, 1, 0), + new ItemStack(Items.flint, 1, 0), + new ItemStack(Items.flint, 1, 0), + new ItemStack(Items.flint, 1, 0)) + .outputChances(10000, 9000, 8000, 6000, 3300, 2500) + .duration(30 * SECONDS) + .eut(16) + .addTo(sifterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Coal, 1L)) + .itemOutputs( + new ItemStack(Items.coal, 1, 0), + new ItemStack(Items.coal, 1, 0), + new ItemStack(Items.coal, 1, 0), + new ItemStack(Items.coal, 1, 0), + new ItemStack(Items.coal, 1, 0), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L)) + .outputChances(10000, 9000, 8000, 7000, 6000, 5000) + .duration(30 * SECONDS) + .eut(16) + .addTo(sifterRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/SlicerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/SlicerRecipes.java new file mode 100644 index 0000000000..73d251014e --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/SlicerRecipes.java @@ -0,0 +1,42 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.slicerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; + +public class SlicerRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Dough_Chocolate.get(1), ItemList.Shape_Slicer_Flat.get(0)) + .itemOutputs(ItemList.Food_Raw_Cookie.get(4)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(slicerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Baked_Bun.get(1), ItemList.Shape_Slicer_Flat.get(0)) + .itemOutputs(ItemList.Food_Sliced_Bun.get(2)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(slicerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Baked_Bread.get(1), ItemList.Shape_Slicer_Flat.get(0)) + .itemOutputs(ItemList.Food_Sliced_Bread.get(2)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(slicerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Food_Baked_Baguette.get(1), ItemList.Shape_Slicer_Flat.get(0)) + .itemOutputs(ItemList.Food_Sliced_Baguette.get(2)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(slicerRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/SmelterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/SmelterRecipes.java new file mode 100644 index 0000000000..e56cc613e7 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/SmelterRecipes.java @@ -0,0 +1,70 @@ +package gregtech.loaders.postload.recipes; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class SmelterRecipes implements Runnable { + + @Override + public void run() { + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_PotatoChips.get(1L), ItemList.Food_PotatoChips.get(1L)); + + GT_ModHandler + .addSmeltingRecipe(ItemList.Food_Potato_On_Stick.get(1L), ItemList.Food_Potato_On_Stick_Roasted.get(1L)); + + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Bun.get(1L), ItemList.Food_Baked_Bun.get(1L)); + + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Bread.get(1L), ItemList.Food_Baked_Bread.get(1L)); + + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Baguette.get(1L), ItemList.Food_Baked_Baguette.get(1L)); + + GT_ModHandler + .addSmeltingRecipe(ItemList.Food_Raw_Pizza_Veggie.get(1L), ItemList.Food_Baked_Pizza_Veggie.get(1L)); + + GT_ModHandler + .addSmeltingRecipe(ItemList.Food_Raw_Pizza_Cheese.get(1L), ItemList.Food_Baked_Pizza_Cheese.get(1L)); + + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Pizza_Meat.get(1L), ItemList.Food_Baked_Pizza_Meat.get(1L)); + + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Baguette.get(1L), ItemList.Food_Baked_Baguette.get(1L)); + + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Cake.get(1L), ItemList.Food_Baked_Cake.get(1L)); + + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Cookie.get(1L), new ItemStack(Items.cookie, 1)); + + GT_ModHandler.addSmeltingRecipe(new ItemStack(Items.slime_ball, 1), ItemList.IC2_Resin.get(1L)); + + GT_ModHandler.addSmeltingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ore, Materials.Graphite, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); + + GT_ModHandler.addSmeltingRecipe( + GT_OreDictUnificator.get(OrePrefixes.oreBlackgranite, Materials.Graphite, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); + + GT_ModHandler.addSmeltingRecipe( + GT_OreDictUnificator.get(OrePrefixes.oreEndstone, Materials.Graphite, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); + + GT_ModHandler.addSmeltingRecipe( + GT_OreDictUnificator.get(OrePrefixes.oreNetherrack, Materials.Graphite, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); + + GT_ModHandler.addSmeltingRecipe( + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 1L), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 1L)); + + GT_ModHandler.addSmeltingRecipe( + GT_OreDictUnificator.get(OrePrefixes.oreRedgranite, Materials.Graphite, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); + + GameRegistry.addSmelting(ItemList.CompressedFireclay.get(1), ItemList.Firebrick.get(1), 0); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ThaumcraftRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ThaumcraftRecipes.java new file mode 100644 index 0000000000..17bc8b3002 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ThaumcraftRecipes.java @@ -0,0 +1,961 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.util.GT_ModHandler.getModItem; + +import java.util.Arrays; +import java.util.Collections; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTech_API; +import gregtech.api.enchants.Enchantment_Hazmat; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TC_Aspects; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.loaders.postload.GT_MachineRecipeLoader; + +public class ThaumcraftRecipes implements Runnable { + + @Override + public void run() { + if ((!Thaumcraft.isModLoaded()) || GregTech_API.sThaumcraftCompat == null) { + return; + } + + // Add Recipe for TC Crucible: Salis Mundus to Balanced Shards + String tKey = "GT_BALANCE_SHARD_RECIPE"; + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + "TB.SM", + getModItem(Thaumcraft.ID, "ItemResource", 1L, 14), + getModItem(Thaumcraft.ID, "ItemShard", 1L, 6), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L))); + + tKey = "GT_WOOD_TO_CHARCOAL"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way of making charcoal magically instead of using regular ovens for this purpose.<BR><BR>To create charcoal from wood you first need an air-free environment, some vacuus essentia is needed for that, then you need to incinerate the wood using ignis essentia and wait until all the water inside the wood is burned away.<BR><BR>This method however doesn't create creosote oil as byproduct."); + + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Charcoal Transmutation", + "Turning wood into charcoal", + new String[] { "ALUMENTUM" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 1L), + 2, + 0, + 13, + 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 8L), + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 8L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.log.get(Materials.Wood), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 1L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L))) }); + + tKey = "GT_FILL_WATER_BUCKET"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way of filling a bucket with aqua essentia in order to simply get water."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Water Transmutation", + "Filling buckets with water", + null, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Water, 1L), + 2, + 0, + 16, + 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 4L), + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Empty, 1L), + GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Water, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L))), + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + GT_OreDictUnificator.get(OrePrefixes.bucketClay, Materials.Empty, 1L), + GT_OreDictUnificator.get(OrePrefixes.bucketClay, Materials.Water, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L))), + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + GT_OreDictUnificator.get(OrePrefixes.capsule, Materials.Empty, 1L), + GT_OreDictUnificator.get(OrePrefixes.capsule, Materials.Water, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L))), + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1L), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L))) }); + + tKey = "GT_TRANSZINC"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way to multiply zinc by steeping zinc nuggets in metallum harvested from other metals."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Zinc Transmutation", + "Transformation of metals into zinc", + new String[] { "TRANSTIN" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Zinc, 1L), + 2, + 1, + 9, + 13, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Zinc), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Zinc, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L))) }); + + tKey = "GT_TRANSANTIMONY"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way to multiply antimony by steeping antimony nuggets in metallum harvested from other metals."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Antimony Transmutation", + "Transformation of metals into antimony", + new String[] { "GT_TRANSZINC", "TRANSLEAD" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Antimony, 1L), + 2, + 1, + 9, + 14, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Antimony), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Antimony, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L))) }); + + tKey = "GT_TRANSNICKEL"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way to multiply nickel by steeping nickel nuggets in metallum harvested from other metals."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Nickel Transmutation", + "Transformation of metals into nickel", + new String[] { "TRANSLEAD" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Nickel, 1L), + 2, + 1, + 9, + 15, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Nickel), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Nickel, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L))) }); + + tKey = "GT_TRANSCOBALT"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way to multiply cobalt by steeping cobalt nuggets in metallum harvested from other metals."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Cobalt Transmutation", + "Transformation of metals into cobalt", + new String[] { "GT_TRANSNICKEL" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cobalt, 1L), + 2, + 1, + 9, + 16, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Cobalt), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cobalt, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L))) }); + + tKey = "GT_TRANSBISMUTH"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way to multiply bismuth by steeping bismuth nuggets in metallum harvested from other metals."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Bismuth Transmutation", + "Transformation of metals into bismuth", + new String[] { "GT_TRANSCOBALT" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bismuth, 1L), + 2, + 1, + 11, + 17, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Bismuth), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bismuth, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L))) }); + + tKey = "GT_IRON_TO_STEEL"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way of making Iron harder by just re-ordering its components.<BR><BR>This Method can be used to create a Material called Steel, which is used in many non-Thaumaturgic applications."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Steel Transmutation", + "Transforming iron to steel", + new String[] { "TRANSIRON", "GT_WOOD_TO_CHARCOAL" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 1L), + 3, + 0, + 13, + 8, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Iron), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L))) }); + + tKey = "GT_TRANSBRONZE"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way of creating Alloys using the already known transmutations of Copper and Tin.<BR><BR>This Method can be used to create a Bronze directly without having to go through an alloying process."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Bronze Transmutation", + "Transformation of metals into bronze", + new String[] { "TRANSTIN", "TRANSCOPPER" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bronze, 1L), + 2, + 0, + 13, + 11, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Bronze), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bronze, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L))) }); + + tKey = "GT_TRANSELECTRUM"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Electrum as well."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Electrum Transmutation", + "Transformation of metals into electrum", + new String[] { "GT_TRANSBRONZE", "TRANSGOLD", "TRANSSILVER" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Electrum, 1L), + 2, + 1, + 11, + 11, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Electrum), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Electrum, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L))) }); + + tKey = "GT_TRANSBRASS"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Brass as well."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Brass Transmutation", + "Transformation of metals into brass", + new String[] { "GT_TRANSBRONZE", "GT_TRANSZINC" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Brass, 1L), + 2, + 1, + 11, + 12, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Brass), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Brass, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L))) }); + + tKey = "GT_TRANSINVAR"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Invar as well."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Invar Transmutation", + "Transformation of metals into invar", + new String[] { "GT_TRANSBRONZE", "GT_TRANSNICKEL" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Invar, 1L), + 2, + 1, + 11, + 15, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Invar), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Invar, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L))) }); + + tKey = "GT_TRANSCUPRONICKEL"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Cupronickel as well."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Cupronickel Transmutation", + "Transformation of metals into cupronickel", + new String[] { "GT_TRANSBRONZE", "GT_TRANSNICKEL" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cupronickel, 1L), + 2, + 1, + 11, + 16, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Cupronickel), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cupronickel, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L))) }); + + tKey = "GT_TRANSBATTERYALLOY"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Battery Alloy as well."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Battery Alloy Transmutation", + "Transformation of metals into battery alloy", + new String[] { "GT_TRANSBRONZE", "GT_TRANSANTIMONY" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.BatteryAlloy, 1L), + 2, + 1, + 11, + 13, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.BatteryAlloy), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.BatteryAlloy, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L))) }); + + tKey = "GT_TRANSSOLDERINGALLOY"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Soldering Alloy as well."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Soldering Alloy Transmutation", + "Transformation of metals into soldering alloy", + new String[] { "GT_TRANSBRONZE", "GT_TRANSANTIMONY" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.SolderingAlloy, 1L), + 2, + 1, + 11, + 14, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.SolderingAlloy), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.SolderingAlloy, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L))) }); + + tKey = "GT_ADVANCEDMETALLURGY"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Now that you have discovered all the basic metals, you can finally move on to the next Level of magic metallurgy and create more advanced metals"); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Advanced Metallurgic Transmutation", + "Mastering the basic metals", + new String[] { "GT_TRANSBISMUTH", "GT_IRON_TO_STEEL", "GT_TRANSSOLDERINGALLOY", "GT_TRANSBATTERYALLOY", + "GT_TRANSBRASS", "GT_TRANSELECTRUM", "GT_TRANSCUPRONICKEL", "GT_TRANSINVAR" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), + 3, + 0, + 16, + 14, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 50L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 20L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey }); + + tKey = "GT_TRANSALUMINIUM"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way to multiply aluminium by steeping aluminium nuggets in metallum harvested from other metals.<BR><BR>This transmutation is slightly harder to achieve, because aluminium has special properties, which require more order to achieve the desired result."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Aluminium Transmutation", + "Transformation of metals into aluminium", + new String[] { "GT_ADVANCEDMETALLURGY" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 1L), + 4, + 0, + 19, + 14, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.nugget.get(Materials.Aluminium), + GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L))) }); + + tKey = "GT_TRANSSKYSTONE"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way to convert obsidian to skystone.<BR><BR>Not sure why you'd want to do this, unless skystone is somehow unavailable in your world."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Skystone Transmutation", + "Transformation of obsidian into skystone", + new String[] { "GT_ADVANCEDMETALLURGY" }, + "ALCHEMY", + getModItem(AppliedEnergistics2.ID, "tile.BlockSkyStone", 1), + 4, + 0, + 19, + 15, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + new ItemStack(Blocks.obsidian), + getModItem(AppliedEnergistics2.ID, "tile.BlockSkyStone", 1), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 1L))) }); + + tKey = "GT_TRANSMINERAL"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way to convert basaltic mineral sand to granitic mineral sand and vice versa.<BR><BR>Handy for people living in the sky who can't access it normally, or if you really want one or the other."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Basaltic Mineral Transmutation", + "Transformation of mineral sands", + new String[] { "GT_ADVANCEDMETALLURGY" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GraniticMineralSand, 1L), + 4, + 0, + 19, + 16, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BasalticMineralSand, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GraniticMineralSand, 1L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 1L))), + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GraniticMineralSand, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BasalticMineralSand, 1L), + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 1L))) }); + + tKey = "GT_CRYSTALLISATION"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Sometimes when processing your Crystal Shards they become a pile of Dust instead of the mostly required Shard.<BR><BR>You have finally found a way to reverse this Process by using Vitreus Essentia for recrystallising the Shards."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Shard Recrystallisation", + "Fixing your precious crystals", + new String[] { "ALCHEMICALMANUFACTURE" }, + "ALCHEMY", + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedOrder, 1L), + 3, + 0, + -11, + -3, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 5L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.dust.get(Materials.Amber), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Amber, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L))), + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.dust.get(Materials.InfusedOrder), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedOrder, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L))), + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.dust.get(Materials.InfusedEntropy), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEntropy, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L))), + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.dust.get(Materials.InfusedAir), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedAir, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L))), + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.dust.get(Materials.InfusedEarth), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEarth, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L))), + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.dust.get(Materials.InfusedFire), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedFire, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L))), + GregTech_API.sThaumcraftCompat.addCrucibleRecipe( + tKey, + OrePrefixes.dust.get(Materials.InfusedWater), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedWater, 1L), + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L))) }); + + tKey = "GT_MAGICENERGY"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "While trying to find new ways to integrate magic into your industrial factories, you have discovered a way to convert magical energy into electrical power."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Magic Energy Conversion", + "Magic to Power", + new String[] { "ARCANEBORE" }, + "ARTIFICE", + ItemList.MagicEnergyConverter_LV.get(1L), + 3, + 0, + -3, + 10, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + tKey, + ItemList.Hull_LV.get(1L), + new ItemStack[] { new ItemStack(Blocks.beacon), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), + ItemList.Sensor_MV.get(2L), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L), + ItemList.Sensor_MV.get(2L) }, + ItemList.MagicEnergyConverter_LV.get(1L), + 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L))) }); + + tKey = "GT_MAGICENERGY2"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Attempts to increase the output of your Magic Energy generators have resulted in significant improvements."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Adept Magic Energy Conversion", + "Magic to Power", + new String[] { "GT_MAGICENERGY" }, + "ARTIFICE", + ItemList.MagicEnergyConverter_MV.get(1L), + 1, + 1, + -4, + 12, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + tKey, + ItemList.Hull_MV.get(1L), + new ItemStack[] { new ItemStack(Blocks.beacon), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Thaumium, 1L), + ItemList.Sensor_HV.get(2L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.StainlessSteel, 1L), + ItemList.Sensor_HV.get(2L) }, + ItemList.MagicEnergyConverter_MV.get(1L), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L))) }); + + tKey = "GT_MAGICENERGY3"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Attempts to further increase the output of your Magic Energy generators have resulted in great improvements."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Master Magic Energy Conversion", + "Magic to Power", + new String[] { "GT_MAGICENERGY2" }, + "ARTIFICE", + ItemList.MagicEnergyConverter_HV.get(1L), + 1, + 1, + -4, + 14, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 40L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 20L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + tKey, + ItemList.Hull_HV.get(1L), + new ItemStack[] { new ItemStack(Blocks.beacon), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1L), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1L), + ItemList.Field_Generator_MV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1L), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Titanium, 1L), + ItemList.Field_Generator_MV.get(1L) }, + ItemList.MagicEnergyConverter_HV.get(1L), + 8, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L))) }); + + tKey = "GT_MAGICABSORB"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "Research into magical energy conversion methods has identified a way to convert surrounding energies into electrical power."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Magic Energy Absorption", + "Harvesting Magic", + new String[] { "GT_MAGICENERGY" }, + "ARTIFICE", + ItemList.MagicEnergyAbsorber_LV.get(1L), + 3, + 0, + -2, + 12, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + tKey, + ItemList.Hull_LV.get(1L), + new ItemStack[] { ItemList.MagicEnergyConverter_LV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L), + ItemList.Sensor_MV.get(2L) }, + ItemList.MagicEnergyAbsorber_LV.get(1L), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 16L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 4L))) }); + + tKey = "GT_MAGICABSORB2"; + GT_LanguageManager + .addStringLocalization(GT_MachineRecipeLoader.aTextTCGTPage + tKey, "Moar output! Drain all the Magic!"); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Improved Magic Energy Absorption", + "Harvesting Magic", + new String[] { "GT_MAGICABSORB" }, + "ARTIFICE", + ItemList.MagicEnergyAbsorber_EV.get(1L), + 3, + 1, + -2, + 14, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + tKey, + ItemList.Hull_MV.get(1L), + new ItemStack[] { ItemList.MagicEnergyConverter_MV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L), ItemList.Sensor_HV.get(2L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L) }, + ItemList.MagicEnergyAbsorber_MV.get(1L), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 8L))), + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + tKey, + ItemList.Hull_HV.get(1L), + new ItemStack[] { ItemList.MagicEnergyConverter_MV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Void, 1), + ItemList.Field_Generator_MV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Void, 1), }, + ItemList.MagicEnergyAbsorber_HV.get(1L), + 8, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 16L))), + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + tKey, + ItemList.Hull_EV.get(1L), + new ItemStack[] { ItemList.MagicEnergyConverter_HV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Void, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 1), + ItemList.Field_Generator_HV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Void, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 1), }, + ItemList.MagicEnergyAbsorber_EV.get(1L), + 10, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 256L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 256L), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 64L))) }); + + tKey = "GT_HAZMATENCH"; + GT_LanguageManager.addStringLocalization( + GT_MachineRecipeLoader.aTextTCGTPage + tKey, + "You have discovered a way to magically enchant a mundane piece of armor with the protective properties of a Hazmat suite."); + GregTech_API.sThaumcraftCompat.addResearch( + tKey, + "Hazmat Protection", + "Magical protection from physical hazards", + new String[] { "INFUSIONENCHANTMENT" }, + "ARTIFICE", + GT_ModHandler.getIC2Item("hazmatChestplate", 1), + 4, + 0, + -7, + 13, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.VITIUM, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)), + null, + new Object[] { GT_MachineRecipeLoader.aTextTCGTPage + tKey, + GregTech_API.sThaumcraftCompat.addInfusionEnchantmentRecipe( + tKey, + Enchantment_Hazmat.INSTANCE, + 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.VITIUM, 8L), + new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 16L), + new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 16L), + new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 16L)), + new ItemStack[] { getModItem(Thaumcraft.ID, "ItemResource", 1L, 14), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Lead, 1), + getModItem(Thaumcraft.ID, "ItemResource", 1L, 14), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Lead, 1) }) }); + + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/ThermalCentrifugeRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ThermalCentrifugeRecipes.java new file mode 100644 index 0000000000..7e10d2a1fc --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ThermalCentrifugeRecipes.java @@ -0,0 +1,30 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_OreDictUnificator; + +public class ThermalCentrifugeRecipes implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.SunnariumCell.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sunnarium, 1), + new ItemStack(Items.glowstone_dust, 2), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(thermalCentrifugeRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java new file mode 100644 index 0000000000..123f9903ea --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java @@ -0,0 +1,142 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.transcendentPlasmaMixerRecipes; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.util.GT_Utility; + +public class TranscendentPlasmaMixerRecipes implements Runnable { + + private static final int CRUDE_EU_PER_L = 14_514_983; + private static final int PROSAIC_EU_PER_L = 66_768_460; + private static final int RESPLENDENT_EU_PER_L = 269_326_451; + private static final int EXOTIC_EU_PER_L = 1_073_007_393; + private static final int STELLAR_EU_PER_HALF_L = 2_138_383_760; + + private static final int PRIMORDIAL_MATTER = 2_000_000_000; + + @Override + public void run() { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs( + Materials.Helium.getPlasma(1000), + Materials.Iron.getPlasma(1000), + Materials.Calcium.getPlasma(1000), + Materials.Niobium.getPlasma(1000)) + .fluidOutputs(MaterialsUEVplus.ExcitedDTCC.getFluid(1000L)) + .duration(100) + .eut(CRUDE_EU_PER_L) + .noOptimize() + .addTo(transcendentPlasmaMixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(2)) + .fluidInputs( + Materials.Helium.getPlasma(1000), + Materials.Iron.getPlasma(1000), + Materials.Calcium.getPlasma(1000), + Materials.Niobium.getPlasma(1000), + Materials.Radon.getPlasma(1000), + Materials.Nickel.getPlasma(1000), + Materials.Boron.getPlasma(1000), + Materials.Sulfur.getPlasma(1000)) + .fluidOutputs(MaterialsUEVplus.ExcitedDTPC.getFluid(1000L)) + .duration(100) + .eut(PROSAIC_EU_PER_L) + .noOptimize() + .addTo(transcendentPlasmaMixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3)) + .fluidInputs( + Materials.Helium.getPlasma(1000), + Materials.Iron.getPlasma(1000), + Materials.Calcium.getPlasma(1000), + Materials.Niobium.getPlasma(1000), + Materials.Radon.getPlasma(1000), + Materials.Nickel.getPlasma(1000), + Materials.Boron.getPlasma(1000), + Materials.Sulfur.getPlasma(1000), + Materials.Nitrogen.getPlasma(1000), + Materials.Zinc.getPlasma(1000), + Materials.Silver.getPlasma(1000), + Materials.Titanium.getPlasma(1000)) + .fluidOutputs(MaterialsUEVplus.ExcitedDTRC.getFluid(1000L)) + .duration(100) + .eut(RESPLENDENT_EU_PER_L) + .noOptimize() + .addTo(transcendentPlasmaMixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4)) + .fluidInputs( + Materials.Helium.getPlasma(1000), + Materials.Iron.getPlasma(1000), + Materials.Calcium.getPlasma(1000), + Materials.Niobium.getPlasma(1000), + Materials.Radon.getPlasma(1000), + Materials.Nickel.getPlasma(1000), + Materials.Boron.getPlasma(1000), + Materials.Sulfur.getPlasma(1000), + Materials.Nitrogen.getPlasma(1000), + Materials.Zinc.getPlasma(1000), + Materials.Silver.getPlasma(1000), + Materials.Titanium.getPlasma(1000), + Materials.Americium.getPlasma(1000), + Materials.Bismuth.getPlasma(1000), + Materials.Oxygen.getPlasma(1000), + Materials.Tin.getPlasma(1000)) + .fluidOutputs(MaterialsUEVplus.ExcitedDTEC.getFluid(1000L)) + .duration(100) + .eut(EXOTIC_EU_PER_L) + .noOptimize() + .addTo(transcendentPlasmaMixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(5)) + .fluidInputs( + Materials.Helium.getPlasma(1000), + Materials.Iron.getPlasma(1000), + Materials.Calcium.getPlasma(1000), + Materials.Niobium.getPlasma(1000), + Materials.Radon.getPlasma(1000), + Materials.Nickel.getPlasma(1000), + Materials.Boron.getPlasma(1000), + Materials.Sulfur.getPlasma(1000), + Materials.Nitrogen.getPlasma(1000), + Materials.Zinc.getPlasma(1000), + Materials.Silver.getPlasma(1000), + Materials.Titanium.getPlasma(1000), + Materials.Americium.getPlasma(1000), + Materials.Bismuth.getPlasma(1000), + Materials.Oxygen.getPlasma(1000), + Materials.Tin.getPlasma(1000), + Materials.Lead.getPlasma(1000), + Materials.Thorium.getPlasma(1000), + Materials.Plutonium241.getPlasma(1000L), + MaterialsUEVplus.RawStarMatter.getFluid(25L)) + .fluidOutputs(MaterialsUEVplus.ExcitedDTSC.getFluid(1000L)) + .duration(200) + .eut(STELLAR_EU_PER_HALF_L) + .noOptimize() + .addTo(transcendentPlasmaMixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + MaterialsUEVplus.RawStarMatter.getFluid(1000L), + MaterialsUEVplus.SpaceTime.getMolten(1000L), + MaterialsUEVplus.Space.getMolten(1000L), + MaterialsUEVplus.DimensionallyTranscendentResidue.getFluid(1000L)) + .fluidOutputs(MaterialsUEVplus.PrimordialMatter.getFluid(1000L)) + .duration(100) + .eut(PRIMORDIAL_MATTER) + .noOptimize() + .addTo(transcendentPlasmaMixerRecipes); + + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java new file mode 100644 index 0000000000..444db30889 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java @@ -0,0 +1,416 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.HOURS; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class VacuumFreezerRecipes implements Runnable { + + @Override + public void run() { + // reactor parts vacuum + { + // reactor heat switch + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorHeatSwitch", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorHeatSwitch", 1L, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorHeatSwitchCore", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorHeatSwitchCore", 1L, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorHeatSwitchSpread", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorHeatSwitchSpread", 1L, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorHeatSwitchDiamond", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorHeatSwitchDiamond", 1L, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + } + + // reactor vent + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorVent", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorVent", 1L, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorVentCore", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorVentCore", 1L, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorVentGold", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorVentGold", 1L, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorVentDiamond", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorVentDiamond", 1L, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + } + + // reactor vent spread + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorVentSpread", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorVentSpread", 1L, 0)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + // reactor coolant + { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 1)) + .duration(10 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorCoolantTriple", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorCoolantTriple", 1L, 1)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorCoolantSix", 1L, 32767)) + .itemOutputs(GT_ModHandler.getIC2Item("reactorCoolantSix", 1L, 1)) + .duration(3 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_He_1.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_He_1.get(1L)) + .duration(3 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_He_3.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_He_3.get(1L)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_He_6.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_He_6.get(1L)) + .duration(18 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_NaK_1.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_NaK_1.get(1L)) + .duration(3 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_NaK_3.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_NaK_3.get(1L)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_NaK_6.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_NaK_6.get(1L)) + .duration(18 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.neutroniumHeatCapacitor.getWildcard(1L)) + .itemOutputs(ItemList.neutroniumHeatCapacitor.get(1L)) + .duration(13 * HOURS + 53 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_Sp_1.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_Sp_1.get(1L)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_Sp_2.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_Sp_2.get(1L)) + .duration(18 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_Sp_3.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_Sp_3.get(1L)) + .duration(27 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_Sp_6.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_Sp_6.get(1L)) + .duration(54 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + } + } + + // fluid vacuum + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ice, 1L)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidOxygen, 1L)) + .duration(1 * MINUTES) + .eut(TierEU.RECIPE_HV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidNitrogen, 1L)) + .duration(1 * MINUTES) + .eut(TierEU.RECIPE_HV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("airCell", 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidAir, 1L)) + .duration(1 * SECONDS + 8 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_Sp_1.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_Sp_1.get(1L)) + .duration(1 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_Sp_2.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_Sp_2.get(1L)) + .duration(3 * MINUTES) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_Sp_3.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_Sp_3.get(1L)) + .duration(4 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Reactor_Coolant_Sp_6.getWildcard(1L)) + .itemOutputs(ItemList.Reactor_Coolant_Sp_6.get(1L)) + .duration(9 * MINUTES) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + } + + // Freeze superconductors. + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Pentacadmiummagnesiumhexaoxid, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Pentacadmiummagnesiumhexaoxid, 1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Titaniumonabariumdecacoppereikosaoxid, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titaniumonabariumdecacoppereikosaoxid, 1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Uraniumtriplatinid, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Uraniumtriplatinid, 1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Vanadiumtriindinid, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Vanadiumtriindinid, 1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get( + OrePrefixes.ingotHot, + Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, + 1L)) + .itemOutputs( + GT_OreDictUnificator.get( + OrePrefixes.ingot, + Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, + 1L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator + .get(OrePrefixes.ingotHot, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 1L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Longasssuperconductornameforuvwire, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Longasssuperconductornameforuvwire, 1L)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Longasssuperconductornameforuhvwire, 1L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Longasssuperconductornameforuhvwire, 1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUEVBase, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.SuperconductorUEVBase, 1L)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUIVBase, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.SuperconductorUIVBase, 1L)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUMVBase, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.SuperconductorUMVBase, 1L)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(vacuumFreezerRecipes); + } + + // Plasma Freezing + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Americium, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Americium, 1L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Helium, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1L)) + .duration(5 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Nitrogen, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L)) + .duration(1 * SECONDS + 8 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Oxygen, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Radon, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Radon, 1L)) + .duration(5 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Boron.getPlasma(144L)) + .fluidOutputs(Materials.Boron.getMolten(144L)) + .duration(1 * SECONDS) + .eut(12) + .addTo(vacuumFreezerRecipes); + } + + if (GTPlusPlus.isModLoaded()) { + // hot transcendent metal ingot cooling + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, MaterialsUEVplus.TranscendentMetal, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, MaterialsUEVplus.TranscendentMetal, 1L)) + .fluidInputs( + new FluidStack(FluidRegistry.getFluid("molten.titansteel"), 144), + Materials.SuperCoolant.getFluid(1000)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .addTo(vacuumFreezerRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/WiremillRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/WiremillRecipes.java new file mode 100644 index 0000000000..017a8e6582 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/WiremillRecipes.java @@ -0,0 +1,87 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.wiremillRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeRegistrator.registerWiremillRecipes; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.GT_Mod; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class WiremillRecipes implements Runnable { + + @Override + public void run() { + + registerWiremillRecipes(Materials.Graphene, 20 * SECONDS, 2, OrePrefixes.dust, OrePrefixes.stick, 1); + + registerWiremillRecipes(MaterialsUEVplus.SpaceTime, 20 * SECONDS, (int) TierEU.RECIPE_LuV); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Polycaprolactam, 1L)) + .itemOutputs(new ItemStack(Items.string, 32)) + .duration(4 * SECONDS) + .eut(48) + .addTo(wiremillRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Steel, 1)) + .itemOutputs(GT_ModHandler.getIC2Item("miningPipe", 1)) + .duration(10 * SECONDS) + .eut(16) + .addTo(wiremillRecipes); + + if (!GT_Mod.gregtechproxy.mDisableIC2Cables) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Copper, 1L)) + .itemOutputs(GT_ModHandler.getIC2Item("copperCableItem", 3L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(wiremillRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.AnnealedCopper, 1L)) + .itemOutputs(GT_ModHandler.getIC2Item("copperCableItem", 3L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(wiremillRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 1L)) + .itemOutputs(GT_ModHandler.getIC2Item("tinCableItem", 4L)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(1) + .addTo(wiremillRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L)) + .itemOutputs(GT_ModHandler.getIC2Item("ironCableItem", 6L)) + .duration(10 * SECONDS) + .eut(2) + .addTo(wiremillRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L)) + .itemOutputs(GT_ModHandler.getIC2Item("ironCableItem", 6L)) + .duration(10 * SECONDS) + .eut(2) + .addTo(wiremillRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L)) + .itemOutputs(GT_ModHandler.getIC2Item("goldCableItem", 6L)) + .duration(10 * SECONDS) + .eut(1) + .addTo(wiremillRecipes); + } + } +} diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java b/src/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java new file mode 100644 index 0000000000..fd66127e36 --- /dev/null +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java @@ -0,0 +1,31 @@ +package gregtech.loaders.preload; + +import gregtech.api.util.GT_Log; +import gregtech.common.redstonecircuits.GT_Circuit_BasicLogic; +import gregtech.common.redstonecircuits.GT_Circuit_BitAnd; +import gregtech.common.redstonecircuits.GT_Circuit_CombinationLock; +import gregtech.common.redstonecircuits.GT_Circuit_Equals; +import gregtech.common.redstonecircuits.GT_Circuit_Pulser; +import gregtech.common.redstonecircuits.GT_Circuit_Randomizer; +import gregtech.common.redstonecircuits.GT_Circuit_RedstoneMeter; +import gregtech.common.redstonecircuits.GT_Circuit_Repeater; +import gregtech.common.redstonecircuits.GT_Circuit_Timer; + +public class GT_Loader_CircuitBehaviors implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Register Redstone Circuit behaviours."); + new GT_Circuit_Timer(0); + new GT_Circuit_BasicLogic(1); + new GT_Circuit_Repeater(2); + new GT_Circuit_Pulser(3); + new GT_Circuit_RedstoneMeter(4); + + new GT_Circuit_Randomizer(8); + + new GT_Circuit_CombinationLock(16); + new GT_Circuit_BitAnd(17); + new GT_Circuit_Equals(18); + } +} diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java b/src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java new file mode 100644 index 0000000000..321ecca70f --- /dev/null +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java @@ -0,0 +1,383 @@ +package gregtech.loaders.preload; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.enums.Mods.TwilightForest; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.objects.ItemData; +import gregtech.api.objects.MaterialStack; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class GT_Loader_ItemData implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Loading Item Data Tags"); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(TwilightForest.ID, "item.giantPick", 1L, 0), + new ItemData(Materials.Stone, 696729600L, new MaterialStack(Materials.Wood, 464486400L))); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(TwilightForest.ID, "item.giantSword", 1L, 0), + new ItemData(Materials.Stone, 464486400L, new MaterialStack(Materials.Wood, 232243200L))); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(TwilightForest.ID, "tile.GiantLog", 1L, 32767), + new ItemData(Materials.Wood, 232243200L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(TwilightForest.ID, "tile.GiantCobble", 1L, 32767), + new ItemData(Materials.Stone, 232243200L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(TwilightForest.ID, "tile.GiantObsidian", 1L, 32767), + new ItemData(Materials.Obsidian, 232243200L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(TwilightForest.ID, "item.minotaurAxe", 1L, 0), + new ItemData( + Materials.Diamond, + 14515200L, + new MaterialStack(Materials.Wood, OrePrefixes.stick.mMaterialAmount * 2L))); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(TwilightForest.ID, "item.armorShards", 1L, 0), + new ItemData(Materials.Knightmetal, 403200L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(TwilightForest.ID, "item.shardCluster", 1L, 0), + new ItemData(Materials.Knightmetal, 3628800L)); + GT_OreDictUnificator.addItemData(ItemList.TF_LiveRoot.get(1L), new ItemData(Materials.LiveRoot, 3628800L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 10), + new ItemData(Materials.CertusQuartz, 1814400L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 11), + new ItemData(Materials.NetherQuartz, 1814400L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 12), + new ItemData(Materials.Fluix, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.quartz_block, 1, 32767), new ItemData(Materials.NetherQuartz, 14515200L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockQuartz", 1L, 32767), + new ItemData(Materials.CertusQuartz, 14515200L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockQuartzPillar", 1L, 32767), + new ItemData(Materials.CertusQuartz, 14515200L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockQuartzChiseled", 1L, 32767), + new ItemData(Materials.CertusQuartz, 14515200L)); + GT_OreDictUnificator.addItemData(new ItemStack(Items.wheat, 1, 32767), new ItemData(Materials.Wheat, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.hay_block, 1, 32767), new ItemData(Materials.Wheat, 32659200L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Items.snowball, 1, 32767), new ItemData(Materials.Snow, 907200L)); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.snow, 1, 32767), new ItemData(Materials.Snow, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.glowstone, 1, 32767), new ItemData(Materials.Glowstone, 14515200L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.redstone_lamp, 1, 32767), + new ItemData( + Materials.Glowstone, + 14515200L, + new MaterialStack(Materials.Redstone, OrePrefixes.dust.mMaterialAmount * 4L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.lit_redstone_lamp, 1, 32767), + new ItemData( + Materials.Glowstone, + 14515200L, + new MaterialStack(Materials.Redstone, OrePrefixes.dust.mMaterialAmount * 4L))); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(Forestry.ID, "craftingMaterial", 1L, 5), + new ItemData(Materials.Ice, 3628800L)); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.ice, 1, 32767), new ItemData(Materials.Ice, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.packed_ice, 1, 32767), new ItemData(Materials.Ice, 7257600L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Items.clay_ball, 1, 32767), new ItemData(Materials.Clay, 1814400L)); + GT_OreDictUnificator.removeItemData(new ItemStack(Blocks.clay, 1, 0)); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.clay, 1, 32767), new ItemData(Materials.Clay, 7257600L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.hardened_clay, 1, 32767), new ItemData(Materials.Clay, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stained_hardened_clay, 1, 32767), new ItemData(Materials.Clay, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.brick_block, 1, 32767), new ItemData(Materials.Brick, 3628800L)); + GT_OreDictUnificator + .addItemData(GT_ModHandler.getIC2Item("Uran238", 1L), new ItemData(Materials.Uranium, 3628800L)); + GT_OreDictUnificator + .addItemData(GT_ModHandler.getIC2Item("Uran235", 1L), new ItemData(Materials.Uranium235, 3628800L)); + GT_OreDictUnificator + .addItemData(GT_ModHandler.getIC2Item("Plutonium", 1L), new ItemData(Materials.Plutonium, 3628800L)); + GT_OreDictUnificator + .addItemData(GT_ModHandler.getIC2Item("smallUran235", 1L), new ItemData(Materials.Uranium235, 403200L)); + GT_OreDictUnificator + .addItemData(GT_ModHandler.getIC2Item("smallPlutonium", 1L), new ItemData(Materials.Plutonium, 403200L)); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Iron.get(1L), new ItemData(Materials.Iron, 1814400L)); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Gold.get(1L), new ItemData(Materials.Gold, 1814400L)); + GT_OreDictUnificator + .addItemData(ItemList.IC2_Item_Casing_Bronze.get(1L), new ItemData(Materials.Bronze, 1814400L)); + GT_OreDictUnificator + .addItemData(ItemList.IC2_Item_Casing_Copper.get(1L), new ItemData(Materials.Copper, 1814400L)); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Tin.get(1L), new ItemData(Materials.Tin, 1814400L)); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Lead.get(1L), new ItemData(Materials.Lead, 1814400L)); + GT_OreDictUnificator + .addItemData(ItemList.IC2_Item_Casing_Steel.get(1L), new ItemData(Materials.Steel, 1814400L)); + GT_OreDictUnificator.addItemData(new ItemStack(Items.book, 1, 32767), new ItemData(Materials.Paper, 10886400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Items.written_book, 1, 32767), new ItemData(Materials.Paper, 10886400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Items.writable_book, 1, 32767), new ItemData(Materials.Paper, 10886400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Items.enchanted_book, 1, 32767), new ItemData(Materials.Paper, 10886400L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Items.golden_apple, 1, 1), + new ItemData(Materials.Gold, OrePrefixes.block.mMaterialAmount * 8L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Items.golden_apple, 1, 0), + new ItemData(Materials.Gold, OrePrefixes.ingot.mMaterialAmount * 8L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Items.golden_carrot, 1, 0), + new ItemData(Materials.Gold, OrePrefixes.nugget.mMaterialAmount * 8L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Items.speckled_melon, 1, 0), + new ItemData(Materials.Gold, OrePrefixes.nugget.mMaterialAmount * 8L)); + GT_OreDictUnificator.addItemData(new ItemStack(Items.minecart, 1), new ItemData(Materials.Iron, 18144000L)); + GT_OreDictUnificator.addItemData(new ItemStack(Items.iron_door, 1), new ItemData(Materials.Iron, 21772800L)); + GT_OreDictUnificator.addItemData(new ItemStack(Items.cauldron, 1), new ItemData(Materials.Iron, 25401600L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.iron_bars, 8, 32767), new ItemData(Materials.Iron, 10886400L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.SteelBars", 8L, 0), + new ItemData(Materials.Steel, 10886400L)); + GT_OreDictUnificator + .addItemData(GT_ModHandler.getIC2Item("ironFurnace", 1L), new ItemData(Materials.Iron, 18144000L)); + GT_OreDictUnificator.addItemData(ItemList.IC2_Food_Can_Empty.get(1L), new ItemData(Materials.Tin, 1814400L)); + GT_OreDictUnificator.addItemData(ItemList.IC2_Fuel_Rod_Empty.get(1L), new ItemData(Materials.Iron, 3628800L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.light_weighted_pressure_plate, 1, 32767), + new ItemData(Materials.Gold, 7257600L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.heavy_weighted_pressure_plate, 1, 32767), + new ItemData(Materials.Iron, 7257600L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(Railcraft.ID, "anvil", 1L, 0), + new ItemData(Materials.Steel, 108864000L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(Railcraft.ID, "anvil", 1L, 1), + new ItemData(Materials.Steel, 72576000L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(Railcraft.ID, "anvil", 1L, 2), + new ItemData(Materials.Steel, 36288000L)); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.anvil, 1, 0), new ItemData(Materials.Iron, 108864000L)); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.anvil, 1, 1), new ItemData(Materials.Iron, 72576000L)); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.anvil, 1, 2), new ItemData(Materials.Iron, 36288000L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.hopper, 1, 32767), + new ItemData(Materials.Iron, 18144000L, new MaterialStack(Materials.Wood, 29030400L))); + GT_OreDictUnificator.addItemData(ItemList.Cell_Universal_Fluid.get(1L), new ItemData(Materials.Tin, 7257600L)); + GT_OreDictUnificator.addItemData(ItemList.Cell_Empty.get(1L), new ItemData(Materials.Tin, 7257600L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.tripwire_hook, 1, 32767), + new ItemData( + Materials.Iron, + OrePrefixes.ring.mMaterialAmount * 2L, + new MaterialStack(Materials.Wood, 3628800L))); + GT_OreDictUnificator.addItemData(ItemList.Bottle_Empty.get(1L), new ItemData(Materials.Glass, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Items.potionitem, 1, 32767), new ItemData(Materials.Glass, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stained_glass, 1, 32767), new ItemData(Materials.Glass, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.glass, 1, 32767), new ItemData(Materials.Glass, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stained_glass_pane, 1, 32767), new ItemData(Materials.Glass, 1360800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.glass_pane, 1, 32767), new ItemData(Materials.Glass, 1360800L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Items.clock, 1, 32767), + new ItemData(Materials.Gold, 14515200L, new MaterialStack(Materials.Redstone, 3628800L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Items.compass, 1, 32767), + new ItemData(Materials.Iron, 14515200L, new MaterialStack(Materials.Redstone, 3628800L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Items.iron_horse_armor, 1, 32767), + new ItemData(Materials.Iron, 29030400L, new MaterialStack(Materials.Leather, 21772800L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Items.golden_horse_armor, 1, 32767), + new ItemData(Materials.Gold, 29030400L, new MaterialStack(Materials.Leather, 21772800L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Items.diamond_horse_armor, 1, 32767), + new ItemData(Materials.Diamond, 29030400L, new MaterialStack(Materials.Leather, 21772800L))); + GT_OreDictUnificator + .addItemData(new ItemStack(Items.leather, 1, 32767), new ItemData(Materials.Leather, 3628800L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.beacon, 1, 32767), + new ItemData( + Materials.NetherStar, + 3628800L, + new MaterialStack(Materials.Obsidian, 10886400L), + new MaterialStack(Materials.Glass, 18144000L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.enchanting_table, 1, 32767), + new ItemData( + Materials.Diamond, + 7257600L, + new MaterialStack(Materials.Obsidian, 14515200L), + new MaterialStack(Materials.Paper, 10886400L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.ender_chest, 1, 32767), + new ItemData(Materials.EnderEye, 3628800L, new MaterialStack(Materials.Obsidian, 29030400L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.bookshelf, 1, 32767), + new ItemData(Materials.Paper, 32659200L, new MaterialStack(Materials.Wood, 21772800L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.lever, 1, 32767), + new ItemData(Materials.Stone, 3628800L, new MaterialStack(Materials.Wood, 1814400L))); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.ice, 1, 32767), new ItemData(Materials.Ice, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.packed_ice, 1, 32767), new ItemData(Materials.Ice, 7257600L)); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.snow, 1, 32767), new ItemData(Materials.Snow, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Items.snowball, 1, 32767), new ItemData(Materials.Snow, 907200L)); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.snow_layer, 1, 32767), new ItemData(Materials.Snow, -1L)); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.sand, 1, 32767), new ItemData(Materials.Sand, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.sandstone, 1, 32767), new ItemData(Materials.Sand, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_slab, 1, 0), new ItemData(Materials.Stone, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_slab, 1, 8), new ItemData(Materials.Stone, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.double_stone_slab, 1, 0), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.double_stone_slab, 1, 8), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_slab, 1, 1), new ItemData(Materials.Sand, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_slab, 1, 9), new ItemData(Materials.Sand, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.double_stone_slab, 1, 1), new ItemData(Materials.Sand, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.double_stone_slab, 1, 9), new ItemData(Materials.Sand, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_slab, 1, 2), new ItemData(Materials.Wood, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_slab, 1, 10), new ItemData(Materials.Wood, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.double_stone_slab, 1, 2), new ItemData(Materials.Wood, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.double_stone_slab, 1, 10), new ItemData(Materials.Wood, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_slab, 1, 3), new ItemData(Materials.Stone, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_slab, 1, 11), new ItemData(Materials.Stone, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.double_stone_slab, 1, 3), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.double_stone_slab, 1, 11), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_slab, 1, 5), new ItemData(Materials.Stone, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_slab, 1, 13), new ItemData(Materials.Stone, 1814400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.double_stone_slab, 1, 5), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.double_stone_slab, 1, 13), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone, 1, 32767), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.furnace, 1, 32767), new ItemData(Materials.Stone, 29030400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.lit_furnace, 1, 32767), new ItemData(Materials.Stone, 29030400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stonebrick, 1, 32767), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.cobblestone, 1, 32767), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.mossy_cobblestone, 1, 32767), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_button, 1, 32767), new ItemData(Materials.Stone, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.stone_pressure_plate, 1, 32767), new ItemData(Materials.Stone, 7257600L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.ladder, 1, 32767), new ItemData(Materials.Wood, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.wooden_button, 1, 32767), new ItemData(Materials.Wood, 3628800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.wooden_pressure_plate, 1, 32767), new ItemData(Materials.Wood, 7257600L)); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.fence, 1, 32767), new ItemData(Materials.Wood, 5443200L)); + GT_OreDictUnificator.addItemData(new ItemStack(Items.bowl, 1, 32767), new ItemData(Materials.Wood, 3628800L)); + GT_OreDictUnificator.addItemData(new ItemStack(Items.sign, 1, 32767), new ItemData(Materials.Wood, 7257600L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Items.wooden_door, 1, 32767), new ItemData(Materials.Wood, 21772800L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.chest, 1, 32767), new ItemData(Materials.Wood, 29030400L)); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.trapped_chest, 1, 32767), new ItemData(Materials.Wood, 29030400L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.unlit_redstone_torch, 1, 32767), + new ItemData(Materials.Wood, 1814400L, new MaterialStack(Materials.Redstone, 3628800L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.redstone_torch, 1, 32767), + new ItemData(Materials.Wood, 1814400L, new MaterialStack(Materials.Redstone, 3628800L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.noteblock, 1, 32767), + new ItemData(Materials.Wood, 29030400L, new MaterialStack(Materials.Redstone, 3628800L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.jukebox, 1, 32767), + new ItemData(Materials.Wood, 29030400L, new MaterialStack(Materials.Diamond, 3628800L))); + GT_OreDictUnificator + .addItemData(new ItemStack(Blocks.crafting_table, 1, 32767), new ItemData(Materials.Wood, 14515200L)); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.piston, 1, 32767), + new ItemData(Materials.Stone, 14515200L, new MaterialStack(Materials.Wood, 10886400L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.sticky_piston, 1, 32767), + new ItemData(Materials.Stone, 14515200L, new MaterialStack(Materials.Wood, 10886400L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.dispenser, 1, 32767), + new ItemData(Materials.Stone, 25401600L, new MaterialStack(Materials.Redstone, 3628800L))); + GT_OreDictUnificator.addItemData( + new ItemStack(Blocks.dropper, 1, 32767), + new ItemData(Materials.Stone, 25401600L, new MaterialStack(Materials.Redstone, 3628800L))); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(Thaumcraft.ID, "ItemNuggetChicken", 1L, 32767), + new ItemData(Materials.MeatCooked, 403200L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(Thaumcraft.ID, "ItemNuggetBeef", 1L, 32767), + new ItemData(Materials.MeatCooked, 403200L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(Thaumcraft.ID, "ItemNuggetPork", 1L, 32767), + new ItemData(Materials.MeatCooked, 403200L)); + GT_OreDictUnificator.addItemData( + GT_ModHandler.getModItem(Thaumcraft.ID, "ItemNuggetFish", 1L, 32767), + new ItemData(Materials.MeatCooked, 403200L)); + for (ItemStack tItem : new ItemStack[] { GT_ModHandler.getModItem(TwilightForest.ID, "item.meefRaw", 1L, 0), + GT_ModHandler.getModItem(TwilightForest.ID, "item.venisonRaw", 1L, 0), new ItemStack(Items.porkchop), + new ItemStack(Items.beef), new ItemStack(Items.chicken), new ItemStack(Items.fish) }) { + if (tItem != null) { + GT_OreDictUnificator.addItemData( + GT_Utility.copyMetaData(32767, tItem), + new ItemData(Materials.MeatRaw, 3628800L, new MaterialStack(Materials.Bone, 403200L))); + } + } + for (ItemStack tItem : new ItemStack[] { GT_ModHandler.getModItem(TwilightForest.ID, "item.meefSteak", 1L, 0), + GT_ModHandler.getModItem(TwilightForest.ID, "item.venisonCooked", 1L, 0), + new ItemStack(Items.cooked_porkchop), new ItemStack(Items.cooked_beef), new ItemStack(Items.cooked_chicken), + new ItemStack(Items.cooked_fished) }) { + if (tItem != null) { + GT_OreDictUnificator.addItemData( + GT_Utility.copyMetaData(32767, tItem), + new ItemData(Materials.MeatCooked, 3628800L, new MaterialStack(Materials.Bone, 403200L))); + } + } + } +} diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java new file mode 100644 index 0000000000..a0abf686f8 --- /dev/null +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -0,0 +1,2232 @@ +package gregtech.loaders.preload; + +import static gregtech.api.enums.FluidState.GAS; +import static gregtech.api.enums.FluidState.LIQUID; +import static gregtech.api.enums.FluidState.MOLTEN; +import static gregtech.api.enums.FluidState.SLURRY; +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.PamsHarvestCraft; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.enums.Mods.TwilightForest; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidCannerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeBuilder.WILDCARD; + +import java.util.Locale; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; + +import codechicken.nei.api.API; +import cpw.mods.fml.common.event.FMLInterModComms; +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.GT_Mod; +import gregtech.api.GregTech_API; +import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsKevlar; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.fluid.GT_FluidFactory; +import gregtech.api.items.GT_Block_LongDistancePipe; +import gregtech.api.items.GT_BreederCell_Item; +import gregtech.api.items.GT_Generic_Item; +import gregtech.api.items.GT_RadioactiveCellIC_Item; +import gregtech.api.metatileentity.BaseMetaPipeEntity; +import gregtech.api.metatileentity.BaseMetaTileEntity; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.blocks.GT_Block_Casings1; +import gregtech.common.blocks.GT_Block_Casings2; +import gregtech.common.blocks.GT_Block_Casings3; +import gregtech.common.blocks.GT_Block_Casings4; +import gregtech.common.blocks.GT_Block_Casings5; +import gregtech.common.blocks.GT_Block_Casings6; +import gregtech.common.blocks.GT_Block_Casings8; +import gregtech.common.blocks.GT_Block_Casings9; +import gregtech.common.blocks.GT_Block_Concretes; +import gregtech.common.blocks.GT_Block_Drone; +import gregtech.common.blocks.GT_Block_Granites; +import gregtech.common.blocks.GT_Block_Machines; +import gregtech.common.blocks.GT_Block_Metal; +import gregtech.common.blocks.GT_Block_Ores; +import gregtech.common.blocks.GT_Block_Reinforced; +import gregtech.common.blocks.GT_Block_Stones; +import gregtech.common.blocks.GT_Cyclotron_Coils; +import gregtech.common.blocks.GT_TileEntity_Ores; +import gregtech.common.items.GT_DepletetCell_Item; +import gregtech.common.items.GT_FluidDisplayItem; +import gregtech.common.items.GT_IntegratedCircuit_Item; +import gregtech.common.items.GT_MetaGenerated_Item_01; +import gregtech.common.items.GT_MetaGenerated_Item_02; +import gregtech.common.items.GT_MetaGenerated_Item_03; +import gregtech.common.items.GT_MetaGenerated_Item_98; +import gregtech.common.items.GT_MetaGenerated_Item_99; +import gregtech.common.items.GT_MetaGenerated_Tool_01; +import gregtech.common.items.GT_NeutronReflector_Item; +import gregtech.common.items.GT_TierDrone; +import gregtech.common.items.GT_VolumetricFlask; +import gregtech.common.tileentities.render.TileDrone; + +public class GT_Loader_Item_Block_And_Fluid implements Runnable { + + @Override + public void run() { + Materials.Water.mFluid = (Materials.Ice.mFluid = GT_ModHandler.getWater(1000L) + .getFluid()); + Materials.Lava.mFluid = GT_ModHandler.getLava(1000L) + .getFluid(); + + GT_Log.out.println("GT_Mod: Register Books."); + + GT_Utility.getWrittenBook( + "Manual_Printer", + "Printer Manual V2.0", + "Gregorius Techneticies", + "This Manual explains the different Functionalities the GregTech Printing Factory has built in, which are not in NEI. Most got NEI Support now, but there is still some left without it.", + "1. Coloring Items and Blocks: You know those Crafting Recipes, which have a dye surrounded by 8 Item to dye them? Or the ones which have just one Item and one Dye in the Grid? Those two Recipe Types can be cheaply automated using the Printer.", + "The Colorization Functionality even optimizes the Recipes, which normally require 8 Items + 1 Dye to 1 Item and an 8th of the normally used Dye in Fluid Form, isn't that awesome?", + "2. Copying Books: This Task got slightly harder. The first Step is putting the written and signed Book inside the Scanner with a Data Stick ready to receive the Data.", + "Now insert the Stick into the Data Slot of the Printer and add 3 pieces of Paper together with 144 Liters of actual Ink Fluid. Water mixed and chemical Dyes won't work on Paper without messing things up!", + "You got a stack of Pages for your new Book, just put them into the Assembler with some Glue and a piece of Leather for the Binding, and you receive an identical copy of the Book, which would stack together with the original.", + "3. Renaming Items: This Functionality is no longer Part of the Printer. There is now a Name Mold for the Forming Press to imprint a Name into an Item, just rename the Mold in an Anvil and use it in the Forming Press on any Item.", + "4. Crafting of Books, Maps, Nametags etc etc etc: Those Recipes moved to other Machines, just look them up in NEI."); + + GT_Utility.getWrittenBook( + "Manual_Punch_Cards", + "Punch Card Manual V0.0", + "Gregorius Techneticies", + "This Manual will explain the Functionality of the Punch Cards, once they are fully implemented. And no, they won't be like the IRL Punch Cards. This is just a current Idea Collection.", + "(i1&&i2)?o1=15:o1=0;=10", + "ignore all Whitespace Characters, use Long for saving the Numbers", + "&& || ^^ & | ^ ! ++ -- + - % / // * ** << >> >>> < > <= >= == != ~ ( ) ?: , ; ;= ;=X; = i0 i1 i2 i3 i4 i5 o0 o1 o2 o3 o4 o5 v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 A B C D E F", + "'0' = false, 'everything but 0' = true, '!' turns '0' into '1' and everything else into '0'", + "',' is just a separator for multiple executed Codes in a row.", + "';' means that the Program waits until the next tick before continuing. ';=10' and ';=10;' both mean that it will wait 10 Ticks instead of 1. And ';=0' or anything < 0 will default to 0.", + "If the '=' Operator is used within Brackets, it returns the value the variable has been set to.", + "The Program saves the Char Index of the current Task, the 10 Variables (which reset to 0 as soon as the Program Loop stops), the 10 Member Variables and the remaining waiting Time in its NBT.", + "A = 10, B = 11, C = 12, D = 13, E = 14, F = 15, just for Hexadecimal Space saving, since Redstone has only 4 Bits.", + "For implementing Loops you just need 1 Punch Card per Loop, these Cards can restart once they are finished, depending on how many other Cards there are in the Program Loop you inserted your Card into, since it will process them procedurally.", + "A Punch Card Processor can run up to four Loops, each with the length of seven Punch Cards, parallel.", + "Why does the Punch Card need Ink to be made, you ask? Because the empty one needs to have some lines on, and the for the punched one it prints the Code to execute in a human readable format on the Card."); + + GT_Utility.getWrittenBook( + "Manual_Microwave", + "Microwave Oven Manual", + "Kitchen Industries", + "Congratulations, you inserted a random seemingly empty Book into the Microwave and these Letters appeared out of nowhere.", + "You just got a Microwave Oven and asked yourself 'why do I even need it?'. It's simple, the Microwave can cook for just 128 EU and at an insane speed. Not even a normal E-furnace can do it that fast and cheap!", + "This is the cheapest and fastest way to cook for you. That is why the Microwave Oven can be found in almost every Kitchen (see www.youwannabuyakitchen.ly).", + "Long time exposure to Microwaves can cause Cancer, but we doubt Steve lives long enough to die because of that.", + "Do not insert any Metals. It might result in an Explosion.", + "Do not dry Animals with it. It will result in a Hot Dog, no matter which Animal you put into it.", + "Do not insert inflammable Objects. The Oven will catch on Fire.", + "Do not insert Explosives such as Eggs. Just don't."); + + GT_Log.out.println("GT_Mod: Register Items."); + + new GT_IntegratedCircuit_Item(); + new GT_MetaGenerated_Item_01(); + new GT_MetaGenerated_Item_02(); + new GT_MetaGenerated_Item_03(); + // GT_MetaGenerated_Item_98 is initialized in GT_Proxy.onPostLoad() because we need to wait for fluids to be + // registered. + // Pre-initialization needs to happen before then, though, because the cell icons get deleted at some point + // between load and post-load. + GT_MetaGenerated_Item_98.preInit(); + new GT_MetaGenerated_Item_99(); + new GT_MetaGenerated_Tool_01(); + new GT_FluidDisplayItem(); + + // Tiered recipe materials actually appear to be set in GT_MetaTileEntity_BasicMachine_GT_Recipe, making these + // unused + ItemList.Rotor_LV.set(GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Tin, 1L)); + ItemList.Rotor_MV.set(GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Bronze, 1L)); + ItemList.Rotor_HV.set(GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Steel, 1L)); + ItemList.Rotor_EV.set(GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1L)); + ItemList.Rotor_IV.set(GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.TungstenSteel, 1L)); + + ItemList.VOLUMETRIC_FLASK.set(new GT_VolumetricFlask("Volumetric_Flask", "Volumetric flask", 1000)); + + Item tItem = (Item) GT_Utility.callConstructor( + "gregtech.common.items.GT_SensorCard_Item", + 0, + null, + false, + new Object[] { "sensorcard", "GregTech Sensor Card" }); + ItemList.NC_SensorCard.set( + tItem == null ? new GT_Generic_Item("sensorcard", "GregTech Sensor Card", "Nuclear Control not installed") + : tItem); + + Item advSensorCard = (Item) GT_Utility + .callConstructor("gregtech.common.items.GT_AdvancedSensorCard_Item", 0, null, false); + ItemList.NC_AdvancedSensorCard.set( + advSensorCard == null + ? new GT_Generic_Item( + "advancedsensorcard", + "GregTech Advanced Sensor Card", + "Nuclear Control not installed") + : advSensorCard); + + ItemList.Neutron_Reflector + .set(new GT_NeutronReflector_Item("neutronreflector", "Iridium Neutron Reflector", 0)); + ItemList.Reactor_Coolant_He_1 + .set(GregTech_API.constructCoolantCellItem("60k_Helium_Coolantcell", "60k He Coolant Cell", 60000)); + ItemList.Reactor_Coolant_He_3 + .set(GregTech_API.constructCoolantCellItem("180k_Helium_Coolantcell", "180k He Coolant Cell", 180000)); + ItemList.Reactor_Coolant_He_6 + .set(GregTech_API.constructCoolantCellItem("360k_Helium_Coolantcell", "360k He Coolant Cell", 360000)); + ItemList.Reactor_Coolant_NaK_1 + .set(GregTech_API.constructCoolantCellItem("60k_NaK_Coolantcell", "60k NaK Coolantcell", 60000)); + ItemList.Reactor_Coolant_NaK_3 + .set(GregTech_API.constructCoolantCellItem("180k_NaK_Coolantcell", "180k NaK Coolantcell", 180000)); + ItemList.Reactor_Coolant_NaK_6 + .set(GregTech_API.constructCoolantCellItem("360k_NaK_Coolantcell", "360k NaK Coolantcell", 360000)); + + ItemList.Reactor_Coolant_Sp_1 + .set(GregTech_API.constructCoolantCellItem("180k_Space_Coolantcell", "180k Sp Coolant Cell", 180000)); + + ItemList.Reactor_Coolant_Sp_2 + .set(GregTech_API.constructCoolantCellItem("360k_Space_Coolantcell", "360k Sp Coolant Cell", 360000)); + + ItemList.Reactor_Coolant_Sp_3 + .set(GregTech_API.constructCoolantCellItem("540k_Space_Coolantcell", "540k Sp Coolant Cell", 540000)); + + ItemList.Reactor_Coolant_Sp_6 + .set(GregTech_API.constructCoolantCellItem("1080k_Space_Coolantcell", "1080k Sp Coolant Cell", 1080000)); + + ItemList.GlowstoneCell.set( + new GT_BreederCell_Item( + "glowstoneCell", + "Glowstone Fuel Rod", + "Source of sunnarium", + 3000, + 1, + 10000, + () -> ItemList.SunnariumCell.get(1))); + ItemList.SunnariumCell.set(new GT_DepletetCell_Item("sunnariumCell", "Sunnarium Fuel Rod", 1)); + + ItemList.neutroniumHeatCapacitor.set( + GregTech_API + .constructCoolantCellItem("neutroniumHeatCapacitor", "1G Neutronium Heat Capacitor", 1000000000)); + + ItemList.Depleted_Thorium_1.set(new GT_DepletetCell_Item("ThoriumcellDep", "Fuel Rod (Depleted Thorium)", 1)); + ItemList.Depleted_Thorium_2 + .set(new GT_DepletetCell_Item("Double_ThoriumcellDep", "Dual Fuel Rod (Depleted Thorium)", 1)); // TODO + // CHECK + // num + ItemList.Depleted_Thorium_4 + .set(new GT_DepletetCell_Item("Quad_ThoriumcellDep", "Quad Fuel Rod (Depleted Thorium)", 1)); // TODO + // CHECK + // num + ItemList.ThoriumCell_1.set( + new GT_RadioactiveCellIC_Item( + "Thoriumcell", + "Fuel Rod (Thorium)", + 1, + 50000, + 0.4F, + 0, + 0.25F, + ItemList.Depleted_Thorium_1.get(1), + false)); + ItemList.ThoriumCell_2.set( + new GT_RadioactiveCellIC_Item( + "Double_Thoriumcell", + "Dual Fuel Rod (Thorium)", + 2, + 50000, + 0.4F, + 0, + 0.25F, + ItemList.Depleted_Thorium_2.get(1), + false)); + ItemList.ThoriumCell_4.set( + new GT_RadioactiveCellIC_Item( + "Quad_Thoriumcell", + "Quad Fuel Rod (Thorium)", + 4, + 50000, + 0.4F, + 0, + 0.25F, + ItemList.Depleted_Thorium_4.get(1), + false)); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Depleted_Thorium_1.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lutetium, 2L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L)) + .duration(25 * SECONDS) + .eut(48) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Depleted_Thorium_2.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 2L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 3L)) + .duration(25 * SECONDS) + .eut(48) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Depleted_Thorium_4.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 2L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 6L)) + .duration(25 * SECONDS) + .eut(48) + .addTo(thermalCentrifugeRecipes); + + ItemList.Depleted_Naquadah_1 + .set(new GT_DepletetCell_Item("NaquadahcellDep", "Fuel Rod (Depleted Naquadah)", 1)); + ItemList.Depleted_Naquadah_2 + .set(new GT_DepletetCell_Item("Double_NaquadahcellDep", "Dual Fuel Rod (Depleted Naquadah)", 1)); + ItemList.Depleted_Naquadah_4 + .set(new GT_DepletetCell_Item("Quad_NaquadahcellDep", "Quad Fuel Rod (Depleted Naquadah)", 1)); + ItemList.NaquadahCell_1.set( + new GT_RadioactiveCellIC_Item( + "Naquadahcell", + "Fuel Rod (Naquadah)", + 1, + 100000, + 4F, + 1, + 1F, + ItemList.Depleted_Naquadah_1.get(1), + false)); + ItemList.NaquadahCell_2.set( + new GT_RadioactiveCellIC_Item( + "Double_Naquadahcell", + "Dual Fuel Rod (Naquadah)", + 2, + 100000, + 4F, + 1, + 1F, + ItemList.Depleted_Naquadah_2.get(1), + false)); + ItemList.NaquadahCell_4.set( + new GT_RadioactiveCellIC_Item( + "Quad_Naquadahcell", + "Quad Fuel Rod (Naquadah)", + 4, + 100000, + 4F, + 1, + 1F, + ItemList.Depleted_Naquadah_4.get(1), + false)); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Depleted_Naquadah_1.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Naquadria, 2L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.NaquadahEnriched, 2L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 8L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 1L)) + .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) + .duration(25 * SECONDS) + .eut(2000) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Depleted_Naquadah_2.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 2L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 2L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.NaquadahEnriched, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 18L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 2L)) + .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) + .duration(50 * SECONDS) + .eut(2000) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Depleted_Naquadah_4.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 2L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.NaquadahEnriched, 8L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 38L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 4L)) + .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) + .duration(100 * SECONDS) + .eut(2000) + .addTo(centrifugeRecipes); + + ItemList.Depleted_MNq_1.set(new GT_DepletetCell_Item("MNqCellDep", "Fuel Rod (Depleted Nq*)", 1)); + ItemList.Depleted_MNq_2.set(new GT_DepletetCell_Item("Double_MNqCellDep", "Dual Fuel Rod (Depleted Nq*)", 1)); + ItemList.Depleted_MNq_4.set(new GT_DepletetCell_Item("Quad_MNqCellDep", "Quad Fuel Rod (Depleted Nq*)", 1)); + ItemList.MNqCell_1.set( + new GT_RadioactiveCellIC_Item( + "MNqCell", + "Fuel Rod (Nq* - MOX like behaviour)", + 1, + 100000, + 4F, + 1, + 1F, + ItemList.Depleted_MNq_1.get(1), + true)); + ItemList.MNqCell_2.set( + new GT_RadioactiveCellIC_Item( + "Double_MNqCell", + "Dual Fuel Rod (Nq* - MOX like behaviour)", + 2, + 100000, + 4F, + 1, + 1F, + ItemList.Depleted_MNq_2.get(1), + true)); + ItemList.MNqCell_4.set( + new GT_RadioactiveCellIC_Item( + "Quad_MNqCell", + "Quad Fuel Rod (Nq* - MOX like behaviour)", + 4, + 100000, + 4F, + 1, + 1F, + ItemList.Depleted_MNq_4.get(1), + true)); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Depleted_MNq_1.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.NaquadahEnriched, 2L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Naquadria, 2L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 8L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 1L)) + .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) + .duration(25 * SECONDS) + .eut(2000) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Depleted_MNq_2.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 2L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 2L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NaquadahEnriched, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Naquadria, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 18L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 2L)) + .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) + .duration(50 * SECONDS) + .eut(2000) + .addTo(centrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Depleted_MNq_4.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NaquadahEnriched, 2L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Naquadria, 8L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 38L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 4L)) + .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) + .duration(100 * SECONDS) + .eut(2000) + .addTo(centrifugeRecipes); + + ItemList.Uraniumcell_1.set( + new GT_RadioactiveCellIC_Item( + "reactorUraniumSimple", + "Fuel Rod (Uranium)", + 1, + 20000, + 2F, + 1, + 1F, + GT_ModHandler.getIC2Item("reactorDepletedUraniumSimple", 1), + false)); + ItemList.Uraniumcell_2.set( + new GT_RadioactiveCellIC_Item( + "reactorUraniumDual", + "Dual Fuel Rod (Uranium)", + 2, + 20000, + 2F, + 1, + 1F, + GT_ModHandler.getIC2Item("reactorDepletedUraniumDual", 1), + false)); + ItemList.Uraniumcell_4.set( + new GT_RadioactiveCellIC_Item( + "reactorUraniumQuad", + "Quad Fuel Rod (Uranium)", + 4, + 20000, + 2F, + 1, + 1F, + GT_ModHandler.getIC2Item("reactorDepletedUraniumQuad", 1), + false)); + ItemList.Moxcell_1.set( + new GT_RadioactiveCellIC_Item( + "reactorMOXSimple", + "Fuel Rod (Mox)", + 1, + 10000, + 2F, + 1, + 1F, + GT_ModHandler.getIC2Item("reactorDepletedMOXSimple", 1), + true)); + ItemList.Moxcell_2.set( + new GT_RadioactiveCellIC_Item( + "reactorMOXDual", + "Dual Fuel Rod (Mox)", + 2, + 10000, + 2F, + 1, + 1F, + GT_ModHandler.getIC2Item("reactorDepletedMOXDual", 1), + true)); + ItemList.Moxcell_4.set( + new GT_RadioactiveCellIC_Item( + "reactorMOXQuad", + "Quad Fuel Rod (Mox)", + 4, + 10000, + 2F, + 1, + 1F, + GT_ModHandler.getIC2Item("reactorDepletedMOXQuad", 1), + true)); + + GT_Log.out.println("GT_Mod: Adding Blocks."); + GregTech_API.sBlockMachines = new GT_Block_Machines(); + GregTech_API.sBlockCasings1 = new GT_Block_Casings1(); + GregTech_API.sBlockCasings2 = new GT_Block_Casings2(); + GregTech_API.sBlockCasings3 = new GT_Block_Casings3(); + GregTech_API.sBlockCasings4 = new GT_Block_Casings4(); + GregTech_API.sBlockCasings5 = new GT_Block_Casings5(); + GregTech_API.sBlockCasings6 = new GT_Block_Casings6(); + GregTech_API.sBlockCasings8 = new GT_Block_Casings8(); + GregTech_API.sBlockCasings9 = new GT_Block_Casings9(); + GregTech_API.sBlockGranites = new GT_Block_Granites(); + GregTech_API.sBlockLongDistancePipes = new GT_Block_LongDistancePipe(); + GregTech_API.sBlockConcretes = new GT_Block_Concretes(); + GregTech_API.sBlockStones = new GT_Block_Stones(); + GregTech_API.sBlockOres1 = new GT_Block_Ores(); + GregTech_API.sDroneRender = new GT_Block_Drone(); + // meta ID order, DO NOT CHANGE ORDER + + GregTech_API.sBlockMetal1 = new GT_Block_Metal( + "gt.blockmetal1", + new Materials[] { Materials.Adamantium, Materials.Aluminium, Materials.Americium, Materials.AnnealedCopper, + Materials.Antimony, Materials.Arsenic, Materials.AstralSilver, Materials.BatteryAlloy, + Materials.Beryllium, Materials.Bismuth, Materials.BismuthBronze, Materials.BlackBronze, + Materials.BlackSteel, Materials.BlueAlloy, Materials.BlueSteel, Materials.Brass }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS1); + + GregTech_API.sBlockMetal2 = new GT_Block_Metal( + "gt.blockmetal2", + new Materials[] { Materials.Bronze, Materials.Caesium, Materials.Cerium, Materials.Chrome, + Materials.ChromiumDioxide, Materials.Cobalt, Materials.CobaltBrass, Materials.Copper, + Materials.Cupronickel, Materials.DamascusSteel, Materials.DarkIron, Materials.DeepIron, Materials.Desh, + Materials.Duranium, Materials.Dysprosium, Materials.Electrum }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS2); + + GregTech_API.sBlockMetal3 = new GT_Block_Metal( + "gt.blockmetal3", + new Materials[] { Materials.ElectrumFlux, Materials.Enderium, Materials.Erbium, Materials.Europium, + Materials.FierySteel, Materials.Gadolinium, Materials.Gallium, Materials.Holmium, Materials.HSLA, + Materials.Indium, Materials.InfusedGold, Materials.Invar, Materials.Iridium, Materials.IronMagnetic, + Materials.IronWood, Materials.Kanthal }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS3); + + GregTech_API.sBlockMetal4 = new GT_Block_Metal( + "gt.blockmetal4", + new Materials[] { Materials.Knightmetal, Materials.Lanthanum, Materials.Lead, Materials.Lutetium, + Materials.Magnalium, Materials.Magnesium, Materials.Manganese, Materials.MeteoricIron, + Materials.MeteoricSteel, Materials.Trinium, Materials.Mithril, Materials.Molybdenum, Materials.Naquadah, + Materials.NaquadahAlloy, Materials.NaquadahEnriched, Materials.Naquadria }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS4); + + GregTech_API.sBlockMetal5 = new GT_Block_Metal( + "gt.blockmetal5", + new Materials[] { Materials.Neodymium, Materials.NeodymiumMagnetic, Materials.Neutronium, + Materials.Nichrome, Materials.Nickel, Materials.Niobium, Materials.NiobiumNitride, + Materials.NiobiumTitanium, Materials.Osmiridium, Materials.Osmium, Materials.Palladium, + Materials.PigIron, Materials.Platinum, Materials.Plutonium, Materials.Plutonium241, + Materials.Praseodymium }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS5); + + GregTech_API.sBlockMetal6 = new GT_Block_Metal( + "gt.blockmetal6", + new Materials[] { Materials.Promethium, Materials.RedAlloy, Materials.RedSteel, Materials.RoseGold, + Materials.Rubidium, Materials.Samarium, Materials.Scandium, Materials.ShadowIron, Materials.ShadowSteel, + Materials.Silicon, Materials.Silver, Materials.SolderingAlloy, Materials.StainlessSteel, + Materials.Steel, Materials.SteelMagnetic, Materials.SterlingSilver }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS6); + + GregTech_API.sBlockMetal7 = new GT_Block_Metal( + "gt.blockmetal7", + new Materials[] { Materials.Sunnarium, Materials.Tantalum, Materials.Tellurium, Materials.Terbium, + Materials.Thaumium, Materials.Thorium, Materials.Thulium, Materials.Tin, Materials.TinAlloy, + Materials.Titanium, Materials.Tritanium, Materials.Tungsten, Materials.TungstenSteel, Materials.Ultimet, + Materials.Uranium, Materials.Uranium235 }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS7); + + GregTech_API.sBlockMetal8 = new GT_Block_Metal( + "gt.blockmetal8", + new Materials[] { Materials.Vanadium, Materials.VanadiumGallium, Materials.WroughtIron, Materials.Ytterbium, + Materials.Yttrium, Materials.YttriumBariumCuprate, Materials.Zinc, Materials.TungstenCarbide, + Materials.VanadiumSteel, Materials.HSSG, Materials.HSSE, Materials.HSSS, Materials.Steeleaf, + Materials.Ichorium, Materials.Firestone, Materials.Shadow }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS8); + + GregTech_API.sBlockGem1 = new GT_Block_Metal( + "gt.blockgem1", + new Materials[] { Materials.InfusedAir, Materials.Amber, Materials.Amethyst, Materials.InfusedWater, + Materials.BlueTopaz, Materials.CertusQuartz, Materials.Dilithium, Materials.EnderEye, + Materials.EnderPearl, Materials.FoolsRuby, Materials.Force, Materials.Forcicium, Materials.Forcillium, + Materials.GreenSapphire, Materials.InfusedFire, Materials.Jasper }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS9); + + GregTech_API.sBlockGem2 = new GT_Block_Metal( + "gt.blockgem2", + new Materials[] { Materials.Lazurite, Materials.Lignite, Materials.Monazite, Materials.Niter, + Materials.Olivine, Materials.Opal, Materials.InfusedOrder, Materials.InfusedEntropy, + Materials.TricalciumPhosphate, Materials.Quartzite, Materials.GarnetRed, Materials.Ruby, + Materials.Sapphire, Materials.Sodalite, Materials.Tanzanite, Materials.InfusedEarth }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS10); + + GregTech_API.sBlockGem3 = new GT_Block_Metal( + "gt.blockgem3", + new Materials[] { Materials.Topaz, Materials.Vinteum, Materials.GarnetYellow, Materials.NetherStar, + Materials.Charcoal, Materials.Blaze }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS11); + + GregTech_API.sBlockMetal9 = new GT_Block_Metal( + "gt.blockmetal9", + new Materials[] { Materials.Cryolite, Materials.SiliconSG, MaterialsKevlar.NickelAluminide, + MaterialsUEVplus.SpaceTime, MaterialsUEVplus.TranscendentMetal, Materials.Oriharukon, + MaterialsUEVplus.WhiteDwarfMatter, MaterialsUEVplus.BlackDwarfMatter, MaterialsUEVplus.Universium, + MaterialsUEVplus.Eternity, MaterialsUEVplus.MagMatter }, + OrePrefixes.block, + gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS12); + + GregTech_API.sBlockReinforced = new GT_Block_Reinforced("gt.blockreinforced"); + + GT_Log.out.println("GT_Mod: Register TileEntities."); + + BaseMetaTileEntity tBaseMetaTileEntity = GregTech_API.constructBaseMetaTileEntity(); + + GT_Log.out.println("GT_Mod: Registering the BaseMetaTileEntity."); + GameRegistry.registerTileEntity(tBaseMetaTileEntity.getClass(), "BaseMetaTileEntity"); + FMLInterModComms.sendMessage( + AppliedEnergistics2.ID, + "whitelist-spatial", + tBaseMetaTileEntity.getClass() + .getName()); + + GT_Log.out.println("GT_Mod: Registering the DroneRender."); + GameRegistry.registerTileEntity(TileDrone.class, "DroneRender"); + + GT_Log.out.println("GT_Mod: Registering the BaseMetaPipeEntity."); + GameRegistry.registerTileEntity(BaseMetaPipeEntity.class, "BaseMetaPipeEntity"); + FMLInterModComms.sendMessage(AppliedEnergistics2.ID, "whitelist-spatial", BaseMetaPipeEntity.class.getName()); + + GT_Log.out.println("GT_Mod: Registering the Ore TileEntity."); + GameRegistry.registerTileEntity(GT_TileEntity_Ores.class, "GT_TileEntity_Ores"); + FMLInterModComms.sendMessage(AppliedEnergistics2.ID, "whitelist-spatial", GT_TileEntity_Ores.class.getName()); + + GT_Log.out.println("GT_Mod: Registering Fluids."); + Materials.ConstructionFoam.mFluid = GT_Utility + .getFluidForFilledItem(GT_ModHandler.getIC2Item("CFCell", 1L), true) + .getFluid(); + Materials.UUMatter.mFluid = GT_Utility.getFluidForFilledItem(GT_ModHandler.getIC2Item("uuMatterCell", 1L), true) + .getFluid(); + + GT_FluidFactory.builder("Air") + .withLocalizedName("Air") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Air) + .registerContainers(ItemList.Cell_Air.get(1L), ItemList.Cell_Empty.get(1L), 2000); + GT_FluidFactory.builder("LiquidOxygen") + .withLocalizedName("Liquid Oxygen") + .withStateAndTemperature(GAS, 60) + .buildAndRegister() + .configureMaterials(Materials.LiquidOxygen) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidOxygen, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("LiquidNitrogen") + .withLocalizedName("Liquid Nitrogen") + .withStateAndTemperature(GAS, 77) + .buildAndRegister() + .configureMaterials(Materials.LiquidNitrogen) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidNitrogen, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("LiquidAir") + .withLocalizedName("Liquid Air") + .withStateAndTemperature(LIQUID, 77) + .buildAndRegister() + .configureMaterials(Materials.LiquidAir) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidAir, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Oxygen") + .withLocalizedName("Oxygen") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Oxygen) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Hydrogen") + .withLocalizedName("Hydrogen") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Hydrogen) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Deuterium") + .withLocalizedName("Deuterium") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Deuterium) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Deuterium, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Tritium") + .withLocalizedName("Tritium") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Tritium) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Tritium, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Helium") + .withLocalizedName("Helium") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Helium) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Argon") + .withLocalizedName("Argon") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Argon) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Argon, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Radon") + .withLocalizedName("Radon") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Radon) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Radon, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder("Fluorine") + .withLocalizedName("Fluorine") + .withStateAndTemperature(GAS, 53) + .buildAndRegister() + .configureMaterials(Materials.Fluorine) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fluorine, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Titaniumtetrachloride") + .withLocalizedName("Titaniumtetrachloride") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Titaniumtetrachloride) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Titaniumtetrachloride, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Helium-3") + .withLocalizedName("Helium-3") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Helium_3) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium_3, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Methane") + .withLocalizedName("Methane") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Methane) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Methane, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Nitrogen") + .withLocalizedName("Nitrogen") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Nitrogen) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("NitrogenDioxide") + .withLocalizedName("Nitrogen Dioxide") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.NitrogenDioxide) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NitrogenDioxide, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Steam") + .withLocalizedName("Steam") + .withStateAndTemperature(GAS, 375) + .buildAndRegister() + .configureMaterials(Materials.Water) + .registerBContainers(GT_ModHandler.getIC2Item("steamCell", 1), Materials.Empty.getCells(1)); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Empty.getCells(1)) + .itemOutputs(GT_ModHandler.getIC2Item("steamCell", 1)) + .fluidInputs(GT_ModHandler.getSteam(1000)) + .duration(16 * TICKS) + .eut(1) + .addTo(fluidCannerRecipes); + + Materials.Ice.mGas = Materials.Water.mGas; + Materials.Water.mGas.setTemperature(375) + .setGaseous(true); + + ItemList.sOilExtraHeavy = GT_FluidFactory.of("liquid_extra_heavy_oil", "Very Heavy Oil", LIQUID, 295); + ItemList.sEpichlorhydrin = GT_FluidFactory.builder("liquid_epichlorhydrin") + .withLocalizedName("Epichlorohydrin") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Epichlorohydrin) + .registerBContainers(Materials.Epichlorohydrin.getCells(1), Materials.Empty.getCells(1)) + .asFluid(); + ItemList.sDrillingFluid = GT_FluidFactory.of("liquid_drillingfluid", "Drilling Fluid", LIQUID, 295); + ItemList.sToluene = GT_FluidFactory.builder("liquid_toluene") + .withLocalizedName("Toluene") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Toluene) + .registerBContainers(Materials.Toluene.getCells(1), Materials.Empty.getCells(1)) + .asFluid(); + ItemList.sNitrationMixture = GT_FluidFactory.builder("liquid_nitrationmixture") + .withLocalizedName("Nitration Mixture") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.NitrationMixture) + .registerBContainers(Materials.NitrationMixture.getCells(1), Materials.Empty.getCells(1)) + .asFluid(); + + GT_FluidFactory.builder("liquid_heavy_oil") + .withLocalizedName("Heavy Oil") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.OilHeavy) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.OilHeavy, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("liquid_medium_oil") + .withLocalizedName("Raw Oil") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.OilMedium) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.OilMedium, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("liquid_light_oil") + .withLocalizedName("Light Oil") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.OilLight) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.OilLight, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("gas_natural_gas") + .withLocalizedName("Natural Gas") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.NatruralGas) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NatruralGas, 1L), + ItemList.Cell_Empty.get(1L)); + ItemList.sHydricSulfur = GT_FluidFactory.builder("liquid_hydricsulfur") + .withLocalizedName("Hydrogen Sulfide") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.HydricSulfide) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HydricSulfide, 1L), + ItemList.Cell_Empty.get(1L)) + .asFluid(); + GT_FluidFactory.builder("gas_sulfuricgas") + .withLocalizedName("Sulfuric Gas") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.SulfuricGas) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricGas, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("gas_gas") + .withLocalizedName("Refinery Gas") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Gas) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Gas, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("liquid_sulfuricnaphtha") + .withLocalizedName("Sulfuric Naphtha") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.SulfuricNaphtha) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricNaphtha, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("liquid_sufluriclight_fuel") + .withLocalizedName("Sulfuric Light Fuel") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.SulfuricLightFuel) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricLightFuel, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("liquid_sulfuricheavy_fuel") + .withLocalizedName("Sulfuric Heavy Fuel") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.SulfuricHeavyFuel) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricHeavyFuel, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("liquid_naphtha") + .withLocalizedName("Naphtha") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Naphtha) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Naphtha, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("liquid_light_fuel") + .withLocalizedName("Light Fuel") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.LightFuel) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LightFuel, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("liquid_heavy_fuel") + .withLocalizedName("Heavy Fuel") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.HeavyFuel) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HeavyFuel, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("liquid_lpg") + .withLocalizedName("LPG") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.LPG) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LPG, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("charcoal_byproducts") + .withTextureName("molten.autogenerated") + .withLocalizedName("Charcoal Byproducts") + .withColorRGBA(Materials.CharcoalByproducts.mRGBa) + .withStateAndTemperature(GAS, 775) + .buildAndRegister() + .configureMaterials(Materials.CharcoalByproducts) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.CharcoalByproducts, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("molten.bisphenol_a") + .withTextureName("molten.autogenerated") + .withLocalizedName("Molten Bisphenol A") + .withColorRGBA(Materials.BisphenolA.mRGBa) + .withStateAndTemperature(LIQUID, 432) + .buildAndRegister() + .configureMaterials(Materials.BisphenolA) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.BisphenolA, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder("UUAmplifier") + .withLocalizedName("UU Amplifier") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.UUAmplifier) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.UUAmplifier, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Chlorine") + .withLocalizedName("Chlorine") + .withStateAndTemperature(GAS, 295) + .buildAndRegister() + .configureMaterials(Materials.Chlorine) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Chlorine, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Mercury") + .withLocalizedName("Mercury") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Mercury) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Mercury, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("NitroFuel") + .withLocalizedName("Cetane-Boosted Diesel") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.NitroFuel) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NitroFuel, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("SodiumPersulfate") + .withLocalizedName("Sodium Persulfate") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.SodiumPersulfate) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SodiumPersulfate, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("Glyceryl") + .withLocalizedName("Glyceryl Trinitrate") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Glyceryl) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glyceryl, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder("lubricant") + .withLocalizedName("Lubricant") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Lubricant) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Lubricant, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("creosote") + .withLocalizedName("Creosote Oil") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Creosote) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Creosote, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("seedoil") + .withLocalizedName("Seed Oil") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.SeedOil) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SeedOil, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("fishoil") + .withLocalizedName("Fish Oil") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.FishOil) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.FishOil, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("oil") + .withLocalizedName("Oil") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Oil) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("fuel") + .withLocalizedName("Diesel") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Fuel) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("for.honey") + .withLocalizedName("Honey") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Honey) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Honey, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("biomass") + .withLocalizedName("Biomass") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Biomass) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Biomass, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("bioethanol") + .withLocalizedName("Bio Ethanol") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Ethanol) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ethanol, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("sulfuricacid") + .withLocalizedName("Sulfuric Acid") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.SulfuricAcid) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricAcid, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("milk") + .withLocalizedName("Milk") + .withStateAndTemperature(LIQUID, 290) + .buildAndRegister() + .configureMaterials(Materials.Milk) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Milk, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("mcguffium") + .withLocalizedName("Mc Guffium 239") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.McGuffium239) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.McGuffium239, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("refinedGlue") + .withLocalizedName("Refined Glue") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Glue) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glue, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("hotfryingoil") + .withLocalizedName("Hot Frying Oil") + .withStateAndTemperature(LIQUID, 400) + .buildAndRegister() + .configureMaterials(Materials.FryingOilHot) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.FryingOilHot, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder("DimensionallyTranscendentResidue") + .withLocalizedName("Dimensionally Transcendent Residue") + .withStateAndTemperature(LIQUID, 2000000000) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.DimensionallyTranscendentResidue) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.DimensionallyTranscendentResidue, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("ExcitedDTCC") + .withLocalizedName("Excited Dimensionally Transcendent Crude Catalyst") + .withStateAndTemperature(LIQUID, 500000000) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.ExcitedDTCC) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.ExcitedDTCC, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("ExcitedDTPC") + .withLocalizedName("Excited Dimensionally Transcendent Prosaic Catalyst") + .withStateAndTemperature(LIQUID, 500000000) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.ExcitedDTPC) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.ExcitedDTPC, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("ExcitedDTRC") + .withLocalizedName("Excited Dimensionally Transcendent Resplendent Catalyst") + .withStateAndTemperature(LIQUID, 500000000) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.ExcitedDTRC) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.ExcitedDTRC, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("ExcitedDTEC") + .withLocalizedName("Excited Dimensionally Transcendent Exotic Catalyst") + .withStateAndTemperature(LIQUID, 500000000) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.ExcitedDTEC) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.ExcitedDTEC, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("ExcitedDTSC") + .withLocalizedName("Excited Dimensionally Transcendent Stellar Catalyst") + .withStateAndTemperature(LIQUID, 500000000) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.ExcitedDTSC) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.ExcitedDTSC, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder(MaterialsUEVplus.RawStarMatter.mName) + .withLocalizedName(MaterialsUEVplus.RawStarMatter.mLocalizedName) + .withStateAndTemperature(LIQUID, 10_000_000) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.RawStarMatter) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.RawStarMatter, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder(MaterialsUEVplus.Space.mName) + .withLocalizedName(MaterialsUEVplus.Space.mLocalizedName) + .withStateAndTemperature(MOLTEN, 0) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.Space) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.Space, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder(MaterialsUEVplus.Time.mName) + .withLocalizedName(MaterialsUEVplus.Time.mLocalizedName) + .withStateAndTemperature(MOLTEN, 0) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.Time) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.Time, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder("PrimordialMatter") + .withLocalizedName(MaterialsUEVplus.PrimordialMatter.mLocalizedName) + .withStateAndTemperature(LIQUID, 2_000_000_000) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.PrimordialMatter) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.PrimordialMatter, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder("QuarkGluonPlasma") + .withLocalizedName(MaterialsUEVplus.QuarkGluonPlasma.mLocalizedName) + .withStateAndTemperature(LIQUID, 2_000_000_000) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.QuarkGluonPlasma) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.QuarkGluonPlasma, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder("fieryblood") + .withLocalizedName("Fiery Blood") + .withStateAndTemperature(LIQUID, 6400) + .buildAndRegister() + .configureMaterials(Materials.FierySteel) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.FierySteel, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder("holywater") + .withLocalizedName("Holy Water") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.HolyWater) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HolyWater, 1L), + ItemList.Cell_Empty.get(1L)); + if (ItemList.TF_Vial_FieryBlood.get(1L) != null) { + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + Materials.FierySteel.getFluid(250L), + ItemList.TF_Vial_FieryBlood.get(1L), + ItemList.Bottle_Empty.get(1L))); + } + + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + Materials.Milk.getFluid(1000L), + GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Milk, 1L), + GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Empty, 1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + Materials.Milk.getFluid(250L), + ItemList.Bottle_Milk.get(1L), + ItemList.Bottle_Empty.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + Materials.HolyWater.getFluid(250L), + ItemList.Bottle_Holy_Water.get(1L), + ItemList.Bottle_Empty.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + Materials.McGuffium239.getFluid(250L), + ItemList.McGuffium_239.get(1L), + ItemList.Bottle_Empty.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + Materials.Fuel.getFluid(100L), + ItemList.Tool_Lighter_Invar_Full.get(1L), + ItemList.Tool_Lighter_Invar_Empty.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + Materials.Fuel.getFluid(1000L), + ItemList.Tool_Lighter_Platinum_Full.get(1L), + ItemList.Tool_Lighter_Platinum_Empty.get(1L))); + + Dyes.dyeBlack.addFluidDye(GT_FluidFactory.of("squidink", "Squid Ink", LIQUID, 295)); + Dyes.dyeBlue.addFluidDye(GT_FluidFactory.of("indigo", "Indigo Dye", LIQUID, 295)); + for (byte i = 0; i < Dyes.VALUES.length; i = (byte) (i + 1)) { + Dyes tDye = Dyes.VALUES[i]; + tDye.addFluidDye( + GT_FluidFactory.builder( + "dye.watermixed." + tDye.name() + .toLowerCase(Locale.ENGLISH)) + .withTextureName("dyes") + .withLocalizedName("Water Mixed " + tDye.mName + " Dye") + .withColorRGBA(tDye.getRGBA()) + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .asFluid()); + tDye.addFluidDye( + GT_FluidFactory.builder( + "dye.chemical." + tDye.name() + .toLowerCase(Locale.ENGLISH)) + .withTextureName("dyes") + .withLocalizedName("Chemical " + tDye.mName + " Dye") + .withColorRGBA(tDye.getRGBA()) + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerContainers(ItemList.SPRAY_CAN_DYES[i].get(1L), ItemList.Spray_Empty.get(1L), 2304) + .asFluid()); + } + GT_FluidFactory.builder("ice") + .withLocalizedName("Crushed Ice") + .withStateAndTemperature(SLURRY, 270) + .buildAndRegister() + .configureMaterials(Materials.Ice) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ice, 1L), + ItemList.Cell_Empty.get(1L)); + Materials.Water.mSolid = Materials.Ice.mSolid; + + GT_FluidFactory.builder("molten.glass") + .withLocalizedName("Molten Glass") + .withStateAndTemperature(MOLTEN, 1500) + .buildAndRegister() + .configureMaterials(Materials.Glass) + .registerContainers( + GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Glass, 1L), + ItemList.Cell_Empty.get(1L), + 144); + GT_FluidFactory.builder("molten.redstone") + .withLocalizedName("Molten Redstone") + .withStateAndTemperature(MOLTEN, 500) + .buildAndRegister() + .configureMaterials(Materials.Redstone) + .registerContainers( + GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Redstone, 1L), + ItemList.Cell_Empty.get(1L), + 144); + GT_FluidFactory.builder("molten.blaze") + .withLocalizedName("Molten Blaze") + .withStateAndTemperature(MOLTEN, 6400) + .buildAndRegister() + .configureMaterials(Materials.Blaze) + .registerContainers( + GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Blaze, 1L), + ItemList.Cell_Empty.get(1L), + 144); + GT_FluidFactory.builder("wet.concrete") + .withLocalizedName("Wet Concrete") + .withStateAndTemperature(MOLTEN, 300) + .buildAndRegister() + .configureMaterials(Materials.Concrete) + .registerContainers( + GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Concrete, 1L), + ItemList.Cell_Empty.get(1L), + 144); + + for (Materials tMaterial : Materials.values()) { + if ((tMaterial.mStandardMoltenFluid == null) && (tMaterial.contains(SubTag.SMELTING_TO_FLUID)) + && (!tMaterial.contains(SubTag.NO_SMELTING))) { + GT_Mod.gregtechproxy.addAutogeneratedMoltenFluid(tMaterial); + if ((tMaterial.mSmeltInto != tMaterial) && (tMaterial.mSmeltInto.mStandardMoltenFluid == null)) { + GT_Mod.gregtechproxy.addAutogeneratedMoltenFluid(tMaterial.mSmeltInto); + } + } + if (tMaterial.mElement != null) { + GT_Mod.gregtechproxy.addAutogeneratedPlasmaFluid(tMaterial); + } + if (tMaterial.hasCorrespondingFluid()) { + GT_Mod.gregtechproxy.addAutoGeneratedCorrespondingFluid(tMaterial); + } + if (tMaterial.hasCorrespondingGas()) { + GT_Mod.gregtechproxy.addAutoGeneratedCorrespondingGas(tMaterial); + } + if (tMaterial.canBeCracked()) { + GT_Mod.gregtechproxy.addAutoGeneratedHydroCrackedFluids(tMaterial); + GT_Mod.gregtechproxy.addAutoGeneratedSteamCrackedFluids(tMaterial); + } + } + + GT_FluidFactory.builder("potion.awkward") + .withLocalizedName("Awkward Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.thick") + .withLocalizedName("Thick Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 32), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.mundane") + .withLocalizedName("Mundane Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 64), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.damage") + .withLocalizedName("Harming Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8204), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.damage.strong") + .withLocalizedName("Strong Harming Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8236), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.damage.splash") + .withLocalizedName("Splash Harming Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16396), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.damage.strong.splash") + .withLocalizedName("Strong Splash Harming Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16428), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.health") + .withLocalizedName("Healing Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8197), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.health.strong") + .withLocalizedName("Strong Healing Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8229), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.health.splash") + .withLocalizedName("Splash Healing Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16389), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.health.strong.splash") + .withLocalizedName("Strong Splash Healing Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16421), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.speed") + .withLocalizedName("Swiftness Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8194), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.speed.strong") + .withLocalizedName("Strong Swiftness Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8226), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.speed.long") + .withLocalizedName("Stretched Swiftness Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8258), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.speed.splash") + .withLocalizedName("Splash Swiftness Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16386), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.speed.strong.splash") + .withLocalizedName("Strong Splash Swiftness Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16418), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.speed.long.splash") + .withLocalizedName("Stretched Splash Swiftness Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16450), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.strength") + .withLocalizedName("Strength Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8201), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.strength.strong") + .withLocalizedName("Strong Strength Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8233), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.strength.long") + .withLocalizedName("Stretched Strength Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8265), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.strength.splash") + .withLocalizedName("Splash Strength Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16393), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.strength.strong.splash") + .withLocalizedName("Strong Splash Strength Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16425), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.strength.long.splash") + .withLocalizedName("Stretched Splash Strength Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16457), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.regen") + .withLocalizedName("Regenerating Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8193), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.regen.strong") + .withLocalizedName("Strong Regenerating Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8225), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.regen.long") + .withLocalizedName("Stretched Regenerating Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8257), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.regen.splash") + .withLocalizedName("Splash Regenerating Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16385), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.regen.strong.splash") + .withLocalizedName("Strong Splash Regenerating Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16417), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.regen.long.splash") + .withLocalizedName("Stretched Splash Regenerating Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16449), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.poison") + .withLocalizedName("Poisonous Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8196), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.poison.strong") + .withLocalizedName("Strong Poisonous Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8228), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.poison.long") + .withLocalizedName("Stretched Poisonous Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8260), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.poison.splash") + .withLocalizedName("Splash Poisonous Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16388), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.poison.strong.splash") + .withLocalizedName("Strong Splash Poisonous Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16420), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.poison.long.splash") + .withLocalizedName("Stretched Splash Poisonous Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16452), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.fireresistance") + .withLocalizedName("Fire Resistant Brew") + .withStateAndTemperature(LIQUID, 375) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8195), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.fireresistance.long") + .withLocalizedName("Stretched Fire Resistant Brew") + .withStateAndTemperature(LIQUID, 375) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8259), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.fireresistance.splash") + .withLocalizedName("Splash Fire Resistant Brew") + .withStateAndTemperature(LIQUID, 375) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16387), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.fireresistance.long.splash") + .withLocalizedName("Stretched Splash Fire Resistant Brew") + .withStateAndTemperature(LIQUID, 375) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16451), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.nightvision") + .withLocalizedName("Night Vision Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8198), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.nightvision.long") + .withLocalizedName("Stretched Night Vision Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8262), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.nightvision.splash") + .withLocalizedName("Splash Night Vision Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16390), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.nightvision.long.splash") + .withLocalizedName("Stretched Splash Night Vision Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16454), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.weakness") + .withLocalizedName("Weakening Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8200), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.weakness.long") + .withLocalizedName("Stretched Weakening Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8264), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.weakness.splash") + .withLocalizedName("Splash Weakening Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16392), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.weakness.long.splash") + .withLocalizedName("Stretched Splash Weakening Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16456), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.slowness") + .withLocalizedName("Lame Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8202), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.slowness.long") + .withLocalizedName("Stretched Lame Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8266), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.slowness.splash") + .withLocalizedName("Splash Lame Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16394), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.slowness.long.splash") + .withLocalizedName("Stretched Splash Lame Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16458), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.waterbreathing") + .withLocalizedName("Fishy Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8205), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.waterbreathing.long") + .withLocalizedName("Stretched Fishy Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8269), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.waterbreathing.splash") + .withLocalizedName("Splash Fishy Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16397), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.waterbreathing.long.splash") + .withLocalizedName("Stretched Splash Fishy Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16461), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.invisibility") + .withLocalizedName("Invisible Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8206), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.invisibility.long") + .withLocalizedName("Stretched Invisible Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 8270), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.invisibility.splash") + .withLocalizedName("Splash Invisible Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16398), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.invisibility.long.splash") + .withLocalizedName("Stretched Splash Invisible Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(new ItemStack(Items.potionitem, 1, 16462), ItemList.Bottle_Empty.get(1L)); + + GT_FluidFactory.builder("potion.purpledrink") + .withLocalizedName("Purple Drink") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Purple_Drink.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.grapejuice") + .withLocalizedName("Grape Juice") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Grape_Juice.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.wine") + .withLocalizedName("Wine") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Wine.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.vinegar") + .withLocalizedName("Vinegar") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .configureMaterials(Materials.Vinegar) + .registerPContainers(ItemList.Bottle_Vinegar.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.potatojuice") + .withLocalizedName("Potato Juice") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Potato_Juice.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.vodka") + .withLocalizedName("Vodka") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Vodka.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.leninade") + .withLocalizedName("Leninade") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Leninade.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.mineralwater") + .withLocalizedName("Mineral Water") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Mineral_Water.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.saltywater") + .withLocalizedName("Salty Water") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Salty_Water.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.reedwater") + .withLocalizedName("Reed Water") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Reed_Water.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.rum") + .withLocalizedName("Rum") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Rum.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.piratebrew") + .withLocalizedName("Pirate Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Pirate_Brew.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.hopsjuice") + .withLocalizedName("Hops Juice") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Hops_Juice.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.darkbeer") + .withLocalizedName("Dark Beer") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Dark_Beer.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.dragonblood") + .withLocalizedName("Dragon Blood") + .withStateAndTemperature(LIQUID, 375) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Dragon_Blood.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.wheatyjuice") + .withLocalizedName("Wheaty Juice") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Wheaty_Juice.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.scotch") + .withLocalizedName("Scotch") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Scotch.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.glenmckenner") + .withLocalizedName("Glen McKenner") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Glen_McKenner.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.wheatyhopsjuice") + .withLocalizedName("Wheaty Hops Juice") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Wheaty_Hops_Juice.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.beer") + .withLocalizedName("Beer") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Beer.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.chillysauce") + .withLocalizedName("Chilly Sauce") + .withStateAndTemperature(LIQUID, 375) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Chilly_Sauce.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.hotsauce") + .withLocalizedName("Hot Sauce") + .withStateAndTemperature(LIQUID, 380) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Hot_Sauce.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.diabolosauce") + .withLocalizedName("Diabolo Sauce") + .withStateAndTemperature(LIQUID, 385) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Diabolo_Sauce.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.diablosauce") + .withLocalizedName("Diablo Sauce") + .withStateAndTemperature(LIQUID, 390) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Diablo_Sauce.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.diablosauce.strong") + .withLocalizedName("Old Man Snitches glitched Diablo Sauce") + .withStateAndTemperature(LIQUID, 999) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Snitches_Glitch_Sauce.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.applejuice") + .withLocalizedName("Apple Juice") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Apple_Juice.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.cider") + .withLocalizedName("Cider") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Cider.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.goldenapplejuice") + .withLocalizedName("Golden Apple Juice") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Golden_Apple_Juice.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.goldencider") + .withLocalizedName("Golden Cider") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Golden_Cider.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.idunsapplejuice") + .withLocalizedName("Idun's Apple Juice") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Iduns_Apple_Juice.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.notchesbrew") + .withLocalizedName("Notches Brew") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Notches_Brew.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.lemonjuice") + .withLocalizedName("Lemon Juice") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Lemon_Juice.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.limoncello") + .withLocalizedName("Limoncello") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Limoncello.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.lemonade") + .withLocalizedName("Lemonade") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Lemonade.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.alcopops") + .withLocalizedName("Alcopops") + .withStateAndTemperature(LIQUID, 275) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Alcopops.get(1L), ItemList.Bottle_Empty.get(1L)); + GT_FluidFactory.builder("potion.cavejohnsonsgrenadejuice") + .withLocalizedName("Cave Johnsons Grenade Juice") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.Bottle_Cave_Johnsons_Grenade_Juice.get(1L), ItemList.Bottle_Empty.get(1L)); + + GT_FluidFactory.builder("potion.darkcoffee") + .withLocalizedName("Dark Coffee") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.ThermosCan_Dark_Coffee.get(1L), ItemList.ThermosCan_Empty.get(1L)); + GT_FluidFactory.builder("potion.darkcafeaulait") + .withLocalizedName("Dark Cafe au lait") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.ThermosCan_Dark_Cafe_au_lait.get(1L), ItemList.ThermosCan_Empty.get(1L)); + GT_FluidFactory.builder("potion.coffee") + .withLocalizedName("Coffee") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.ThermosCan_Coffee.get(1L), ItemList.ThermosCan_Empty.get(1L)); + GT_FluidFactory.builder("potion.cafeaulait") + .withLocalizedName("Cafe au lait") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.ThermosCan_Cafe_au_lait.get(1L), ItemList.ThermosCan_Empty.get(1L)); + GT_FluidFactory.builder("potion.laitaucafe") + .withLocalizedName("Lait au cafe") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.ThermosCan_Lait_au_cafe.get(1L), ItemList.ThermosCan_Empty.get(1L)); + GT_FluidFactory.builder("potion.darkchocolatemilk") + .withLocalizedName("Bitter Chocolate Milk") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.ThermosCan_Dark_Chocolate_Milk.get(1L), ItemList.ThermosCan_Empty.get(1L)); + GT_FluidFactory.builder("potion.chocolatemilk") + .withLocalizedName("Chocolate Milk") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.ThermosCan_Chocolate_Milk.get(1L), ItemList.ThermosCan_Empty.get(1L)); + GT_FluidFactory.builder("potion.tea") + .withLocalizedName("Tea") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.ThermosCan_Tea.get(1L), ItemList.ThermosCan_Empty.get(1L)); + GT_FluidFactory.builder("potion.sweettea") + .withLocalizedName("Sweet Tea") + .withStateAndTemperature(LIQUID, 295) + .buildAndRegister() + .registerPContainers(ItemList.ThermosCan_Sweet_Tea.get(1L), ItemList.ThermosCan_Empty.get(1L)); + GT_FluidFactory.builder("potion.icetea") + .withLocalizedName("Ice Tea") + .withStateAndTemperature(LIQUID, 255) + .buildAndRegister() + .registerPContainers(ItemList.ThermosCan_Ice_Tea.get(1L), ItemList.ThermosCan_Empty.get(1L)); + GT_FluidFactory.builder("liquid_sodium") + .withLocalizedName("Liquid Sodium") + .withStateAndTemperature(LIQUID, 495) + .buildAndRegister() + .configureMaterials(Materials.Sodium) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Sodium, 1L), + ItemList.Cell_Empty.get(1L)); + + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.poison.strong", 750), + ItemList.IC2_Spray_WeedEx.get(1L), + ItemList.Spray_Empty.get(1L))); + + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.poison", 125), + ItemList.Arrow_Head_Glass_Poison.get(1L), + ItemList.Arrow_Head_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.poison.long", 125), + ItemList.Arrow_Head_Glass_Poison_Long.get(1L), + ItemList.Arrow_Head_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.poison.strong", 125), + ItemList.Arrow_Head_Glass_Poison_Strong.get(1L), + ItemList.Arrow_Head_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.slowness", 125), + ItemList.Arrow_Head_Glass_Slowness.get(1L), + ItemList.Arrow_Head_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.slowness.long", 125), + ItemList.Arrow_Head_Glass_Slowness_Long.get(1L), + ItemList.Arrow_Head_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.weakness", 125), + ItemList.Arrow_Head_Glass_Weakness.get(1L), + ItemList.Arrow_Head_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.weakness.long", 125), + ItemList.Arrow_Head_Glass_Weakness_Long.get(1L), + ItemList.Arrow_Head_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("holywater", 125), + ItemList.Arrow_Head_Glass_Holy_Water.get(1L), + ItemList.Arrow_Head_Glass_Emtpy.get(1L))); + + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.poison", 125), + ItemList.Arrow_Wooden_Glass_Poison.get(1L), + ItemList.Arrow_Wooden_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.poison.long", 125), + ItemList.Arrow_Wooden_Glass_Poison_Long.get(1L), + ItemList.Arrow_Wooden_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.poison.strong", 125), + ItemList.Arrow_Wooden_Glass_Poison_Strong.get(1L), + ItemList.Arrow_Wooden_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.slowness", 125), + ItemList.Arrow_Wooden_Glass_Slowness.get(1L), + ItemList.Arrow_Wooden_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.slowness.long", 125), + ItemList.Arrow_Wooden_Glass_Slowness_Long.get(1L), + ItemList.Arrow_Wooden_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.weakness", 125), + ItemList.Arrow_Wooden_Glass_Weakness.get(1L), + ItemList.Arrow_Wooden_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.weakness.long", 125), + ItemList.Arrow_Wooden_Glass_Weakness_Long.get(1L), + ItemList.Arrow_Wooden_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("holywater", 125), + ItemList.Arrow_Wooden_Glass_Holy_Water.get(1L), + ItemList.Arrow_Wooden_Glass_Emtpy.get(1L))); + + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.poison", 125), + ItemList.Arrow_Plastic_Glass_Poison.get(1L), + ItemList.Arrow_Plastic_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.poison.long", 125), + ItemList.Arrow_Plastic_Glass_Poison_Long.get(1L), + ItemList.Arrow_Plastic_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.poison.strong", 125), + ItemList.Arrow_Plastic_Glass_Poison_Strong.get(1L), + ItemList.Arrow_Plastic_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.slowness", 125), + ItemList.Arrow_Plastic_Glass_Slowness.get(1L), + ItemList.Arrow_Plastic_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.slowness.long", 125), + ItemList.Arrow_Plastic_Glass_Slowness_Long.get(1L), + ItemList.Arrow_Plastic_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.weakness", 125), + ItemList.Arrow_Plastic_Glass_Weakness.get(1L), + ItemList.Arrow_Plastic_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("potion.weakness.long", 125), + ItemList.Arrow_Plastic_Glass_Weakness_Long.get(1L), + ItemList.Arrow_Plastic_Glass_Emtpy.get(1L))); + FluidContainerRegistry.registerFluidContainer( + new FluidContainerRegistry.FluidContainerData( + FluidRegistry.getFluidStack("holywater", 125), + ItemList.Arrow_Plastic_Glass_Holy_Water.get(1L), + ItemList.Arrow_Plastic_Glass_Emtpy.get(1L))); + if (!GT_Values.D1) { + try { + Class.forName("codechicken.nei.api.API"); + GT_Log.out.println("GT_Mod: Hiding certain Items from NEI."); + API.hideItem(ItemList.Display_Fluid.getWildcard(1L)); + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } + } + } + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.cobblestone, 1, WILDCARD)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.gravel, 1, WILDCARD)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), new ItemStack(Items.flint, 1)) + .outputChances(10000, 1000) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.furnace, 1, WILDCARD)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 8L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.lit_furnace, 1, WILDCARD)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 8L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + + GT_OreDictUnificator.set( + OrePrefixes.ingot, + Materials.FierySteel, + GT_ModHandler.getModItem(TwilightForest.ID, "item.fieryIngot", 1L, 0)); + GT_OreDictUnificator.set( + OrePrefixes.ingot, + Materials.Knightmetal, + GT_ModHandler.getModItem(TwilightForest.ID, "item.knightMetal", 1L, 0)); + GT_OreDictUnificator.set( + OrePrefixes.ingot, + Materials.Steeleaf, + GT_ModHandler.getModItem(TwilightForest.ID, "item.steeleafIngot", 1L, 0)); + GT_OreDictUnificator.set( + OrePrefixes.ingot, + Materials.IronWood, + GT_ModHandler.getModItem(TwilightForest.ID, "item.ironwoodIngot", 1L, 0)); + GT_OreDictUnificator + .set(OrePrefixes.gem, Materials.InfusedAir, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemShard", 1L, 0)); + GT_OreDictUnificator + .set(OrePrefixes.gem, Materials.InfusedFire, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemShard", 1L, 1)); + GT_OreDictUnificator + .set(OrePrefixes.gem, Materials.InfusedWater, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemShard", 1L, 2)); + GT_OreDictUnificator + .set(OrePrefixes.gem, Materials.InfusedEarth, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemShard", 1L, 3)); + GT_OreDictUnificator + .set(OrePrefixes.gem, Materials.InfusedOrder, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemShard", 1L, 4)); + GT_OreDictUnificator.set( + OrePrefixes.gem, + Materials.InfusedEntropy, + GT_ModHandler.getModItem(Thaumcraft.ID, "ItemShard", 1L, 5)); + GT_OreDictUnificator + .set(OrePrefixes.nugget, Materials.Mercury, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemNugget", 1L, 5)); + GT_OreDictUnificator + .set(OrePrefixes.nugget, Materials.Thaumium, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemNugget", 1L, 6)); + GT_OreDictUnificator + .set(OrePrefixes.ingot, Materials.Thaumium, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1L, 2)); + GT_OreDictUnificator + .set(OrePrefixes.gem, Materials.Mercury, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1L, 3)); + GT_OreDictUnificator + .set(OrePrefixes.gem, Materials.Amber, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1L, 6)); + GT_OreDictUnificator + .set(OrePrefixes.gem, Materials.Firestone, GT_ModHandler.getModItem(Railcraft.ID, "firestone.raw", 1L)); + + GT_OreDictUnificator + .set(OrePrefixes.nugget, Materials.Void, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemNugget", 1L, 7)); + GT_OreDictUnificator + .set(OrePrefixes.ingot, Materials.Void, GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1L, 16)); + + if (GregTech_API.sUnification + .get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateIron", true)) { + GT_OreDictUnificator + .set(OrePrefixes.plate, Materials.Iron, GT_ModHandler.getModItem(Railcraft.ID, "part.plate", 1L, 0)); + } else { + GT_OreDictUnificator.set( + OrePrefixes.plate, + Materials.Iron, + GT_ModHandler.getModItem(Railcraft.ID, "part.plate", 1L, 0), + false, + false); + } + + if (GregTech_API.sUnification + .get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateSteel", true)) { + GT_OreDictUnificator + .set(OrePrefixes.plate, Materials.Steel, GT_ModHandler.getModItem(Railcraft.ID, "part.plate", 1L, 1)); + } else { + GT_OreDictUnificator.set( + OrePrefixes.plate, + Materials.Steel, + GT_ModHandler.getModItem(Railcraft.ID, "part.plate", 1L, 1), + false, + false); + } + + if (GregTech_API.sUnification + .get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateTinAlloy", true)) { + GT_OreDictUnificator.set( + OrePrefixes.plate, + Materials.TinAlloy, + GT_ModHandler.getModItem(Railcraft.ID, "part.plate", 1L, 2)); + } else { + GT_OreDictUnificator.set( + OrePrefixes.plate, + Materials.TinAlloy, + GT_ModHandler.getModItem(Railcraft.ID, "part.plate", 1L, 2), + false, + false); + } + + if (GregTech_API.sUnification + .get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateCopper", true)) { + GT_OreDictUnificator + .set(OrePrefixes.plate, Materials.Copper, GT_ModHandler.getModItem(Railcraft.ID, "part.plate", 1L, 3)); + } else { + GT_OreDictUnificator.set( + OrePrefixes.plate, + Materials.Copper, + GT_ModHandler.getModItem(Railcraft.ID, "part.plate", 1L, 3), + false, + false); + } + + GT_OreDictUnificator.set( + OrePrefixes.dust, + Materials.Cocoa, + GT_ModHandler.getModItem(PamsHarvestCraft.ID, "cocoapowderItem", 1L, 0)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Coffee, ItemList.IC2_CoffeePowder.get(1L)); + + GregTech_API + .registerMachineBlock(GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("reinforcedGlass", 0)), 0); + + GregTech_API.sSolenoidCoilCasings = new GT_Cyclotron_Coils(); + ItemList.TierdDrone0 + .set(new GT_TierDrone("tierdDrone0", "Drone (Level 1)", "Quadcopter Stable Small Aircraft", 1)); + ItemList.TierdDrone1 + .set(new GT_TierDrone("tierdDrone1", "Drone (Level 2)", "Dual Turbo High-Ejection Medium Aircraft", 2)); + ItemList.TierdDrone2 + .set(new GT_TierDrone("tierdDrone2", "Drone (Level 3)", "Single Engine Anti-Gravity Large Aircraft", 3)); + + } +} diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java new file mode 100644 index 0000000000..d1196552c6 --- /dev/null +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -0,0 +1,4307 @@ +package gregtech.loaders.preload; + +import static gregtech.api.enums.MetaTileEntityIDs.ADVANCED_DATA_ACCESS_HATCH; +import static gregtech.api.enums.MetaTileEntityIDs.ADVANCED_DEBUG_STRUCTURE_WRITTER; +import static gregtech.api.enums.MetaTileEntityIDs.ADVANCED_SEISMIC_PROSPECTOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ADVANCED_SEISMIC_PROSPECTOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ADVANCED_SEISMIC_PROSPECTOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ADVANCED_SEISMIC_PROSPECTOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ASSEMBLING_LINE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.AUTOMATABLE_DATA_ACCESS_HATCH; +import static gregtech.api.enums.MetaTileEntityIDs.AUTO_MAINTENANCE_HATCH; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_1_BY_1_EV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_1_BY_1_HV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_1_BY_1_IV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_1_BY_1_LV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_1_BY_1_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_1_BY_1_MV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_1_BY_1_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_1_BY_1_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_1_BY_1_UV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_1_BY_1_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_2_BY_2_EV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_2_BY_2_HV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_2_BY_2_IV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_2_BY_2_LV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_2_BY_2_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_2_BY_2_MV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_2_BY_2_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_2_BY_2_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_2_BY_2_UV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_2_BY_2_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_3_BY_3_EV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_3_BY_3_HV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_3_BY_3_IV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_3_BY_3_LV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_3_BY_3_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_3_BY_3_MV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_3_BY_3_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_3_BY_3_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_3_BY_3_UV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_3_BY_3_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_4_BY_4_EV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_4_BY_4_HV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_4_BY_4_IV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_4_BY_4_LV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_4_BY_4_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_4_BY_4_MV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_4_BY_4_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_4_BY_4_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_4_BY_4_UV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_BUFFER_4_BY_4_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_CHARGER_4_BY_4_EV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_CHARGER_4_BY_4_HV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_CHARGER_4_BY_4_IV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_CHARGER_4_BY_4_LV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_CHARGER_4_BY_4_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_CHARGER_4_BY_4_MV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_CHARGER_4_BY_4_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_CHARGER_4_BY_4_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_CHARGER_4_BY_4_UV; +import static gregtech.api.enums.MetaTileEntityIDs.BATTERY_CHARGER_4_BY_4_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.BREWERY_EV; +import static gregtech.api.enums.MetaTileEntityIDs.BREWERY_HV; +import static gregtech.api.enums.MetaTileEntityIDs.BREWERY_IV; +import static gregtech.api.enums.MetaTileEntityIDs.BREWERY_LV; +import static gregtech.api.enums.MetaTileEntityIDs.BREWERY_MV; +import static gregtech.api.enums.MetaTileEntityIDs.BRICKED_BLAST_FURNACE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.CHARCOAL_PILE_IGNITER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.CLEANROOM_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.COMBUSTION_ENGINE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.COMBUSTION_GENERATOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.COMBUSTION_GENERATOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.COMBUSTION_GENERATOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.CONCRETE_BACKFILLER_II_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.CONCRETE_BACKFILLER_I_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.CRAFTING_INPUT_ME; +import static gregtech.api.enums.MetaTileEntityIDs.CRAFTING_INPUT_ME_BUS; +import static gregtech.api.enums.MetaTileEntityIDs.CRAFTING_INPUT_SLAVE; +import static gregtech.api.enums.MetaTileEntityIDs.DATA_ACCESS_HATCH; +import static gregtech.api.enums.MetaTileEntityIDs.DISTILLATION_TOWER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.DTPF_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_EV; +import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_HV; +import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_IV; +import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_LV; +import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_MV; +import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_UV; +import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.DroneDownLink; +import static gregtech.api.enums.MetaTileEntityIDs.Drone_Centre; +import static gregtech.api.enums.MetaTileEntityIDs.EBF_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_UV; +import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.EXTREME_COMBUSTION_ENGINE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.FUSION_CONTROLLER_MKI; +import static gregtech.api.enums.MetaTileEntityIDs.FUSION_CONTROLLER_MKII; +import static gregtech.api.enums.MetaTileEntityIDs.FUSION_CONTROLLER_MKIII; +import static gregtech.api.enums.MetaTileEntityIDs.GAS_TURBINE_EV; +import static gregtech.api.enums.MetaTileEntityIDs.GAS_TURBINE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.GAS_TURBINE_IV; +import static gregtech.api.enums.MetaTileEntityIDs.GAS_TURBINE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.GAS_TURBINE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.HIGH_PRESSURE_COAL_BOILER; +import static gregtech.api.enums.MetaTileEntityIDs.HIGH_PRESSURE_LAVA_BOILER; +import static gregtech.api.enums.MetaTileEntityIDs.HIGH_PRESSURE_SOLAR_BOILER; +import static gregtech.api.enums.MetaTileEntityIDs.HP_STEAM_ALLOY_SMELTER; +import static gregtech.api.enums.MetaTileEntityIDs.HP_STEAM_COMPRESSOR; +import static gregtech.api.enums.MetaTileEntityIDs.HP_STEAM_EXTRACTOR; +import static gregtech.api.enums.MetaTileEntityIDs.HP_STEAM_FORGE_HAMMER; +import static gregtech.api.enums.MetaTileEntityIDs.HP_STEAM_FURNACE; +import static gregtech.api.enums.MetaTileEntityIDs.HP_STEAM_MACERATOR; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_BRICKED_BRONZE; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_BRONZE; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_EV; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_HV; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_IV; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_LV; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_MV; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_STEEL; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_UV; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_WROUGHT_IRON; +import static gregtech.api.enums.MetaTileEntityIDs.HULL_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.IMPLOSION_COMPRESSOR_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.INDUSTRIAL_APIARY; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_EV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_HV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_IV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_LV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_ME; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_ME_ADVANCED; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_MV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_UV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_EV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_HV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_IV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_LV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_ME; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_ME_ADVANCED; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_MV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_UV; +import static gregtech.api.enums.MetaTileEntityIDs.INPUT_HATCH_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.INTEGRATED_ORE_FACTORY_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_DISTRIBUTOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_DISTRIBUTOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_DISTRIBUTOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_DISTRIBUTOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_DISTRIBUTOR_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_DISTRIBUTOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_DISTRIBUTOR_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_DISTRIBUTOR_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_DISTRIBUTOR_UV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_DISTRIBUTOR_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_FILTER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_FILTER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_FILTER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_FILTER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_FILTER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_FILTER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_FILTER_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_FILTER_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_FILTER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.ITEM_FILTER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.LARGE_ADVANCED_GAS_TURBINE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LARGE_BRONZE_BOILER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LARGE_GAS_TURBINE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LARGE_HEAT_EXCHANGER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LARGE_HP_STEAM_TURBINE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LARGE_PLASMA_TURBINE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LARGE_STEAM_TURBINE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LARGE_STEEL_BOILER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LARGE_TITANIUM_BOILER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LARGE_TUNGSTENSTEEL_BOILER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LCR_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.LIGHTNING_ROD_EV; +import static gregtech.api.enums.MetaTileEntityIDs.LIGHTNING_ROD_HV; +import static gregtech.api.enums.MetaTileEntityIDs.LIGHTNING_ROD_IV; +import static gregtech.api.enums.MetaTileEntityIDs.LOCKER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.LOCKER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.LOCKER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.LOCKER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.LOCKER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.LOCKER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.LOCKER_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.LOCKER_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.LOCKER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.LOCKER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.LONG_DISTANCE_PIPELINE_FLUID; +import static gregtech.api.enums.MetaTileEntityIDs.LONG_DISTANCE_PIPELINE_ITEM; +import static gregtech.api.enums.MetaTileEntityIDs.MAGIC_ENERGY_ABSORBER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.MAGIC_ENERGY_ABSORBER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MAGIC_ENERGY_ABSORBER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.MAGIC_ENERGY_ABSORBER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.MAGIC_ENERGY_CONVERTER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MAGIC_ENERGY_CONVERTER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.MAGIC_ENERGY_CONVERTER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.MAINTENANCE_HATCH; +import static gregtech.api.enums.MetaTileEntityIDs.MASS_FABRICATOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.MASS_FABRICATOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MASS_FABRICATOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.MASS_FABRICATOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.MASS_FABRICATOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_ENERGY_TRANSMITTER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_ENERGY_TRANSMITTER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_ENERGY_TRANSMITTER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_ENERGY_TRANSMITTER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_ENERGY_TRANSMITTER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.MICROWAVE_ENERGY_TRANSMITTER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.MINER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MINER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.MINER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.MONSTER_REPELLATOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.MONSTER_REPELLATOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MONSTER_REPELLATOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.MONSTER_REPELLATOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.MONSTER_REPELLATOR_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.MONSTER_REPELLATOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.MONSTER_REPELLATOR_UV; +import static gregtech.api.enums.MetaTileEntityIDs.MONSTER_REPELLATOR_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.MUFFLER_HATCH_EV; +import static gregtech.api.enums.MetaTileEntityIDs.MUFFLER_HATCH_HV; +import static gregtech.api.enums.MetaTileEntityIDs.MUFFLER_HATCH_IV; +import static gregtech.api.enums.MetaTileEntityIDs.MUFFLER_HATCH_LV; +import static gregtech.api.enums.MetaTileEntityIDs.MUFFLER_HATCH_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.MUFFLER_HATCH_MV; +import static gregtech.api.enums.MetaTileEntityIDs.MUFFLER_HATCH_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.MUFFLER_HATCH_UV; +import static gregtech.api.enums.MetaTileEntityIDs.MUFFLER_HATCH_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.MULTIBLOCK_PUMP_INFINITE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.MULTIBLOCK_PUMP_MKI_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.MULTILOCK_PUMP_MKIII_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.MULTILOCK_PUMP_MKII_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.MULTILOCK_PUMP_MKIV_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.MULTI_SMELTER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.NANO_FORGE_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.NAQUADAH_REACTOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.NAQUADAH_REACTOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.NAQUADAH_REACTOR_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.NAQUADAH_REACTOR_UV; +import static gregtech.api.enums.MetaTileEntityIDs.NAQUADAH_REACTOR_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.OIL_CRACKER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.ORE_DRILL_MKIII_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.ORE_DRILL_MKII_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.ORE_DRILL_MKIV_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.ORE_DRILL_MKI_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_EV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_HV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_IV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_LV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_ME; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_MV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_UV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_BUS_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_EV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_HV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_IV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_LV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_ME; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_MV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_UV; +import static gregtech.api.enums.MetaTileEntityIDs.OUTPUT_HATCH_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.PACKAGER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.PACKAGER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.PACKAGER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.PACKAGER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.PACKAGER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.PACKAGER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.PACKAGER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.PACKAGER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.PCB_FACTORY_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.PLASMA_GENERATOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.PLASMA_GENERATOR_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.PLASMA_GENERATOR_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.PROCESSING_ARRAY_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.PUMP_EV; +import static gregtech.api.enums.MetaTileEntityIDs.PUMP_HV; +import static gregtech.api.enums.MetaTileEntityIDs.PUMP_IV; +import static gregtech.api.enums.MetaTileEntityIDs.PUMP_LV; +import static gregtech.api.enums.MetaTileEntityIDs.PUMP_MV; +import static gregtech.api.enums.MetaTileEntityIDs.PYROLYSE_OVEN_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_EV; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_IV; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_MAX; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_UEV; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_UIV; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_UMV; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_UV; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_UXV; +import static gregtech.api.enums.MetaTileEntityIDs.QUADRUPLE_INPUT_HATCHES_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.QUANTUM_CHEST_EV; +import static gregtech.api.enums.MetaTileEntityIDs.QUANTUM_CHEST_HV; +import static gregtech.api.enums.MetaTileEntityIDs.QUANTUM_CHEST_IV; +import static gregtech.api.enums.MetaTileEntityIDs.QUANTUM_CHEST_LV; +import static gregtech.api.enums.MetaTileEntityIDs.QUANTUM_CHEST_MV; +import static gregtech.api.enums.MetaTileEntityIDs.QUANTUM_TANK_EV; +import static gregtech.api.enums.MetaTileEntityIDs.QUANTUM_TANK_HV; +import static gregtech.api.enums.MetaTileEntityIDs.QUANTUM_TANK_IV; +import static gregtech.api.enums.MetaTileEntityIDs.QUANTUM_TANK_LV; +import static gregtech.api.enums.MetaTileEntityIDs.QUANTUM_TANK_MV; +import static gregtech.api.enums.MetaTileEntityIDs.RECIPE_FILTER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.RECIPE_FILTER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.RECIPE_FILTER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.RECIPE_FILTER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.RECIPE_FILTER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.RECIPE_FILTER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.RECIPE_FILTER_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.RECIPE_FILTER_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.RECIPE_FILTER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.RECIPE_FILTER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.REPLICATOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.REPLICATOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.REPLICATOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.REPLICATOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.REPLICATOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.ROCK_BREAKER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.ROCK_BREAKER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.ROCK_BREAKER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.ROCK_BREAKER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.ROCK_BREAKER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.SCANNER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.SCANNER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.SCANNER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.SCANNER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.SCANNER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.SIMPLE_SOLAR_BOILER; +import static gregtech.api.enums.MetaTileEntityIDs.SMALL_COAL_BOILER; +import static gregtech.api.enums.MetaTileEntityIDs.STEAM_ALLOY_SMELTER; +import static gregtech.api.enums.MetaTileEntityIDs.STEAM_COMPRESSOR; +import static gregtech.api.enums.MetaTileEntityIDs.STEAM_EXTRACTOR; +import static gregtech.api.enums.MetaTileEntityIDs.STEAM_FORGE_HAMMER; +import static gregtech.api.enums.MetaTileEntityIDs.STEAM_FURNACE; +import static gregtech.api.enums.MetaTileEntityIDs.STEAM_MACERATOR; +import static gregtech.api.enums.MetaTileEntityIDs.STEAM_TURBINE_HV; +import static gregtech.api.enums.MetaTileEntityIDs.STEAM_TURBINE_LV; +import static gregtech.api.enums.MetaTileEntityIDs.STEAM_TURBINE_MV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_BUFFER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_BUFFER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_BUFFER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_BUFFER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_BUFFER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_BUFFER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_BUFFER_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_BUFFER_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_BUFFER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_BUFFER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_CHEST_EV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_CHEST_HV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_CHEST_IV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_CHEST_LV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_CHEST_MV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_TANK_EV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_TANK_HV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_TANK_IV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_TANK_LV; +import static gregtech.api.enums.MetaTileEntityIDs.SUPER_TANK_MV; +import static gregtech.api.enums.MetaTileEntityIDs.TELEPORTER; +import static gregtech.api.enums.MetaTileEntityIDs.TRANSCENDENT_PLASMA_MIXER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.TYPE_FILTER_EV; +import static gregtech.api.enums.MetaTileEntityIDs.TYPE_FILTER_HV; +import static gregtech.api.enums.MetaTileEntityIDs.TYPE_FILTER_IV; +import static gregtech.api.enums.MetaTileEntityIDs.TYPE_FILTER_LV; +import static gregtech.api.enums.MetaTileEntityIDs.TYPE_FILTER_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.TYPE_FILTER_MV; +import static gregtech.api.enums.MetaTileEntityIDs.TYPE_FILTER_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.TYPE_FILTER_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.TYPE_FILTER_UV; +import static gregtech.api.enums.MetaTileEntityIDs.TYPE_FILTER_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.VACUUM_FREEZER_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.VOLTAGE_REGULATOR_EV; +import static gregtech.api.enums.MetaTileEntityIDs.VOLTAGE_REGULATOR_HV; +import static gregtech.api.enums.MetaTileEntityIDs.VOLTAGE_REGULATOR_IV; +import static gregtech.api.enums.MetaTileEntityIDs.VOLTAGE_REGULATOR_LV; +import static gregtech.api.enums.MetaTileEntityIDs.VOLTAGE_REGULATOR_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.VOLTAGE_REGULATOR_MV; +import static gregtech.api.enums.MetaTileEntityIDs.VOLTAGE_REGULATOR_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.VOLTAGE_REGULATOR_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.VOLTAGE_REGULATOR_UV; +import static gregtech.api.enums.MetaTileEntityIDs.VOLTAGE_REGULATOR_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_EV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_HV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_IV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_LV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_MAX; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_MV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_UEV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_UIV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_UMV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_UV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_UXV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_DYNAMO_ENERGY_HATCH_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_EV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_HV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_IV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_LV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_LuV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_MAX; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_MV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_UEV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_UHV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_UIV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_UMV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_UV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_UXV; +import static gregtech.api.enums.MetaTileEntityIDs.WIRELESS_HATCH_ENERGY_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.transformer_EV_HV; +import static gregtech.api.enums.MetaTileEntityIDs.transformer_HV_MV; +import static gregtech.api.enums.MetaTileEntityIDs.transformer_IV_EV; +import static gregtech.api.enums.MetaTileEntityIDs.transformer_LV_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.transformer_LuV_IV; +import static gregtech.api.enums.MetaTileEntityIDs.transformer_MV_LV; +import static gregtech.api.enums.MetaTileEntityIDs.transformer_UHV_UV; +import static gregtech.api.enums.MetaTileEntityIDs.transformer_UV_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.transformer_ZPM_LuV; +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; + +import net.minecraft.util.EnumChatFormatting; + +import gregtech.GT_Mod; +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Cable; +import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid; +import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Frame; +import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Item; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicBatteryBuffer; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicHull; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_DataAccess; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_MultiInput; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_QuadrupleHumongous; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Transformer; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Wireless_Dynamo; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Wireless_Hatch; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.common.tileentities.automation.GT_MetaTileEntity_ChestBuffer; +import gregtech.common.tileentities.automation.GT_MetaTileEntity_Filter; +import gregtech.common.tileentities.automation.GT_MetaTileEntity_ItemDistributor; +import gregtech.common.tileentities.automation.GT_MetaTileEntity_RecipeFilter; +import gregtech.common.tileentities.automation.GT_MetaTileEntity_Regulator; +import gregtech.common.tileentities.automation.GT_MetaTileEntity_SuperBuffer; +import gregtech.common.tileentities.automation.GT_MetaTileEntity_TypeFilter; +import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Bronze; +import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Lava; +import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Solar; +import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Solar_Steel; +import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Steel; +import gregtech.common.tileentities.debug.GT_MetaTileEntity_AdvDebugStructureWriter; +import gregtech.common.tileentities.generators.GT_MetaTileEntity_DieselGenerator; +import gregtech.common.tileentities.generators.GT_MetaTileEntity_GasTurbine; +import gregtech.common.tileentities.generators.GT_MetaTileEntity_LightningRod; +import gregtech.common.tileentities.generators.GT_MetaTileEntity_MagicEnergyConverter; +import gregtech.common.tileentities.generators.GT_MetaTileEntity_MagicalEnergyAbsorber; +import gregtech.common.tileentities.generators.GT_MetaTileEntity_NaquadahReactor; +import gregtech.common.tileentities.generators.GT_MetaTileEntity_PlasmaGenerator; +import gregtech.common.tileentities.generators.GT_MetaTileEntity_SteamTurbine; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_Bronze; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_BronzeBricks; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_Steel; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_SteelBricks; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_CraftingInput_ME; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_CraftingInput_Slave; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_InputBus_ME; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_Input_ME; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_OutputBus_ME; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_Output_ME; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_AdvSeismicProspector; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Boxinator; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Charger; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_IndustrialApiary; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Massfabricator; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_MicrowaveEnergyTransmitter; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Miner; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_MonsterRepellent; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_PotionBrewer; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Pump; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Replicator; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_RockBreaker; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Scanner; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Teleporter; +import gregtech.common.tileentities.machines.long_distance.GT_MetaTileEntity_LongDistancePipelineFluid; +import gregtech.common.tileentities.machines.long_distance.GT_MetaTileEntity_LongDistancePipelineItem; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_AssemblyLine; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_BrickedBlastFurnace; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Charcoal_Pit; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Cleanroom; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ConcreteBackfiller1; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ConcreteBackfiller2; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DieselEngine; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DistillationTower; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ElectricBlastFurnace; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ExtremeDieselEngine; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_FusionComputer1; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_FusionComputer2; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_FusionComputer3; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_HeatExchanger; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ImplosionCompressor; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_IntegratedOreFactory; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler_Bronze; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler_Steel; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler_Titanium; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler_TungstenSteel; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeChemicalReactor; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeTurbine_Gas; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeTurbine_GasAdvanced; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeTurbine_HPSteam; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeTurbine_Plasma; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeTurbine_Steam; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_MultiFurnace; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_NanoForge; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_OilCracker; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_OilDrill1; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_OilDrill2; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_OilDrill3; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_OilDrill4; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_OilDrillInfinite; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_OreDrillingPlant1; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_OreDrillingPlant2; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_OreDrillingPlant3; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_OreDrillingPlant4; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_PCBFactory; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_PlasmaForge; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ProcessingArray; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_PyrolyseOven; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_TranscendentPlasmaMixer; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_VacuumFreezer; +import gregtech.common.tileentities.machines.multi.drone.GT_MetaTileEntity_DroneCentre; +import gregtech.common.tileentities.machines.multi.drone.GT_MetaTileEntity_Hatch_DroneDownLink; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_AlloySmelter_Bronze; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_AlloySmelter_Steel; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Compressor_Bronze; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Compressor_Steel; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Extractor_Bronze; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Extractor_Steel; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_ForgeHammer_Bronze; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_ForgeHammer_Steel; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Furnace_Bronze; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Furnace_Steel; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Macerator_Bronze; +import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Macerator_Steel; +import gregtech.common.tileentities.storage.GT_MetaTileEntity_Locker; +import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumChest; +import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumTank; +import gregtech.common.tileentities.storage.GT_MetaTileEntity_SuperChest; +import gregtech.common.tileentities.storage.GT_MetaTileEntity_SuperTank; + +// Free IDs left for machines in GT as of 29th of July 2022 - Colen. Please try use them up in order. +// 358 +// 359 +// 366 +// 367 +// 368 +// 369 +// 370 +// 376 +// 377 +// 378 +// 379 +// 386 +// 387 +// 388 +// 389 +// 390 +// 396 +// 397 +// 398 +// 399 +// 410 +// 419 +// 426 +// 427 +// 428 +// 429 +// 430 +// 436 +// 437 +// 438 +// 439 +// 446 +// 447 +// 448 +// 449 +// 450 +// 456 +// 457 +// 458 +// 459 +// 466 +// 467 +// 468 +// 469 +// 470 +// 476 +// 477 +// 478 +// 479 +// 486 +// 487 +// 488 +// 489 +// 496 +// 497 +// 498 +// 499 +// 506 +// 507 +// 508 +// 509 +// 518 +// 519 +// 526 +// 530 +// 537 +// 538 +// 539 +// 546 +// 547 +// 548 +// 549 +// 550 +// 556 +// 557 +// 558 +// 559 +// 566 +// 567 +// 576 +// 577 +// 578 +// 579 +// 586 +// 587 +// 588 +// 589 +// 590 +// 596 +// 597 +// 598 +// 599 +// 607 +// 608 +// 609 +// 610 +// 616 +// 617 +// 618 +// 619 +// 626 +// 627 +// 628 +// 629 +// 630 +// 636 +// 637 +// 639 +// 646 +// 647 +// 648 +// 649 +// 650 +// 656 +// 657 +// 658 +// 659 +// 666 +// 667 +// 668 +// 669 +// 670 +// 676 +// 677 +// 678 +// 682 +// 683 +// 684 +// 686 +// 687 +// 688 +// 689 +// 702 +// 703 +// 704 +// 705 +// 706 +// 707 +// 708 +// 709 +// 714 +// 715 +// 716 +// 717 +// 718 +// 719 +// 721 +// 722 +// 723 +// 724 +// 725 +// 726 +// 727 +// 728 +// 729 +// 730 +// 731 +// 732 +// 733 +// 734 +// 735 +// 736 +// 737 +// 738 +// 739 +// 741 +// 742 +// 743 +// 744 +// 745 +// 746 +// 747 +// 748 +// 749 + +// TODO Some GT MetaTileEntity registrations are done in load/GT_Loader_MetaTileEntities_Recipes.java due to joint +// registration+recipe methods, they should be split and brought here to register all in preload. + +public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRCUIT RECIPES AND USAGES + + private static final String aTextWire1 = "wire."; + private static final String aTextCable1 = "cable."; + private static final String aTextWire2 = " Wire"; + private static final String aTextCable2 = " Cable"; + public static final String imagination = EnumChatFormatting.RESET + "You just need " + + EnumChatFormatting.DARK_PURPLE + + "I" + + EnumChatFormatting.LIGHT_PURPLE + + "m" + + EnumChatFormatting.DARK_RED + + "a" + + EnumChatFormatting.RED + + "g" + + EnumChatFormatting.YELLOW + + "i" + + EnumChatFormatting.GREEN + + "n" + + EnumChatFormatting.AQUA + + "a" + + EnumChatFormatting.DARK_AQUA + + "t" + + EnumChatFormatting.BLUE + + "i" + + EnumChatFormatting.DARK_BLUE + + "o" + + EnumChatFormatting.DARK_PURPLE + + "n" + + EnumChatFormatting.RESET + + " to use this."; + + private static void registerMultiblockControllers() { + ItemList.Machine_Bricked_BlastFurnace.set( + new GT_MetaTileEntity_BrickedBlastFurnace( + BRICKED_BLAST_FURNACE_CONTROLLER.ID, + "multimachine.brickedblastfurnace", + "Bricked Blast Furnace").getStackForm(1L)); + + ItemList.Machine_Multi_BlastFurnace.set( + new GT_MetaTileEntity_ElectricBlastFurnace( + EBF_CONTROLLER.ID, + "multimachine.blastfurnace", + "Electric Blast Furnace").getStackForm(1L)); + ItemList.Machine_Multi_ImplosionCompressor.set( + new GT_MetaTileEntity_ImplosionCompressor( + IMPLOSION_COMPRESSOR_CONTROLLER.ID, + "multimachine.implosioncompressor", + "Implosion Compressor").getStackForm(1L)); + ItemList.Machine_Multi_VacuumFreezer.set( + new GT_MetaTileEntity_VacuumFreezer( + VACUUM_FREEZER_CONTROLLER.ID, + "multimachine.vacuumfreezer", + "Vacuum Freezer").getStackForm(1L)); + ItemList.Machine_Multi_Furnace.set( + new GT_MetaTileEntity_MultiFurnace( + MULTI_SMELTER_CONTROLLER.ID, + "multimachine.multifurnace", + "Multi Smelter").getStackForm(1L)); + ItemList.Machine_Multi_PlasmaForge.set( + new GT_MetaTileEntity_PlasmaForge( + DTPF_CONTROLLER.ID, + "multimachine.plasmaforge", + "Dimensionally Transcendent Plasma Forge").getStackForm(1L)); + + ItemList.Machine_Multi_LargeBoiler_Bronze.set( + new GT_MetaTileEntity_LargeBoiler_Bronze( + LARGE_BRONZE_BOILER_CONTROLLER.ID, + "multimachine.boiler.bronze", + "Large Bronze Boiler").getStackForm(1L)); + ItemList.Machine_Multi_LargeBoiler_Steel.set( + new GT_MetaTileEntity_LargeBoiler_Steel( + LARGE_STEEL_BOILER_CONTROLLER.ID, + "multimachine.boiler.steel", + "Large Steel Boiler").getStackForm(1L)); + ItemList.Machine_Multi_LargeBoiler_Titanium.set( + new GT_MetaTileEntity_LargeBoiler_Titanium( + LARGE_TITANIUM_BOILER_CONTROLLER.ID, + "multimachine.boiler.titanium", + "Large Titanium Boiler").getStackForm(1L)); + ItemList.Machine_Multi_LargeBoiler_TungstenSteel.set( + new GT_MetaTileEntity_LargeBoiler_TungstenSteel( + LARGE_TUNGSTENSTEEL_BOILER_CONTROLLER.ID, + "multimachine.boiler.tungstensteel", + "Large Tungstensteel Boiler").getStackForm(1L)); + ItemList.FusionComputer_LuV.set( + new GT_MetaTileEntity_FusionComputer1( + FUSION_CONTROLLER_MKI.ID, + "fusioncomputer.tier.06", + "Fusion Control Computer Mark I").getStackForm(1L)); + ItemList.FusionComputer_ZPMV.set( + new GT_MetaTileEntity_FusionComputer2( + FUSION_CONTROLLER_MKII.ID, + "fusioncomputer.tier.07", + "Fusion Control Computer Mark II").getStackForm(1L)); + ItemList.FusionComputer_UV.set( + new GT_MetaTileEntity_FusionComputer3( + FUSION_CONTROLLER_MKIII.ID, + "fusioncomputer.tier.08", + "Fusion Control Computer Mark III").getStackForm(1L)); + + ItemList.Processing_Array.set( + new GT_MetaTileEntity_ProcessingArray( + PROCESSING_ARRAY_CONTROLLER.ID, + "multimachine.processingarray", + "Processing Array").getStackForm(1L)); + ItemList.Distillation_Tower.set( + new GT_MetaTileEntity_DistillationTower( + DISTILLATION_TOWER_CONTROLLER.ID, + "multimachine.distillationtower", + "Distillation Tower").getStackForm(1L)); + ItemList.Ore_Processor.set( + new GT_MetaTileEntity_IntegratedOreFactory( + INTEGRATED_ORE_FACTORY_CONTROLLER.ID, + "multimachine.oreprocessor", + "Integrated Ore Factory").getStackForm(1L)); + + ItemList.LargeSteamTurbine.set( + new GT_MetaTileEntity_LargeTurbine_Steam( + LARGE_STEAM_TURBINE_CONTROLLER.ID, + "multimachine.largeturbine", + "Large Steam Turbine").getStackForm(1L)); + ItemList.LargeGasTurbine.set( + new GT_MetaTileEntity_LargeTurbine_Gas( + LARGE_GAS_TURBINE_CONTROLLER.ID, + "multimachine.largegasturbine", + "Large Gas Turbine").getStackForm(1L)); + ItemList.LargeHPSteamTurbine.set( + new GT_MetaTileEntity_LargeTurbine_HPSteam( + LARGE_HP_STEAM_TURBINE_CONTROLLER.ID, + "multimachine.largehpturbine", + "Large HP Steam Turbine").getStackForm(1L)); + ItemList.LargeAdvancedGasTurbine.set( + new GT_MetaTileEntity_LargeTurbine_GasAdvanced( + LARGE_ADVANCED_GAS_TURBINE_CONTROLLER.ID, + "multimachine.largeadvancedgasturbine", + "Large Advanced Gas Turbine").getStackForm(1L)); + ItemList.Machine_Multi_TranscendentPlasmaMixer.set( + new GT_MetaTileEntity_TranscendentPlasmaMixer( + TRANSCENDENT_PLASMA_MIXER_CONTROLLER.ID, + "multimachine.transcendentplasmamixer", + "Transcendent Plasma Mixer").getStackForm(1)); + + ItemList.LargePlasmaTurbine.set( + new GT_MetaTileEntity_LargeTurbine_Plasma( + LARGE_PLASMA_TURBINE_CONTROLLER.ID, + "multimachine.largeplasmaturbine", + "Large Plasma Generator").getStackForm(1L)); + ItemList.Machine_Multi_HeatExchanger.set( + new GT_MetaTileEntity_HeatExchanger( + LARGE_HEAT_EXCHANGER_CONTROLLER.ID, + "multimachine.heatexchanger", + "Large Heat Exchanger").getStackForm(1L)); + ItemList.Charcoal_Pile.set( + new GT_MetaTileEntity_Charcoal_Pit( + CHARCOAL_PILE_IGNITER_CONTROLLER.ID, + "multimachine.charcoalpile", + "Charcoal Pile Igniter").getStackForm(1)); + + // Converter recipes in case you had old one lying around + ItemList.OilDrill1.set( + new GT_MetaTileEntity_OilDrill1( + MULTIBLOCK_PUMP_MKI_CONTROLLER.ID, + "multimachine.oildrill1", + "Oil/Gas/Fluid Drilling Rig").getStackForm(1)); + ItemList.OilDrill2.set( + new GT_MetaTileEntity_OilDrill2( + MULTILOCK_PUMP_MKII_CONTROLLER.ID, + "multimachine.oildrill2", + "Oil/Gas/Fluid Drilling Rig II").getStackForm(1)); + ItemList.OilDrill3.set( + new GT_MetaTileEntity_OilDrill3( + MULTILOCK_PUMP_MKIII_CONTROLLER.ID, + "multimachine.oildrill3", + "Oil/Gas/Fluid Drilling Rig III").getStackForm(1)); + ItemList.OilDrill4.set( + new GT_MetaTileEntity_OilDrill4( + MULTILOCK_PUMP_MKIV_CONTROLLER.ID, + "multimachine.oildrill4", + "Oil/Gas/Fluid Drilling Rig IV").getStackForm(1)); + ItemList.OilDrillInfinite.set( + new GT_MetaTileEntity_OilDrillInfinite( + MULTIBLOCK_PUMP_INFINITE_CONTROLLER.ID, + "multimachine.oildrillinfinite", + "Infinite Oil/Gas/Fluid Drilling Rig").getStackForm(1)); + + ItemList.ConcreteBackfiller1.set( + new GT_MetaTileEntity_ConcreteBackfiller1( + CONCRETE_BACKFILLER_I_CONTROLLER.ID, + "multimachine.concretebackfiller1", + "Concrete Backfiller").getStackForm(1)); + ItemList.ConcreteBackfiller2.set( + new GT_MetaTileEntity_ConcreteBackfiller2( + CONCRETE_BACKFILLER_II_CONTROLLER.ID, + "multimachine.concretebackfiller3", + "Advanced Concrete Backfiller").getStackForm(1)); + ItemList.OreDrill1.set( + new GT_MetaTileEntity_OreDrillingPlant1( + ORE_DRILL_MKI_CONTROLLER.ID, + "multimachine.oredrill1", + "Ore Drilling Plant").getStackForm(1)); + ItemList.OreDrill2.set( + new GT_MetaTileEntity_OreDrillingPlant2( + ORE_DRILL_MKII_CONTROLLER.ID, + "multimachine.oredrill2", + "Ore Drilling Plant II").getStackForm(1)); + ItemList.OreDrill3.set( + new GT_MetaTileEntity_OreDrillingPlant3( + ORE_DRILL_MKIII_CONTROLLER.ID, + "multimachine.oredrill3", + "Ore Drilling Plant III").getStackForm(1)); + ItemList.OreDrill4.set( + new GT_MetaTileEntity_OreDrillingPlant4( + ORE_DRILL_MKIV_CONTROLLER.ID, + "multimachine.oredrill4", + "Ore Drilling Plant IV").getStackForm(1)); + + ItemList.PyrolyseOven.set( + new GT_MetaTileEntity_PyrolyseOven(PYROLYSE_OVEN_CONTROLLER.ID, "multimachine.pyro", "Pyrolyse Oven") + .getStackForm(1)); + ItemList.OilCracker.set( + new GT_MetaTileEntity_OilCracker(OIL_CRACKER_CONTROLLER.ID, "multimachine.cracker", "Oil Cracking Unit") + .getStackForm(1)); + + ItemList.Machine_Multi_Assemblyline.set( + new GT_MetaTileEntity_AssemblyLine( + ASSEMBLING_LINE_CONTROLLER.ID, + "multimachine.assemblyline", + "Assembling Line").getStackForm(1L)); + ItemList.Machine_Multi_DieselEngine.set( + new GT_MetaTileEntity_DieselEngine( + COMBUSTION_ENGINE_CONTROLLER.ID, + "multimachine.dieselengine", + "Combustion Engine").getStackForm(1L)); + ItemList.Machine_Multi_ExtremeDieselEngine.set( + new GT_MetaTileEntity_ExtremeDieselEngine( + EXTREME_COMBUSTION_ENGINE_CONTROLLER.ID, + "multimachine.extremedieselengine", + "Extreme Combustion Engine").getStackForm(1L)); + ItemList.Machine_Multi_Cleanroom.set( + new GT_MetaTileEntity_Cleanroom(CLEANROOM_CONTROLLER.ID, "multimachine.cleanroom", "Cleanroom Controller") + .getStackForm(1)); + + ItemList.Machine_Multi_LargeChemicalReactor.set( + new GT_MetaTileEntity_LargeChemicalReactor( + LCR_CONTROLLER.ID, + "multimachine.chemicalreactor", + "Large Chemical Reactor").getStackForm(1)); + ItemList.PCBFactory.set( + new GT_MetaTileEntity_PCBFactory(PCB_FACTORY_CONTROLLER.ID, "multimachine.pcbfactory", "PCB Factory") + .getStackForm(1)); + ItemList.NanoForge.set( + new GT_MetaTileEntity_NanoForge(NANO_FORGE_CONTROLLER.ID, "multimachine.nanoforge", "Nano Forge") + .getStackForm(1)); + ItemList.Machine_Multi_DroneCentre.set( + new GT_MetaTileEntity_DroneCentre(Drone_Centre.ID, "multimachine_DroneCentre", "Drone Centre") + .getStackForm(1)); + } + + private static void registerSteamMachines() { + ItemList.Machine_Bronze_Furnace.set( + new GT_MetaTileEntity_Furnace_Bronze(STEAM_FURNACE.ID, "bronzemachine.furnace", "Steam Furnace") + .getStackForm(1L)); + ItemList.Machine_Bronze_Macerator.set( + new GT_MetaTileEntity_Macerator_Bronze(STEAM_MACERATOR.ID, "bronzemachine.macerator", "Steam Macerator") + .getStackForm(1L)); + ItemList.Machine_Bronze_Extractor.set( + new GT_MetaTileEntity_Extractor_Bronze(STEAM_EXTRACTOR.ID, "bronzemachine.extractor", "Steam Extractor") + .getStackForm(1L)); + ItemList.Machine_Bronze_Hammer.set( + new GT_MetaTileEntity_ForgeHammer_Bronze( + STEAM_FORGE_HAMMER.ID, + "bronzemachine.hammer", + "Steam Forge Hammer").getStackForm(1L)); + ItemList.Machine_Bronze_Compressor.set( + new GT_MetaTileEntity_Compressor_Bronze(STEAM_COMPRESSOR.ID, "bronzemachine.compressor", "Steam Compressor") + .getStackForm(1L)); + ItemList.Machine_Bronze_AlloySmelter.set( + new GT_MetaTileEntity_AlloySmelter_Bronze( + STEAM_ALLOY_SMELTER.ID, + "bronzemachine.alloysmelter", + "Steam Alloy Smelter").getStackForm(1L)); + + } + + private static void registerHPSteamMachines() { + ItemList.Machine_HP_Extractor.set( + new GT_MetaTileEntity_Extractor_Steel( + HP_STEAM_EXTRACTOR.ID, + "hpmachine.extractor", + "High Pressure Extractor").getStackForm(1L)); + ItemList.Machine_HP_Furnace.set( + new GT_MetaTileEntity_Furnace_Steel(HP_STEAM_FURNACE.ID, "hpmachine.furnace", "High Pressure Furnace") + .getStackForm(1L)); + ItemList.Machine_HP_Macerator.set( + new GT_MetaTileEntity_Macerator_Steel( + HP_STEAM_MACERATOR.ID, + "hpmachine.macerator", + "High Pressure Macerator").getStackForm(1L)); + ItemList.Machine_HP_Hammer.set( + new GT_MetaTileEntity_ForgeHammer_Steel( + HP_STEAM_FORGE_HAMMER.ID, + "hpmachine.hammer", + "High Pressure Forge Hammer").getStackForm(1L)); + ItemList.Machine_HP_Compressor.set( + new GT_MetaTileEntity_Compressor_Steel( + HP_STEAM_COMPRESSOR.ID, + "hpmachine.compressor", + "High Pressure Compressor").getStackForm(1L)); + ItemList.Machine_HP_AlloySmelter.set( + new GT_MetaTileEntity_AlloySmelter_Steel( + HP_STEAM_ALLOY_SMELTER.ID, + "hpmachine.alloysmelter", + "High Pressure Alloy Smelter").getStackForm(1L)); + } + + private static void registerLocker() { + ItemList.Locker_ULV.set( + new GT_MetaTileEntity_Locker(LOCKER_ULV.ID, "locker.tier.00", "Ultra Low Voltage Locker", 0) + .getStackForm(1L)); + ItemList.Locker_LV.set( + new GT_MetaTileEntity_Locker(LOCKER_LV.ID, "locker.tier.01", "Low Voltage Locker", 1).getStackForm(1L)); + ItemList.Locker_MV.set( + new GT_MetaTileEntity_Locker(LOCKER_MV.ID, "locker.tier.02", "Medium Voltage Locker", 2).getStackForm(1L)); + ItemList.Locker_HV.set( + new GT_MetaTileEntity_Locker(LOCKER_HV.ID, "locker.tier.03", "High Voltage Locker", 3).getStackForm(1L)); + ItemList.Locker_EV.set( + new GT_MetaTileEntity_Locker(LOCKER_EV.ID, "locker.tier.04", "Extreme Voltage Locker", 4).getStackForm(1L)); + ItemList.Locker_IV.set( + new GT_MetaTileEntity_Locker(LOCKER_IV.ID, "locker.tier.05", "Insane Voltage Locker", 5).getStackForm(1L)); + ItemList.Locker_LuV.set( + new GT_MetaTileEntity_Locker(LOCKER_LuV.ID, "locker.tier.06", "Ludicrous Voltage Locker", 6) + .getStackForm(1L)); + ItemList.Locker_ZPM.set( + new GT_MetaTileEntity_Locker(LOCKER_ZPM.ID, "locker.tier.07", "ZPM Voltage Locker", 7).getStackForm(1L)); + ItemList.Locker_UV.set( + new GT_MetaTileEntity_Locker(LOCKER_UV.ID, "locker.tier.08", "Ultimate Voltage Locker", 8) + .getStackForm(1L)); + ItemList.Locker_MAX.set( + new GT_MetaTileEntity_Locker(LOCKER_UHV.ID, "locker.tier.09", "Highly Ultimate Voltage Locker", 9) + .getStackForm(1L)); + } + + private static void registerScanner() { + ItemList.Machine_LV_Scanner.set( + new GT_MetaTileEntity_Scanner(SCANNER_LV.ID, "basicmachine.scanner.tier.01", "Basic Scanner", 1) + .getStackForm(1L)); + ItemList.Machine_MV_Scanner.set( + new GT_MetaTileEntity_Scanner(SCANNER_MV.ID, "basicmachine.scanner.tier.02", "Advanced Scanner", 2) + .getStackForm(1L)); + ItemList.Machine_HV_Scanner.set( + new GT_MetaTileEntity_Scanner(SCANNER_HV.ID, "basicmachine.scanner.tier.03", "Advanced Scanner II", 3) + .getStackForm(1L)); + ItemList.Machine_EV_Scanner.set( + new GT_MetaTileEntity_Scanner(SCANNER_EV.ID, "basicmachine.scanner.tier.04", "Advanced Scanner III", 4) + .getStackForm(1L)); + ItemList.Machine_IV_Scanner.set( + new GT_MetaTileEntity_Scanner(SCANNER_IV.ID, "basicmachine.scanner.tier.05", "Advanced Scanner IV", 5) + .getStackForm(1L)); + } + + private static void registerPackager() { + ItemList.Machine_LV_Boxinator.set( + new GT_MetaTileEntity_Boxinator(PACKAGER_LV.ID, "basicmachine.boxinator.tier.01", "Basic Packager", 1) + .getStackForm(1L)); + ItemList.Machine_MV_Boxinator.set( + new GT_MetaTileEntity_Boxinator(PACKAGER_MV.ID, "basicmachine.boxinator.tier.02", "Advanced Packager", 2) + .getStackForm(1L)); + ItemList.Machine_HV_Boxinator.set( + new GT_MetaTileEntity_Boxinator(PACKAGER_HV.ID, "basicmachine.boxinator.tier.03", "Advanced Packager II", 3) + .getStackForm(1L)); + ItemList.Machine_EV_Boxinator.set( + new GT_MetaTileEntity_Boxinator( + PACKAGER_EV.ID, + "basicmachine.boxinator.tier.04", + "Advanced Packager III", + 4).getStackForm(1L)); + ItemList.Machine_IV_Boxinator.set( + new GT_MetaTileEntity_Boxinator(PACKAGER_IV.ID, "basicmachine.boxinator.tier.05", "Boxinator", 5) + .getStackForm(1L)); + ItemList.Machine_LuV_Boxinator.set( + new GT_MetaTileEntity_Boxinator(PACKAGER_LuV.ID, "basicmachine.boxinator.tier.06", "Boxinator", 6) + .getStackForm(1L)); + ItemList.Machine_ZPM_Boxinator.set( + new GT_MetaTileEntity_Boxinator(PACKAGER_ZPM.ID, "basicmachine.boxinator.tier.07", "Boxinator", 7) + .getStackForm(1L)); + ItemList.Machine_UV_Boxinator.set( + new GT_MetaTileEntity_Boxinator(PACKAGER_UV.ID, "basicmachine.boxinator.tier.08", "Boxinator", 8) + .getStackForm(1L)); + } + + private static void registerRockBreaker() { + ItemList.Machine_LV_RockBreaker.set( + new GT_MetaTileEntity_RockBreaker( + ROCK_BREAKER_LV.ID, + "basicmachine.rockbreaker.tier.01", + "Basic Rock Breaker", + 1).getStackForm(1L)); + ItemList.Machine_MV_RockBreaker.set( + new GT_MetaTileEntity_RockBreaker( + ROCK_BREAKER_MV.ID, + "basicmachine.rockbreaker.tier.02", + "Advanced Rock Breaker", + 2).getStackForm(1L)); + ItemList.Machine_HV_RockBreaker.set( + new GT_MetaTileEntity_RockBreaker( + ROCK_BREAKER_HV.ID, + "basicmachine.rockbreaker.tier.03", + "Advanced Rock Breaker II", + 3).getStackForm(1L)); + ItemList.Machine_EV_RockBreaker.set( + new GT_MetaTileEntity_RockBreaker( + ROCK_BREAKER_EV.ID, + "basicmachine.rockbreaker.tier.04", + "Advanced Rock Breaker III", + 4).getStackForm(1L)); + ItemList.Machine_IV_RockBreaker.set( + new GT_MetaTileEntity_RockBreaker( + ROCK_BREAKER_IV.ID, + "basicmachine.rockbreaker.tier.05", + "Cryogenic Magma Solidifier R-8200", + 5).getStackForm(1L)); + } + + private static void registerIndustrialApiary() { + if (Forestry.isModLoaded()) { + ItemList.Machine_IndustrialApiary.set( + new GT_MetaTileEntity_IndustrialApiary( + INDUSTRIAL_APIARY.ID, + "basicmachine.industrialapiary", + "Industrial Apiary", + 8).getStackForm(1L)); + } + } + + private static void registerMassFab() { + ItemList.Machine_LV_Massfab.set( + new GT_MetaTileEntity_Massfabricator( + MASS_FABRICATOR_LV.ID, + "basicmachine.massfab.tier.01", + "Basic Mass Fabricator", + 1).getStackForm(1L)); + ItemList.Machine_MV_Massfab.set( + new GT_MetaTileEntity_Massfabricator( + MASS_FABRICATOR_MV.ID, + "basicmachine.massfab.tier.02", + "Advanced Mass Fabricator", + 2).getStackForm(1L)); + ItemList.Machine_HV_Massfab.set( + new GT_MetaTileEntity_Massfabricator( + MASS_FABRICATOR_HV.ID, + "basicmachine.massfab.tier.03", + "Advanced Mass Fabricator II", + 3).getStackForm(1L)); + ItemList.Machine_EV_Massfab.set( + new GT_MetaTileEntity_Massfabricator( + MASS_FABRICATOR_EV.ID, + "basicmachine.massfab.tier.04", + "Advanced Mass Fabricator III", + 4).getStackForm(1L)); + ItemList.Machine_IV_Massfab.set( + new GT_MetaTileEntity_Massfabricator( + MASS_FABRICATOR_IV.ID, + "basicmachine.massfab.tier.05", + "Advanced Mass Fabricator IV", + 5).getStackForm(1L)); + } + + private static void registerReplicator() { + ItemList.Machine_LV_Replicator.set( + new GT_MetaTileEntity_Replicator(REPLICATOR_LV.ID, "basicmachine.replicator.tier.01", "Basic Replicator", 1) + .getStackForm(1L)); + ItemList.Machine_MV_Replicator.set( + new GT_MetaTileEntity_Replicator( + REPLICATOR_MV.ID, + "basicmachine.replicator.tier.02", + "Advanced Replicator", + 2).getStackForm(1L)); + ItemList.Machine_HV_Replicator.set( + new GT_MetaTileEntity_Replicator( + REPLICATOR_HV.ID, + "basicmachine.replicator.tier.03", + "Advanced Replicator II", + 3).getStackForm(1L)); + ItemList.Machine_EV_Replicator.set( + new GT_MetaTileEntity_Replicator( + REPLICATOR_EV.ID, + "basicmachine.replicator.tier.04", + "Advanced Replicator III", + 4).getStackForm(1L)); + ItemList.Machine_IV_Replicator.set( + new GT_MetaTileEntity_Replicator( + REPLICATOR_IV.ID, + "basicmachine.replicator.tier.05", + "Advanced Replicator IV", + 5).getStackForm(1L)); + } + + private static void registerBrewery() { + ItemList.Machine_LV_Brewery.set( + new GT_MetaTileEntity_PotionBrewer(BREWERY_LV.ID, "basicmachine.brewery.tier.01", "Basic Brewery", 1) + .getStackForm(1L)); + ItemList.Machine_MV_Brewery.set( + new GT_MetaTileEntity_PotionBrewer(BREWERY_MV.ID, "basicmachine.brewery.tier.02", "Advanced Brewery", 2) + .getStackForm(1L)); + ItemList.Machine_HV_Brewery.set( + new GT_MetaTileEntity_PotionBrewer(BREWERY_HV.ID, "basicmachine.brewery.tier.03", "Advanced Brewery II", 3) + .getStackForm(1L)); + ItemList.Machine_EV_Brewery.set( + new GT_MetaTileEntity_PotionBrewer(BREWERY_EV.ID, "basicmachine.brewery.tier.04", "Advanced Brewery III", 4) + .getStackForm(1L)); + ItemList.Machine_IV_Brewery.set( + new GT_MetaTileEntity_PotionBrewer(BREWERY_IV.ID, "basicmachine.brewery.tier.05", "Advanced Brewery IV", 5) + .getStackForm(1L)); + } + + private static void registerMiner() { + ItemList.Machine_LV_Miner.set( + new GT_MetaTileEntity_Miner(MINER_LV.ID, "basicmachine.miner.tier.01", "Basic Miner", 1).getStackForm(1L)); + ItemList.Machine_MV_Miner.set( + new GT_MetaTileEntity_Miner(MINER_MV.ID, "basicmachine.miner.tier.02", "Good Miner", 2).getStackForm(1L)); + ItemList.Machine_HV_Miner.set( + new GT_MetaTileEntity_Miner(MINER_HV.ID, "basicmachine.miner.tier.03", "Advanced Miner", 3) + .getStackForm(1L)); + } + + private static void registerPump() { + ItemList.Pump_LV + .set(new GT_MetaTileEntity_Pump(PUMP_LV.ID, "basicmachine.pump.tier.01", "Basic Pump", 1).getStackForm(1L)); + ItemList.Pump_MV.set( + new GT_MetaTileEntity_Pump(PUMP_MV.ID, "basicmachine.pump.tier.02", "Advanced Pump", 2).getStackForm(1L)); + ItemList.Pump_HV.set( + new GT_MetaTileEntity_Pump(PUMP_HV.ID, "basicmachine.pump.tier.03", "Advanced Pump II", 3) + .getStackForm(1L)); + ItemList.Pump_EV.set( + new GT_MetaTileEntity_Pump(PUMP_EV.ID, "basicmachine.pump.tier.04", "Advanced Pump III", 4) + .getStackForm(1L)); + ItemList.Pump_IV.set( + new GT_MetaTileEntity_Pump(PUMP_IV.ID, "basicmachine.pump.tier.05", "Advanced Pump IV", 5) + .getStackForm(1L)); + } + + private static void registerTeleporter() { + ItemList.Teleporter.set( + new GT_MetaTileEntity_Teleporter(TELEPORTER.ID, "basicmachine.teleporter", "Teleporter", 9) + .getStackForm(1L)); + } + + private static void registerMonsterRepellator() { + ItemList.MobRep_LV.set( + new GT_MetaTileEntity_MonsterRepellent( + MONSTER_REPELLATOR_LV.ID, + "basicmachine.mobrep.tier.01", + "Basic Monster Repellator", + 1).getStackForm(1L)); + ItemList.MobRep_MV.set( + new GT_MetaTileEntity_MonsterRepellent( + MONSTER_REPELLATOR_MV.ID, + "basicmachine.mobrep.tier.02", + "Advanced Monster Repellator", + 2).getStackForm(1L)); + ItemList.MobRep_HV.set( + new GT_MetaTileEntity_MonsterRepellent( + MONSTER_REPELLATOR_HV.ID, + "basicmachine.mobrep.tier.03", + "Advanced Monster Repellator II", + 3).getStackForm(1L)); + ItemList.MobRep_EV.set( + new GT_MetaTileEntity_MonsterRepellent( + MONSTER_REPELLATOR_EV.ID, + "basicmachine.mobrep.tier.04", + "Advanced Monster Repellator III", + 4).getStackForm(1L)); + ItemList.MobRep_IV.set( + new GT_MetaTileEntity_MonsterRepellent( + MONSTER_REPELLATOR_IV.ID, + "basicmachine.mobrep.tier.05", + "Advanced Monster Repellator IV", + 5).getStackForm(1L)); + ItemList.MobRep_LuV.set( + new GT_MetaTileEntity_MonsterRepellent( + MONSTER_REPELLATOR_LuV.ID, + "basicmachine.mobrep.tier.06", + "Advanced Monster Repellator V", + 6).getStackForm(1L)); + ItemList.MobRep_ZPM.set( + new GT_MetaTileEntity_MonsterRepellent( + MONSTER_REPELLATOR_ZPM.ID, + "basicmachine.mobrep.tier.07", + "Advanced Monster Repellator VI", + 7).getStackForm(1L)); + ItemList.MobRep_UV.set( + new GT_MetaTileEntity_MonsterRepellent( + MONSTER_REPELLATOR_UV.ID, + "basicmachine.mobrep.tier.08", + "Advanced Monster Repellator VII", + 8).getStackForm(1L)); + } + + private static void registerAdvancedSeismicProspector() { + ItemList.Seismic_Prospector_Adv_LV.set( + new GT_MetaTileEntity_AdvSeismicProspector( + ADVANCED_SEISMIC_PROSPECTOR_LV.ID, + "basicmachine.seismicprospector.07", + "Advanced Seismic Prospector LV", + 1, + 5 * 16 / 2, + 2).getStackForm(1)); + ItemList.Seismic_Prospector_Adv_MV.set( + new GT_MetaTileEntity_AdvSeismicProspector( + ADVANCED_SEISMIC_PROSPECTOR_MV.ID, + "basicmachine.seismicprospector.06", + "Advanced Seismic Prospector MV", + 2, + 7 * 16 / 2, + 2).getStackForm(1)); + ItemList.Seismic_Prospector_Adv_HV.set( + new GT_MetaTileEntity_AdvSeismicProspector( + ADVANCED_SEISMIC_PROSPECTOR_HV.ID, + "basicmachine.seismicprospector.05", + "Advanced Seismic Prospector HV", + 3, + 9 * 16 / 2, + 2).getStackForm(1)); + ItemList.Seismic_Prospector_Adv_EV.set( + new GT_MetaTileEntity_AdvSeismicProspector( + ADVANCED_SEISMIC_PROSPECTOR_EV.ID, + "basicmachine.seismicprospector.04", + "Advanced Seismic Prospector EV", + 4, + 11 * 16 / 2, + 2).getStackForm(1)); + } + + private static void registerMicrowaveEnergyTransmitter() { + ItemList.MicroTransmitter_HV.set( + new GT_MetaTileEntity_MicrowaveEnergyTransmitter( + MICROWAVE_ENERGY_TRANSMITTER_HV.ID, + "basicmachine.microtransmitter.03", + "HV Microwave Energy Transmitter", + 3).getStackForm(1L)); + ItemList.MicroTransmitter_EV.set( + new GT_MetaTileEntity_MicrowaveEnergyTransmitter( + MICROWAVE_ENERGY_TRANSMITTER_EV.ID, + "basicmachine.microtransmitter.04", + "EV Microwave Energy Transmitter", + 4).getStackForm(1L)); + ItemList.MicroTransmitter_IV.set( + new GT_MetaTileEntity_MicrowaveEnergyTransmitter( + MICROWAVE_ENERGY_TRANSMITTER_IV.ID, + "basicmachine.microtransmitter.05", + "IV Microwave Energy Transmitter", + 5).getStackForm(1L)); + ItemList.MicroTransmitter_LUV.set( + new GT_MetaTileEntity_MicrowaveEnergyTransmitter( + MICROWAVE_ENERGY_TRANSMITTER_LuV.ID, + "basicmachine.microtransmitter.06", + "LuV Microwave Energy Transmitter", + 6).getStackForm(1L)); + ItemList.MicroTransmitter_ZPM.set( + new GT_MetaTileEntity_MicrowaveEnergyTransmitter( + MICROWAVE_ENERGY_TRANSMITTER_ZPM.ID, + "basicmachine.microtransmitter.07", + "ZPM Microwave Energy Transmitter", + 7).getStackForm(1L)); + ItemList.MicroTransmitter_UV.set( + new GT_MetaTileEntity_MicrowaveEnergyTransmitter( + MICROWAVE_ENERGY_TRANSMITTER_UV.ID, + "basicmachine.microtransmitter.08", + "UV Microwave Energy Transmitter", + 8).getStackForm(1L)); + } + + private static void registerChestBuffer() { + ItemList.Automation_ChestBuffer_ULV.set( + new GT_MetaTileEntity_ChestBuffer( + CHEST_BUFFER_ULV.ID, + "automation.chestbuffer.tier.00", + "Ultra Low Voltage Chest Buffer", + 0).getStackForm(1L)); + ItemList.Automation_ChestBuffer_LV.set( + new GT_MetaTileEntity_ChestBuffer( + CHEST_BUFFER_LV.ID, + "automation.chestbuffer.tier.01", + "Low Voltage Chest Buffer", + 1).getStackForm(1L)); + ItemList.Automation_ChestBuffer_MV.set( + new GT_MetaTileEntity_ChestBuffer( + CHEST_BUFFER_MV.ID, + "automation.chestbuffer.tier.02", + "Medium Voltage Chest Buffer", + 2).getStackForm(1L)); + ItemList.Automation_ChestBuffer_HV.set( + new GT_MetaTileEntity_ChestBuffer( + CHEST_BUFFER_HV.ID, + "automation.chestbuffer.tier.03", + "High Voltage Chest Buffer", + 3).getStackForm(1L)); + ItemList.Automation_ChestBuffer_EV.set( + new GT_MetaTileEntity_ChestBuffer( + CHEST_BUFFER_EV.ID, + "automation.chestbuffer.tier.04", + "Extreme Voltage Chest Buffer", + 4).getStackForm(1L)); + ItemList.Automation_ChestBuffer_IV.set( + new GT_MetaTileEntity_ChestBuffer( + CHEST_BUFFER_IV.ID, + "automation.chestbuffer.tier.05", + "Insane Voltage Chest Buffer", + 5).getStackForm(1L)); + ItemList.Automation_ChestBuffer_LuV.set( + new GT_MetaTileEntity_ChestBuffer( + CHEST_BUFFER_LuV.ID, + "automation.chestbuffer.tier.06", + "Ludicrous Voltage Chest Buffer", + 6).getStackForm(1L)); + ItemList.Automation_ChestBuffer_ZPM.set( + new GT_MetaTileEntity_ChestBuffer( + CHEST_BUFFER_ZPM.ID, + "automation.chestbuffer.tier.07", + "ZPM Voltage Chest Buffer", + 7).getStackForm(1L)); + ItemList.Automation_ChestBuffer_UV.set( + new GT_MetaTileEntity_ChestBuffer( + CHEST_BUFFER_UV.ID, + "automation.chestbuffer.tier.08", + "Ultimate Voltage Chest Buffer", + 8).getStackForm(1L)); + ItemList.Automation_ChestBuffer_MAX.set( + new GT_MetaTileEntity_ChestBuffer( + CHEST_BUFFER_UHV.ID, + "automation.chestbuffer.tier.09", + "Highly Ultimate Voltage Chest Buffer", + 9).getStackForm(1L)); + } + + private static void registerItemFilter() { + ItemList.Automation_Filter_ULV.set( + new GT_MetaTileEntity_Filter( + ITEM_FILTER_ULV.ID, + "automation.filter.tier.00", + "Ultra Low Voltage Item Filter", + 0).getStackForm(1L)); + ItemList.Automation_Filter_LV.set( + new GT_MetaTileEntity_Filter(ITEM_FILTER_LV.ID, "automation.filter.tier.01", "Low Voltage Item Filter", 1) + .getStackForm(1L)); + ItemList.Automation_Filter_MV.set( + new GT_MetaTileEntity_Filter( + ITEM_FILTER_MV.ID, + "automation.filter.tier.02", + "Medium Voltage Item Filter", + 2).getStackForm(1L)); + ItemList.Automation_Filter_HV.set( + new GT_MetaTileEntity_Filter(ITEM_FILTER_HV.ID, "automation.filter.tier.03", "High Voltage Item Filter", 3) + .getStackForm(1L)); + ItemList.Automation_Filter_EV.set( + new GT_MetaTileEntity_Filter( + ITEM_FILTER_EV.ID, + "automation.filter.tier.04", + "Extreme Voltage Item Filter", + 4).getStackForm(1L)); + ItemList.Automation_Filter_IV.set( + new GT_MetaTileEntity_Filter( + ITEM_FILTER_IV.ID, + "automation.filter.tier.05", + "Insane Voltage Item Filter", + 5).getStackForm(1L)); + ItemList.Automation_Filter_LuV.set( + new GT_MetaTileEntity_Filter( + ITEM_FILTER_LuV.ID, + "automation.filter.tier.06", + "Ludicrous Voltage Item Filter", + 6).getStackForm(1L)); + ItemList.Automation_Filter_ZPM.set( + new GT_MetaTileEntity_Filter(ITEM_FILTER_ZPM.ID, "automation.filter.tier.07", "ZPM Voltage Item Filter", 7) + .getStackForm(1L)); + ItemList.Automation_Filter_UV.set( + new GT_MetaTileEntity_Filter( + ITEM_FILTER_UV.ID, + "automation.filter.tier.08", + "Ultimate Voltage Item Filter", + 8).getStackForm(1L)); + ItemList.Automation_Filter_MAX.set( + new GT_MetaTileEntity_Filter( + ITEM_FILTER_UHV.ID, + "automation.filter.tier.09", + "Highly Ultimate Voltage Item Filter", + 9).getStackForm(1L)); + } + + private static void registerTypeFilter() { + ItemList.Automation_TypeFilter_ULV.set( + new GT_MetaTileEntity_TypeFilter( + TYPE_FILTER_ULV.ID, + "automation.typefilter.tier.00", + "Ultra Low Voltage Type Filter", + 0).getStackForm(1L)); + ItemList.Automation_TypeFilter_LV.set( + new GT_MetaTileEntity_TypeFilter( + TYPE_FILTER_LV.ID, + "automation.typefilter.tier.01", + "Low Voltage Type Filter", + 1).getStackForm(1L)); + ItemList.Automation_TypeFilter_MV.set( + new GT_MetaTileEntity_TypeFilter( + TYPE_FILTER_MV.ID, + "automation.typefilter.tier.02", + "Medium Voltage Type Filter", + 2).getStackForm(1L)); + ItemList.Automation_TypeFilter_HV.set( + new GT_MetaTileEntity_TypeFilter( + TYPE_FILTER_HV.ID, + "automation.typefilter.tier.03", + "High Voltage Type Filter", + 3).getStackForm(1L)); + ItemList.Automation_TypeFilter_EV.set( + new GT_MetaTileEntity_TypeFilter( + TYPE_FILTER_EV.ID, + "automation.typefilter.tier.04", + "Extreme Voltage Type Filter", + 4).getStackForm(1L)); + ItemList.Automation_TypeFilter_IV.set( + new GT_MetaTileEntity_TypeFilter( + TYPE_FILTER_IV.ID, + "automation.typefilter.tier.05", + "Insane Voltage Type Filter", + 5).getStackForm(1L)); + ItemList.Automation_TypeFilter_LuV.set( + new GT_MetaTileEntity_TypeFilter( + TYPE_FILTER_LuV.ID, + "automation.typefilter.tier.06", + "Ludicrous Voltage Type Filter", + 6).getStackForm(1L)); + ItemList.Automation_TypeFilter_ZPM.set( + new GT_MetaTileEntity_TypeFilter( + TYPE_FILTER_ZPM.ID, + "automation.typefilter.tier.07", + "ZPM Voltage Type Filter", + 7).getStackForm(1L)); + ItemList.Automation_TypeFilter_UV.set( + new GT_MetaTileEntity_TypeFilter( + TYPE_FILTER_UV.ID, + "automation.typefilter.tier.08", + "Ultimate Voltage Type Filter", + 8).getStackForm(1L)); + ItemList.Automation_TypeFilter_MAX.set( + new GT_MetaTileEntity_TypeFilter( + TYPE_FILTER_UHV.ID, + "automation.typefilter.tier.09", + "Highly Ultimate Voltage Type Filter", + 9).getStackForm(1L)); + } + + private static void registerRegulator() { + ItemList.Automation_Regulator_ULV.set( + new GT_MetaTileEntity_Regulator( + VOLTAGE_REGULATOR_ULV.ID, + "automation.regulator.tier.00", + "Ultra Low Voltage Regulator", + 0).getStackForm(1L)); + ItemList.Automation_Regulator_LV.set( + new GT_MetaTileEntity_Regulator( + VOLTAGE_REGULATOR_LV.ID, + "automation.regulator.tier.01", + "Low Voltage Regulator", + 1).getStackForm(1L)); + ItemList.Automation_Regulator_MV.set( + new GT_MetaTileEntity_Regulator( + VOLTAGE_REGULATOR_MV.ID, + "automation.regulator.tier.02", + "Medium Voltage Regulator", + 2).getStackForm(1L)); + ItemList.Automation_Regulator_HV.set( + new GT_MetaTileEntity_Regulator( + VOLTAGE_REGULATOR_HV.ID, + "automation.regulator.tier.03", + "High Voltage Regulator", + 3).getStackForm(1L)); + ItemList.Automation_Regulator_EV.set( + new GT_MetaTileEntity_Regulator( + VOLTAGE_REGULATOR_EV.ID, + "automation.regulator.tier.04", + "Extreme Voltage Regulator", + 4).getStackForm(1L)); + ItemList.Automation_Regulator_IV.set( + new GT_MetaTileEntity_Regulator( + VOLTAGE_REGULATOR_IV.ID, + "automation.regulator.tier.05", + "Insane Voltage Regulator", + 5).getStackForm(1L)); + ItemList.Automation_Regulator_LuV.set( + new GT_MetaTileEntity_Regulator( + VOLTAGE_REGULATOR_LuV.ID, + "automation.regulator.tier.06", + "Ludicrous Voltage Regulator", + 6).getStackForm(1L)); + ItemList.Automation_Regulator_ZPM.set( + new GT_MetaTileEntity_Regulator( + VOLTAGE_REGULATOR_ZPM.ID, + "automation.regulator.tier.07", + "ZPM Voltage Regulator", + 7).getStackForm(1L)); + ItemList.Automation_Regulator_UV.set( + new GT_MetaTileEntity_Regulator( + VOLTAGE_REGULATOR_UV.ID, + "automation.regulator.tier.08", + "Ultimate Voltage Regulator", + 8).getStackForm(1L)); + ItemList.Automation_Regulator_MAX.set( + new GT_MetaTileEntity_Regulator( + VOLTAGE_REGULATOR_UHV.ID, + "automation.regulator.tier.09", + "Highly Ultimate Voltage Regulator", + 9).getStackForm(1L)); + } + + private static void registerSuperBuffer() { + ItemList.Automation_SuperBuffer_ULV.set( + new GT_MetaTileEntity_SuperBuffer( + SUPER_BUFFER_ULV.ID, + "automation.superbuffer.tier.00", + "Ultra Low Voltage Super Buffer", + 0).getStackForm(1L)); + ItemList.Automation_SuperBuffer_LV.set( + new GT_MetaTileEntity_SuperBuffer( + SUPER_BUFFER_LV.ID, + "automation.superbuffer.tier.01", + "Low Voltage Super Buffer", + 1).getStackForm(1L)); + ItemList.Automation_SuperBuffer_MV.set( + new GT_MetaTileEntity_SuperBuffer( + SUPER_BUFFER_MV.ID, + "automation.superbuffer.tier.02", + "Medium Voltage Super Buffer", + 2).getStackForm(1L)); + ItemList.Automation_SuperBuffer_HV.set( + new GT_MetaTileEntity_SuperBuffer( + SUPER_BUFFER_HV.ID, + "automation.superbuffer.tier.03", + "High Voltage Super Buffer", + 3).getStackForm(1L)); + ItemList.Automation_SuperBuffer_EV.set( + new GT_MetaTileEntity_SuperBuffer( + SUPER_BUFFER_EV.ID, + "automation.superbuffer.tier.04", + "Extreme Voltage Super Buffer", + 4).getStackForm(1L)); + ItemList.Automation_SuperBuffer_IV.set( + new GT_MetaTileEntity_SuperBuffer( + SUPER_BUFFER_IV.ID, + "automation.superbuffer.tier.05", + "Insane Voltage Super Buffer", + 5).getStackForm(1L)); + ItemList.Automation_SuperBuffer_LuV.set( + new GT_MetaTileEntity_SuperBuffer( + SUPER_BUFFER_LuV.ID, + "automation.superbuffer.tier.06", + "Ludicrous Voltage Super Buffer", + 6).getStackForm(1L)); + ItemList.Automation_SuperBuffer_ZPM.set( + new GT_MetaTileEntity_SuperBuffer( + SUPER_BUFFER_ZPM.ID, + "automation.superbuffer.tier.07", + "ZPM Voltage Super Buffer", + 7).getStackForm(1L)); + ItemList.Automation_SuperBuffer_UV.set( + new GT_MetaTileEntity_SuperBuffer( + SUPER_BUFFER_UV.ID, + "automation.superbuffer.tier.08", + "Ultimate Voltage Super Buffer", + 8).getStackForm(1L)); + ItemList.Automation_SuperBuffer_MAX.set( + new GT_MetaTileEntity_SuperBuffer( + SUPER_BUFFER_UHV.ID, + "automation.superbuffer.tier.09", + "Highly Ultimate Voltage Super Buffer", + 9).getStackForm(1L)); + } + + private static void registerItemDistributor() { + ItemList.Automation_ItemDistributor_ULV.set( + new GT_MetaTileEntity_ItemDistributor( + ITEM_DISTRIBUTOR_ULV.ID, + "automation.itemdistributor.tier.00", + "Ultra Low Voltage Item Distributor", + 0).getStackForm(1L)); + ItemList.Automation_ItemDistributor_LV.set( + new GT_MetaTileEntity_ItemDistributor( + ITEM_DISTRIBUTOR_LV.ID, + "automation.itemdistributor.tier.01", + "Low Voltage Item Distributor", + 1).getStackForm(1L)); + ItemList.Automation_ItemDistributor_MV.set( + new GT_MetaTileEntity_ItemDistributor( + ITEM_DISTRIBUTOR_MV.ID, + "automation.itemdistributor.tier.02", + "Medium Voltage Item Distributor", + 2).getStackForm(1L)); + ItemList.Automation_ItemDistributor_HV.set( + new GT_MetaTileEntity_ItemDistributor( + ITEM_DISTRIBUTOR_HV.ID, + "automation.itemdistributor.tier.03", + "High Voltage Item Distributor", + 3).getStackForm(1L)); + ItemList.Automation_ItemDistributor_EV.set( + new GT_MetaTileEntity_ItemDistributor( + ITEM_DISTRIBUTOR_EV.ID, + "automation.itemdistributor.tier.04", + "Extreme Voltage Item Distributor", + 4).getStackForm(1L)); + ItemList.Automation_ItemDistributor_IV.set( + new GT_MetaTileEntity_ItemDistributor( + ITEM_DISTRIBUTOR_IV.ID, + "automation.itemdistributor.tier.05", + "Insane Voltage Item Distributor", + 5).getStackForm(1L)); + ItemList.Automation_ItemDistributor_LuV.set( + new GT_MetaTileEntity_ItemDistributor( + ITEM_DISTRIBUTOR_LuV.ID, + "automation.itemdistributor.tier.06", + "Ludicrous Voltage Item Distributor", + 6).getStackForm(1L)); + ItemList.Automation_ItemDistributor_ZPM.set( + new GT_MetaTileEntity_ItemDistributor( + ITEM_DISTRIBUTOR_ZPM.ID, + "automation.itemdistributor.tier.07", + "ZPM Voltage Item Distributor", + 7).getStackForm(1L)); + ItemList.Automation_ItemDistributor_UV.set( + new GT_MetaTileEntity_ItemDistributor( + ITEM_DISTRIBUTOR_UV.ID, + "automation.itemdistributor.tier.08", + "Ultimate Voltage Item Distributor", + 8).getStackForm(1L)); + ItemList.Automation_ItemDistributor_MAX.set( + new GT_MetaTileEntity_ItemDistributor( + ITEM_DISTRIBUTOR_UHV.ID, + "automation.itemdistributor.tier.09", + "MAX Voltage Item Distributor", + 9).getStackForm(1L)); + } + + private static void registerRecipeFilter() { + ItemList.Automation_RecipeFilter_ULV.set( + new GT_MetaTileEntity_RecipeFilter( + RECIPE_FILTER_ULV.ID, + "automation.recipefilter.tier.00", + "Ultra Low Voltage Recipe Filter", + 0).getStackForm(1L)); + ItemList.Automation_RecipeFilter_LV.set( + new GT_MetaTileEntity_RecipeFilter( + RECIPE_FILTER_LV.ID, + "automation.recipefilter.tier.01", + "Low Voltage Recipe Filter", + 1).getStackForm(1L)); + ItemList.Automation_RecipeFilter_MV.set( + new GT_MetaTileEntity_RecipeFilter( + RECIPE_FILTER_MV.ID, + "automation.recipefilter.tier.02", + "Medium Voltage Recipe Filter", + 2).getStackForm(1L)); + ItemList.Automation_RecipeFilter_HV.set( + new GT_MetaTileEntity_RecipeFilter( + RECIPE_FILTER_HV.ID, + "automation.recipefilter.tier.03", + "High Voltage Recipe Filter", + 3).getStackForm(1L)); + ItemList.Automation_RecipeFilter_EV.set( + new GT_MetaTileEntity_RecipeFilter( + RECIPE_FILTER_EV.ID, + "automation.recipefilter.tier.04", + "Extreme Voltage Recipe Filter", + 4).getStackForm(1L)); + ItemList.Automation_RecipeFilter_IV.set( + new GT_MetaTileEntity_RecipeFilter( + RECIPE_FILTER_IV.ID, + "automation.recipefilter.tier.05", + "Insane Voltage Recipe Filter", + 5).getStackForm(1L)); + ItemList.Automation_RecipeFilter_LuV.set( + new GT_MetaTileEntity_RecipeFilter( + RECIPE_FILTER_LuV.ID, + "automation.recipefilter.tier.06", + "Ludicrous Voltage Recipe Filter", + 6).getStackForm(1L)); + ItemList.Automation_RecipeFilter_ZPM.set( + new GT_MetaTileEntity_RecipeFilter( + RECIPE_FILTER_ZPM.ID, + "automation.recipefilter.tier.07", + "ZPM Voltage Recipe Filter", + 7).getStackForm(1L)); + ItemList.Automation_RecipeFilter_UV.set( + new GT_MetaTileEntity_RecipeFilter( + RECIPE_FILTER_UV.ID, + "automation.recipefilter.tier.08", + "Ultimate Voltage Recipe Filter", + 8).getStackForm(1L)); + ItemList.Automation_RecipeFilter_MAX.set( + new GT_MetaTileEntity_RecipeFilter( + RECIPE_FILTER_UHV.ID, + "automation.recipefilter.tier.09", + "Highly Ultimate Voltage Recipe Filter", + 9).getStackForm(1L)); + } + + private static void registerMachineHull() { + ItemList.Hull_Bronze.set( + new GT_MetaTileEntity_BasicHull_Bronze( + HULL_BRONZE.ID, + "hull.bronze", + "Bronze Hull", + 0, + "For your first Steam Machines").getStackForm(1L)); + ItemList.Hull_Bronze_Bricks.set( + new GT_MetaTileEntity_BasicHull_BronzeBricks( + HULL_BRICKED_BRONZE.ID, + "hull.bronze_bricked", + "Bricked Bronze Hull", + 0, + "For your first Steam Machines").getStackForm(1L)); + ItemList.Hull_HP.set( + new GT_MetaTileEntity_BasicHull_Steel( + HULL_STEEL.ID, + "hull.steel", + "Steel Hull", + 0, + "For improved Steam Machines").getStackForm(1L)); + ItemList.Hull_HP_Bricks.set( + new GT_MetaTileEntity_BasicHull_SteelBricks( + HULL_WROUGHT_IRON.ID, + "hull.steel_bricked", + "Bricked Wrought Iron Hull", + 0, + "For improved Steam Machines").getStackForm(1L)); + + ItemList.Hull_ULV.set( + new GT_MetaTileEntity_BasicHull(HULL_ULV.ID, "hull.tier.00", "ULV Machine Hull", 0, imagination) + .getStackForm(1L)); + ItemList.Hull_LV.set( + new GT_MetaTileEntity_BasicHull(HULL_LV.ID, "hull.tier.01", "LV Machine Hull", 1, imagination) + .getStackForm(1L)); + ItemList.Hull_MV.set( + new GT_MetaTileEntity_BasicHull(HULL_MV.ID, "hull.tier.02", "MV Machine Hull", 2, imagination) + .getStackForm(1L)); + ItemList.Hull_HV.set( + new GT_MetaTileEntity_BasicHull(HULL_HV.ID, "hull.tier.03", "HV Machine Hull", 3, imagination) + .getStackForm(1L)); + ItemList.Hull_EV.set( + new GT_MetaTileEntity_BasicHull(HULL_EV.ID, "hull.tier.04", "EV Machine Hull", 4, imagination) + .getStackForm(1L)); + ItemList.Hull_IV.set( + new GT_MetaTileEntity_BasicHull(HULL_IV.ID, "hull.tier.05", "IV Machine Hull", 5, imagination) + .getStackForm(1L)); + ItemList.Hull_LuV.set( + new GT_MetaTileEntity_BasicHull(HULL_LuV.ID, "hull.tier.06", "LuV Machine Hull", 6, imagination) + .getStackForm(1L)); + ItemList.Hull_ZPM.set( + new GT_MetaTileEntity_BasicHull(HULL_ZPM.ID, "hull.tier.07", "ZPM Machine Hull", 7, imagination) + .getStackForm(1L)); + ItemList.Hull_UV.set( + new GT_MetaTileEntity_BasicHull(HULL_UV.ID, "hull.tier.08", "UV Machine Hull", 8, imagination) + .getStackForm(1L)); + ItemList.Hull_MAX.set( + new GT_MetaTileEntity_BasicHull(HULL_UHV.ID, "hull.tier.09", "UHV Machine Hull", 9, imagination) + .getStackForm(1L)); + } + + private static void registerTransformer() { + ItemList.Transformer_LV_ULV.set( + new GT_MetaTileEntity_Transformer( + transformer_LV_ULV.ID, + "transformer.tier.00", + "Ultra Low Voltage Transformer", + 0, + "LV -> ULV (Use Soft Mallet to invert)").getStackForm(1L)); + ItemList.Transformer_MV_LV.set( + new GT_MetaTileEntity_Transformer( + transformer_MV_LV.ID, + "transformer.tier.01", + "Low Voltage Transformer", + 1, + "MV -> LV (Use Soft Mallet to invert)").getStackForm(1L)); + ItemList.Transformer_HV_MV.set( + new GT_MetaTileEntity_Transformer( + transformer_HV_MV.ID, + "transformer.tier.02", + "Medium Voltage Transformer", + 2, + "HV -> MV (Use Soft Mallet to invert)").getStackForm(1L)); + ItemList.Transformer_EV_HV.set( + new GT_MetaTileEntity_Transformer( + transformer_EV_HV.ID, + "transformer.tier.03", + "High Voltage Transformer", + 3, + "EV -> HV (Use Soft Mallet to invert)").getStackForm(1L)); + ItemList.Transformer_IV_EV.set( + new GT_MetaTileEntity_Transformer( + transformer_IV_EV.ID, + "transformer.tier.04", + "Extreme Transformer", + 4, + "IV -> EV (Use Soft Mallet to invert)").getStackForm(1L)); + ItemList.Transformer_LuV_IV.set( + new GT_MetaTileEntity_Transformer( + transformer_LuV_IV.ID, + "transformer.tier.05", + "Insane Transformer", + 5, + "LuV -> IV (Use Soft Mallet to invert)").getStackForm(1L)); + ItemList.Transformer_ZPM_LuV.set( + new GT_MetaTileEntity_Transformer( + transformer_ZPM_LuV.ID, + "transformer.tier.06", + "Ludicrous Transformer", + 6, + "ZPM -> LuV (Use Soft Mallet to invert)").getStackForm(1L)); + ItemList.Transformer_UV_ZPM.set( + new GT_MetaTileEntity_Transformer( + transformer_UV_ZPM.ID, + "transformer.tier.07", + "ZPM Voltage Transformer", + 7, + "UV -> ZPM (Use Soft Mallet to invert)").getStackForm(1L)); + ItemList.Transformer_MAX_UV.set( + new GT_MetaTileEntity_Transformer( + transformer_UHV_UV.ID, + "transformer.tier.08", + "Ultimate Transformer", + 8, + "UHV -> UV (Use Soft Mallet to invert)").getStackForm(1L)); + } + + private static void registerDynamoHatch() { + ItemList.Hatch_Dynamo_ULV.set( + new GT_MetaTileEntity_Hatch_Dynamo(DYNAMO_HATCH_ULV.ID, "hatch.dynamo.tier.00", "ULV Dynamo Hatch", 0) + .getStackForm(1L)); + ItemList.Hatch_Dynamo_LV.set( + new GT_MetaTileEntity_Hatch_Dynamo(DYNAMO_HATCH_LV.ID, "hatch.dynamo.tier.01", "LV Dynamo Hatch", 1) + .getStackForm(1L)); + ItemList.Hatch_Dynamo_MV.set( + new GT_MetaTileEntity_Hatch_Dynamo(DYNAMO_HATCH_MV.ID, "hatch.dynamo.tier.02", "MV Dynamo Hatch", 2) + .getStackForm(1L)); + ItemList.Hatch_Dynamo_HV.set( + new GT_MetaTileEntity_Hatch_Dynamo(DYNAMO_HATCH_HV.ID, "hatch.dynamo.tier.03", "HV Dynamo Hatch", 3) + .getStackForm(1L)); + ItemList.Hatch_Dynamo_EV.set( + new GT_MetaTileEntity_Hatch_Dynamo(DYNAMO_HATCH_EV.ID, "hatch.dynamo.tier.04", "EV Dynamo Hatch", 4) + .getStackForm(1L)); + ItemList.Hatch_Dynamo_IV.set( + new GT_MetaTileEntity_Hatch_Dynamo(DYNAMO_HATCH_IV.ID, "hatch.dynamo.tier.05", "IV Dynamo Hatch", 5) + .getStackForm(1L)); + ItemList.Hatch_Dynamo_LuV.set( + new GT_MetaTileEntity_Hatch_Dynamo(DYNAMO_HATCH_LuV.ID, "hatch.dynamo.tier.06", "LuV Dynamo Hatch", 6) + .getStackForm(1L)); + ItemList.Hatch_Dynamo_ZPM.set( + new GT_MetaTileEntity_Hatch_Dynamo(DYNAMO_HATCH_ZPM.ID, "hatch.dynamo.tier.07", "ZPM Dynamo Hatch", 7) + .getStackForm(1L)); + ItemList.Hatch_Dynamo_UV.set( + new GT_MetaTileEntity_Hatch_Dynamo(DYNAMO_HATCH_UV.ID, "hatch.dynamo.tier.08", "UV Dynamo Hatch", 8) + .getStackForm(1L)); + ItemList.Hatch_Dynamo_MAX.set( + new GT_MetaTileEntity_Hatch_Dynamo(DYNAMO_HATCH_UHV.ID, "hatch.dynamo.tier.09", "UHV Dynamo Hatch", 9) + .getStackForm(1L)); + } + + private static void registerEnergyHatch() { + ItemList.Hatch_Energy_ULV.set( + new GT_MetaTileEntity_Hatch_Energy(ENERGY_HATCH_ULV.ID, "hatch.energy.tier.00", "ULV Energy Hatch", 0) + .getStackForm(1L)); + ItemList.Hatch_Energy_LV.set( + new GT_MetaTileEntity_Hatch_Energy(ENERGY_HATCH_LV.ID, "hatch.energy.tier.01", "LV Energy Hatch", 1) + .getStackForm(1L)); + ItemList.Hatch_Energy_MV.set( + new GT_MetaTileEntity_Hatch_Energy(ENERGY_HATCH_MV.ID, "hatch.energy.tier.02", "MV Energy Hatch", 2) + .getStackForm(1L)); + ItemList.Hatch_Energy_HV.set( + new GT_MetaTileEntity_Hatch_Energy(ENERGY_HATCH_HV.ID, "hatch.energy.tier.03", "HV Energy Hatch", 3) + .getStackForm(1L)); + ItemList.Hatch_Energy_EV.set( + new GT_MetaTileEntity_Hatch_Energy(ENERGY_HATCH_EV.ID, "hatch.energy.tier.04", "EV Energy Hatch", 4) + .getStackForm(1L)); + ItemList.Hatch_Energy_IV.set( + new GT_MetaTileEntity_Hatch_Energy(ENERGY_HATCH_IV.ID, "hatch.energy.tier.05", "IV Energy Hatch", 5) + .getStackForm(1L)); + ItemList.Hatch_Energy_LuV.set( + new GT_MetaTileEntity_Hatch_Energy(ENERGY_HATCH_LuV.ID, "hatch.energy.tier.06", "LuV Energy Hatch", 6) + .getStackForm(1L)); + ItemList.Hatch_Energy_ZPM.set( + new GT_MetaTileEntity_Hatch_Energy(ENERGY_HATCH_ZPM.ID, "hatch.energy.tier.07", "ZPM Energy Hatch", 7) + .getStackForm(1L)); + ItemList.Hatch_Energy_UV.set( + new GT_MetaTileEntity_Hatch_Energy(ENERGY_HATCH_UV.ID, "hatch.energy.tier.08", "UV Energy Hatch", 8) + .getStackForm(1L)); + ItemList.Hatch_Energy_MAX.set( + new GT_MetaTileEntity_Hatch_Energy(ENERGY_HATCH_UHV.ID, "hatch.energy.tier.09", "UHV Energy Hatch", 9) + .getStackForm(1L)); + } + + private static void registerInputHatch() { + ItemList.Hatch_Input_ULV.set( + new GT_MetaTileEntity_Hatch_Input(INPUT_HATCH_ULV.ID, "hatch.input.tier.00", "Input Hatch (ULV)", 0) + .getStackForm(1L)); + ItemList.Hatch_Input_LV.set( + new GT_MetaTileEntity_Hatch_Input(INPUT_HATCH_LV.ID, "hatch.input.tier.01", "Input Hatch (LV)", 1) + .getStackForm(1L)); + ItemList.Hatch_Input_MV.set( + new GT_MetaTileEntity_Hatch_Input(INPUT_HATCH_MV.ID, "hatch.input.tier.02", "Input Hatch (MV)", 2) + .getStackForm(1L)); + ItemList.Hatch_Input_HV.set( + new GT_MetaTileEntity_Hatch_Input(INPUT_HATCH_HV.ID, "hatch.input.tier.03", "Input Hatch (HV)", 3) + .getStackForm(1L)); + ItemList.Hatch_Input_EV.set( + new GT_MetaTileEntity_Hatch_Input(INPUT_HATCH_EV.ID, "hatch.input.tier.04", "Input Hatch (EV)", 4) + .getStackForm(1L)); + ItemList.Hatch_Input_IV.set( + new GT_MetaTileEntity_Hatch_Input(INPUT_HATCH_IV.ID, "hatch.input.tier.05", "Input Hatch (IV)", 5) + .getStackForm(1L)); + ItemList.Hatch_Input_LuV.set( + new GT_MetaTileEntity_Hatch_Input(INPUT_HATCH_LuV.ID, "hatch.input.tier.06", "Input Hatch (LuV)", 6) + .getStackForm(1L)); + ItemList.Hatch_Input_ZPM.set( + new GT_MetaTileEntity_Hatch_Input(INPUT_HATCH_ZPM.ID, "hatch.input.tier.07", "Input Hatch (ZPM)", 7) + .getStackForm(1L)); + ItemList.Hatch_Input_UV.set( + new GT_MetaTileEntity_Hatch_Input(INPUT_HATCH_UV.ID, "hatch.input.tier.08", "Input Hatch (UV)", 8) + .getStackForm(1L)); + ItemList.Hatch_Input_MAX.set( + new GT_MetaTileEntity_Hatch_Input(INPUT_HATCH_UHV.ID, "hatch.input.tier.09", "Input Hatch (UHV)", 9) + .getStackForm(1L)); + } + + private static void registerQuadrupleInputHatch() { + ItemList.Hatch_Input_Multi_2x2_EV.set( + new GT_MetaTileEntity_Hatch_MultiInput( + QUADRUPLE_INPUT_HATCHES_EV.ID, + 4, + "hatch.multi.input.tier.01", + "Quadruple Input Hatch (EV)", + 4).getStackForm(1L)); + ItemList.Hatch_Input_Multi_2x2_IV.set( + new GT_MetaTileEntity_Hatch_MultiInput( + QUADRUPLE_INPUT_HATCHES_IV.ID, + 4, + "hatch.multi.input.tier.02", + "Quadruple Input Hatch (IV)", + 5).getStackForm(1L)); + ItemList.Hatch_Input_Multi_2x2_LuV.set( + new GT_MetaTileEntity_Hatch_MultiInput( + QUADRUPLE_INPUT_HATCHES_LuV.ID, + 4, + "hatch.multi.input.tier.03", + "Quadruple Input Hatch (LuV)", + 6).getStackForm(1L)); + ItemList.Hatch_Input_Multi_2x2_ZPM.set( + new GT_MetaTileEntity_Hatch_MultiInput( + QUADRUPLE_INPUT_HATCHES_ZPM.ID, + 4, + "hatch.multi.input.tier.04", + "Quadruple Input Hatch (ZPM)", + 7).getStackForm(1L)); + ItemList.Hatch_Input_Multi_2x2_UV.set( + new GT_MetaTileEntity_Hatch_MultiInput( + QUADRUPLE_INPUT_HATCHES_UV.ID, + 4, + "hatch.multi.input.tier.05", + "Quadruple Input Hatch (UV)", + 8).getStackForm(1L)); + ItemList.Hatch_Input_Multi_2x2_UHV.set( + new GT_MetaTileEntity_Hatch_MultiInput( + QUADRUPLE_INPUT_HATCHES_UHV.ID, + 4, + "hatch.multi.input.tier.06", + "Quadruple Input Hatch (UHV)", + 9).getStackForm(1L)); + ItemList.Hatch_Input_Multi_2x2_UEV.set( + new GT_MetaTileEntity_Hatch_MultiInput( + QUADRUPLE_INPUT_HATCHES_UEV.ID, + 4, + "hatch.multi.input.tier.07", + "Quadruple Input Hatch (UEV)", + 10).getStackForm(1L)); + ItemList.Hatch_Input_Multi_2x2_UIV.set( + new GT_MetaTileEntity_Hatch_MultiInput( + QUADRUPLE_INPUT_HATCHES_UIV.ID, + 4, + "hatch.multi.input.tier.08", + "Quadruple Input Hatch (UIV)", + 11).getStackForm(1L)); + ItemList.Hatch_Input_Multi_2x2_UMV.set( + new GT_MetaTileEntity_Hatch_MultiInput( + QUADRUPLE_INPUT_HATCHES_UMV.ID, + 4, + "hatch.multi.input.tier.09", + "Quadruple Input Hatch (UMV)", + 12).getStackForm(1L)); + ItemList.Hatch_Input_Multi_2x2_UXV.set( + new GT_MetaTileEntity_Hatch_MultiInput( + QUADRUPLE_INPUT_HATCHES_UXV.ID, + 4, + "hatch.multi.input.tier.10", + "Quadruple Input Hatch (UXV)", + 13).getStackForm(1L)); + + ItemList.Hatch_Input_Multi_2x2_Humongous.set( + new GT_MetaTileEntity_Hatch_QuadrupleHumongous( + QUADRUPLE_INPUT_HATCHES_MAX.ID, + 4, + "hatch.multi.input.tier.11", + "Humongous Quadruple Input Hatch").getStackForm(1L)); + } + + private static void registerOutputHatch() { + ItemList.Hatch_Output_ULV.set( + new GT_MetaTileEntity_Hatch_Output(OUTPUT_HATCH_ULV.ID, "hatch.output.tier.00", "Output Hatch (ULV)", 0) + .getStackForm(1L)); + ItemList.Hatch_Output_LV.set( + new GT_MetaTileEntity_Hatch_Output(OUTPUT_HATCH_LV.ID, "hatch.output.tier.01", "Output Hatch (LV)", 1) + .getStackForm(1L)); + ItemList.Hatch_Output_MV.set( + new GT_MetaTileEntity_Hatch_Output(OUTPUT_HATCH_MV.ID, "hatch.output.tier.02", "Output Hatch (MV)", 2) + .getStackForm(1L)); + ItemList.Hatch_Output_HV.set( + new GT_MetaTileEntity_Hatch_Output(OUTPUT_HATCH_HV.ID, "hatch.output.tier.03", "Output Hatch (HV)", 3) + .getStackForm(1L)); + ItemList.Hatch_Output_EV.set( + new GT_MetaTileEntity_Hatch_Output(OUTPUT_HATCH_EV.ID, "hatch.output.tier.04", "Output Hatch (EV)", 4) + .getStackForm(1L)); + ItemList.Hatch_Output_IV.set( + new GT_MetaTileEntity_Hatch_Output(OUTPUT_HATCH_IV.ID, "hatch.output.tier.05", "Output Hatch (IV)", 5) + .getStackForm(1L)); + ItemList.Hatch_Output_LuV.set( + new GT_MetaTileEntity_Hatch_Output(OUTPUT_HATCH_LuV.ID, "hatch.output.tier.06", "Output Hatch (LuV)", 6) + .getStackForm(1L)); + ItemList.Hatch_Output_ZPM.set( + new GT_MetaTileEntity_Hatch_Output(OUTPUT_HATCH_ZPM.ID, "hatch.output.tier.07", "Output Hatch (ZPM)", 7) + .getStackForm(1L)); + ItemList.Hatch_Output_UV.set( + new GT_MetaTileEntity_Hatch_Output(OUTPUT_HATCH_UV.ID, "hatch.output.tier.08", "Output Hatch (UV)", 8) + .getStackForm(1L)); + ItemList.Hatch_Output_MAX.set( + new GT_MetaTileEntity_Hatch_Output(OUTPUT_HATCH_UHV.ID, "hatch.output.tier.09", "Output Hatch (UHV)", 9) + .getStackForm(1L)); + } + + private static void registerQuantumTank() { + ItemList.Quantum_Tank_LV.set( + new GT_MetaTileEntity_QuantumTank(QUANTUM_TANK_LV.ID, "quantum.tank.tier.06", "Quantum Tank I", 6) + .getStackForm(1L)); + ItemList.Quantum_Tank_MV.set( + new GT_MetaTileEntity_QuantumTank(QUANTUM_TANK_MV.ID, "quantum.tank.tier.07", "Quantum Tank II", 7) + .getStackForm(1L)); + ItemList.Quantum_Tank_HV.set( + new GT_MetaTileEntity_QuantumTank(QUANTUM_TANK_HV.ID, "quantum.tank.tier.08", "Quantum Tank III", 8) + .getStackForm(1L)); + ItemList.Quantum_Tank_EV.set( + new GT_MetaTileEntity_QuantumTank(QUANTUM_TANK_EV.ID, "quantum.tank.tier.09", "Quantum Tank IV", 9) + .getStackForm(1L)); + ItemList.Quantum_Tank_IV.set( + new GT_MetaTileEntity_QuantumTank(QUANTUM_TANK_IV.ID, "quantum.tank.tier.10", "Quantum Tank V", 10) + .getStackForm(1L)); + } + + private static void registerQuantumChest() { + ItemList.Quantum_Chest_LV.set( + new GT_MetaTileEntity_QuantumChest(QUANTUM_CHEST_LV.ID, "quantum.chest.tier.06", "Quantum Chest I", 6) + .getStackForm(1L)); + ItemList.Quantum_Chest_MV.set( + new GT_MetaTileEntity_QuantumChest(QUANTUM_CHEST_MV.ID, "quantum.chest.tier.07", "Quantum Chest II", 7) + .getStackForm(1L)); + ItemList.Quantum_Chest_HV.set( + new GT_MetaTileEntity_QuantumChest(QUANTUM_CHEST_HV.ID, "quantum.chest.tier.08", "Quantum Chest III", 8) + .getStackForm(1L)); + ItemList.Quantum_Chest_EV.set( + new GT_MetaTileEntity_QuantumChest(QUANTUM_CHEST_EV.ID, "quantum.chest.tier.09", "Quantum Chest IV", 9) + .getStackForm(1L)); + ItemList.Quantum_Chest_IV.set( + new GT_MetaTileEntity_QuantumChest(QUANTUM_CHEST_IV.ID, "quantum.chest.tier.10", "Quantum Chest V", 10) + .getStackForm(1L)); + } + + private static void registerSuperTank() { + ItemList.Super_Tank_LV.set( + new GT_MetaTileEntity_SuperTank(SUPER_TANK_LV.ID, "super.tank.tier.01", "Super Tank I", 1) + .getStackForm(1L)); + ItemList.Super_Tank_MV.set( + new GT_MetaTileEntity_SuperTank(SUPER_TANK_MV.ID, "super.tank.tier.02", "Super Tank II", 2) + .getStackForm(1L)); + ItemList.Super_Tank_HV.set( + new GT_MetaTileEntity_SuperTank(SUPER_TANK_HV.ID, "super.tank.tier.03", "Super Tank III", 3) + .getStackForm(1L)); + ItemList.Super_Tank_EV.set( + new GT_MetaTileEntity_SuperTank(SUPER_TANK_EV.ID, "super.tank.tier.04", "Super Tank IV", 4) + .getStackForm(1L)); + ItemList.Super_Tank_IV.set( + new GT_MetaTileEntity_SuperTank(SUPER_TANK_IV.ID, "super.tank.tier.05", "Super Tank V", 5) + .getStackForm(1L)); + } + + private static void registerSuperChest() { + ItemList.Super_Chest_LV.set( + new GT_MetaTileEntity_SuperChest(SUPER_CHEST_LV.ID, "super.chest.tier.01", "Super Chest I", 1) + .getStackForm(1L)); + ItemList.Super_Chest_MV.set( + new GT_MetaTileEntity_SuperChest(SUPER_CHEST_MV.ID, "super.chest.tier.02", "Super Chest II", 2) + .getStackForm(1L)); + ItemList.Super_Chest_HV.set( + new GT_MetaTileEntity_SuperChest(SUPER_CHEST_HV.ID, "super.chest.tier.03", "Super Chest III", 3) + .getStackForm(1L)); + ItemList.Super_Chest_EV.set( + new GT_MetaTileEntity_SuperChest(SUPER_CHEST_EV.ID, "super.chest.tier.04", "Super Chest IV", 4) + .getStackForm(1L)); + ItemList.Super_Chest_IV.set( + new GT_MetaTileEntity_SuperChest(SUPER_CHEST_IV.ID, "super.chest.tier.05", "Super Chest V", 5) + .getStackForm(1L)); + } + + private static void registerLongDistancePipe() { + ItemList.Long_Distance_Pipeline_Fluid.set( + new GT_MetaTileEntity_LongDistancePipelineFluid( + LONG_DISTANCE_PIPELINE_FLUID.ID, + "long.distance.pipeline.fluid", + "Long Distance Fluid Pipeline", + 1).getStackForm(1L)); + ItemList.Long_Distance_Pipeline_Item.set( + new GT_MetaTileEntity_LongDistancePipelineItem( + LONG_DISTANCE_PIPELINE_ITEM.ID, + "long.distance.pipeline.item", + "Long Distance Item Pipeline", + 1).getStackForm(1L)); + } + + private static void registerAE2Hatches() { + ItemList.Hatch_Output_Bus_ME.set( + new GT_MetaTileEntity_Hatch_OutputBus_ME(OUTPUT_BUS_ME.ID, "hatch.output_bus.me", "Output Bus (ME)") + .getStackForm(1L)); + ItemList.Hatch_Input_Bus_ME.set( + new GT_MetaTileEntity_Hatch_InputBus_ME( + INPUT_BUS_ME.ID, + false, + "hatch.input_bus.me.basic", + "Stocking Input Bus (ME)").getStackForm(1L)); + ItemList.Hatch_Input_Bus_ME_Advanced.set( + new GT_MetaTileEntity_Hatch_InputBus_ME( + INPUT_BUS_ME_ADVANCED.ID, + true, + "hatch.input_bus.me", + "Advanced Stocking Input Bus (ME)").getStackForm(1L)); + ItemList.Hatch_Input_ME.set( + new GT_MetaTileEntity_Hatch_Input_ME( + INPUT_HATCH_ME.ID, + false, + "hatch.input.me.basic", + "Stocking Input Hatch (ME)").getStackForm(1L)); + ItemList.Hatch_Input_ME_Advanced.set( + new GT_MetaTileEntity_Hatch_Input_ME( + INPUT_HATCH_ME_ADVANCED.ID, + true, + "hatch.input.me", + "Advanced Stocking Input Hatch (ME)").getStackForm(1L)); + ItemList.Hatch_Output_ME.set( + new GT_MetaTileEntity_Hatch_Output_ME(OUTPUT_HATCH_ME.ID, "hatch.output.me", "Output Hatch (ME)") + .getStackForm(1L)); + ItemList.Hatch_CraftingInput_Bus_ME.set( + new GT_MetaTileEntity_Hatch_CraftingInput_ME( + CRAFTING_INPUT_ME.ID, + "hatch.crafting_input.me", + "Crafting Input Buffer (ME)", + true).getStackForm(1L)); + ItemList.Hatch_CraftingInput_Bus_ME_ItemOnly.set( + new GT_MetaTileEntity_Hatch_CraftingInput_ME( + CRAFTING_INPUT_ME_BUS.ID, + "hatch.crafting_input.me.item_only", + "Crafting Input Bus (ME)", + false).getStackForm(1L)); + ItemList.Hatch_CraftingInput_Bus_Slave.set( + new GT_MetaTileEntity_Hatch_CraftingInput_Slave( + CRAFTING_INPUT_SLAVE.ID, + "hatch.crafting_input.slave", + "Crafting Input Slave").getStackForm(1L)); + } + + private static void registerInputBus() { + ItemList.Hatch_Input_Bus_ULV.set( + new GT_MetaTileEntity_Hatch_InputBus(INPUT_BUS_ULV.ID, "hatch.input_bus.tier.00", "Input Bus (ULV)", 0) + .getStackForm(1L)); + ItemList.Hatch_Input_Bus_LV.set( + new GT_MetaTileEntity_Hatch_InputBus(INPUT_BUS_LV.ID, "hatch.input_bus.tier.01", "Input Bus (LV)", 1) + .getStackForm(1L)); + ItemList.Hatch_Input_Bus_MV.set( + new GT_MetaTileEntity_Hatch_InputBus(INPUT_BUS_MV.ID, "hatch.input_bus.tier.02", "Input Bus (MV)", 2) + .getStackForm(1L)); + ItemList.Hatch_Input_Bus_HV.set( + new GT_MetaTileEntity_Hatch_InputBus(INPUT_BUS_HV.ID, "hatch.input_bus.tier.03", "Input Bus (HV)", 3) + .getStackForm(1L)); + ItemList.Hatch_Input_Bus_EV.set( + new GT_MetaTileEntity_Hatch_InputBus(INPUT_BUS_EV.ID, "hatch.input_bus.tier.04", "Input Bus (EV)", 4) + .getStackForm(1L)); + ItemList.Hatch_Input_Bus_IV.set( + new GT_MetaTileEntity_Hatch_InputBus(INPUT_BUS_IV.ID, "hatch.input_bus.tier.05", "Input Bus (IV)", 5) + .getStackForm(1L)); + ItemList.Hatch_Input_Bus_LuV.set( + new GT_MetaTileEntity_Hatch_InputBus(INPUT_BUS_LuV.ID, "hatch.input_bus.tier.06", "Input Bus (LuV)", 6) + .getStackForm(1L)); + ItemList.Hatch_Input_Bus_ZPM.set( + new GT_MetaTileEntity_Hatch_InputBus(INPUT_BUS_ZPM.ID, "hatch.input_bus.tier.07", "Input Bus (ZPM)", 7) + .getStackForm(1L)); + ItemList.Hatch_Input_Bus_UV.set( + new GT_MetaTileEntity_Hatch_InputBus(INPUT_BUS_UV.ID, "hatch.input_bus.tier.08", "Input Bus (UV)", 8) + .getStackForm(1L)); + ItemList.Hatch_Input_Bus_MAX.set( + new GT_MetaTileEntity_Hatch_InputBus(INPUT_BUS_UHV.ID, "hatch.input_bus.tier.09", "Input Bus (UHV)", 9) + .getStackForm(1L)); + } + + private static void registerOutputBus() { + ItemList.Hatch_Output_Bus_ULV.set( + new GT_MetaTileEntity_Hatch_OutputBus(OUTPUT_BUS_ULV.ID, "hatch.output_bus.tier.00", "Output Bus (ULV)", 0) + .getStackForm(1L)); + ItemList.Hatch_Output_Bus_LV.set( + new GT_MetaTileEntity_Hatch_OutputBus(OUTPUT_BUS_LV.ID, "hatch.output_bus.tier.01", "Output Bus (LV)", 1) + .getStackForm(1L)); + ItemList.Hatch_Output_Bus_MV.set( + new GT_MetaTileEntity_Hatch_OutputBus(OUTPUT_BUS_MV.ID, "hatch.output_bus.tier.02", "Output Bus (MV)", 2) + .getStackForm(1L)); + ItemList.Hatch_Output_Bus_HV.set( + new GT_MetaTileEntity_Hatch_OutputBus(OUTPUT_BUS_HV.ID, "hatch.output_bus.tier.03", "Output Bus (HV)", 3) + .getStackForm(1L)); + ItemList.Hatch_Output_Bus_EV.set( + new GT_MetaTileEntity_Hatch_OutputBus(OUTPUT_BUS_EV.ID, "hatch.output_bus.tier.04", "Output Bus (EV)", 4) + .getStackForm(1L)); + ItemList.Hatch_Output_Bus_IV.set( + new GT_MetaTileEntity_Hatch_OutputBus(OUTPUT_BUS_IV.ID, "hatch.output_bus.tier.05", "Output Bus (IV)", 5) + .getStackForm(1L)); + ItemList.Hatch_Output_Bus_LuV.set( + new GT_MetaTileEntity_Hatch_OutputBus(OUTPUT_BUS_LuV.ID, "hatch.output_bus.tier.06", "Output Bus (LuV)", 6) + .getStackForm(1L)); + ItemList.Hatch_Output_Bus_ZPM.set( + new GT_MetaTileEntity_Hatch_OutputBus(OUTPUT_BUS_ZPM.ID, "hatch.output_bus.tier.07", "Output Bus (ZPM)", 7) + .getStackForm(1L)); + ItemList.Hatch_Output_Bus_UV.set( + new GT_MetaTileEntity_Hatch_OutputBus(OUTPUT_BUS_UV.ID, "hatch.output_bus.tier.08", "Output Bus (UV)", 8) + .getStackForm(1L)); + ItemList.Hatch_Output_Bus_MAX.set( + new GT_MetaTileEntity_Hatch_OutputBus(OUTPUT_BUS_UHV.ID, "hatch.output_bus.tier.09", "Output Bus (UHV)", 9) + .getStackForm(1L)); + } + + private static void registerMufflerHatch() { + ItemList.Hatch_Muffler_LV.set( + new GT_MetaTileEntity_Hatch_Muffler(MUFFLER_HATCH_LV.ID, "hatch.muffler.tier.01", "Muffler Hatch (LV)", 1) + .getStackForm(1L)); + ItemList.Hatch_Muffler_MV.set( + new GT_MetaTileEntity_Hatch_Muffler(MUFFLER_HATCH_MV.ID, "hatch.muffler.tier.02", "Muffler Hatch (MV)", 2) + .getStackForm(1L)); + ItemList.Hatch_Muffler_HV.set( + new GT_MetaTileEntity_Hatch_Muffler(MUFFLER_HATCH_HV.ID, "hatch.muffler.tier.03", "Muffler Hatch (HV)", 3) + .getStackForm(1L)); + ItemList.Hatch_Muffler_EV.set( + new GT_MetaTileEntity_Hatch_Muffler(MUFFLER_HATCH_EV.ID, "hatch.muffler.tier.04", "Muffler Hatch (EV)", 4) + .getStackForm(1L)); + ItemList.Hatch_Muffler_IV.set( + new GT_MetaTileEntity_Hatch_Muffler(MUFFLER_HATCH_IV.ID, "hatch.muffler.tier.05", "Muffler Hatch (IV)", 5) + .getStackForm(1L)); + ItemList.Hatch_Muffler_LuV.set( + new GT_MetaTileEntity_Hatch_Muffler(MUFFLER_HATCH_LuV.ID, "hatch.muffler.tier.06", "Muffler Hatch (LuV)", 6) + .getStackForm(1L)); + ItemList.Hatch_Muffler_ZPM.set( + new GT_MetaTileEntity_Hatch_Muffler(MUFFLER_HATCH_ZPM.ID, "hatch.muffler.tier.07", "Muffler Hatch (ZPM)", 7) + .getStackForm(1L)); + ItemList.Hatch_Muffler_UV.set( + new GT_MetaTileEntity_Hatch_Muffler(MUFFLER_HATCH_UV.ID, "hatch.muffler.tier.08", "Muffler Hatch (UV)", 8) + .getStackForm(1L)); + ItemList.Hatch_Muffler_MAX.set( + new GT_MetaTileEntity_Hatch_Muffler(MUFFLER_HATCH_UHV.ID, "hatch.muffler.tier.09", "Muffler Hatch (UHV)", 9) + .getStackForm(1L)); + } + + private static void registerBoiler() { + ItemList.Machine_Bronze_Boiler.set( + new GT_MetaTileEntity_Boiler_Bronze(SMALL_COAL_BOILER.ID, "boiler.bronze", "Small Coal Boiler") + .getStackForm(1L)); + ItemList.Machine_Steel_Boiler.set( + new GT_MetaTileEntity_Boiler_Steel( + HIGH_PRESSURE_COAL_BOILER.ID, + "boiler.steel", + "High Pressure Coal Boiler").getStackForm(1L)); + ItemList.Machine_Steel_Boiler_Lava.set( + new GT_MetaTileEntity_Boiler_Lava(HIGH_PRESSURE_LAVA_BOILER.ID, "boiler.lava", "High Pressure Lava Boiler") + .getStackForm(1L)); + ItemList.Machine_Bronze_Boiler_Solar.set( + new GT_MetaTileEntity_Boiler_Solar(SIMPLE_SOLAR_BOILER.ID, "boiler.solar", "Simple Solar Boiler") + .getStackForm(1L)); + ItemList.Machine_HP_Solar.set( + new GT_MetaTileEntity_Boiler_Solar_Steel( + HIGH_PRESSURE_SOLAR_BOILER.ID, + "boiler.steel.solar", + "High Pressure Solar Boiler").getStackForm(1L)); + } + + private static void registerBatteryBuffer1x1() { + ItemList.Battery_Buffer_1by1_ULV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_1_BY_1_ULV.ID, + "batterybuffer.01.tier.00", + "Ultra Low Voltage Battery Buffer", + 0, + "", + 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_LV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_1_BY_1_LV.ID, + "batterybuffer.01.tier.01", + "Low Voltage Battery Buffer", + 1, + "", + 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_MV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_1_BY_1_MV.ID, + "batterybuffer.01.tier.02", + "Medium Voltage Battery Buffer", + 2, + "", + 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_HV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_1_BY_1_HV.ID, + "batterybuffer.01.tier.03", + "High Voltage Battery Buffer", + 3, + "", + 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_EV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_1_BY_1_EV.ID, + "batterybuffer.01.tier.04", + "Extreme Voltage Battery Buffer", + 4, + "", + 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_IV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_1_BY_1_IV.ID, + "batterybuffer.01.tier.05", + "Insane Voltage Battery Buffer", + 5, + "", + 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_LuV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_1_BY_1_LuV.ID, + "batterybuffer.01.tier.06", + "Ludicrous Voltage Battery Buffer", + 6, + "", + 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_ZPM.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_1_BY_1_ZPM.ID, + "batterybuffer.01.tier.07", + "ZPM Voltage Battery Buffer", + 7, + "", + 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_UV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_1_BY_1_UV.ID, + "batterybuffer.01.tier.08", + "Ultimate Voltage Battery Buffer", + 8, + "", + 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_MAX.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_1_BY_1_UHV.ID, + "batterybuffer.01.tier.09", + "Highly Ultimate Voltage Battery Buffer", + 9, + "", + 1).getStackForm(1L)); + } + + private static void registerBatteryBuffer2x2() { + ItemList.Battery_Buffer_2by2_ULV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_2_BY_2_ULV.ID, + "batterybuffer.04.tier.00", + "Ultra Low Voltage Battery Buffer", + 0, + "", + 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_LV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_2_BY_2_LV.ID, + "batterybuffer.04.tier.01", + "Low Voltage Battery Buffer", + 1, + "", + 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_MV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_2_BY_2_MV.ID, + "batterybuffer.04.tier.02", + "Medium Voltage Battery Buffer", + 2, + "", + 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_HV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_2_BY_2_HV.ID, + "batterybuffer.04.tier.03", + "High Voltage Battery Buffer", + 3, + "", + 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_EV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_2_BY_2_EV.ID, + "batterybuffer.04.tier.04", + "Extreme Voltage Battery Buffer", + 4, + "", + 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_IV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_2_BY_2_IV.ID, + "batterybuffer.04.tier.05", + "Insane Voltage Battery Buffer", + 5, + "", + 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_LuV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_2_BY_2_LuV.ID, + "batterybuffer.04.tier.06", + "Ludicrous Voltage Battery Buffer", + 6, + "", + 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_ZPM.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_2_BY_2_ZPM.ID, + "batterybuffer.04.tier.07", + "ZPM Voltage Battery Buffer", + 7, + "", + 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_UV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_2_BY_2_UV.ID, + "batterybuffer.04.tier.08", + "Ultimate Voltage Battery Buffer", + 8, + "", + 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_MAX.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_2_BY_2_UHV.ID, + "batterybuffer.04.tier.09", + "Highly Ultimate Voltage Battery Buffer", + 9, + "", + 4).getStackForm(1L)); + } + + private static void registerBatteryBuffer3x3() { + ItemList.Battery_Buffer_3by3_ULV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_3_BY_3_ULV.ID, + "batterybuffer.09.tier.00", + "Ultra Low Voltage Battery Buffer", + 0, + "", + 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_LV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_3_BY_3_LV.ID, + "batterybuffer.09.tier.01", + "Low Voltage Battery Buffer", + 1, + "", + 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_MV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_3_BY_3_MV.ID, + "batterybuffer.09.tier.02", + "Medium Voltage Battery Buffer", + 2, + "", + 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_HV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_3_BY_3_HV.ID, + "batterybuffer.09.tier.03", + "High Voltage Battery Buffer", + 3, + "", + 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_EV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_3_BY_3_EV.ID, + "batterybuffer.09.tier.04", + "Extreme Voltage Battery Buffer", + 4, + "", + 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_IV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_3_BY_3_IV.ID, + "batterybuffer.09.tier.05", + "Insane Voltage Battery Buffer", + 5, + "", + 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_LuV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_3_BY_3_LuV.ID, + "batterybuffer.09.tier.06", + "Ludicrous Voltage Battery Buffer", + 6, + "", + 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_ZPM.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_3_BY_3_ZPM.ID, + "batterybuffer.09.tier.07", + "ZPM Voltage Battery Buffer", + 7, + "", + 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_UV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_3_BY_3_UV.ID, + "batterybuffer.09.tier.08", + "Ultimate Voltage Battery Buffer", + 8, + "", + 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_MAX.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_3_BY_3_UHV.ID, + "batterybuffer.09.tier.09", + "Highly Ultimate Voltage Battery Buffer", + 9, + "", + 9).getStackForm(1L)); + } + + private static void registerBatteryBuffer4x4() { + ItemList.Battery_Buffer_4by4_ULV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_4_BY_4_ULV.ID, + "batterybuffer.16.tier.00", + "Ultra Low Voltage Battery Buffer", + 0, + "", + 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_LV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_4_BY_4_LV.ID, + "batterybuffer.16.tier.01", + "Low Voltage Battery Buffer", + 1, + "", + 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_MV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_4_BY_4_MV.ID, + "batterybuffer.16.tier.02", + "Medium Voltage Battery Buffer", + 2, + "", + 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_HV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_4_BY_4_HV.ID, + "batterybuffer.16.tier.03", + "High Voltage Battery Buffer", + 3, + "", + 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_EV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_4_BY_4_EV.ID, + "batterybuffer.16.tier.04", + "Extreme Voltage Battery Buffer", + 4, + "", + 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_IV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_4_BY_4_IV.ID, + "batterybuffer.16.tier.05", + "Insane Voltage Battery Buffer", + 5, + "", + 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_LuV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_4_BY_4_LuV.ID, + "batterybuffer.16.tier.06", + "Ludicrous Voltage Battery Buffer", + 6, + "", + 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_ZPM.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_4_BY_4_ZPM.ID, + "batterybuffer.16.tier.07", + "ZPM Voltage Battery Buffer", + 7, + "", + 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_UV.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_4_BY_4_UV.ID, + "batterybuffer.16.tier.08", + "Ultimate Voltage Battery Buffer", + 8, + "", + 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_MAX.set( + new GT_MetaTileEntity_BasicBatteryBuffer( + BATTERY_BUFFER_4_BY_4_UHV.ID, + "batterybuffer.16.tier.09", + "Highly Ultimate Voltage Battery Buffer", + 9, + "", + 16).getStackForm(1L)); + } + + private static void registerCharger4x4() { + ItemList.Battery_Charger_4by4_ULV.set( + new GT_MetaTileEntity_Charger( + BATTERY_CHARGER_4_BY_4_ULV.ID, + "batterycharger.16.tier.00", + "Ultra Low Voltage Battery Charger", + 0, + "Each battery gives 8A in/4A out (min 4A/2A)", + 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_LV.set( + new GT_MetaTileEntity_Charger( + BATTERY_CHARGER_4_BY_4_LV.ID, + "batterycharger.16.tier.01", + "Low Voltage Battery Charger", + 1, + "Each battery gives 8A in/4A out (min 4A/2A)", + 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_MV.set( + new GT_MetaTileEntity_Charger( + BATTERY_CHARGER_4_BY_4_MV.ID, + "batterycharger.16.tier.02", + "Medium Voltage Battery Charger", + 2, + "Each battery gives 8A in/4A out (min 4A/2A)", + 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_HV.set( + new GT_MetaTileEntity_Charger( + BATTERY_CHARGER_4_BY_4_HV.ID, + "batterycharger.16.tier.03", + "High Voltage Battery Charger", + 3, + "Each battery gives 8A in/4A out (min 4A/2A)", + 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_EV.set( + new GT_MetaTileEntity_Charger( + BATTERY_CHARGER_4_BY_4_EV.ID, + "batterycharger.16.tier.04", + "Extreme Voltage Battery Charger", + 4, + "Each battery gives 8A in/4A out (min 4A/2A)", + 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_IV.set( + new GT_MetaTileEntity_Charger( + BATTERY_CHARGER_4_BY_4_IV.ID, + "batterycharger.16.tier.05", + "Insane Voltage Battery Charger", + 5, + "Each battery gives 8A in/4A out (min 4A/2A)", + 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_LuV.set( + new GT_MetaTileEntity_Charger( + BATTERY_CHARGER_4_BY_4_LuV.ID, + "batterycharger.16.tier.06", + "Ludicrous Voltage Battery Charger", + 6, + "Each battery gives 8A in/4A out (min 4A/2A)", + 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_ZPM.set( + new GT_MetaTileEntity_Charger( + BATTERY_CHARGER_4_BY_4_ZPM.ID, + "batterycharger.16.tier.07", + "ZPM Voltage Battery Charger", + 7, + "Each battery gives 8A in/4A out (min 4A/2A)", + 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_UV.set( + new GT_MetaTileEntity_Charger( + BATTERY_CHARGER_4_BY_4_UV.ID, + "batterycharger.16.tier.08", + "Ultimate Voltage Battery Charger", + 8, + "Each battery gives 8A in/4A out (min 4A/2A)", + 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_MAX.set( + new GT_MetaTileEntity_Charger( + BATTERY_CHARGER_4_BY_4_UHV.ID, + "batterycharger.16.tier.09", + "Highly Ultimate Voltage Battery Charger", + 9, + "Each battery gives 8A in/4A out (min 4A/2A)", + 4).getStackForm(1L)); + } + + private static void registerWirelessEnergyHatch() { + ItemList.Wireless_Hatch_Energy_ULV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_ULV.ID, + "hatch.wireless.receiver.tier.00", + "ULV Wireless Energy Hatch", + 0).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_LV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_LV.ID, + "hatch.wireless.receiver.tier.01", + "LV Wireless Energy Hatch", + 1).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_MV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_MV.ID, + "hatch.wireless.receiver.tier.02", + "MV Wireless Energy Hatch", + 2).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_HV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_HV.ID, + "hatch.wireless.receiver.tier.03", + "HV Wireless Energy Hatch", + 3).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_EV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_EV.ID, + "hatch.wireless.receiver.tier.04", + "EV Wireless Energy Hatch", + 4).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_IV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_IV.ID, + "hatch.wireless.receiver.tier.05", + "IV Wireless Energy Hatch", + 5).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_LuV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_LuV.ID, + "hatch.wireless.receiver.tier.06", + "LuV Wireless Energy Hatch", + 6).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_ZPM.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_ZPM.ID, + "hatch.wireless.receiver.tier.07", + "ZPM Wireless Energy Hatch", + 7).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_UV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_UV.ID, + "hatch.wireless.receiver.tier.08", + "UV Wireless Energy Hatch", + 8).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_UHV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_UHV.ID, + "hatch.wireless.receiver.tier.09", + "UHV Wireless Energy Hatch", + 9).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_UEV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_UEV.ID, + "hatch.wireless.receiver.tier.10", + "UEV Wireless Energy Hatch", + 10).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_UIV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_UIV.ID, + "hatch.wireless.receiver.tier.11", + "UIV Wireless Energy Hatch", + 11).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_UMV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_UMV.ID, + "hatch.wireless.receiver.tier.12", + "UMV Wireless Energy Hatch", + 12).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_UXV.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_UXV.ID, + "hatch.wireless.receiver.tier.13", + "UXV Wireless Energy Hatch", + 13).getStackForm(1L)); + ItemList.Wireless_Hatch_Energy_MAX.set( + new GT_MetaTileEntity_Wireless_Hatch( + WIRELESS_HATCH_ENERGY_MAX.ID, + "hatch.wireless.receiver.tier.14", + "MAX Wireless Energy Hatch", + 14).getStackForm(1L)); + } + + private static void registerWirelessDynamoHatch() { + ItemList.Wireless_Dynamo_Energy_ULV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_ULV.ID, + "hatch.wireless.transmitter.tier.00", + "ULV Wireless Energy Dynamo", + 0).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_LV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_LV.ID, + "hatch.wireless.transmitter.tier.01", + "LV Wireless Energy Dynamo", + 1).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_MV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_MV.ID, + "hatch.wireless.transmitter.tier.02", + "MV Wireless Energy Dynamo", + 2).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_HV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_HV.ID, + "hatch.wireless.transmitter.tier.03", + "HV Wireless Energy Dynamo", + 3).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_EV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_EV.ID, + "hatch.wireless.transmitter.tier.04", + "EV Wireless Energy Dynamo", + 4).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_IV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_IV.ID, + "hatch.wireless.transmitter.tier.05", + "IV Wireless Energy Dynamo", + 5).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_LuV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_LuV.ID, + "hatch.wireless.transmitter.tier.06", + "LuV Wireless Energy Dynamo", + 6).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_ZPM.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_ZPM.ID, + "hatch.wireless.transmitter.tier.07", + "ZPM Wireless Energy Dynamo", + 7).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_UV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_UV.ID, + "hatch.wireless.transmitter.tier.08", + "UV Wireless Energy Dynamo", + 8).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_UHV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_UHV.ID, + "hatch.wireless.transmitter.tier.09", + "UHV Wireless Energy Dynamo", + 9).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_UEV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_UEV.ID, + "hatch.wireless.transmitter.tier.10", + "UEV Wireless Energy Dynamo", + 10).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_UIV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_UIV.ID, + "hatch.wireless.transmitter.tier.11", + "UIV Wireless Energy Dynamo", + 11).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_UMV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_UMV.ID, + "hatch.wireless.transmitter.tier.12", + "UMV Wireless Energy Dynamo", + 12).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_UXV.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_UXV.ID, + "hatch.wireless.transmitter.tier.13", + "UXV Wireless Energy Dynamo", + 13).getStackForm(1L)); + ItemList.Wireless_Dynamo_Energy_MAX.set( + new GT_MetaTileEntity_Wireless_Dynamo( + WIRELESS_DYNAMO_ENERGY_HATCH_MAX.ID, + "hatch.wireless.transmitter.tier.14", + "MAX Wireless Energy Dynamo", + 14).getStackForm(1L)); + } + + private static void registerLightningRods() { + ItemList.Machine_HV_LightningRod.set( + new GT_MetaTileEntity_LightningRod( + LIGHTNING_ROD_HV.ID, + "basicgenerator.lightningrod.03", + "Lightning Rod", + 3).getStackForm(1)); + ItemList.Machine_EV_LightningRod.set( + new GT_MetaTileEntity_LightningRod( + LIGHTNING_ROD_EV.ID, + "basicgenerator.lightningrod.04", + "Lightning Rod II", + 4).getStackForm(1)); + ItemList.Machine_IV_LightningRod.set( + new GT_MetaTileEntity_LightningRod( + LIGHTNING_ROD_IV.ID, + "basicgenerator.lightningrod.05", + "Lightning Rod III", + 5).getStackForm(1)); + } + + private static void registerCombustionGenerators() { + ItemList.Generator_Diesel_LV.set( + new GT_MetaTileEntity_DieselGenerator( + COMBUSTION_GENERATOR_LV.ID, + "basicgenerator.diesel.tier.01", + "Basic Combustion Generator", + 1).getStackForm(1L)); + ItemList.Generator_Diesel_MV.set( + new GT_MetaTileEntity_DieselGenerator( + COMBUSTION_GENERATOR_MV.ID, + "basicgenerator.diesel.tier.02", + "Advanced Combustion Generator", + 2).getStackForm(1L)); + ItemList.Generator_Diesel_HV.set( + new GT_MetaTileEntity_DieselGenerator( + COMBUSTION_GENERATOR_HV.ID, + "basicgenerator.diesel.tier.03", + "Turbo Combustion Generator", + 3).getStackForm(1L)); + } + + private static void registerGasTurbines() { + ItemList.Generator_Gas_Turbine_LV.set( + new GT_MetaTileEntity_GasTurbine( + GAS_TURBINE_LV.ID, + "basicgenerator.gasturbine.tier.01", + "Basic Gas Turbine", + 1, + 95).getStackForm(1L)); + ItemList.Generator_Gas_Turbine_MV.set( + new GT_MetaTileEntity_GasTurbine( + GAS_TURBINE_MV.ID, + "basicgenerator.gasturbine.tier.02", + "Advanced Gas Turbine", + 2, + 90).getStackForm(1L)); + ItemList.Generator_Gas_Turbine_HV.set( + new GT_MetaTileEntity_GasTurbine( + GAS_TURBINE_HV.ID, + "basicgenerator.gasturbine.tier.03", + "Turbo Gas Turbine", + 3, + 85).getStackForm(1L)); + ItemList.Generator_Gas_Turbine_EV.set( + new GT_MetaTileEntity_GasTurbine( + GAS_TURBINE_EV.ID, + "basicgenerator.gasturbine.tier.04", + "Turbo Gas Turbine II", + 4, + 60).getStackForm(1L)); + ItemList.Generator_Gas_Turbine_IV.set( + new GT_MetaTileEntity_GasTurbine( + GAS_TURBINE_IV.ID, + "basicgenerator.gasturbine.tier.05", + "Turbo Gas Turbine III", + 5, + 50).getStackForm(1L)); + } + + private static void registerSteamTurbines() { + ItemList.Generator_Steam_Turbine_LV.set( + new GT_MetaTileEntity_SteamTurbine( + STEAM_TURBINE_LV.ID, + "basicgenerator.steamturbine.tier.01", + "Basic Steam Turbine", + 1).getStackForm(1L)); + ItemList.Generator_Steam_Turbine_MV.set( + new GT_MetaTileEntity_SteamTurbine( + STEAM_TURBINE_MV.ID, + "basicgenerator.steamturbine.tier.02", + "Advanced Steam Turbine", + 2).getStackForm(1L)); + ItemList.Generator_Steam_Turbine_HV.set( + new GT_MetaTileEntity_SteamTurbine( + STEAM_TURBINE_HV.ID, + "basicgenerator.steamturbine.tier.03", + "Turbo Steam Turbine", + 3).getStackForm(1L)); + } + + private static void registerNaquadahReactors() { + ItemList.Generator_Naquadah_Mark_I.set( + new GT_MetaTileEntity_NaquadahReactor( + NAQUADAH_REACTOR_EV.ID, + "basicgenerator.naquadah.tier.04", + new String[] { "Requires Enriched Naquadah Bolts" }, + "Naquadah Reactor Mark I", + 4).getStackForm(1L)); + ItemList.Generator_Naquadah_Mark_II.set( + new GT_MetaTileEntity_NaquadahReactor( + NAQUADAH_REACTOR_IV.ID, + "basicgenerator.naquadah.tier.05", + new String[] { "Requires Enriched Naquadah Rods" }, + "Naquadah Reactor Mark II", + 5).getStackForm(1L)); + ItemList.Generator_Naquadah_Mark_III.set( + new GT_MetaTileEntity_NaquadahReactor( + NAQUADAH_REACTOR_LuV.ID, + "basicgenerator.naquadah.tier.06", + new String[] { "Requires Enriched Naquadah Long Rods" }, + "Naquadah Reactor Mark III", + 6).getStackForm(1L)); + ItemList.Generator_Naquadah_Mark_IV.set( + new GT_MetaTileEntity_NaquadahReactor( + NAQUADAH_REACTOR_ZPM.ID, + "basicgenerator.naquadah.tier.07", + new String[] { "Requires Naquadria Bolts" }, + "Naquadah Reactor Mark IV", + 7).getStackForm(1L)); + ItemList.Generator_Naquadah_Mark_V.set( + new GT_MetaTileEntity_NaquadahReactor( + NAQUADAH_REACTOR_UV.ID, + "basicgenerator.naquadah.tier.08", + new String[] { "Requires Naquadria Rods" }, + "Naquadah Reactor Mark V", + 8).getStackForm(1L)); + } + + private static void registerMagicEnergyConverters() { + ItemList.MagicEnergyConverter_LV.set( + new GT_MetaTileEntity_MagicEnergyConverter( + MAGIC_ENERGY_CONVERTER_LV.ID, + "basicgenerator.magicenergyconverter.tier.01", + "Novice Magic Energy Converter", + 1).getStackForm(1L)); + ItemList.MagicEnergyConverter_MV.set( + new GT_MetaTileEntity_MagicEnergyConverter( + MAGIC_ENERGY_CONVERTER_MV.ID, + "basicgenerator.magicenergyconverter.tier.02", + "Adept Magic Energy Converter", + 2).getStackForm(1L)); + ItemList.MagicEnergyConverter_HV.set( + new GT_MetaTileEntity_MagicEnergyConverter( + MAGIC_ENERGY_CONVERTER_HV.ID, + "basicgenerator.magicenergyconverter.tier.03", + "Master Magic Energy Converter", + 3).getStackForm(1L)); + } + + private static void registerMagicEnergyAbsorbers() { + ItemList.MagicEnergyAbsorber_LV.set( + new GT_MetaTileEntity_MagicalEnergyAbsorber( + MAGIC_ENERGY_ABSORBER_LV.ID, + "basicgenerator.magicenergyabsorber.tier.01", + "Novice Magic Energy Absorber", + 1).getStackForm(1L)); + ItemList.MagicEnergyAbsorber_MV.set( + new GT_MetaTileEntity_MagicalEnergyAbsorber( + MAGIC_ENERGY_ABSORBER_MV.ID, + "basicgenerator.magicenergyabsorber.tier.02", + "Adept Magic Energy Absorber", + 2).getStackForm(1L)); + ItemList.MagicEnergyAbsorber_HV.set( + new GT_MetaTileEntity_MagicalEnergyAbsorber( + MAGIC_ENERGY_ABSORBER_HV.ID, + "basicgenerator.magicenergyabsorber.tier.03", + "Master Magic Energy Absorber", + 3).getStackForm(1L)); + ItemList.MagicEnergyAbsorber_EV.set( + new GT_MetaTileEntity_MagicalEnergyAbsorber( + MAGIC_ENERGY_ABSORBER_EV.ID, + "basicgenerator.magicenergyabsorber.tier.04", + "Grandmaster Magic Energy Absorber", + 4).getStackForm(1L)); + } + + private static void registerPlasmaGenerators() { + ItemList.Generator_Plasma_IV.set( + new GT_MetaTileEntity_PlasmaGenerator( + PLASMA_GENERATOR_IV.ID, + "basicgenerator.plasmagenerator.tier.05", + "Plasma Generator Mark I", + 4).getStackForm(1L)); + ItemList.Generator_Plasma_LuV.set( + new GT_MetaTileEntity_PlasmaGenerator( + PLASMA_GENERATOR_LuV.ID, + "basicgenerator.plasmagenerator.tier.06", + "Plasma Generator Mark II", + 5).getStackForm(1L)); + ItemList.Generator_Plasma_ZPMV.set( + new GT_MetaTileEntity_PlasmaGenerator( + PLASMA_GENERATOR_ZPM.ID, + "basicgenerator.plasmagenerator.tier.07", + "Plasma Generator Mark III", + 6).getStackForm(1L)); + } + + private static void generateWiresAndPipes() { + for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { + if (((GregTech_API.sGeneratedMaterials[i] != null) + && ((GregTech_API.sGeneratedMaterials[i].mTypes & 0x2) != 0)) + || (GregTech_API.sGeneratedMaterials[i] == Materials.Wood)) { + new GT_MetaPipeEntity_Frame( + 4096 + i, + "GT_Frame_" + GregTech_API.sGeneratedMaterials[i], + (GT_LanguageManager.i18nPlaceholder ? "%material" + : GregTech_API.sGeneratedMaterials[i] != null + ? GregTech_API.sGeneratedMaterials[i].mDefaultLocalName + : "") + + " Frame Box", + GregTech_API.sGeneratedMaterials[i]); + } + } + boolean bEC = !GT_Mod.gregtechproxy.mHardcoreCables; + + makeWires(Materials.RedAlloy, 2000, 0L, 1L, 1L, gregtech.api.enums.GT_Values.V[0], true, false); + + makeWires(Materials.Cobalt, 1200, 2L, 4L, 2L, gregtech.api.enums.GT_Values.V[1], true, false); + makeWires(Materials.Lead, 1220, 2L, 4L, 2L, gregtech.api.enums.GT_Values.V[1], true, false); + makeWires(Materials.Tin, 1240, 1L, 2L, 1L, gregtech.api.enums.GT_Values.V[1], true, false); + + makeWires(Materials.Zinc, 1260, 1L, 2L, 1L, gregtech.api.enums.GT_Values.V[1], true, false); + makeWires(Materials.SolderingAlloy, 1280, 1L, 2L, 1L, gregtech.api.enums.GT_Values.V[1], true, false); + + makeWires( + Materials.Iron, + 1300, + bEC ? 3L : 4L, + bEC ? 6L : 8L, + 2L, + gregtech.api.enums.GT_Values.V[2], + true, + false); + makeWires( + Materials.Nickel, + 1320, + bEC ? 3L : 5L, + bEC ? 6L : 10L, + 3L, + gregtech.api.enums.GT_Values.V[2], + true, + false); + makeWires( + Materials.Cupronickel, + 1340, + bEC ? 3L : 4L, + bEC ? 6L : 8L, + 2L, + gregtech.api.enums.GT_Values.V[2], + true, + false); + makeWires( + Materials.Copper, + 1360, + bEC ? 2L : 3L, + bEC ? 4L : 6L, + 1L, + gregtech.api.enums.GT_Values.V[2], + true, + false); + makeWires( + Materials.AnnealedCopper, + 1380, + bEC ? 1L : 2L, + bEC ? 2L : 4L, + 1L, + gregtech.api.enums.GT_Values.V[2], + true, + false); + + makeWires( + Materials.Kanthal, + 1400, + bEC ? 3L : 8L, + bEC ? 6L : 16L, + 4L, + gregtech.api.enums.GT_Values.V[3], + true, + false); + makeWires( + Materials.Gold, + 1420, + bEC ? 2L : 6L, + bEC ? 4L : 12L, + 3L, + gregtech.api.enums.GT_Values.V[3], + true, + false); + makeWires( + Materials.Electrum, + 1440, + bEC ? 2L : 5L, + bEC ? 4L : 10L, + 2L, + gregtech.api.enums.GT_Values.V[3], + true, + false); + makeWires( + Materials.Silver, + 1460, + bEC ? 1L : 4L, + bEC ? 2L : 8L, + 1L, + gregtech.api.enums.GT_Values.V[3], + true, + false); + makeWires( + Materials.BlueAlloy, + 1480, + bEC ? 1L : 4L, + bEC ? 2L : 8L, + 2L, + gregtech.api.enums.GT_Values.V[3], + true, + false); + + makeWires( + Materials.Nichrome, + 1500, + bEC ? 4L : 32L, + bEC ? 8L : 64L, + 3L, + gregtech.api.enums.GT_Values.V[4], + true, + false); + makeWires( + Materials.Steel, + 1520, + bEC ? 2L : 16L, + bEC ? 4L : 32L, + 2L, + gregtech.api.enums.GT_Values.V[4], + true, + false); + makeWires( + Materials.BlackSteel, + 1540, + bEC ? 2L : 14L, + bEC ? 4L : 28L, + 3L, + gregtech.api.enums.GT_Values.V[4], + true, + false); + makeWires( + Materials.Titanium, + 1560, + bEC ? 2L : 12L, + bEC ? 4L : 24L, + 4L, + gregtech.api.enums.GT_Values.V[4], + true, + false); + makeWires( + Materials.Aluminium, + 1580, + bEC ? 1L : 8L, + bEC ? 2L : 16L, + 1L, + gregtech.api.enums.GT_Values.V[4], + true, + false); + + makeWires( + Materials.Graphene, + 1600, + bEC ? 1L : 16L, + bEC ? 2L : 32L, + 1L, + gregtech.api.enums.GT_Values.V[5], + false, + true); + makeWires( + Materials.Osmium, + 1620, + bEC ? 2L : 32L, + bEC ? 4L : 64L, + 4L, + gregtech.api.enums.GT_Values.V[5], + true, + false); + makeWires( + Materials.Platinum, + 1640, + bEC ? 1L : 16L, + bEC ? 2L : 32L, + 2L, + gregtech.api.enums.GT_Values.V[5], + true, + false); + makeWires( + Materials.TungstenSteel, + 1660, + bEC ? 2L : 14L, + bEC ? 4L : 28L, + 3L, + gregtech.api.enums.GT_Values.V[5], + true, + false); + makeWires( + Materials.Tungsten, + 1680, + bEC ? 2L : 12L, + bEC ? 4L : 24L, + 2L, + gregtech.api.enums.GT_Values.V[5], + true, + false); + + makeWires( + Materials.HSSG, + 1700, + bEC ? 2L : 128L, + bEC ? 4L : 256L, + 4L, + gregtech.api.enums.GT_Values.V[6], + true, + false); + makeWires( + Materials.NiobiumTitanium, + 1720, + bEC ? 2L : 128L, + bEC ? 4L : 256L, + 4L, + gregtech.api.enums.GT_Values.V[6], + true, + false); + makeWires( + Materials.VanadiumGallium, + 1740, + bEC ? 2L : 128L, + bEC ? 4L : 256L, + 4L, + gregtech.api.enums.GT_Values.V[6], + true, + false); + makeWires( + Materials.YttriumBariumCuprate, + 1760, + bEC ? 4L : 256L, + bEC ? 8L : 512L, + 4L, + gregtech.api.enums.GT_Values.V[6], + true, + false); + + makeWires( + Materials.Naquadah, + 1780, + bEC ? 2L : 64L, + bEC ? 4L : 128L, + 2L, + gregtech.api.enums.GT_Values.V[7], + true, + false); + + makeWires( + Materials.NaquadahAlloy, + 1800, + bEC ? 4L : 64L, + bEC ? 8L : 128L, + 2L, + gregtech.api.enums.GT_Values.V[8], + true, + false); + makeWires( + Materials.Duranium, + 1820, + bEC ? 8L : 64L, + bEC ? 16L : 128L, + 1L, + gregtech.api.enums.GT_Values.V[8], + true, + false); + makeWires( + Materials.TPV, + 1840, + bEC ? 1L : 14L, + bEC ? 2L : 28L, + 6L, + gregtech.api.enums.GT_Values.V[4], + true, + false); + + // Superconductor base. + makeWires( + Materials.Pentacadmiummagnesiumhexaoxid, + 2200, + 1L, + 2L, + 1L, + gregtech.api.enums.GT_Values.V[2], + false, + false); + makeWires( + Materials.Titaniumonabariumdecacoppereikosaoxid, + 2220, + 1L, + 8L, + 2L, + gregtech.api.enums.GT_Values.V[3], + false, + false); + makeWires(Materials.Uraniumtriplatinid, 2240, 1L, 16L, 3L, gregtech.api.enums.GT_Values.V[4], false, false); + makeWires(Materials.Vanadiumtriindinid, 2260, 1L, 64L, 4L, gregtech.api.enums.GT_Values.V[5], false, false); + makeWires( + Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, + 2280, + 2L, + 256L, + 6L, + gregtech.api.enums.GT_Values.V[6], + false, + false); + makeWires( + Materials.Tetranaquadahdiindiumhexaplatiumosminid, + 2300, + 2L, + 1024L, + 8L, + gregtech.api.enums.GT_Values.V[7], + false, + false); + makeWires( + Materials.Longasssuperconductornameforuvwire, + 2500, + 2L, + 4096L, + 12L, + gregtech.api.enums.GT_Values.V[8], + false, + false); + makeWires( + Materials.Longasssuperconductornameforuhvwire, + 2520, + 2L, + 16384L, + 16L, + gregtech.api.enums.GT_Values.V[9], + false, + false); + makeWires( + Materials.SuperconductorUEVBase, + 2032, + 2L, + 65536L, + 24L, + gregtech.api.enums.GT_Values.V[10], + false, + false); + makeWires( + Materials.SuperconductorUIVBase, + 2052, + 2L, + 262144L, + 32L, + gregtech.api.enums.GT_Values.V[11], + false, + false); + makeWires(Materials.SuperconductorUMVBase, 2072, 2L, 1048576L, 32L, GT_Values.V[12], false, false); + + // Actual superconductors. + makeWires(Materials.SuperconductorMV, 2320, 0L, 0L, 4L, gregtech.api.enums.GT_Values.V[2], false, true); + makeWires(Materials.SuperconductorHV, 2340, 0L, 0L, 6L, gregtech.api.enums.GT_Values.V[3], false, true); + makeWires(Materials.SuperconductorEV, 2360, 0L, 0L, 8L, gregtech.api.enums.GT_Values.V[4], false, true); + makeWires(Materials.SuperconductorIV, 2380, 0L, 0L, 12L, gregtech.api.enums.GT_Values.V[5], false, true); + makeWires(Materials.SuperconductorLuV, 2400, 0L, 0L, 16L, gregtech.api.enums.GT_Values.V[6], false, true); + makeWires(Materials.SuperconductorZPM, 2420, 0L, 0L, 24L, gregtech.api.enums.GT_Values.V[7], false, true); + makeWires(Materials.SuperconductorUV, 2440, 0L, 0L, 32L, gregtech.api.enums.GT_Values.V[8], false, true); + makeWires(Materials.SuperconductorUHV, 2020, 0L, 0L, 48L, gregtech.api.enums.GT_Values.V[9], false, true); + makeWires(Materials.SuperconductorUEV, 2026, 0L, 0L, 64L, gregtech.api.enums.GT_Values.V[10], false, true); + makeWires(Materials.SuperconductorUIV, 2081, 0L, 0L, 64L, gregtech.api.enums.GT_Values.V[11], false, true); + makeWires(Materials.SuperconductorUMV, 2089, 0L, 0L, 64L, gregtech.api.enums.GT_Values.V[12], false, true); + + makeWires(Materials.Ichorium, 2600, 2L, 2L, 12L, GT_Values.V[9], false, true); + makeWires(MaterialsUEVplus.SpaceTime, 2606, 0L, 0L, 1_000_000L, GT_Values.V[14], false, true); + + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeSmall.get(Materials.Wood), + new GT_MetaPipeEntity_Fluid( + 5101, + "GT_Pipe_Wood_Small", + "Small Wooden Fluid Pipe", + 0.375F, + Materials.Wood, + 10, + 350, + false).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeMedium.get(Materials.Wood), + new GT_MetaPipeEntity_Fluid(5102, "GT_Pipe_Wood", "Wooden Fluid Pipe", 0.5F, Materials.Wood, 30, 350, false) + .getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeLarge.get(Materials.Wood), + new GT_MetaPipeEntity_Fluid( + 5103, + "GT_Pipe_Wood_Large", + "Large Wooden Fluid Pipe", + 0.75F, + Materials.Wood, + 60, + 350, + false).getStackForm(1L)); + + generateFluidPipes(Materials.Copper, Materials.Copper.mName, 5110, 20, 1000, true); + generateFluidMultiPipes(Materials.Copper, Materials.Copper.mName, 5115, 20, 1000, true); + generateFluidPipes(Materials.Bronze, Materials.Bronze.mName, 5120, 120, 2000, true); + generateFluidMultiPipes(Materials.Bronze, Materials.Bronze.mName, 5125, 120, 2000, true); + generateFluidPipes(Materials.Steel, Materials.Steel.mName, 5130, 240, 2500, true); + generateFluidMultiPipes(Materials.Steel, Materials.Steel.mName, 5135, 240, 2500, true); + generateFluidPipes(Materials.StainlessSteel, Materials.StainlessSteel.mName, 5140, 360, 3000, true); + generateFluidMultiPipes(Materials.StainlessSteel, Materials.StainlessSteel.mName, 5145, 360, 3000, true); + generateFluidPipes(Materials.Titanium, Materials.Titanium.mName, 5150, 480, 5000, true); + generateFluidMultiPipes(Materials.Titanium, Materials.Titanium.mName, 5155, 480, 5000, true); + generateFluidPipes(Materials.TungstenSteel, Materials.TungstenSteel.mName, 5160, 600, 7500, true); + generateFluidMultiPipes(Materials.TungstenSteel, Materials.TungstenSteel.mName, 5270, 600, 7500, true); + generateFluidPipes( + Materials.Polybenzimidazole, + Materials.Polybenzimidazole.mName, + "PBI", + 5280, + 600, + 1000, + true); + generateFluidMultiPipes( + Materials.Polybenzimidazole, + Materials.Polybenzimidazole.mName, + "PBI", + 5290, + 600, + 1000, + true); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeSmall.get(Materials.Ultimate), + new GT_MetaPipeEntity_Fluid( + 5165, + "GT_Pipe_HighPressure_Small", + "Small High Pressure Fluid Pipe", + 0.375F, + Materials.Redstone, + 4800, + 1500, + true).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeMedium.get(Materials.Ultimate), + new GT_MetaPipeEntity_Fluid( + 5166, + "GT_Pipe_HighPressure", + "High Pressure Fluid Pipe", + 0.5F, + Materials.Redstone, + 7200, + 1500, + true).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeLarge.get(Materials.Ultimate), + new GT_MetaPipeEntity_Fluid( + 5167, + "GT_Pipe_HighPressure_Large", + "Large High Pressure Fluid Pipe", + 0.75F, + Materials.Redstone, + 9600, + 1500, + true).getStackForm(1L)); + generateFluidPipes(Materials.Plastic, Materials.Plastic.mName, "Plastic", 5170, 360, 350, true); + generateFluidMultiPipes(Materials.Plastic, Materials.Plastic.mName, "Plastic", 5175, 360, 350, true); + generateFluidPipes(Materials.NiobiumTitanium, Materials.NiobiumTitanium.mName, 5180, 900, 2900, true); + generateFluidMultiPipes(Materials.NiobiumTitanium, Materials.NiobiumTitanium.mName, 5185, 900, 2900, true); + generateFluidPipes(Materials.Enderium, Materials.Enderium.mName, 5190, 1800, 15000, true); + generateFluidMultiPipes(Materials.Enderium, Materials.Enderium.mName, 5195, 1800, 15000, true); + generateFluidPipes(Materials.Naquadah, Materials.Naquadah.mName, 5200, 9000, 19000, true); + generateFluidMultiPipes(Materials.Naquadah, Materials.Naquadah.mName, 5205, 9000, 19000, true); + generateFluidPipes(Materials.Neutronium, Materials.Neutronium.mName, 5210, 16800, 1000000, true); + generateFluidMultiPipes(Materials.Neutronium, Materials.Neutronium.mName, 5215, 16800, 1000000, true); + generateFluidPipes(Materials.NetherStar, Materials.NetherStar.mName, 5220, 19200, 1000000, true); + generateFluidMultiPipes(Materials.NetherStar, Materials.NetherStar.mName, 5225, 19200, 1000000, true); + generateFluidPipes(Materials.MysteriousCrystal, Materials.MysteriousCrystal.mName, 5230, 24000, 1000000, true); + generateFluidMultiPipes( + Materials.MysteriousCrystal, + Materials.MysteriousCrystal.mName, + 5235, + 24000, + 1000000, + true); + generateFluidPipes(Materials.DraconiumAwakened, Materials.DraconiumAwakened.mName, 5240, 45000, 10000000, true); + generateFluidMultiPipes( + Materials.DraconiumAwakened, + Materials.DraconiumAwakened.mName, + 5245, + 45000, + 10000000, + true); + generateFluidPipes(Materials.Infinity, Materials.Infinity.mName, 5250, 60000, 10000000, true); + generateFluidMultiPipes(Materials.Infinity, Materials.Infinity.mName, 5255, 60000, 10000000, true); + generateFluidPipes(Materials.WroughtIron, Materials.WroughtIron.mName, 5260, 180, 2250, true); + generateFluidMultiPipes(Materials.WroughtIron, Materials.WroughtIron.mName, 5265, 180, 2250, true); + generateFluidPipes( + Materials.Polytetrafluoroethylene, + Materials.Polytetrafluoroethylene.mName, + "PTFE", + 5680, + 480, + 600, + true); + generateFluidMultiPipes( + Materials.Polytetrafluoroethylene, + Materials.Polytetrafluoroethylene.mName, + "PTFE", + 5685, + 480, + 600, + true); + generateFluidPipes( + MaterialsUEVplus.SpaceTime, + MaterialsUEVplus.SpaceTime.mName, + 5300, + 250000, + 2147483647, + true); + generateFluidMultiPipes( + MaterialsUEVplus.SpaceTime, + MaterialsUEVplus.SpaceTime.mName, + 5305, + 250000, + 2147483647, + true); + generateFluidPipes( + MaterialsUEVplus.TranscendentMetal, + MaterialsUEVplus.TranscendentMetal.mName, + 5310, + 220000, + 2147483647, + true); + generateFluidMultiPipes( + MaterialsUEVplus.TranscendentMetal, + MaterialsUEVplus.TranscendentMetal.mName, + 5315, + 220000, + 2147483647, + true); + + generateItemPipes(Materials.Brass, Materials.Brass.mName, 5602, 1); + generateItemPipes(Materials.Electrum, Materials.Electrum.mName, 5612, 2); + generateItemPipes(Materials.Platinum, Materials.Platinum.mName, 5622, 4); + generateItemPipes(Materials.Osmium, Materials.Osmium.mName, 5632, 8); + generateItemPipes(Materials.PolyvinylChloride, Materials.PolyvinylChloride.mName, "PVC", 5690, 4); + generateItemPipes(Materials.Nickel, Materials.Nickel.mName, 5700, 1); + generateItemPipes(Materials.Cobalt, Materials.Cobalt.mName, 5710, 2); + generateItemPipes(Materials.Aluminium, Materials.Aluminium.mName, 5720, 2); + if (NewHorizonsCoreMod.isModLoaded()) { + generateFluidPipes(Materials.get("RadoxPoly"), "RadoxPoly", 5760, 5000, 1500, true); + } + } + + @SuppressWarnings("PointlessArithmeticExpression") + private static void makeWires(Materials aMaterial, int aStartID, long aLossInsulated, long aLoss, long aAmperage, + long aVoltage, boolean aInsulatable, boolean aAutoInsulated) { + String name = GT_LanguageManager.i18nPlaceholder ? "%material" : aMaterial.mDefaultLocalName; + GT_OreDictUnificator.registerOre( + OrePrefixes.wireGt01, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 0, + aTextWire1 + aMaterial.mName.toLowerCase() + ".01", + "1x " + name + aTextWire2, + 0.125F, + aMaterial, + aLoss, + 1L * aAmperage, + aVoltage, + false, + !aAutoInsulated).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.wireGt02, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 1, + aTextWire1 + aMaterial.mName.toLowerCase() + ".02", + "2x " + name + aTextWire2, + 0.25F, + aMaterial, + aLoss, + 2L * aAmperage, + aVoltage, + false, + !aAutoInsulated).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.wireGt04, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 2, + aTextWire1 + aMaterial.mName.toLowerCase() + ".04", + "4x " + name + aTextWire2, + 0.375F, + aMaterial, + aLoss, + 4L * aAmperage, + aVoltage, + false, + !aAutoInsulated).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.wireGt08, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 3, + aTextWire1 + aMaterial.mName.toLowerCase() + ".08", + "8x " + name + aTextWire2, + 0.5F, + aMaterial, + aLoss, + 8L * aAmperage, + aVoltage, + false, + !aAutoInsulated).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.wireGt12, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 4, + aTextWire1 + aMaterial.mName.toLowerCase() + ".12", + "12x " + name + aTextWire2, + 0.625F, + aMaterial, + aLoss, + 12L * aAmperage, + aVoltage, + false, + !aAutoInsulated).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.wireGt16, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 5, + aTextWire1 + aMaterial.mName.toLowerCase() + ".16", + "16x " + name + aTextWire2, + 0.75F, + aMaterial, + aLoss, + 16L * aAmperage, + aVoltage, + false, + !aAutoInsulated).getStackForm(1L)); + if (aInsulatable) { + GT_OreDictUnificator.registerOre( + OrePrefixes.cableGt01, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 6, + aTextCable1 + aMaterial.mName.toLowerCase() + ".01", + "1x " + name + aTextCable2, + 0.25F, + aMaterial, + aLossInsulated, + 1L * aAmperage, + aVoltage, + true, + false).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.cableGt02, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 7, + aTextCable1 + aMaterial.mName.toLowerCase() + ".02", + "2x " + name + aTextCable2, + 0.375F, + aMaterial, + aLossInsulated, + 2L * aAmperage, + aVoltage, + true, + false).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.cableGt04, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 8, + aTextCable1 + aMaterial.mName.toLowerCase() + ".04", + "4x " + name + aTextCable2, + 0.5F, + aMaterial, + aLossInsulated, + 4L * aAmperage, + aVoltage, + true, + false).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.cableGt08, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 9, + aTextCable1 + aMaterial.mName.toLowerCase() + ".08", + "8x " + name + aTextCable2, + 0.625F, + aMaterial, + aLossInsulated, + 8L * aAmperage, + aVoltage, + true, + false).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.cableGt12, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 10, + aTextCable1 + aMaterial.mName.toLowerCase() + ".12", + "12x " + name + aTextCable2, + 0.75F, + aMaterial, + aLossInsulated, + 12L * aAmperage, + aVoltage, + true, + false).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.cableGt16, + aMaterial, + new GT_MetaPipeEntity_Cable( + aStartID + 11, + aTextCable1 + aMaterial.mName.toLowerCase() + ".16", + "16x " + name + aTextCable2, + 0.875F, + aMaterial, + aLossInsulated, + 16L * aAmperage, + aVoltage, + true, + false).getStackForm(1L)); + } + } + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Registering MetaTileEntities."); + registerMachineHull(); + registerTransformer(); + registerDynamoHatch(); + registerEnergyHatch(); + registerInputHatch(); + registerQuadrupleInputHatch(); + registerOutputHatch(); + registerQuantumTank(); + registerQuantumChest(); + registerSuperTank(); + registerSuperChest(); + registerLongDistancePipe(); + registerAE2Hatches(); + registerInputBus(); + registerOutputBus(); + registerMufflerHatch(); + registerBoiler(); + registerBatteryBuffer1x1(); + registerBatteryBuffer2x2(); + registerBatteryBuffer3x3(); + registerBatteryBuffer4x4(); + registerCharger4x4(); + registerWirelessEnergyHatch(); + registerWirelessDynamoHatch(); + registerSteamMachines(); + registerHPSteamMachines(); + registerLocker(); + registerScanner(); + registerPackager(); + registerRockBreaker(); + registerIndustrialApiary(); + registerMassFab(); + registerReplicator(); + registerBrewery(); + registerMiner(); + registerPump(); + registerTeleporter(); + registerMonsterRepellator(); + registerAdvancedSeismicProspector(); + registerMicrowaveEnergyTransmitter(); + registerChestBuffer(); + registerItemFilter(); + registerTypeFilter(); + registerRegulator(); + registerSuperBuffer(); + registerItemDistributor(); + registerRecipeFilter(); + registerLightningRods(); + registerCombustionGenerators(); + registerGasTurbines(); + registerSteamTurbines(); + registerNaquadahReactors(); + registerMagicEnergyAbsorbers(); + registerMagicEnergyConverters(); + registerPlasmaGenerators(); + registerMultiblockControllers(); + + ItemList.AdvDebugStructureWriter.set( + new GT_MetaTileEntity_AdvDebugStructureWriter( + ADVANCED_DEBUG_STRUCTURE_WRITTER.ID, + "advdebugstructurewriter", + "Advanced Debug Structure Writer", + 5).getStackForm(1L)); + ItemList.Hatch_Maintenance.set( + new GT_MetaTileEntity_Hatch_Maintenance(MAINTENANCE_HATCH.ID, "hatch.maintenance", "Maintenance Hatch", 1) + .getStackForm(1L)); + ItemList.Hatch_AutoMaintenance.set( + new GT_MetaTileEntity_Hatch_Maintenance( + AUTO_MAINTENANCE_HATCH.ID, + "hatch.maintenance.auto", + "Auto Maintenance Hatch", + 6, + true).getStackForm(1L)); + ItemList.Hatch_DroneDownLink.set( + new GT_MetaTileEntity_Hatch_DroneDownLink( + DroneDownLink.ID, + "hatch.dronedownlink", + "Drone DownLink Module", + 5).getStackForm(1)); + ItemList.Hatch_DataAccess_EV.set( + new GT_MetaTileEntity_Hatch_DataAccess(DATA_ACCESS_HATCH.ID, "hatch.dataaccess", "Data Access Hatch", 4) + .getStackForm(1L)); + ItemList.Hatch_DataAccess_LuV.set( + new GT_MetaTileEntity_Hatch_DataAccess( + ADVANCED_DATA_ACCESS_HATCH.ID, + "hatch.dataaccess.adv", + "Advanced Data Access Hatch", + 6).getStackForm(1L)); + ItemList.Hatch_DataAccess_UV.set( + new GT_MetaTileEntity_Hatch_DataAccess( + AUTOMATABLE_DATA_ACCESS_HATCH.ID, + "hatch.dataaccess.auto", + "Automatable Data Access Hatch", + 8).getStackForm(1L)); + generateWiresAndPipes(); + } + + private static void generateItemPipes(Materials aMaterial, String name, int startID, int baseInvSlots) { + generateItemPipes( + aMaterial, + name, + GT_LanguageManager.i18nPlaceholder ? "%material" : aMaterial.mDefaultLocalName, + startID, + baseInvSlots); + } + + private static void generateItemPipes(Materials aMaterial, String name, String displayName, int startID, + int baseInvSlots) { + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeMedium.get(aMaterial), + new GT_MetaPipeEntity_Item( + startID, + "GT_Pipe_" + name, + displayName + " Item Pipe", + 0.50F, + aMaterial, + baseInvSlots, + 32768 / baseInvSlots, + false).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeLarge.get(aMaterial), + new GT_MetaPipeEntity_Item( + startID + 1, + "GT_Pipe_" + name + "_Large", + "Large " + displayName + " Item Pipe", + 0.75F, + aMaterial, + baseInvSlots * 2, + 16384 / baseInvSlots, + false).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeHuge.get(aMaterial), + new GT_MetaPipeEntity_Item( + startID + 2, + "GT_Pipe_" + name + "_Huge", + "Huge " + displayName + " Item Pipe", + 1.00F, + aMaterial, + baseInvSlots * 4, + 8192 / baseInvSlots, + false).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeRestrictiveMedium.get(aMaterial), + new GT_MetaPipeEntity_Item( + startID + 3, + "GT_Pipe_Restrictive_" + name, + "Restrictive " + displayName + " Item Pipe", + 0.50F, + aMaterial, + baseInvSlots, + 3276800 / baseInvSlots, + true).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeRestrictiveLarge.get(aMaterial), + new GT_MetaPipeEntity_Item( + startID + 4, + "GT_Pipe_Restrictive_" + name + "_Large", + "Large Restrictive " + displayName + " Item Pipe", + 0.75F, + aMaterial, + baseInvSlots * 2, + 1638400 / baseInvSlots, + true).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeRestrictiveHuge.get(aMaterial), + new GT_MetaPipeEntity_Item( + startID + 5, + "GT_Pipe_Restrictive_" + name + "_Huge", + "Huge Restrictive " + displayName + " Item Pipe", + 0.875F, + aMaterial, + baseInvSlots * 4, + 819200 / baseInvSlots, + true).getStackForm(1L)); + } + + @SuppressWarnings("SameParameterValue") + private static void generateFluidPipes(Materials aMaterial, String name, int startID, int baseCapacity, + int heatCapacity, boolean gasProof) { + generateFluidPipes( + aMaterial, + name, + GT_LanguageManager.i18nPlaceholder ? "%material" : aMaterial.mDefaultLocalName, + startID, + baseCapacity, + heatCapacity, + gasProof); + } + + private static void generateFluidPipes(Materials aMaterial, String name, String displayName, int startID, + int baseCapacity, int heatCapacity, boolean gasProof) { + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeTiny.get(aMaterial), + new GT_MetaPipeEntity_Fluid( + startID, + "GT_Pipe_" + name + "_Tiny", + "Tiny " + displayName + " Fluid Pipe", + 0.25F, + aMaterial, + baseCapacity / 6, + heatCapacity, + gasProof).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeSmall.get(aMaterial), + new GT_MetaPipeEntity_Fluid( + startID + 1, + "GT_Pipe_" + name + "_Small", + "Small " + displayName + " Fluid Pipe", + 0.375F, + aMaterial, + baseCapacity / 3, + heatCapacity, + gasProof).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeMedium.get(aMaterial), + new GT_MetaPipeEntity_Fluid( + startID + 2, + "GT_Pipe_" + name, + displayName + " Fluid Pipe", + 0.5F, + aMaterial, + baseCapacity, + heatCapacity, + gasProof).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeLarge.get(aMaterial), + new GT_MetaPipeEntity_Fluid( + startID + 3, + "GT_Pipe_" + name + "_Large", + "Large " + displayName + " Fluid Pipe", + 0.75F, + aMaterial, + baseCapacity * 2, + heatCapacity, + gasProof).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeHuge.get(aMaterial), + new GT_MetaPipeEntity_Fluid( + startID + 4, + "GT_Pipe_" + name + "_Huge", + "Huge " + displayName + " Fluid Pipe", + 0.875F, + aMaterial, + baseCapacity * 4, + heatCapacity, + gasProof).getStackForm(1L)); + } + + @SuppressWarnings("SameParameterValue") + private static void generateFluidMultiPipes(Materials aMaterial, String name, int startID, int baseCapacity, + int heatCapacity, boolean gasProof) { + generateFluidMultiPipes(aMaterial, name, "%material", startID, baseCapacity, heatCapacity, gasProof); + } + + private static void generateFluidMultiPipes(Materials aMaterial, String name, String displayName, int startID, + int baseCapacity, int heatCapacity, boolean gasProof) { + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeQuadruple.get(aMaterial), + new GT_MetaPipeEntity_Fluid( + startID, + "GT_Pipe_" + name + "_Quadruple", + "Quadruple " + displayName + " Fluid Pipe", + 1.0F, + aMaterial, + baseCapacity, + heatCapacity, + gasProof, + 4).getStackForm(1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.pipeNonuple.get(aMaterial), + new GT_MetaPipeEntity_Fluid( + startID + 1, + "GT_Pipe_" + name + "_Nonuple", + "Nonuple " + displayName + " Fluid Pipe", + 1.0F, + aMaterial, + baseCapacity / 3, + heatCapacity, + gasProof, + 9).getStackForm(1L)); + } +} diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MultiTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MultiTileEntities.java new file mode 100644 index 0000000000..fd290935df --- /dev/null +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MultiTileEntities.java @@ -0,0 +1,1447 @@ +package gregtech.loaders.preload; + +import static gregtech.GT_Mod.GT_FML_LOGGER; +import static gregtech.api.multitileentity.enums.GT_MultiTileCasing.*; +import static gregtech.api.multitileentity.enums.GT_MultiTileComponentCasing.*; +import static gregtech.api.multitileentity.enums.GT_MultiTileUpgradeCasing.*; +import static gregtech.api.multitileentity.enums.GT_MultiTileUpgradeCasing.Insulator_OmegaType; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +import gregtech.api.enums.Materials; +import gregtech.api.multitileentity.MultiTileEntityBlock; +import gregtech.api.multitileentity.MultiTileEntityRegistry; +import gregtech.api.multitileentity.multiblock.base.WallShareablePart; +import gregtech.api.multitileentity.multiblock.casing.BasicCasing; +import gregtech.common.tileentities.casings.functional.Conveyor; +import gregtech.common.tileentities.casings.functional.Emitter; +import gregtech.common.tileentities.casings.functional.FieldGenerator; +import gregtech.common.tileentities.casings.functional.Motor; +import gregtech.common.tileentities.casings.functional.Piston; +import gregtech.common.tileentities.casings.functional.Pump; +import gregtech.common.tileentities.casings.functional.RobotArm; +import gregtech.common.tileentities.casings.functional.Sensor; +import gregtech.common.tileentities.casings.upgrade.Ampere; +import gregtech.common.tileentities.casings.upgrade.Cleanroom; +import gregtech.common.tileentities.casings.upgrade.Heater; +import gregtech.common.tileentities.casings.upgrade.Insulator; +import gregtech.common.tileentities.casings.upgrade.Inventory; +import gregtech.common.tileentities.casings.upgrade.Laser; +import gregtech.common.tileentities.casings.upgrade.Tank; +import gregtech.common.tileentities.casings.upgrade.Wireless; +import gregtech.common.tileentities.machines.multiblock.AdvChemicalProcessor; +import gregtech.common.tileentities.machines.multiblock.CokeOven; +import gregtech.common.tileentities.machines.multiblock.DistillationTower; +import gregtech.common.tileentities.machines.multiblock.LaserEngraver; +import gregtech.common.tileentities.machines.multiblock.LayeredCokeBattery; +import gregtech.common.tileentities.machines.multiblock.Macerator; + +public class GT_Loader_MultiTileEntities implements Runnable { + + public static final String COMPONENT_CASING_REGISTRY_NAME = "gt.multitileentity.component.casings"; + public static final String UPGRADE_CASING_REGISTRY_NAME = "gt.multitileentity.upgrade.casings"; + public static final String CASING_REGISTRY_NAME = "gt.multitileentity.casings"; + public static final String MACHINE_REGISTRY_NAME = "gt.multitileentity.controllers"; + public static final MultiTileEntityRegistry MACHINE_REGISTRY = new MultiTileEntityRegistry(MACHINE_REGISTRY_NAME); + public static final MultiTileEntityBlock MACHINE_BLOCK = MultiTileEntityBlock + .getOrCreate("GregTech", "machine", Material.iron, Block.soundTypeMetal, "wrench", 0, 0, 15, true, true); + public static final MultiTileEntityRegistry CASING_REGISTRY = new MultiTileEntityRegistry(CASING_REGISTRY_NAME); + public static final MultiTileEntityBlock CASING_BLOCK = MultiTileEntityBlock + .getOrCreate("GregTech", "casing", Material.iron, Block.soundTypeMetal, "wrench", 0, 0, 15, true, true); + public static final MultiTileEntityRegistry COMPONENT_CASING_REGISTRY = new MultiTileEntityRegistry( + COMPONENT_CASING_REGISTRY_NAME); + + public static final MultiTileEntityRegistry UPGRADE_CASING_REGISTRY = new MultiTileEntityRegistry( + UPGRADE_CASING_REGISTRY_NAME); + + public static final MultiTileEntityBlock COMPONENT_CASING_BLOCK = MultiTileEntityBlock.getOrCreate( + "GregTech", + "componentCasing", + Material.iron, + Block.soundTypeMetal, + "wrench", + 0, + 0, + 15, + true, + true); + + @Override + public void run() { + GT_FML_LOGGER.info("GT_Mod: Registering MultiTileEntities"); + registerMachines(); + registerCasings(); + registerComponentCasings(); + } + + private static void registerMachines() { + // Disable for now + MACHINE_REGISTRY.create(1000, Macerator.class) + .name("Large Macerator") + .category("Multiblock Controller") + .setBlock(MACHINE_BLOCK) + .material(Materials.Iron) + .textureFolder("macerator") + .tankCapacity(128000L) + .inputInventorySize(16) + .outputInventorySize(16) + .register(); + MACHINE_REGISTRY.create(0, CokeOven.class) + .name("Coke Oven") + .category("MultiblockController") + .setBlock(MACHINE_BLOCK) + .textureFolder("cokeOven") + .inputInventorySize(1) + .outputInventorySize(1) + .register(); + MACHINE_REGISTRY.create(1, AdvChemicalProcessor.class) + .name("Advanced Chemical Processor") + .category("MultiblockController") + .setBlock(MACHINE_BLOCK) + // TODO: Texture + .textureFolder("advChemicalProcessor") + .inputInventorySize(16) + .outputInventorySize(16) + .tankCapacity(128000L) + .register(); + MACHINE_REGISTRY.create(2, DistillationTower.class) + .name("Distillation Tower") + .category("MultiblockController") + .setBlock(MACHINE_BLOCK) + .textureFolder("distillationTower") + .inputInventorySize(16) + .outputInventorySize(16) + .tankCapacity(128000L) + .register(); + MACHINE_REGISTRY.create(3, LayeredCokeBattery.class) + .name("Layered Coke Battery") + .category("Multiblock Controller") + .setBlock(MACHINE_BLOCK) + .material(Materials.Iron) + .textureFolder("macerator") + .tankCapacity(128000L) + .inputInventorySize(16) + .outputInventorySize(16) + .register(); + MACHINE_REGISTRY.create(4, LaserEngraver.class) + .name("Big Laser Engraver") + .category("Multiblock Controller") + .setBlock(MACHINE_BLOCK) + .textureFolder("BigLaserEngraver") + .inputInventorySize(16) + .outputInventorySize(16) + .tankCapacity(128000L) + .register(); + } + + private static void registerCasings() { + + CASING_REGISTRY.create(CokeOven.getId(), WallShareablePart.class) + .name("Coke Oven Bricks") + .category("MultiBlock Casing") + .setBlock(CASING_BLOCK) + .textureFolder("cokeOven") + .register(); + CASING_REGISTRY.create(Chemical.getId(), BasicCasing.class) + .name("Chemical Casing") + .category("MultiBlock Casing") + .setBlock(CASING_BLOCK) + .textureFolder("advChemicalProcessor") + .register(); + CASING_REGISTRY.create(Distillation.getId(), BasicCasing.class) + .name("Distillation Casing") + .category("MultiBlock Casing") + .setBlock(CASING_BLOCK) + .textureFolder("distillationTower") + .register(); + CASING_REGISTRY.create(18000, BasicCasing.class) + .name("Test Casing") + .category("Multiblock Casing") + .setBlock(CASING_BLOCK) + .material(Materials.Cobalt) + .textureFolder("macerator") + .register(); + CASING_REGISTRY.create(LaserEngraver.getId(), BasicCasing.class) + .name("Laser Engraver Casing") + .category("MultiBlock Casing") + .setBlock(CASING_BLOCK) + .textureFolder("BigLaserEngraver") + .register(); + CASING_REGISTRY.create(Mirror.getId(), BasicCasing.class) + .name("Mirror") + .category("MultiBlock Casing") + .setBlock(CASING_BLOCK) + .textureFolder("Laserblock") + .register(); + CASING_REGISTRY.create(BlackLaserEngraverCasing.getId(), BasicCasing.class) + .name("Black Laser Engraver Casing") + .category("MultiBlock Casing") + .setBlock(CASING_BLOCK) + .textureFolder("BlackLaserEngraver") + .register(); + CASING_REGISTRY.create(LaserEngraverUpgrade1.getId(), BasicCasing.class) + .name("Crude Laser Engraving Casing") + .category("MultiBlock Casing") + .setBlock(CASING_BLOCK) + .textureFolder("laserengraverupgrade1") + .register(); + CASING_REGISTRY.create(LaserEngraverUpgrade2.getId(), BasicCasing.class) + .name("Advanced Laser Engraving Casing") + .category("MultiBlock Casing") + .setBlock(CASING_BLOCK) + .textureFolder("laserengraverupgrade2") + .register(); + CASING_REGISTRY.create(LaserEngraverUpgrade3.getId(), BasicCasing.class) + .name("Ultimate Laser Engraving Casing") + .category("MultiBlock Casing") + .setBlock(CASING_BLOCK) + .textureFolder("laserengraverupgrade3") + .register(); + CASING_REGISTRY.create(LaserEngraverUpgrade4.getId(), BasicCasing.class) + .name("Superb Laser Engraving Casing") + .category("MultiBlock Casing") + .setBlock(CASING_BLOCK) + .textureFolder("laserengraverupgrade4") + .register(); + + } + + private static void registerComponentCasings() { + + registerMotorCasings(); + registerPumpCasings(); + registerPistonCasings(); + registerRobotArmCasings(); + registerConveyorCasings(); + registerEmitterCasings(); + registerSensorCasings(); + registerFieldGeneratorCasings(); + + UPGRADE_CASING_REGISTRY.create(ULV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade ULV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(1) + .tier(0) + .register(); + UPGRADE_CASING_REGISTRY.create(LV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade LV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(4) + .tier(1) + .register(); + UPGRADE_CASING_REGISTRY.create(MV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade MV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(8) + .tier(2) + .register(); + UPGRADE_CASING_REGISTRY.create(HV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade HV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(16) + .tier(3) + .register(); + UPGRADE_CASING_REGISTRY.create(EV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade EV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(32) + .tier(4) + .register(); + UPGRADE_CASING_REGISTRY.create(IV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade IV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(64) + .tier(5) + .register(); + UPGRADE_CASING_REGISTRY.create(LuV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade LuV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(128) + .tier(6) + .register(); + UPGRADE_CASING_REGISTRY.create(ZPM_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade ZPM") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(256) + .tier(7) + .register(); + UPGRADE_CASING_REGISTRY.create(UV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade UV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(256) + .tier(8) + .register(); + UPGRADE_CASING_REGISTRY.create(UHV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade UHV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(256) + .tier(9) + .register(); + UPGRADE_CASING_REGISTRY.create(UEV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade UEV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(256) + .tier(10) + .register(); + UPGRADE_CASING_REGISTRY.create(UIV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade UIV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(256) + .tier(11) + .register(); + UPGRADE_CASING_REGISTRY.create(UMV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade UMV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(256) + .tier(12) + .register(); + UPGRADE_CASING_REGISTRY.create(UXV_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade UXV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(256) + .tier(13) + .register(); + UPGRADE_CASING_REGISTRY.create(MAX_Inventory.getId(), Inventory.class) + .name("Inventory Upgrade MAX") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("inventory") + .upgradeInventorySize(256) + .tier(14) + .register(); + + UPGRADE_CASING_REGISTRY.create(ULV_Tank.getId(), Tank.class) + .name("Tank Upgrade ULV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(8_000L) + .upgradeTankCount(1) + .tier(0) + .register(); + UPGRADE_CASING_REGISTRY.create(LV_Tank.getId(), Tank.class) + .name("Tank Upgrade LV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(16_000L) + .upgradeTankCount(2) + .tier(1) + .register(); + UPGRADE_CASING_REGISTRY.create(MV_Tank.getId(), Tank.class) + .name("Tank Upgrade MV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(32_000L) + .upgradeTankCount(4) + .tier(2) + .register(); + UPGRADE_CASING_REGISTRY.create(HV_Tank.getId(), Tank.class) + .name("Tank Upgrade HV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(64_000L) + .upgradeTankCount(6) + .tier(3) + .register(); + UPGRADE_CASING_REGISTRY.create(EV_Tank.getId(), Tank.class) + .name("Tank Upgrade EV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(128_000L) + .upgradeTankCount(8) + .tier(4) + .register(); + UPGRADE_CASING_REGISTRY.create(IV_Tank.getId(), Tank.class) + .name("Tank Upgrade IV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(256_000L) + .upgradeTankCount(10) + .tier(5) + .register(); + UPGRADE_CASING_REGISTRY.create(LuV_Tank.getId(), Tank.class) + .name("Tank Upgrade LuV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(512_000L) + .upgradeTankCount(12) + .tier(6) + .register(); + UPGRADE_CASING_REGISTRY.create(ZPM_Tank.getId(), Tank.class) + .name("Tank Upgrade ZPM") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(1_024_000L) + .upgradeTankCount(14) + .tier(7) + .register(); + UPGRADE_CASING_REGISTRY.create(UV_Tank.getId(), Tank.class) + .name("Tank Upgrade UV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(2_048_000L) + .upgradeTankCount(16) + .tier(8) + .register(); + UPGRADE_CASING_REGISTRY.create(UHV_Tank.getId(), Tank.class) + .name("Tank Upgrade UHV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(4_096_000L) + .upgradeTankCount(16) + .tier(9) + .register(); + UPGRADE_CASING_REGISTRY.create(UEV_Tank.getId(), Tank.class) + .name("Tank Upgrade UEV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(8_192_000L) + .upgradeTankCount(16) + .tier(10) + .register(); + UPGRADE_CASING_REGISTRY.create(UIV_Tank.getId(), Tank.class) + .name("Tank Upgrade UIV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(16_384_000L) + .upgradeTankCount(16) + .tier(11) + .register(); + UPGRADE_CASING_REGISTRY.create(UMV_Tank.getId(), Tank.class) + .name("Tank Upgrade UMV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(32_768_000L) + .upgradeTankCount(16) + .tier(12) + .register(); + UPGRADE_CASING_REGISTRY.create(UXV_Tank.getId(), Tank.class) + .name("Tank Upgrade UXV") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(65_536_000L) + .upgradeTankCount(16) + .tier(13) + .register(); + UPGRADE_CASING_REGISTRY.create(MAX_Tank.getId(), Tank.class) + .name("Tank Upgrade MAX") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("tank") + .upgradeTankCapacity(131_072_000L) + .upgradeTankCount(16) + .tier(14) + .register(); + + UPGRADE_CASING_REGISTRY.create(Amp_4.getId(), Ampere.class) + .name("Amperage Upgrade (4 A)") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("amperage") + .upgradeAmperage(4) + .tier(1) + .register(); + UPGRADE_CASING_REGISTRY.create(Amp_16.getId(), Ampere.class) + .name("Amperage Upgrade (16 A)") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("amperage") + .upgradeAmperage(16) + .tier(2) + .register(); + UPGRADE_CASING_REGISTRY.create(Amp_64.getId(), Ampere.class) + .name("Amperage Upgrade (64 A)") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("amperage") + .upgradeAmperage(64) + .tier(3) + .register(); + UPGRADE_CASING_REGISTRY.create(Amp_256.getId(), Ampere.class) + .name("Amperage Upgrade (256 A)") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("amperage") + .upgradeAmperage(256) + .tier(4) + .register(); + UPGRADE_CASING_REGISTRY.create(Amp_1_024.getId(), Ampere.class) + .name("Amperage Upgrade (1,024 A)") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("amperage") + .upgradeAmperage(1_024) + .tier(5) + .register(); + UPGRADE_CASING_REGISTRY.create(Amp_4_096.getId(), Ampere.class) + .name("Amperage Upgrade (4,096 A)") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("amperage") + .upgradeAmperage(4_096) + .tier(6) + .register(); + UPGRADE_CASING_REGISTRY.create(Amp_16_384.getId(), Ampere.class) + .name("Amperage Upgrade (16,384 A)") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("amperage") + .upgradeAmperage(16_384) + .tier(7) + .register(); + UPGRADE_CASING_REGISTRY.create(Amp_65_536.getId(), Ampere.class) + .name("Amperage Upgrade (65,536 A)") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("amperage") + .upgradeAmperage(65_536) + .tier(8) + .register(); + UPGRADE_CASING_REGISTRY.create(Amp_262_144.getId(), Ampere.class) + .name("Amperage Upgrade (262,144 A)") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("amperage") + .upgradeAmperage(262_144) + .tier(9) + .register(); + UPGRADE_CASING_REGISTRY.create(Amp_1_048_576.getId(), Ampere.class) + .name("Amperage Upgrade (1,048,576 A)") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("amperage") + .upgradeAmperage(1_048_576) + .tier(10) + .register(); + + UPGRADE_CASING_REGISTRY.create(Cleanroom.getId(), Cleanroom.class) + .name("Cleanroom Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("cleanroom") + .tier(1) + .register(); + UPGRADE_CASING_REGISTRY.create(Laser.getId(), Laser.class) + .name("Laser Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("laser") + .tier(8) + .register(); + UPGRADE_CASING_REGISTRY.create(Wireless.getId(), Wireless.class) + .name("Wireless Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("wireless") + .tier(11) + .register(); + + UPGRADE_CASING_REGISTRY.create(Heater_Prototype.getId(), Heater.class) + .name("Prototype Heater Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("heater") + .tier(1) + .register(); + UPGRADE_CASING_REGISTRY.create(Heater_IndustrialGrade.getId(), Heater.class) + .name("Industrial-Grade Heater Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("heater") + .tier(4) + .register(); + UPGRADE_CASING_REGISTRY.create(Heater_NextGen.getId(), Heater.class) + .name("Next-Gen Heater Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("heater") + .tier(7) + .register(); + UPGRADE_CASING_REGISTRY.create(Heater_Omnipotent.getId(), Heater.class) + .name("Omnipotent Heater Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("heater") + .tier(10) + .register(); + UPGRADE_CASING_REGISTRY.create(Heater_OmegaType.getId(), Heater.class) + .name("OMEGA-Type Heater Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("heater") + .tier(12) + .register(); + + UPGRADE_CASING_REGISTRY.create(Insulator_Prototype.getId(), Insulator.class) + .name("Prototype Insulator Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("insulator") + .tier(1) + .register(); + UPGRADE_CASING_REGISTRY.create(Insulator_IndustrialGrade.getId(), Insulator.class) + .name("Industrial-Grade Insulator Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("insulator") + .tier(4) + .register(); + UPGRADE_CASING_REGISTRY.create(Insulator_NextGen.getId(), Insulator.class) + .name("Next-Gen Insulator Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("insulator") + .tier(7) + .register(); + UPGRADE_CASING_REGISTRY.create(Insulator_Omnipotent.getId(), Insulator.class) + .name("Omnipotent Insulator Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("insulator") + .tier(10) + .register(); + UPGRADE_CASING_REGISTRY.create(Insulator_OmegaType.getId(), Insulator.class) + .name("OMEGA-Type Insulator Upgrade") + .category("MultiBlock Upgrade Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("insulator") + .tier(12) + .register(); + } + + private static void registerMotorCasings() { + COMPONENT_CASING_REGISTRY.create(LV_Motor.getId(), Motor.class) + .name("Motor Casing LV") + .tier(1) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(MV_Motor.getId(), Motor.class) + .name("Motor Casing MV") + .tier(2) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(HV_Motor.getId(), Motor.class) + .name("Motor Casing HV") + .tier(3) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(EV_Motor.getId(), Motor.class) + .name("Motor Casing EV") + .tier(4) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(IV_Motor.getId(), Motor.class) + .name("Motor Casing IV") + .tier(5) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(LuV_Motor.getId(), Motor.class) + .name("Motor Casing LuV") + .tier(6) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(ZPM_Motor.getId(), Motor.class) + .name("Motor Casing ZPM") + .tier(7) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(UV_Motor.getId(), Motor.class) + .name("Motor Casing UV") + .tier(8) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(UHV_Motor.getId(), Motor.class) + .name("Motor Casing UHV") + .tier(9) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(UEV_Motor.getId(), Motor.class) + .name("Motor Casing UEV") + .tier(10) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(UIV_Motor.getId(), Motor.class) + .name("Motor Casing UIV") + .tier(11) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(UMV_Motor.getId(), Motor.class) + .name("Motor Casing UMV") + .tier(12) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(UXV_Motor.getId(), Motor.class) + .name("Motor Casing UXV") + .tier(13) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + COMPONENT_CASING_REGISTRY.create(MAX_Motor.getId(), Motor.class) + .name("Motor Casing MAX") + .tier(14) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("motor") + .register(); + } + + private static void registerPumpCasings() { + COMPONENT_CASING_REGISTRY.create(LV_Pump.getId(), Pump.class) + .name("Pump Casing LV") + .tier(1) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(MV_Pump.getId(), Pump.class) + .name("Pump Casing MV") + .tier(2) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(HV_Pump.getId(), Pump.class) + .name("Pump Casing HV") + .tier(3) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(EV_Pump.getId(), Pump.class) + .name("Pump Casing EV") + .tier(4) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(IV_Pump.getId(), Pump.class) + .name("Pump Casing IV") + .tier(5) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(LuV_Pump.getId(), Pump.class) + .name("Pump Casing LuV") + .tier(6) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(LuV_Pump.getId(), Pump.class) + .name("Pump Casing LuV") + .tier(6) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(ZPM_Pump.getId(), Pump.class) + .name("Pump Casing ZPM") + .tier(7) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(UV_Pump.getId(), Pump.class) + .name("Pump Casing UV") + .tier(8) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(UHV_Pump.getId(), Pump.class) + .name("Pump Casing UHV") + .tier(9) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(UEV_Pump.getId(), Pump.class) + .name("Pump Casing UEV") + .tier(10) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(UIV_Pump.getId(), Pump.class) + .name("Pump Casing UIV") + .tier(11) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(UMV_Pump.getId(), Pump.class) + .name("Pump Casing UMV") + .tier(12) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(UXV_Pump.getId(), Pump.class) + .name("Pump Casing UXV") + .tier(13) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + COMPONENT_CASING_REGISTRY.create(MAX_Pump.getId(), Pump.class) + .name("Pump Casing MAX") + .tier(14) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("pump") + .register(); + } + + private static void registerPistonCasings() { + COMPONENT_CASING_REGISTRY.create(LV_Piston.getId(), Piston.class) + .name("Piston Casing LV") + .tier(1) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(MV_Piston.getId(), Piston.class) + .name("Piston Casing MV") + .tier(2) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(HV_Piston.getId(), Piston.class) + .name("Piston Casing HV") + .tier(3) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(EV_Piston.getId(), Piston.class) + .name("Piston Casing EV") + .tier(4) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(IV_Piston.getId(), Piston.class) + .name("Piston Casing IV") + .tier(5) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(LuV_Piston.getId(), Piston.class) + .name("Piston Casing LuV") + .tier(6) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(ZPM_Piston.getId(), Piston.class) + .name("Piston Casing ZPM") + .tier(7) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(UV_Piston.getId(), Piston.class) + .name("Piston Casing UV") + .tier(8) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(UHV_Piston.getId(), Piston.class) + .name("Piston Casing UHV") + .tier(9) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(UEV_Piston.getId(), Piston.class) + .name("Piston Casing UEV") + .tier(10) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(UIV_Piston.getId(), Piston.class) + .name("Piston Casing UIV") + .tier(11) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(UMV_Piston.getId(), Piston.class) + .name("Piston Casing UMV") + .tier(12) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(UXV_Piston.getId(), Piston.class) + .name("Piston Casing UXV") + .tier(13) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + COMPONENT_CASING_REGISTRY.create(MAX_Piston.getId(), Piston.class) + .name("Piston Casing MAX") + .tier(14) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("piston") + .register(); + } + + private static void registerConveyorCasings() { + COMPONENT_CASING_REGISTRY.create(LV_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing LV") + .tier(1) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + COMPONENT_CASING_REGISTRY.create(MV_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing MV") + .tier(2) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + COMPONENT_CASING_REGISTRY.create(HV_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing HV") + .tier(3) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + COMPONENT_CASING_REGISTRY.create(EV_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing EV") + .tier(4) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + COMPONENT_CASING_REGISTRY.create(IV_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing IV") + .tier(5) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + COMPONENT_CASING_REGISTRY.create(LuV_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing LuV") + .tier(6) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + COMPONENT_CASING_REGISTRY.create(ZPM_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing ZPM") + .tier(7) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + COMPONENT_CASING_REGISTRY.create(UV_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing UV") + .tier(8) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + COMPONENT_CASING_REGISTRY.create(UHV_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing UHV") + .tier(9) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + COMPONENT_CASING_REGISTRY.create(UEV_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing UEV") + .tier(10) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + COMPONENT_CASING_REGISTRY.create(UIV_Conveyor.getId(), Conveyor.class) + .name("Conveyor Casing UIV") + .tier(11) + .category("MultiBlock Structural Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("conveyor") + .register(); + } + + private static void registerRobotArmCasings() { + COMPONENT_CASING_REGISTRY.create(LV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing LV") + .tier(1) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(MV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing MV") + .tier(2) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(HV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing HV") + .tier(3) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(EV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing EV") + .tier(4) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(IV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing IV") + .tier(5) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(LuV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing LuV") + .tier(6) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(ZPM_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing ZPM") + .tier(7) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(UV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing UV") + .tier(8) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(UHV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing UHV") + .tier(9) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(UEV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing UEV") + .tier(10) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(UIV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing UIV") + .tier(11) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(UMV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing UMV") + .tier(12) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(UXV_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing UXV") + .tier(13) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + COMPONENT_CASING_REGISTRY.create(MAX_RobotArm.getId(), RobotArm.class) + .name("Robot Arm Casing MAX") + .tier(14) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("robotArm") + .register(); + } + + private static void registerSensorCasings() { + COMPONENT_CASING_REGISTRY.create(LV_Sensor.getId(), Sensor.class) + .name("Sensor Casing LV") + .tier(1) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(MV_Sensor.getId(), Sensor.class) + .name("Sensor Casing MV") + .tier(2) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(HV_Sensor.getId(), Sensor.class) + .name("Sensor Casing HV") + .tier(3) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(EV_Sensor.getId(), Sensor.class) + .name("Sensor Casing EV") + .tier(4) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(IV_Sensor.getId(), Sensor.class) + .name("Sensor Casing IV") + .tier(5) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(LuV_Sensor.getId(), Sensor.class) + .name("Sensor Casing LuV") + .tier(6) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(ZPM_Sensor.getId(), Sensor.class) + .name("Sensor Casing ZPM") + .tier(7) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(UV_Sensor.getId(), Sensor.class) + .name("Sensor Casing UV") + .tier(8) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(UHV_Sensor.getId(), Sensor.class) + .name("Sensor Casing UHV") + .tier(9) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(UEV_Sensor.getId(), Sensor.class) + .name("Sensor Casing UEV") + .tier(10) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(UIV_Sensor.getId(), Sensor.class) + .name("Sensor Casing UIV") + .tier(11) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(UMV_Sensor.getId(), Sensor.class) + .name("Sensor Casing UMV") + .tier(12) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(UXV_Sensor.getId(), Sensor.class) + .name("Sensor Casing UXV") + .tier(13) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + COMPONENT_CASING_REGISTRY.create(MAX_Sensor.getId(), Sensor.class) + .name("Sensor Casing MAX") + .tier(14) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("sensor") + .register(); + } + + private static void registerEmitterCasings() { + COMPONENT_CASING_REGISTRY.create(LV_Emitter.getId(), Emitter.class) + .name("Emitter Casing LV") + .tier(1) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(MV_Emitter.getId(), Emitter.class) + .name("Emitter Casing MV") + .tier(2) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(HV_Emitter.getId(), Emitter.class) + .name("Emitter Casing HV") + .tier(3) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(EV_Emitter.getId(), Emitter.class) + .name("Emitter Casing EV") + .tier(4) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(IV_Emitter.getId(), Emitter.class) + .name("Emitter Casing IV") + .tier(5) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(LuV_Emitter.getId(), Emitter.class) + .name("Emitter Casing LuV") + .tier(6) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(ZPM_Emitter.getId(), Emitter.class) + .name("Emitter Casing ZPM") + .tier(7) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(UV_Emitter.getId(), Emitter.class) + .name("Emitter Casing UV") + .tier(8) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(UHV_Emitter.getId(), Emitter.class) + .name("Emitter Casing UHV") + .tier(9) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(UEV_Emitter.getId(), Emitter.class) + .name("Emitter Casing UEV") + .tier(10) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(UIV_Emitter.getId(), Emitter.class) + .name("Emitter Casing UIV") + .tier(11) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(UMV_Emitter.getId(), Emitter.class) + .name("Emitter Casing UMV") + .tier(12) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(UXV_Emitter.getId(), Emitter.class) + .name("Emitter Casing UXV") + .tier(13) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + COMPONENT_CASING_REGISTRY.create(MAX_Emitter.getId(), Emitter.class) + .name("Emitter Casing MAX") + .tier(14) + .category("MultiBlock Functional Casing") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("emitter") + .register(); + } + + private static void registerFieldGeneratorCasings() { + COMPONENT_CASING_REGISTRY.create(LV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator LV") + .tier(1) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(MV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator MV") + .tier(2) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(HV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator HV") + .tier(3) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(EV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator EV") + .tier(4) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(IV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator IV") + .tier(5) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(LuV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator LuV") + .tier(6) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(ZPM_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator ZPM") + .tier(7) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(UV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator UV") + .tier(8) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(UHV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator UHV") + .tier(9) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(UEV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator UEV") + .tier(10) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(UIV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator UIV") + .tier(11) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(UMV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator UMV") + .tier(12) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(UXV_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator UXV") + .tier(13) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + COMPONENT_CASING_REGISTRY.create(MAX_FieldGenerator.getId(), FieldGenerator.class) + .name("Field Generator MAX") + .tier(14) + .category("Multiblock Energy Field") + .setBlock(COMPONENT_CASING_BLOCK) + .textureFolder("fieldGenerator") + .register(); + } +} diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java b/src/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java new file mode 100644 index 0000000000..4d51c90cb5 --- /dev/null +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java @@ -0,0 +1,449 @@ +package gregtech.loaders.preload; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.Botania; +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.enums.Mods.TwilightForest; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsBotania; +import gregtech.api.enums.OreDictNames; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class GT_Loader_OreDictionary implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Register OreDict Entries of Non-GT-Items."); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Empty, ItemList.Cell_Empty.get(1L)); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Lava, ItemList.Cell_Lava.get(1L)); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Lava, GT_ModHandler.getIC2Item("lavaCell", 1L)); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Water, ItemList.Cell_Water.get(1L)); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Water, GT_ModHandler.getIC2Item("waterCell", 1L)); + GT_OreDictUnificator.set( + OrePrefixes.cell, + Materials.Creosote, + GT_ModHandler.getModItem(Railcraft.ID, "fluid.creosote.cell", 1L)); + + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.UUMatter, GT_ModHandler.getIC2Item("uuMatterCell", 1L)); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.ConstructionFoam, GT_ModHandler.getIC2Item("CFCell", 1L)); + + GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Empty, new ItemStack(Items.bucket, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Water, new ItemStack(Items.water_bucket, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Lava, new ItemStack(Items.lava_bucket, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Milk, new ItemStack(Items.milk_bucket, 1, 0)); + // Clay buckets handled in gregtech.common.GT_Proxy.onLoad() as they aren't registered until Iguana Tweaks + // pre-init. + + GT_OreDictUnificator.set(OrePrefixes.bottle, Materials.Empty, new ItemStack(Items.glass_bottle, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.bottle, Materials.Water, new ItemStack(Items.potionitem, 1, 0)); + + GT_OreDictUnificator + .set(OrePrefixes.plateAlloy, Materials.Iridium, GT_ModHandler.getIC2Item("iridiumPlate", 1L)); + GT_OreDictUnificator + .set(OrePrefixes.plateAlloy, Materials.Advanced, GT_ModHandler.getIC2Item("advancedAlloy", 1L)); + GT_OreDictUnificator.set(OrePrefixes.plateAlloy, Materials.Carbon, GT_ModHandler.getIC2Item("carbonPlate", 1L)); + + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Coal, new ItemStack(Blocks.coal_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Iron, new ItemStack(Blocks.iron_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Lapis, new ItemStack(Blocks.lapis_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Redstone, new ItemStack(Blocks.redstone_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Redstone, new ItemStack(Blocks.lit_redstone_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Gold, new ItemStack(Blocks.gold_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Diamond, new ItemStack(Blocks.diamond_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Emerald, new ItemStack(Blocks.emerald_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.NetherQuartz, new ItemStack(Blocks.quartz_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Copper, GT_ModHandler.getIC2Item("copperIngot", 1L)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Tin, GT_ModHandler.getIC2Item("tinIngot", 1L)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Lead, GT_ModHandler.getIC2Item("leadIngot", 1L)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Bronze, GT_ModHandler.getIC2Item("bronzeIngot", 1L)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Silver, GT_ModHandler.getIC2Item("silverIngot", 1L)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Iridium, GT_ModHandler.getIC2Item("iridiumOre", 1L)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Lapis, new ItemStack(Items.dye, 1, 4)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.EnderEye, new ItemStack(Items.ender_eye, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.EnderPearl, new ItemStack(Items.ender_pearl, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Diamond, new ItemStack(Items.diamond, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Emerald, new ItemStack(Items.emerald, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Coal, new ItemStack(Items.coal, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Charcoal, new ItemStack(Items.coal, 1, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.NetherQuartz, new ItemStack(Items.quartz, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.NetherStar, new ItemStack(Items.nether_star, 1)); + GT_OreDictUnificator.set(OrePrefixes.nugget, Materials.Gold, new ItemStack(Items.gold_nugget, 1)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Gold, new ItemStack(Items.gold_ingot, 1)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Iron, new ItemStack(Items.iron_ingot, 1)); + GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Paper, new ItemStack(Items.paper, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Sugar, new ItemStack(Items.sugar, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Bone, ItemList.Dye_Bonemeal.get(1L)); + GT_OreDictUnificator.set(OrePrefixes.stick, Materials.Wood, new ItemStack(Items.stick, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Redstone, new ItemStack(Items.redstone, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Gunpowder, new ItemStack(Items.gunpowder, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Glowstone, new ItemStack(Items.glowstone_dust, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Blaze, new ItemStack(Items.blaze_powder, 1)); + GT_OreDictUnificator.set(OrePrefixes.stick, Materials.Blaze, new ItemStack(Items.blaze_rod, 1)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Iron, new ItemStack(Blocks.iron_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Gold, new ItemStack(Blocks.gold_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Diamond, new ItemStack(Blocks.diamond_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Emerald, new ItemStack(Blocks.emerald_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Lapis, new ItemStack(Blocks.lapis_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Coal, new ItemStack(Blocks.coal_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Redstone, new ItemStack(Blocks.redstone_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.NetherQuartz, new ItemStack(Blocks.quartz_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Clay, new ItemStack(Blocks.clay, 1, 0)); + if (Blocks.ender_chest != null) { + GT_OreDictUnificator.registerOre(OreDictNames.enderChest, new ItemStack(Blocks.ender_chest, 1)); + } + GT_OreDictUnificator.registerOre(OreDictNames.craftingAnvil, new ItemStack(Blocks.anvil, 1)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingAnvil, GT_ModHandler.getModItem(Railcraft.ID, "anvil", 1L, 0)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingIndustrialDiamond, ItemList.IC2_Industrial_Diamond.get(1L)); + GT_OreDictUnificator + .registerOre(OrePrefixes.glass, Materials.Reinforced, GT_ModHandler.getIC2Item("reinforcedGlass", 1L)); + + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Basalt, GT_ModHandler.getModItem(Railcraft.ID, "cube", 1L, 6)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Marble, GT_ModHandler.getModItem(Railcraft.ID, "cube", 1L, 7)); + GT_OreDictUnificator.registerOre( + OrePrefixes.stone, + Materials.Basalt, + GT_ModHandler.getModItem(Railcraft.ID, "brick.abyssal", 1L, 32767)); + GT_OreDictUnificator.registerOre( + OrePrefixes.stone, + Materials.Marble, + GT_ModHandler.getModItem(Railcraft.ID, "brick.quarried", 1L, 32767)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(Blocks.obsidian, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Stone, new ItemStack(Blocks.stone, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneMossy, new ItemStack(Blocks.mossy_cobblestone, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneCobble, new ItemStack(Blocks.mossy_cobblestone, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneCobble, new ItemStack(Blocks.cobblestone, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneSmooth, new ItemStack(Blocks.stone, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneBricks, new ItemStack(Blocks.stonebrick, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneMossy, new ItemStack(Blocks.stonebrick, 1, 1)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneCracked, new ItemStack(Blocks.stonebrick, 1, 2)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneChiseled, new ItemStack(Blocks.stonebrick, 1, 3)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Sand, new ItemStack(Blocks.sandstone, 1, 32767)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Netherrack, new ItemStack(Blocks.netherrack, 1, 32767)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.NetherBrick, new ItemStack(Blocks.nether_brick, 1, 32767)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Endstone, new ItemStack(Blocks.end_stone, 1, 32767)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Glowstone, new ItemStack(Blocks.glowstone, 1, 32767)); + + GT_OreDictUnificator + .registerOre("paperResearchFragment", GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1L, 9)); + GT_OreDictUnificator.registerOre( + "itemCertusQuartz", + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 1)); + GT_OreDictUnificator.registerOre( + "itemCertusQuartz", + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 10)); + GT_OreDictUnificator.registerOre( + "itemNetherQuartz", + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 11)); + GT_OreDictUnificator.registerOre( + OreDictNames.craftingQuartz, + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 1)); + GT_OreDictUnificator.registerOre( + OreDictNames.craftingQuartz, + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 10)); + GT_OreDictUnificator.registerOre( + OreDictNames.craftingQuartz, + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 11)); + GT_OreDictUnificator.registerOre("cropLemon", ItemList.FR_Lemon.get(1L)); + GT_OreDictUnificator.registerOre("cropCoffee", ItemList.IC2_CoffeeBeans.get(1L)); + GT_OreDictUnificator.registerOre("cropPotato", ItemList.Food_Raw_Potato.get(1L)); + GT_OreDictUnificator + .registerOre(OrePrefixes.battery, Materials.Basic, GT_ModHandler.getIC2Item("reBattery", 1L)); + GT_OreDictUnificator + .registerOre(OrePrefixes.battery, Materials.Basic, GT_ModHandler.getIC2Item("chargedReBattery", 1L, 32767)); + GT_OreDictUnificator + .registerOre(OrePrefixes.battery, Materials.Advanced, GT_ModHandler.getIC2Item("advBattery", 1L, 32767)); + GT_OreDictUnificator + .registerOre(OrePrefixes.battery, Materials.Elite, GT_ModHandler.getIC2Item("energyCrystal", 1L, 32767)); + GT_OreDictUnificator + .registerOre(OrePrefixes.battery, Materials.Master, GT_ModHandler.getIC2Item("lapotronCrystal", 1L, 32767)); + + GT_OreDictUnificator + .registerOre(OreDictNames.craftingWireCopper, GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingWireGold, GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingWireIron, GT_ModHandler.getIC2Item("insulatedIronCableItem", 1L)); + GT_OreDictUnificator.registerOre( + OreDictNames.craftingWireTin, + GT_ModHandler + .getIC2Item("insulatedTinCableItem", 1L, GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L))); + + GT_OreDictUnificator + .registerOre(OreDictNames.craftingRedstoneTorch, new ItemStack(Blocks.redstone_torch, 1, 32767)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingRedstoneTorch, new ItemStack(Blocks.unlit_redstone_torch, 1, 32767)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingWorkBench, new ItemStack(Blocks.crafting_table, 1)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingWorkBench, new ItemStack(GregTech_API.sBlockMachines, 1, 16)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingPiston, new ItemStack(Blocks.piston, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingPiston, new ItemStack(Blocks.sticky_piston, 1, 32767)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingSafe, new ItemStack(GregTech_API.sBlockMachines, 1, 45)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingSafe, GT_ModHandler.getIC2Item("personalSafe", 1L)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingChest, new ItemStack(Blocks.chest, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingChest, new ItemStack(Blocks.trapped_chest, 1, 32767)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingFurnace, new ItemStack(Blocks.furnace, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingFurnace, new ItemStack(Blocks.lit_furnace, 1, 32767)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingPump, GT_ModHandler.getIC2Item("pump", 1L)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingElectromagnet, GT_ModHandler.getIC2Item("magnetizer", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingTeleporter, GT_ModHandler.getIC2Item("teleporter", 1L)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingMacerator, GT_ModHandler.getIC2Item("macerator", 1L)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingMacerator, new ItemStack(GregTech_API.sBlockMachines, 1, 50)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingExtractor, GT_ModHandler.getIC2Item("extractor", 1L)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingExtractor, new ItemStack(GregTech_API.sBlockMachines, 1, 51)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingCompressor, GT_ModHandler.getIC2Item("compressor", 1L)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingCompressor, new ItemStack(GregTech_API.sBlockMachines, 1, 52)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingRecycler, GT_ModHandler.getIC2Item("recycler", 1L)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingRecycler, new ItemStack(GregTech_API.sBlockMachines, 1, 53)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingIronFurnace, GT_ModHandler.getIC2Item("ironFurnace", 1L)); + + GT_OreDictUnificator + .registerOre(OreDictNames.craftingCentrifuge, new ItemStack(GregTech_API.sBlockMachines, 1, 62)); + + GT_OreDictUnificator + .registerOre(OreDictNames.craftingInductionFurnace, GT_ModHandler.getIC2Item("inductionFurnace", 1L)); + + GT_OreDictUnificator + .registerOre(OreDictNames.craftingElectricFurnace, GT_ModHandler.getIC2Item("electroFurnace", 1L)); + GT_OreDictUnificator + .registerOre(OreDictNames.craftingElectricFurnace, new ItemStack(GregTech_API.sBlockMachines, 1, 54)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingGenerator, GT_ModHandler.getIC2Item("generator", 1L)); + + GT_OreDictUnificator + .registerOre(OreDictNames.craftingGeothermalGenerator, GT_ModHandler.getIC2Item("geothermalGenerator", 1L)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingFeather, new ItemStack(Items.feather, 1, 32767)); + GT_OreDictUnificator.registerOre( + OreDictNames.craftingFeather, + GT_ModHandler.getModItem(TwilightForest.ID, "item.tfFeather", 1L, 32767)); + + GT_OreDictUnificator.registerOre("itemWheat", new ItemStack(Items.wheat, 1, 32767)); + GT_OreDictUnificator.registerOre("paperEmpty", new ItemStack(Items.paper, 1, 32767)); + GT_OreDictUnificator.registerOre("paperMap", new ItemStack(Items.map, 1, 32767)); + GT_OreDictUnificator.registerOre("paperMap", new ItemStack(Items.filled_map, 1, 32767)); + GT_OreDictUnificator.registerOre("bookEmpty", new ItemStack(Items.book, 1, 32767)); + GT_OreDictUnificator.registerOre("bookWritable", new ItemStack(Items.writable_book, 1, 32767)); + GT_OreDictUnificator.registerOre("bookWritten", new ItemStack(Items.written_book, 1, 32767)); + GT_OreDictUnificator.registerOre("bookEnchanted", new ItemStack(Items.enchanted_book, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.book, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.writable_book, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.written_book, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.enchanted_book, 1, 32767)); + + GT_OreDictUnificator + .registerOre(OrePrefixes.circuit, Materials.Basic, GT_ModHandler.getIC2Item("electronicCircuit", 1L)); + GT_OreDictUnificator + .registerOre(OrePrefixes.circuit, Materials.Advanced, GT_ModHandler.getIC2Item("advancedCircuit", 1L)); + + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Copper, + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemCasing", 1L, 0)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Tin, + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemCasing", 1L, 1)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Bronze, + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemCasing", 1L, 2)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Gold, + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemCasing", 1L, 3)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Iron, + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemCasing", 1L, 4)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Steel, + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemCasing", 1L, 5)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Lead, + GT_ModHandler.getModItem(IndustrialCraft2.ID, "itemCasing", 1L, 6)); + + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Osmium, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.OsmiumItemCasing", 1L, 0)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Aluminium, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.AluminiumItemCasing", 1L, 0)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.StainlessSteel, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.StainlessSteelItemCasing", 1L, 0)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Tungsten, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TungstenItemCasing", 1L, 0)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Neutronium, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.NeutroniumItemCasing", 1L, 0)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.TungstenSteel, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TungstenSteelItemCasing", 1L, 0)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Iridium, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.IridiumItemCasing", 1L, 0)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Titanium, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TitaniumItemCasing", 1L, 0)); + GT_OreDictUnificator.registerOre( + OrePrefixes.itemCasing, + Materials.Chrome, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.ChromeItemCasing", 1L, 0)); + + // Fake Circuits + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Primitive, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitULV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Good, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitMV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Data, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitEV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Elite, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitIV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Master, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitLuV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Ultimate, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitZPM", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.SuperconductorUHV, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitUV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Infinite, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitUHV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Bio, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitUEV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Optical, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitUIV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Exotic, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitUMV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Cosmic, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitUXV", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.circuit, + Materials.Transcendent, + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CircuitMAX", 1L)); + + GT_OreDictUnificator.registerOre( + OrePrefixes.block, + MaterialsBotania.Manasteel, + GT_ModHandler.getModItem(Botania.ID, "storage", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.block, + MaterialsBotania.Terrasteel, + GT_ModHandler.getModItem(Botania.ID, "storage", 1L, 1)); + GT_OreDictUnificator.registerOre( + OrePrefixes.ingot, + MaterialsBotania.ElvenElementium, + GT_ModHandler.getModItem(Botania.ID, "manaResource", 1L, 7)); + GT_OreDictUnificator.registerOre( + OrePrefixes.nugget, + MaterialsBotania.ElvenElementium, + GT_ModHandler.getModItem(Botania.ID, "manaResource", 1L, 19)); + GT_OreDictUnificator.registerOre( + OrePrefixes.block, + MaterialsBotania.ElvenElementium, + GT_ModHandler.getModItem(Botania.ID, "storage", 1L, 2)); + GT_OreDictUnificator.registerOre( + OrePrefixes.block, + MaterialsBotania.Livingrock, + GT_ModHandler.getModItem(Botania.ID, "livingrock", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.ingot, + MaterialsBotania.GaiaSpirit, + GT_ModHandler.getModItem(Botania.ID, "manaResource", 1L, 14)); + GT_OreDictUnificator.registerOre( + OrePrefixes.block, + MaterialsBotania.Livingwood, + GT_ModHandler.getModItem(Botania.ID, "livingwood", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.block, + MaterialsBotania.Dreamwood, + GT_ModHandler.getModItem(Botania.ID, "dreamwood", 1L)); + GT_OreDictUnificator.registerOre( + OrePrefixes.gem, + MaterialsBotania.ManaDiamond, + GT_ModHandler.getModItem(Botania.ID, "manaResource", 1L, 2)); + GT_OreDictUnificator.registerOre( + OrePrefixes.block, + MaterialsBotania.ManaDiamond, + GT_ModHandler.getModItem(Botania.ID, "storage", 1L, 3)); + GT_OreDictUnificator.registerOre( + OrePrefixes.gem, + MaterialsBotania.BotaniaDragonstone, + GT_ModHandler.getModItem(Botania.ID, "manaResource", 1L, 9)); + GT_OreDictUnificator.registerOre( + OrePrefixes.block, + MaterialsBotania.BotaniaDragonstone, + GT_ModHandler.getModItem(Botania.ID, "storage", 1L, 4)); + } +} diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java b/src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java new file mode 100644 index 0000000000..116b6928e4 --- /dev/null +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java @@ -0,0 +1,115 @@ +package gregtech.loaders.preload; + +import gregtech.api.util.GT_Log; +import gregtech.loaders.oreprocessing.ProcessingAll; +import gregtech.loaders.oreprocessing.ProcessingArrows; +import gregtech.loaders.oreprocessing.ProcessingBeans; +import gregtech.loaders.oreprocessing.ProcessingBlock; +import gregtech.loaders.oreprocessing.ProcessingBolt; +import gregtech.loaders.oreprocessing.ProcessingCell; +import gregtech.loaders.oreprocessing.ProcessingCircuit; +import gregtech.loaders.oreprocessing.ProcessingCompressed; +import gregtech.loaders.oreprocessing.ProcessingCrafting; +import gregtech.loaders.oreprocessing.ProcessingCrate; +import gregtech.loaders.oreprocessing.ProcessingCrop; +import gregtech.loaders.oreprocessing.ProcessingCrushedOre; +import gregtech.loaders.oreprocessing.ProcessingCrystallized; +import gregtech.loaders.oreprocessing.ProcessingDirty; +import gregtech.loaders.oreprocessing.ProcessingDust; +import gregtech.loaders.oreprocessing.ProcessingDye; +import gregtech.loaders.oreprocessing.ProcessingFineWire; +import gregtech.loaders.oreprocessing.ProcessingFoil; +import gregtech.loaders.oreprocessing.ProcessingFood; +import gregtech.loaders.oreprocessing.ProcessingGear; +import gregtech.loaders.oreprocessing.ProcessingGem; +import gregtech.loaders.oreprocessing.ProcessingIngot; +import gregtech.loaders.oreprocessing.ProcessingItem; +import gregtech.loaders.oreprocessing.ProcessingLens; +import gregtech.loaders.oreprocessing.ProcessingLog; +import gregtech.loaders.oreprocessing.ProcessingNugget; +import gregtech.loaders.oreprocessing.ProcessingOre; +import gregtech.loaders.oreprocessing.ProcessingOrePoor; +import gregtech.loaders.oreprocessing.ProcessingOreSmelting; +import gregtech.loaders.oreprocessing.ProcessingPipe; +import gregtech.loaders.oreprocessing.ProcessingPlank; +import gregtech.loaders.oreprocessing.ProcessingPlate; +import gregtech.loaders.oreprocessing.ProcessingPure; +import gregtech.loaders.oreprocessing.ProcessingRawOre; +import gregtech.loaders.oreprocessing.ProcessingRecycling; +import gregtech.loaders.oreprocessing.ProcessingRotor; +import gregtech.loaders.oreprocessing.ProcessingRound; +import gregtech.loaders.oreprocessing.ProcessingSand; +import gregtech.loaders.oreprocessing.ProcessingSaplings; +import gregtech.loaders.oreprocessing.ProcessingScrew; +import gregtech.loaders.oreprocessing.ProcessingShaping; +import gregtech.loaders.oreprocessing.ProcessingSlab; +import gregtech.loaders.oreprocessing.ProcessingStick; +import gregtech.loaders.oreprocessing.ProcessingStickLong; +import gregtech.loaders.oreprocessing.ProcessingStone; +import gregtech.loaders.oreprocessing.ProcessingStoneCobble; +import gregtech.loaders.oreprocessing.ProcessingStoneVarious; +import gregtech.loaders.oreprocessing.ProcessingToolHead; +import gregtech.loaders.oreprocessing.ProcessingToolOther; +import gregtech.loaders.oreprocessing.ProcessingTransforming; +import gregtech.loaders.oreprocessing.ProcessingWax; +import gregtech.loaders.oreprocessing.ProcessingWire; + +public class GT_Loader_OreProcessing implements Runnable { + + @Override + public void run() { + GT_Log.out.println("GT_Mod: Register Ore processing."); + new ProcessingAll(); + new ProcessingArrows(); + new ProcessingBeans(); + new ProcessingBlock(); + new ProcessingBolt(); + new ProcessingCell(); + new ProcessingCrate(); + new ProcessingCircuit(); + new ProcessingCompressed(); + new ProcessingCrafting(); + new ProcessingCrop(); + new ProcessingCrushedOre(); + new ProcessingCrystallized(); + new ProcessingDirty(); + new ProcessingDust(); + new ProcessingDye(); + new ProcessingFoil(); + new ProcessingFineWire(); + new ProcessingFood(); + new ProcessingLens(); + new ProcessingShaping(); + new ProcessingGem(); + new ProcessingGear(); + new ProcessingIngot(); + new ProcessingItem(); + new ProcessingLog(); + new ProcessingTransforming(); + new ProcessingNugget(); + new ProcessingOre(); + new ProcessingOrePoor(); + new ProcessingOreSmelting(); + new ProcessingRawOre(); + new ProcessingPipe(); + new ProcessingPlank(); + new ProcessingPlate(); + new ProcessingPure(); + new ProcessingRecycling(); + new ProcessingRound(); + new ProcessingRotor(); + new ProcessingSand(); + new ProcessingSaplings(); + new ProcessingScrew(); + new ProcessingSlab(); + new ProcessingStick(); + new ProcessingStickLong(); + new ProcessingStone(); + new ProcessingStoneCobble(); + new ProcessingStoneVarious(); + new ProcessingToolHead(); + new ProcessingToolOther(); + new ProcessingWax(); + new ProcessingWire(); + } +} diff --git a/src/main/java/gregtech/loaders/preload/GT_PreLoad.java b/src/main/java/gregtech/loaders/preload/GT_PreLoad.java new file mode 100644 index 0000000000..bbbb9af59d --- /dev/null +++ b/src/main/java/gregtech/loaders/preload/GT_PreLoad.java @@ -0,0 +1,967 @@ +package gregtech.loaders.preload; + +import static gregtech.GT_Mod.GT_FML_LOGGER; +import static gregtech.api.enums.Mods.Avaritia; +import static gregtech.api.enums.Mods.CraftTweaker; +import static gregtech.api.enums.Mods.EnderIO; +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.GalacticraftCore; +import static gregtech.api.enums.Mods.GregTech; +import static gregtech.api.enums.Mods.HodgePodge; +import static gregtech.api.enums.Mods.IndustrialCraft2Classic; +import static gregtech.api.enums.Mods.TinkerConstruct; +import static gregtech.api.enums.Mods.Translocator; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.PrintStream; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.List; +import java.util.Objects; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import net.minecraft.client.Minecraft; +import net.minecraft.init.Blocks; +import net.minecraft.launchwrapper.Launch; +import net.minecraftforge.common.config.Configuration; + +import org.apache.commons.lang3.StringUtils; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.LoadController; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.ModContainer; +import cpw.mods.fml.common.discovery.ASMDataTable; +import cpw.mods.fml.common.discovery.ModDiscoverer; +import gregtech.GT_Mod; +import gregtech.api.GregTech_API; +import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.recipe.RecipeCategory; +import gregtech.api.recipe.RecipeCategoryHolder; +import gregtech.api.recipe.RecipeCategorySetting; +import gregtech.api.util.GT_Config; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; +import gregtech.common.tileentities.machines.long_distance.GT_MetaTileEntity_LongDistancePipelineBase; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Cleanroom; + +public class GT_PreLoad { + + public static void sortToTheEnd() { + if (GT_Mod.gregtechproxy.mSortToTheEnd) { + try { + GT_FML_LOGGER.info("GT_Mod: Sorting GregTech to the end of the Mod List for further processing."); + LoadController tLoadController = (LoadController) GT_Utility + .getFieldContent(Loader.instance(), "modController", true, true); + assert tLoadController != null; + List<ModContainer> tModList = tLoadController.getActiveModList(); + List<ModContainer> tNewModsList = new ArrayList<>(); + ModContainer tGregTech = null; + short tModList_sS = (short) tModList.size(); + for (short i = 0; i < tModList_sS; i = (short) (i + 1)) { + ModContainer tMod = tModList.get(i); + if (tMod.getModId() + .equalsIgnoreCase(GregTech.ID)) { + tGregTech = tMod; + } else { + tNewModsList.add(tMod); + } + } + if (tGregTech != null) { + tNewModsList.add(tGregTech); + } + Objects.requireNonNull(GT_Utility.getField(tLoadController, "activeModList", true, true)) + .set(tLoadController, tNewModsList); + } catch (Throwable e) { + GT_Mod.logStackTrace(e); + } + } + } + + public static void initLocalization(File languageDir) { + GT_FML_LOGGER.info("GT_Mod: Generating Lang-File"); + + if (FMLCommonHandler.instance() + .getEffectiveSide() + .isClient()) { + String userLang = Minecraft.getMinecraft() + .getLanguageManager() + .getCurrentLanguage() + .getLanguageCode(); + GT_FML_LOGGER.info("User lang is " + userLang); + if (userLang.equals("en_US")) { + GT_FML_LOGGER.info("Loading GregTech.lang"); + GT_LanguageManager.isEN_US = true; + GT_LanguageManager.sEnglishFile = new Configuration(new File(languageDir, "GregTech.lang")); + } else { + String l10nFileName = "GregTech_" + userLang + ".lang"; + File l10nFile = new File(languageDir, l10nFileName); + if (l10nFile.isFile()) { + GT_FML_LOGGER.info("Loading l10n file: " + l10nFileName); + GT_LanguageManager.sEnglishFile = new Configuration(l10nFile); + } else { + GT_FML_LOGGER.info("Cannot find l10n file " + l10nFileName + ", fallback to GregTech.lang"); + GT_LanguageManager.isEN_US = true; + GT_LanguageManager.sEnglishFile = new Configuration(new File(languageDir, "GregTech.lang")); + } + } + } else { + GT_LanguageManager.isEN_US = true; + GT_LanguageManager.sEnglishFile = new Configuration(new File(languageDir, "GregTech.lang")); + } + GT_LanguageManager.sEnglishFile.load(); + + Materials.getMaterialsMap() + .values() + .parallelStream() + .filter(Objects::nonNull) + .forEach( + aMaterial -> aMaterial.mLocalizedName = GT_LanguageManager + .addStringLocalization("Material." + aMaterial.mName.toLowerCase(), aMaterial.mDefaultLocalName)); + } + + public static Configuration getConfiguration(File configDir) { + File tFile = new File(new File(configDir, "GregTech"), "GregTech.cfg"); + Configuration tMainConfig = new Configuration(tFile); + tMainConfig.load(); + tFile = new File(new File(configDir, "GregTech"), "IDs.cfg"); + GT_Config.sConfigFileIDs = new Configuration(tFile); + GT_Config.sConfigFileIDs.load(); + GT_Config.sConfigFileIDs.save(); + GregTech_API.sMachineFile = new GT_Config( + new Configuration(new File(new File(configDir, "GregTech"), "MachineStats.cfg"))); + GregTech_API.sWorldgenFile = new GT_Config( + new Configuration(new File(new File(configDir, "GregTech"), "WorldGeneration.cfg"))); + GregTech_API.sMaterialProperties = new GT_Config( + new Configuration(new File(new File(configDir, "GregTech"), "MaterialProperties.cfg"))); + GregTech_API.sUnification = new GT_Config( + new Configuration(new File(new File(configDir, "GregTech"), "Unification.cfg"))); + GregTech_API.sSpecialFile = new GT_Config( + new Configuration(new File(new File(configDir, "GregTech"), "Other.cfg"))); + GregTech_API.sOPStuff = new GT_Config( + new Configuration(new File(new File(configDir, "GregTech"), "OverpoweredStuff.cfg"))); + + GregTech_API.sClientDataFile = new GT_Config( + new Configuration(new File(new File(configDir, "GregTech"), "Client.cfg"))); + return tMainConfig; + } + + public static void initCompat() { + GregTech_API.mIC2Classic = IndustrialCraft2Classic.isModLoaded(); + GregTech_API.mGTPlusPlus = GTPlusPlus.isModLoaded(); + GregTech_API.mTranslocator = Translocator.isModLoaded(); + GregTech_API.mTConstruct = TinkerConstruct.isModLoaded(); + GregTech_API.mGalacticraft = GalacticraftCore.isModLoaded(); + GregTech_API.mHodgepodge = HodgePodge.isModLoaded(); + GregTech_API.mAvaritia = Avaritia.isModLoaded(); + } + + public static void createLogFiles(File parentFile, Configuration tMainConfig) { + GT_Log.mLogFile = new File(parentFile, "logs/GregTech.log"); + if (!GT_Log.mLogFile.exists()) { + try { + GT_Log.mLogFile.createNewFile(); + } catch (Throwable ignored) {} + } + try { + GT_Log.out = GT_Log.err = new PrintStream(GT_Log.mLogFile); + } catch (FileNotFoundException ignored) {} + + if (tMainConfig.get(GT_Mod.aTextGeneral, "LoggingOreDict", false) + .getBoolean(false)) { + GT_Log.mOreDictLogFile = new File(parentFile, "logs/OreDict.log"); + if (!GT_Log.mOreDictLogFile.exists()) { + try { + GT_Log.mOreDictLogFile.createNewFile(); + } catch (Throwable ignored) {} + } + List<String> tList = ((GT_Log.LogBuffer) GT_Log.ore).mBufferedOreDictLog; + try { + GT_Log.ore = new PrintStream(GT_Log.mOreDictLogFile); + } catch (Throwable ignored) {} + GT_Log.ore.println("******************************************************************************"); + GT_Log.ore.println("* This is the complete log of the GT5-Unofficial OreDictionary Handler. It *"); + GT_Log.ore.println("* processes all OreDictionary entries and can sometimes cause errors. All *"); + GT_Log.ore.println("* entries and errors are being logged. If you see an error please raise an *"); + GT_Log.ore.println("* issue at https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues. *"); + GT_Log.ore.println("******************************************************************************"); + tList.forEach(GT_Log.ore::println); + } + if (tMainConfig.get(GT_Mod.aTextGeneral, "LoggingExplosions", true) + .getBoolean(true)) { + GT_Log.mExplosionLog = new File(parentFile, "logs/Explosion.log"); + if (!GT_Log.mExplosionLog.exists()) { + try { + GT_Log.mExplosionLog.createNewFile(); + } catch (Throwable ignored) {} + } + try { + GT_Log.exp = new PrintStream(GT_Log.mExplosionLog); + } catch (Throwable ignored) {} + } + + if (tMainConfig.get(GT_Mod.aTextGeneral, "LoggingPlayerActivity", true) + .getBoolean(true)) { + GT_Log.mPlayerActivityLogFile = new File(parentFile, "logs/PlayerActivity.log"); + if (!GT_Log.mPlayerActivityLogFile.exists()) { + try { + GT_Log.mPlayerActivityLogFile.createNewFile(); + } catch (Throwable ignored) {} + } + try { + GT_Log.pal = new PrintStream(GT_Log.mPlayerActivityLogFile); + } catch (Throwable ignored) {} + } + } + + public static void runMineTweakerCompat() { + if (!CraftTweaker.isModLoaded()) return; + + GT_FML_LOGGER.info("preReader"); + final List<String> oreTags = new ArrayList<>(); + final File globalDir = new File("scripts"); + if (globalDir.exists()) { + final List<String> scripts = new ArrayList<>(); + for (File file : Objects.requireNonNull(globalDir.listFiles())) { + if (file.getName() + .endsWith(".zs")) { + try (BufferedReader br = new BufferedReader(new FileReader(file))) { + String line; + while ((line = br.readLine()) != null) { + scripts.add(line); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + String pattern1 = "<"; + String pattern2 = ">"; + + Pattern p = Pattern.compile(Pattern.quote(pattern1) + "(.*?)" + Pattern.quote(pattern2)); + for (String text : scripts) { + Matcher m = p.matcher(text); + while (m.find()) { + String hit = m.group(1); + if (hit.startsWith("ore:")) { + hit = hit.substring(4); + if (!oreTags.contains(hit)) oreTags.add(hit); + } else if (hit.startsWith("gregtech:gt.metaitem.0")) { + hit = hit.substring(22); + int mIt = Integer.parseInt(hit.substring(0, 1)); + if (mIt > 0) { + int meta = 0; + try { + hit = hit.substring(2); + meta = Integer.parseInt(hit); + } catch (Exception e) { + GT_FML_LOGGER.info("parseError: " + hit); + } + if (meta > 0 && meta < 32000) { + int prefix = meta / 1000; + int material = meta % 1000; + String tag = ""; + String[] tags = new String[] {}; + if (mIt == 1) tags = new String[] { "dustTiny", "dustSmall", "dust", "dustImpure", + "dustPure", "crushed", "crushedPurified", "crushedCentrifuged", "gem", "nugget", + null, "ingot", "ingotHot", "ingotDouble", "ingotTriple", "ingotQuadruple", + "ingotQuintuple", "plate", "plateDouble", "plateTriple", "plateQuadruple", + "plateQuintuple", "plateDense", "stick", "lens", "round", "bolt", "screw", "ring", + "foil", "cell", "cellPlasma", "cellMolten", "rawOre" }; + if (mIt == 2) tags = new String[] { "toolHeadSword", "toolHeadPickaxe", + "toolHeadShovel", "toolHeadAxe", "toolHeadHoe", "toolHeadHammer", "toolHeadFile", + "toolHeadSaw", "toolHeadDrill", "toolHeadChainsaw", "toolHeadWrench", + "toolHeadUniversalSpade", "toolHeadSense", "toolHeadPlow", "toolHeadArrow", + "toolHeadBuzzSaw", "turbineBlade", null, null, "wireFine", "gearGtSmall", "rotor", + "stickLong", "springSmall", "spring", "arrowGtWood", "arrowGtPlastic", "gemChipped", + "gemFlawed", "gemFlawless", "gemExquisite", "gearGt" }; + if (mIt == 3) tags = new String[] { "crateGtDust", "crateGtIngot", "crateGtGem", + "crateGtPlate", "itemCasing", "nanite" }; + if (tags.length > prefix) tag = tags[prefix]; + if (GregTech_API.sGeneratedMaterials[material] != null) { + tag += GregTech_API.sGeneratedMaterials[material].mName; + if (!oreTags.contains(tag)) oreTags.add(tag); + } else if (material > 0) { + GT_FML_LOGGER.info("MaterialDisabled: " + material + " " + m.group(1)); + } + } + } + } + } + } + } + + final String[] preS = new String[] { "dustTiny", "dustSmall", "dust", "dustImpure", "dustPure", "crushed", + "crushedPurified", "crushedCentrifuged", "gem", "nugget", "ingot", "ingotHot", "ingotDouble", "ingotTriple", + "ingotQuadruple", "ingotQuintuple", "plate", "plateDouble", "plateTriple", "plateQuadruple", + "plateQuintuple", "plateDense", "stick", "lens", "round", "bolt", "screw", "ring", "foil", "cell", + "cellPlasma", "toolHeadSword", "toolHeadPickaxe", "toolHeadShovel", "toolHeadAxe", "toolHeadHoe", + "toolHeadHammer", "toolHeadFile", "toolHeadSaw", "toolHeadDrill", "toolHeadChainsaw", "toolHeadWrench", + "toolHeadUniversalSpade", "toolHeadSense", "toolHeadPlow", "toolHeadArrow", "toolHeadBuzzSaw", + "turbineBlade", "wireFine", "gearGtSmall", "rotor", "stickLong", "springSmall", "spring", "arrowGtWood", + "arrowGtPlastic", "gemChipped", "gemFlawed", "gemFlawless", "gemExquisite", "gearGt", "crateGtDust", + "crateGtIngot", "crateGtGem", "crateGtPlate", "nanite", "cellMolten", "rawOre" }; + + List<String> mMTTags = new ArrayList<>(); + oreTags.stream() + .filter(test -> StringUtils.startsWithAny(test, preS)) + .forEach(test -> { + mMTTags.add(test); + if (GT_Values.D1) GT_FML_LOGGER.info("oretag: " + test); + }); + + GT_FML_LOGGER.info("reenableMetaItems"); + + for (String reEnable : mMTTags) { + OrePrefixes tPrefix = OrePrefixes.getOrePrefix(reEnable); + if (tPrefix != null) { + Materials tName = Materials.get(reEnable.replaceFirst(tPrefix.toString(), "")); + if (tName != null) { + tPrefix.mDisabledItems.remove(tName); + tPrefix.mGeneratedItems.add(tName); + if (tPrefix == OrePrefixes.screw) { + OrePrefixes.bolt.mDisabledItems.remove(tName); + OrePrefixes.bolt.mGeneratedItems.add(tName); + OrePrefixes.stick.mDisabledItems.remove(tName); + OrePrefixes.stick.mGeneratedItems.add(tName); + } + if (tPrefix == OrePrefixes.round) { + OrePrefixes.nugget.mDisabledItems.remove(tName); + OrePrefixes.nugget.mGeneratedItems.add(tName); + } + if (tPrefix == OrePrefixes.spring) { + OrePrefixes.stickLong.mDisabledItems.remove(tName); + OrePrefixes.stickLong.mGeneratedItems.add(tName); + OrePrefixes.stick.mDisabledItems.remove(tName); + OrePrefixes.stick.mGeneratedItems.add(tName); + } + if (tPrefix == OrePrefixes.springSmall) { + OrePrefixes.stick.mDisabledItems.remove(tName); + OrePrefixes.stick.mGeneratedItems.add(tName); + } + if (tPrefix == OrePrefixes.stickLong) { + OrePrefixes.stick.mDisabledItems.remove(tName); + OrePrefixes.stick.mGeneratedItems.add(tName); + } + if (tPrefix == OrePrefixes.rotor) { + OrePrefixes.ring.mDisabledItems.remove(tName); + OrePrefixes.ring.mGeneratedItems.add(tName); + } + } else { + GT_FML_LOGGER.info("noMaterial " + reEnable); + } + } else { + GT_FML_LOGGER.info("noPrefix " + reEnable); + } + } + } + + public static void adjustScrap() { + GT_FML_LOGGER.info("GT_Mod: Removing all original Scrapbox Drops."); + try { + Objects.requireNonNull(GT_Utility.getField("ic2.core.item.ItemScrapbox$Drop", "topChance", true, true)) + .set(null, 0); + ((List<?>) Objects.requireNonNull( + GT_Utility.getFieldContent( + GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", true, true), + "drops", + true, + true))).clear(); + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } + } + GT_Log.out.println("GT_Mod: Adding Scrap with a Weight of 200.0F to the Scrapbox Drops."); + GT_ModHandler.addScrapboxDrop(200.0F, GT_ModHandler.getIC2Item("scrap", 1L)); + } + + public static void loadConfig(Configuration tMainConfig) { + GT_Values.D1 = tMainConfig.get(GT_Mod.aTextGeneral, "Debug", false) + .getBoolean(false); + GT_Values.D2 = tMainConfig.get(GT_Mod.aTextGeneral, "Debug2", false) + .getBoolean(false); + GT_Values.allow_broken_recipemap = tMainConfig.get(GT_Mod.aTextGeneral, "debug allow broken recipemap", false) + .getBoolean(false); + GT_Values.debugCleanroom = tMainConfig.get(GT_Mod.aTextGeneral, "debugCleanroom", false) + .getBoolean(false); + GT_Values.debugDriller = tMainConfig.get(GT_Mod.aTextGeneral, "debugDriller", false) + .getBoolean(false); + GT_Values.debugWorldGen = tMainConfig.get(GT_Mod.aTextGeneral, "debugWorldGen", false) + .getBoolean(false); + GT_Values.debugOrevein = tMainConfig.get(GT_Mod.aTextGeneral, "debugOrevein", false) + .getBoolean(false); + GT_Values.debugSmallOres = tMainConfig.get(GT_Mod.aTextGeneral, "debugSmallOres", false) + .getBoolean(false); + GT_Values.debugStones = tMainConfig.get(GT_Mod.aTextGeneral, "debugStones", false) + .getBoolean(false); + GT_Values.debugBlockMiner = tMainConfig.get(GT_Mod.aTextGeneral, "debugBlockMiner", false) + .getBoolean(false); + GT_Values.debugBlockPump = tMainConfig.get(GT_Mod.aTextGeneral, "debugBlockPump", false) + .getBoolean(false); + GT_Values.debugEntityCramming = tMainConfig.get(GT_Mod.aTextGeneral, "debugEntityCramming", false) + .getBoolean(false); + GT_Values.debugWorldData = tMainConfig.get(GT_Mod.aTextGeneral, "debugWorldData", false) + .getBoolean(false); + GT_Values.oreveinPercentage = tMainConfig.get(GT_Mod.aTextGeneral, "oreveinPercentage_100", 100) + .getInt(100); + GT_Values.oreveinAttempts = tMainConfig.get(GT_Mod.aTextGeneral, "oreveinAttempts_64", 64) + .getInt(64); + GT_Values.oreveinMaxPlacementAttempts = tMainConfig.get(GT_Mod.aTextGeneral, "oreveinMaxPlacementAttempts_8", 8) + .getInt(8); + GT_Values.oreveinPlacerOres = tMainConfig.get(GT_Mod.aTextGeneral, "oreveinPlacerOres", true) + .getBoolean(true); + GT_Values.oreveinPlacerOresMultiplier = tMainConfig.get(GT_Mod.aTextGeneral, "oreveinPlacerOresMultiplier", 2) + .getInt(2); + // GT_Values.oreveinMaxSize = tMainConfig.get(aTextGeneral, "oreveinMaxSize_64",64).getInt(64); + GT_Values.ticksBetweenSounds = tMainConfig.get("machines", "TicksBetweenSounds", 30) + .getInt(30); + GT_Values.cleanroomGlass = (float) tMainConfig.get("machines", "ReinforcedGlassPercentageForCleanroom", 5D) + .getDouble(5D); + GT_Values.enableChunkloaders = tMainConfig.get("machines", "enableChunkloaders", true) + .getBoolean(true); + GT_Values.alwaysReloadChunkloaders = tMainConfig.get("machines", "alwaysReloadChunkloaders", false) + .getBoolean(false); + GT_Values.debugChunkloaders = tMainConfig.get("machines", "debugChunkloaders", false) + .getBoolean(false); + GT_Values.disableDigitalChestsExternalAccess = tMainConfig + .get("machines", "disableDigitalChestsExternalAccess", false) + .getBoolean(false); + GT_Values.enableMultiTileEntities = tMainConfig.get( + "machines", + "enableMultiTileEntities", + false, + "This enabled MuTEs(multitile entities) to be added to the game. MuTEs are in the start of development and its not recommended to enable them unless you know what you are doing.") + .getBoolean(false) + // Make sure MuTEs are enabled in development + || (boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment"); + GregTech_API.TICKS_FOR_LAG_AVERAGING = tMainConfig + .get(GT_Mod.aTextGeneral, "TicksForLagAveragingWithScanner", 25) + .getInt(25); + GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING = tMainConfig + .get(GT_Mod.aTextGeneral, "MillisecondsPassedInGTTileEntityUntilLagWarning", 100) + .getInt(100); + if (tMainConfig.get(GT_Mod.aTextGeneral, "disable_STDOUT", false) + .getBoolean(false)) { + GT_FML_LOGGER.info("Disableing Console Messages."); + GT_FML_LOGGER.exit(); + System.out.close(); + System.err.close(); + } + GregTech_API.sMachineExplosions = tMainConfig.get("machines", "machines_explosion_damage", true) + .getBoolean(false); + GregTech_API.sMachineFlammable = tMainConfig.get("machines", "machines_flammable", true) + .getBoolean(false); + GregTech_API.sMachineNonWrenchExplosions = tMainConfig.get("machines", "explosions_on_nonwrenching", true) + .getBoolean(false); + GregTech_API.sMachineWireFire = tMainConfig.get("machines", "wirefire_on_explosion", true) + .getBoolean(false); + GregTech_API.sMachineFireExplosions = tMainConfig.get("machines", "fire_causes_explosions", true) + .getBoolean(false); + GregTech_API.sMachineRainExplosions = tMainConfig.get("machines", "rain_causes_explosions", true) + .getBoolean(false); + GregTech_API.sMachineThunderExplosions = tMainConfig.get("machines", "lightning_causes_explosions", true) + .getBoolean(false); + GregTech_API.sConstantEnergy = tMainConfig.get("machines", "constant_need_of_energy", true) + .getBoolean(false); + GregTech_API.sColoredGUI = tMainConfig.get("machines", "colored_guis_when_painted", true) + .getBoolean(false); + GregTech_API.sMachineMetalGUI = tMainConfig.get("machines", "guis_in_consistent_machine_metal_color", false) + .getBoolean(false); + + // Implementation for this is actually handled in NewHorizonsCoreMod in MainRegistry.java! + GregTech_API.sUseMachineMetal = tMainConfig.get("machines", "use_machine_metal_tint", true) + .getBoolean(true); + + GregTech_API.sTimber = tMainConfig.get(GT_Mod.aTextGeneral, "timber_axe", true) + .getBoolean(true); + GregTech_API.sDrinksAlwaysDrinkable = tMainConfig.get(GT_Mod.aTextGeneral, "drinks_always_drinkable", false) + .getBoolean(false); + GregTech_API.sDoShowAllItemsInCreative = tMainConfig + .get(GT_Mod.aTextGeneral, "show_all_metaitems_in_creative_and_NEI", false) + .getBoolean(false); + GregTech_API.sMultiThreadedSounds = tMainConfig.get(GT_Mod.aTextGeneral, "sound_multi_threading", false) + .getBoolean(false); + + loadClientConfig(); + + GT_Mod.gregtechproxy.mMaxEqualEntitiesAtOneSpot = tMainConfig + .get(GT_Mod.aTextGeneral, "MaxEqualEntitiesAtOneSpot", 3) + .getInt(3); + GT_Mod.gregtechproxy.mSkeletonsShootGTArrows = tMainConfig + .get(GT_Mod.aTextGeneral, "SkeletonsShootGTArrows", 16) + .getInt(16); + GT_Mod.gregtechproxy.mFlintChance = tMainConfig.get(GT_Mod.aTextGeneral, "FlintAndSteelChance", 30) + .getInt(30); + GT_Mod.gregtechproxy.mItemDespawnTime = tMainConfig.get(GT_Mod.aTextGeneral, "ItemDespawnTime", 6000) + .getInt(6000); + GT_Mod.gregtechproxy.mAllowSmallBoilerAutomation = tMainConfig + .get(GT_Mod.aTextGeneral, "AllowSmallBoilerAutomation", false) + .getBoolean(false); + GT_Mod.gregtechproxy.mHardMachineCasings = tMainConfig.get(GT_Mod.aTextGeneral, "HardMachineCasings", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mDisableVanillaOres = tMainConfig.get(GT_Mod.aTextGeneral, "DisableVanillaOres", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mNerfDustCrafting = tMainConfig.get(GT_Mod.aTextGeneral, "NerfDustCrafting", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mIncreaseDungeonLoot = tMainConfig.get(GT_Mod.aTextGeneral, "IncreaseDungeonLoot", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mAxeWhenAdventure = tMainConfig.get(GT_Mod.aTextGeneral, "AdventureModeStartingAxe", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mHardcoreCables = tMainConfig.get(GT_Mod.aTextGeneral, "HardCoreCableLoss", false) + .getBoolean(false); + GT_Mod.gregtechproxy.mSurvivalIntoAdventure = tMainConfig.get(GT_Mod.aTextGeneral, "forceAdventureMode", false) + .getBoolean(false); + GT_Mod.gregtechproxy.mHungerEffect = tMainConfig.get(GT_Mod.aTextGeneral, "AFK_Hunger", false) + .getBoolean(false); + GT_Mod.gregtechproxy.mHardRock = tMainConfig.get(GT_Mod.aTextGeneral, "harderstone", false) + .getBoolean(false); + GT_Mod.gregtechproxy.mInventoryUnification = tMainConfig.get(GT_Mod.aTextGeneral, "InventoryUnification", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mGTBees = tMainConfig.get(GT_Mod.aTextGeneral, "GTBees", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mCraftingUnification = tMainConfig.get(GT_Mod.aTextGeneral, "CraftingUnification", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mNerfedWoodPlank = tMainConfig.get(GT_Mod.aTextGeneral, "WoodNeedsSawForCrafting", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mNerfedVanillaTools = tMainConfig + .get(GT_Mod.aTextGeneral, "smallerVanillaToolDurability", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mSortToTheEnd = tMainConfig.get(GT_Mod.aTextGeneral, "EnsureToBeLoadedLast", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mDisableIC2Cables = tMainConfig.get(GT_Mod.aTextGeneral, "DisableIC2Cables", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mAchievements = tMainConfig.get(GT_Mod.aTextGeneral, "EnableAchievements", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mNerfedCombs = tMainConfig.get(GT_Mod.aTextGeneral, "NerfCombs", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mNerfedCrops = tMainConfig.get(GT_Mod.aTextGeneral, "NerfCrops", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mHideUnusedOres = tMainConfig.get(GT_Mod.aTextGeneral, "HideUnusedOres", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mArcSmeltIntoAnnealed = tMainConfig + .get(GT_Mod.aTextGeneral, "ArcSmeltIntoAnnealedWrought", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mEnableAllMaterials = tMainConfig.get("general", "EnableAllMaterials", false) + .getBoolean(false); + + // Pollution: edit GT_Proxy.java to change default values + GT_Mod.gregtechproxy.mPollution = tMainConfig + .get("Pollution", "EnablePollution", GT_Mod.gregtechproxy.mPollution) + .getBoolean(GT_Mod.gregtechproxy.mPollution); + GT_Mod.gregtechproxy.mPollutionSmogLimit = tMainConfig + .get("Pollution", "SmogLimit", GT_Mod.gregtechproxy.mPollutionSmogLimit) + .getInt(GT_Mod.gregtechproxy.mPollutionSmogLimit); + GT_Mod.gregtechproxy.mPollutionPoisonLimit = tMainConfig + .get("Pollution", "PoisonLimit", GT_Mod.gregtechproxy.mPollutionPoisonLimit) + .getInt(GT_Mod.gregtechproxy.mPollutionPoisonLimit); + GT_Mod.gregtechproxy.mPollutionVegetationLimit = tMainConfig + .get("Pollution", "VegetationLimit", GT_Mod.gregtechproxy.mPollutionVegetationLimit) + .getInt(GT_Mod.gregtechproxy.mPollutionVegetationLimit); + GT_Mod.gregtechproxy.mPollutionSourRainLimit = tMainConfig + .get("Pollution", "SourRainLimit", GT_Mod.gregtechproxy.mPollutionSourRainLimit) + .getInt(GT_Mod.gregtechproxy.mPollutionSourRainLimit); + GT_Mod.gregtechproxy.mPollutionOnExplosion = tMainConfig + .get("Pollution", "SourRainLimit", GT_Mod.gregtechproxy.mPollutionOnExplosion) + .getInt(GT_Mod.gregtechproxy.mPollutionOnExplosion); + GT_Mod.gregtechproxy.mExplosionItemDrop = tMainConfig + .get("general", "ExplosionItemDrops", GT_Mod.gregtechproxy.mExplosionItemDrop) + .getBoolean(GT_Mod.gregtechproxy.mExplosionItemDrop); + GT_Mod.gregtechproxy.mPollutionPrimitveBlastFurnacePerSecond = tMainConfig + .get( + "Pollution", + "PollutionPrimitiveBlastFurnace", + GT_Mod.gregtechproxy.mPollutionPrimitveBlastFurnacePerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionPrimitveBlastFurnacePerSecond); + GT_Mod.gregtechproxy.mPollutionCharcoalPitPerSecond = tMainConfig + .get("Pollution", "PollutionCharcoalPit", GT_Mod.gregtechproxy.mPollutionCharcoalPitPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionCharcoalPitPerSecond); + GT_Mod.gregtechproxy.mPollutionEBFPerSecond = tMainConfig + .get("Pollution", "PollutionEBF", GT_Mod.gregtechproxy.mPollutionEBFPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionEBFPerSecond); + GT_Mod.gregtechproxy.mPollutionLargeCombustionEnginePerSecond = tMainConfig + .get( + "Pollution", + "PollutionLargeCombustionEngine", + GT_Mod.gregtechproxy.mPollutionLargeCombustionEnginePerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionLargeCombustionEnginePerSecond); + GT_Mod.gregtechproxy.mPollutionExtremeCombustionEnginePerSecond = tMainConfig + .get( + "Pollution", + "PollutionExtremeCombustionEngine", + GT_Mod.gregtechproxy.mPollutionExtremeCombustionEnginePerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionExtremeCombustionEnginePerSecond); + GT_Mod.gregtechproxy.mPollutionImplosionCompressorPerSecond = tMainConfig + .get( + "Pollution", + "PollutionImplosionCompressor", + GT_Mod.gregtechproxy.mPollutionImplosionCompressorPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionImplosionCompressorPerSecond); + GT_Mod.gregtechproxy.mPollutionLargeBronzeBoilerPerSecond = tMainConfig + .get("Pollution", "PollutionLargeBronzeBoiler", GT_Mod.gregtechproxy.mPollutionLargeBronzeBoilerPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionLargeBronzeBoilerPerSecond); + GT_Mod.gregtechproxy.mPollutionLargeSteelBoilerPerSecond = tMainConfig + .get("Pollution", "PollutionLargeSteelBoiler", GT_Mod.gregtechproxy.mPollutionLargeSteelBoilerPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionLargeSteelBoilerPerSecond); + GT_Mod.gregtechproxy.mPollutionLargeTitaniumBoilerPerSecond = tMainConfig + .get( + "Pollution", + "PollutionLargeTitaniumBoiler", + GT_Mod.gregtechproxy.mPollutionLargeTitaniumBoilerPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionLargeTitaniumBoilerPerSecond); + GT_Mod.gregtechproxy.mPollutionLargeTungstenSteelBoilerPerSecond = tMainConfig + .get( + "Pollution", + "PollutionLargeTungstenSteelBoiler", + GT_Mod.gregtechproxy.mPollutionLargeTungstenSteelBoilerPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionLargeTungstenSteelBoilerPerSecond); + GT_Mod.gregtechproxy.mPollutionReleasedByThrottle = tMainConfig + .get("Pollution", "PollutionReleasedByThrottle", GT_Mod.gregtechproxy.mPollutionReleasedByThrottle) + .getDouble(GT_Mod.gregtechproxy.mPollutionReleasedByThrottle); + GT_Mod.gregtechproxy.mPollutionLargeGasTurbinePerSecond = tMainConfig + .get("Pollution", "PollutionLargeGasTurbine", GT_Mod.gregtechproxy.mPollutionLargeGasTurbinePerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionLargeGasTurbinePerSecond); + GT_Mod.gregtechproxy.mPollutionMultiSmelterPerSecond = tMainConfig + .get("Pollution", "PollutionMultiSmelter", GT_Mod.gregtechproxy.mPollutionMultiSmelterPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionMultiSmelterPerSecond); + GT_Mod.gregtechproxy.mPollutionPyrolyseOvenPerSecond = tMainConfig + .get("Pollution", "PollutionPyrolyseOven", GT_Mod.gregtechproxy.mPollutionPyrolyseOvenPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionPyrolyseOvenPerSecond); + GT_Mod.gregtechproxy.mPollutionSmallCoalBoilerPerSecond = tMainConfig + .get("Pollution", "PollutionSmallCoalBoiler", GT_Mod.gregtechproxy.mPollutionSmallCoalBoilerPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionSmallCoalBoilerPerSecond); + GT_Mod.gregtechproxy.mPollutionHighPressureLavaBoilerPerSecond = tMainConfig + .get( + "Pollution", + "PollutionHighPressureLavaBoiler", + GT_Mod.gregtechproxy.mPollutionHighPressureLavaBoilerPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionHighPressureLavaBoilerPerSecond); + GT_Mod.gregtechproxy.mPollutionHighPressureCoalBoilerPerSecond = tMainConfig + .get( + "Pollution", + "PollutionHighPressureCoalBoiler", + GT_Mod.gregtechproxy.mPollutionHighPressureCoalBoilerPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionHighPressureCoalBoilerPerSecond); + GT_Mod.gregtechproxy.mPollutionBaseDieselGeneratorPerSecond = tMainConfig + .get( + "Pollution", + "PollutionBaseDieselGenerator", + GT_Mod.gregtechproxy.mPollutionBaseDieselGeneratorPerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionBaseDieselGeneratorPerSecond); + double[] mPollutionDieselGeneratorReleasedByTier = tMainConfig + .get( + "Pollution", + "PollutionReleasedByTierDieselGenerator", + GT_Mod.gregtechproxy.mPollutionDieselGeneratorReleasedByTier) + .getDoubleList(); + if (mPollutionDieselGeneratorReleasedByTier.length + == GT_Mod.gregtechproxy.mPollutionDieselGeneratorReleasedByTier.length) { + GT_Mod.gregtechproxy.mPollutionDieselGeneratorReleasedByTier = mPollutionDieselGeneratorReleasedByTier; + } else { + GT_FML_LOGGER + .error("The Length of the Diesel Turbine Pollution Array Config must be the same as the Default"); + } + GT_Mod.gregtechproxy.mPollutionBaseGasTurbinePerSecond = tMainConfig + .get( + "Pollution", + "PollutionBaseGasTurbineGenerator", + GT_Mod.gregtechproxy.mPollutionBaseGasTurbinePerSecond) + .getInt(GT_Mod.gregtechproxy.mPollutionBaseGasTurbinePerSecond); + double[] mPollutionGasTurbineReleasedByTier = tMainConfig + .get( + "Pollution", + "PollutionReleasedByTierGasTurbineGenerator", + GT_Mod.gregtechproxy.mPollutionGasTurbineReleasedByTier) + .getDoubleList(); + if (mPollutionGasTurbineReleasedByTier.length + == GT_Mod.gregtechproxy.mPollutionGasTurbineReleasedByTier.length) { + GT_Mod.gregtechproxy.mPollutionGasTurbineReleasedByTier = mPollutionGasTurbineReleasedByTier; + } else { + GT_FML_LOGGER.error("The Length of the Gas Turbine Pollution Array Config must be the same as the Default"); + } + + GT_Mod.gregtechproxy.mUndergroundOil.getConfig(tMainConfig, "undergroundfluid"); + GT_Mod.gregtechproxy.enableUndergroundGravelGen = GregTech_API.sWorldgenFile + .get("general", "enableUndergroundGravelGen", GT_Mod.gregtechproxy.enableUndergroundGravelGen); + GT_Mod.gregtechproxy.enableUndergroundDirtGen = GregTech_API.sWorldgenFile + .get("general", "enableUndergroundDirtGen", GT_Mod.gregtechproxy.enableUndergroundDirtGen); + GT_Mod.gregtechproxy.mEnableCleanroom = tMainConfig.get("general", "EnableCleanroom", true) + .getBoolean(true); + if (GT_Mod.gregtechproxy.mEnableCleanroom) GT_MetaTileEntity_Cleanroom.loadConfig(tMainConfig); + GT_Mod.gregtechproxy.mLowGravProcessing = GalacticraftCore.isModLoaded() + && tMainConfig.get("general", "LowGravProcessing", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mUseGreatlyShrukenReplacementList = tMainConfig + .get("general", "GTNH Optimised Material Loading", true) + .getBoolean(true); + Calendar now = Calendar.getInstance(); + GT_Mod.gregtechproxy.mAprilFool = GregTech_API.sSpecialFile.get( + ConfigCategories.general, + "AprilFool", + now.get(Calendar.MONTH) == Calendar.APRIL && now.get(Calendar.DAY_OF_MONTH) == 1); + GT_Mod.gregtechproxy.mCropNeedBlock = tMainConfig.get("general", "CropNeedBlockBelow", true) + .getBoolean(true); + GT_Mod.gregtechproxy.mAMHInteraction = tMainConfig.get("general", "AllowAutoMaintenanceHatchInteraction", false) + .getBoolean(false); + GregTech_API.mOutputRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "OutputRF", true); + GregTech_API.mInputRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "InputRF", false); + GregTech_API.mEUtoRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "100EUtoRF", 360); + GregTech_API.mRFtoEU = GregTech_API.sOPStuff.get(ConfigCategories.general, "100RFtoEU", 20); + GregTech_API.mRFExplosions = GregTech_API.sOPStuff.get(ConfigCategories.general, "RFExplosions", false); + GregTech_API.meIOLoaded = EnderIO.isModLoaded(); + GT_Mod.gregtechproxy.mForceFreeFace = GregTech_API.sMachineFile + .get(ConfigCategories.machineconfig, "forceFreeFace", true); + GT_Mod.gregtechproxy.mBrickedBlastFurnace = tMainConfig.get("general", "BrickedBlastFurnace", true) + .getBoolean(true); + + GT_Mod.gregtechproxy.mMixedOreOnlyYieldsTwoThirdsOfPureOre = tMainConfig + .get("general", "MixedOreOnlyYieldsTwoThirdsOfPureOre", false) + .getBoolean(false); + GT_Mod.gregtechproxy.mRichOreYieldMultiplier = tMainConfig.get("general", "RichOreYieldMultiplier", true) + .getBoolean(false); + GT_Mod.gregtechproxy.mNetherOreYieldMultiplier = tMainConfig.get("general", "NetherOreYieldMultiplier", true) + .getBoolean(false); + GT_Mod.gregtechproxy.mEndOreYieldMultiplier = tMainConfig.get("general", "EndOreYieldMultiplier", true) + .getBoolean(false); + GT_Mod.gregtechproxy.enableBlackGraniteOres = GregTech_API.sWorldgenFile + .get("general", "enableBlackGraniteOres", GT_Mod.gregtechproxy.enableBlackGraniteOres); + GT_Mod.gregtechproxy.enableRedGraniteOres = GregTech_API.sWorldgenFile + .get("general", "enableRedGraniteOres", GT_Mod.gregtechproxy.enableRedGraniteOres); + GT_Mod.gregtechproxy.enableMarbleOres = GregTech_API.sWorldgenFile + .get("general", "enableMarbleOres", GT_Mod.gregtechproxy.enableMarbleOres); + GT_Mod.gregtechproxy.enableBasaltOres = GregTech_API.sWorldgenFile + .get("general", "enableBasaltOres", GT_Mod.gregtechproxy.enableBasaltOres); + GT_Mod.gregtechproxy.gt6Pipe = tMainConfig.get("general", "GT6StyledPipesConnection", true) + .getBoolean(true); + GT_Mod.gregtechproxy.gt6Cable = tMainConfig.get("general", "GT6StyledWiresConnection", true) + .getBoolean(true); + GT_Mod.gregtechproxy.ic2EnergySourceCompat = tMainConfig.get("general", "Ic2EnergySourceCompat", true) + .getBoolean(true); + GT_Mod.gregtechproxy.costlyCableConnection = tMainConfig + .get("general", "CableConnectionRequiresSolderingMaterial", false) + .getBoolean(false); + GT_Mod.gregtechproxy.crashOnNullRecipeInput = tMainConfig.get("general", "crashOnNullRecipeInput", false) + .getBoolean(false); + GT_LanguageManager.i18nPlaceholder = tMainConfig + .get("general", "EnablePlaceholderForMaterialNamesInLangFile", true) + .getBoolean(true); + GT_MetaTileEntity_LongDistancePipelineBase.minimalDistancePoints = tMainConfig + .get("general", "LongDistancePipelineMinimalDistancePoints", 64) + .getInt(64); + try { + String setting_string = tMainConfig.get( + "OreDropBehaviour", + "general", + "FortuneItem", + "Settings: \n'PerDimBlock': Sets the drop to the block variant of the ore block based on dimension, defaults to stone type, \n'UnifiedBlock': Sets the drop to the stone variant of the ore block, \n'Block': Sets the drop to the ore mined, \n'FortuneItem': Sets the drop to the new ore item and makes it affected by fortune, \n'Item': Sets the drop to the new ore item, \nDefaults to: 'FortuneItem'") + .getString(); + GT_Log.out.println("Trying to set it to: " + setting_string); + GT_Proxy.OreDropSystem setting = GT_Proxy.OreDropSystem.valueOf(setting_string); + GT_Mod.gregtechproxy.oreDropSystem = setting; + + } catch (IllegalArgumentException e) { + GT_Log.err.println(e); + GT_Mod.gregtechproxy.oreDropSystem = GT_Proxy.OreDropSystem.FortuneItem; + } + + GT_Mod.gregtechproxy.mChangeHarvestLevels = GregTech_API.sMaterialProperties + .get("havestLevel", "activateHarvestLevelChange", false); // TODO CHECK + if (GT_Mod.gregtechproxy.mChangeHarvestLevels) { + GT_Mod.gregtechproxy.mGraniteHavestLevel = GregTech_API.sMaterialProperties + .get("havestLevel", "graniteHarvestLevel", 3); + GT_Mod.gregtechproxy.mMaxHarvestLevel = Math + .min(15, GregTech_API.sMaterialProperties.get("havestLevel", "maxLevel", 7)); + Materials.getMaterialsMap() + .values() + .parallelStream() + .filter( + tMaterial -> tMaterial != null && tMaterial.mToolQuality > 0 + && tMaterial.mMetaItemSubID < GT_Mod.gregtechproxy.mHarvestLevel.length + && tMaterial.mMetaItemSubID >= 0) + .forEach( + tMaterial -> GT_Mod.gregtechproxy.mHarvestLevel[tMaterial.mMetaItemSubID] = GregTech_API.sMaterialProperties + .get("materialHavestLevel", tMaterial.mDefaultLocalName, tMaterial.mToolQuality)); + } + + if (tMainConfig.get("general", "hardermobspawners", true) + .getBoolean(true)) { + Blocks.mob_spawner.setHardness(500.0F) + .setResistance(6000000.0F); + } + GT_Mod.gregtechproxy.mOnline = tMainConfig.get(GT_Mod.aTextGeneral, "online", true) + .getBoolean(false); + + GT_Mod.gregtechproxy.mUpgradeCount = Math.min( + 64, + Math.max( + 1, + tMainConfig.get("features", "UpgradeStacksize", 4) + .getInt())); + for (OrePrefixes tPrefix : OrePrefixes.values()) { + if (tPrefix.mIsUsedForOreProcessing) { + tPrefix.mDefaultStackSize = ((byte) Math.min( + 64, + Math.max( + 1, + tMainConfig.get("features", "MaxOreStackSize", 64) + .getInt()))); + } else if (tPrefix == OrePrefixes.plank) { + tPrefix.mDefaultStackSize = ((byte) Math.min( + 64, + Math.max( + 16, + tMainConfig.get("features", "MaxPlankStackSize", 64) + .getInt()))); + } else if ((tPrefix == OrePrefixes.wood) || (tPrefix == OrePrefixes.treeLeaves) + || (tPrefix == OrePrefixes.treeSapling) + || (tPrefix == OrePrefixes.log)) { + tPrefix.mDefaultStackSize = ((byte) Math.min( + 64, + Math.max( + 16, + tMainConfig.get("features", "MaxLogStackSize", 64) + .getInt()))); + } else if (tPrefix.mIsUsedForBlocks) { + tPrefix.mDefaultStackSize = ((byte) Math.min( + 64, + Math.max( + 16, + tMainConfig.get("features", "MaxOtherBlockStackSize", 64) + .getInt()))); + } + } + + GT_Values.mCTMEnabledBlock + .addAll( + Arrays + .asList( + tMainConfig + .get( + "general", + "ctm_block_whitelist", + new String[] { "team.chisel.block.BlockCarvable", + "team.chisel.block.BlockCarvableGlass" }) + .getStringList())); + GT_Values.mCTMDisabledBlock.addAll( + Arrays.asList( + tMainConfig.get("general", "ctm_block_blacklist", new String[] { "team.chisel.block.BlockRoadLine" }) + .getStringList())); + + GT_RecipeBuilder.onConfigLoad(); + } + + public static void loadClientConfig() { + final String sBDye0 = "ColorModulation."; + Arrays.stream(Dyes.values()) + .filter(tDye -> (tDye != Dyes._NULL) && (tDye.mIndex < 0)) + .forEach(tDye -> { + String sBDye1 = sBDye0 + tDye; + tDye.mRGBa[0] = ((short) Math + .min(255, Math.max(0, GregTech_API.sClientDataFile.get(sBDye1, "R", tDye.mOriginalRGBa[0])))); + tDye.mRGBa[1] = ((short) Math + .min(255, Math.max(0, GregTech_API.sClientDataFile.get(sBDye1, "G", tDye.mOriginalRGBa[1])))); + tDye.mRGBa[2] = ((short) Math + .min(255, Math.max(0, GregTech_API.sClientDataFile.get(sBDye1, "B", tDye.mOriginalRGBa[2])))); + }); + GT_Mod.gregtechproxy.mRenderTileAmbientOcclusion = GregTech_API.sClientDataFile + .get("render", "TileAmbientOcclusion", true); + GT_Mod.gregtechproxy.mRenderGlowTextures = GregTech_API.sClientDataFile.get("render", "GlowTextures", true); + GT_Mod.gregtechproxy.mRenderFlippedMachinesFlipped = GregTech_API.sClientDataFile + .get("render", "RenderFlippedMachinesFlipped", true); + GT_Mod.gregtechproxy.mRenderIndicatorsOnHatch = GregTech_API.sClientDataFile + .get("render", "RenderIndicatorsOnHatch", true); + GT_Mod.gregtechproxy.mRenderDirtParticles = GregTech_API.sClientDataFile + .get("render", "RenderDirtParticles", true); + GT_Mod.gregtechproxy.mRenderPollutionFog = GregTech_API.sClientDataFile + .get("render", "RenderPollutionFog", true); + GT_Mod.gregtechproxy.mRenderItemDurabilityBar = GregTech_API.sClientDataFile + .get("render", "RenderItemDurabilityBar", true); + GT_Mod.gregtechproxy.mRenderItemChargeBar = GregTech_API.sClientDataFile + .get("render", "RenderItemChargeBar", true); + GT_Mod.gregtechproxy.mUseBlockUpdateHandler = GregTech_API.sClientDataFile + .get("render", "UseBlockUpdateHandler", false); + + GT_Mod.gregtechproxy.mCoverTabsVisible = GregTech_API.sClientDataFile + .get("interface", "DisplayCoverTabs", true); + GT_Mod.gregtechproxy.mCoverTabsFlipped = GregTech_API.sClientDataFile.get("interface", "FlipCoverTabs", false); + GT_Mod.gregtechproxy.mTooltipVerbosity = GregTech_API.sClientDataFile.get("interface", "TooltipVerbosity", 2); + GT_Mod.gregtechproxy.mTooltipShiftVerbosity = GregTech_API.sClientDataFile + .get("interface", "TooltipShiftVerbosity", 3); + GT_Mod.gregtechproxy.mTitleTabStyle = GregTech_API.sClientDataFile.get("interface", "TitleTabStyle", 0); + + GT_Mod.gregtechproxy.mNEIRecipeSecondMode = GregTech_API.sClientDataFile.get("nei", "RecipeSecondMode", true); + GT_Mod.gregtechproxy.mNEIRecipeOwner = GregTech_API.sClientDataFile.get("nei", "RecipeOwner", false); + GT_Mod.gregtechproxy.mNEIRecipeOwnerStackTrace = GregTech_API.sClientDataFile + .get("nei", "RecipeOwnerStackTrace", false); + GT_Mod.gregtechproxy.mNEIOriginalVoltage = GregTech_API.sClientDataFile.get("nei", "OriginalVoltage", false); + + GT_Mod.gregtechproxy.recipeCategorySettings.clear(); + for (RecipeCategory recipeCategory : findRecipeCategories()) { + RecipeCategorySetting setting = RecipeCategorySetting.find( + GregTech_API.sClientDataFile.getWithValidValues( + "nei.recipe_categories", + recipeCategory.unlocalizedName, + RecipeCategorySetting.NAMES, + RecipeCategorySetting.getDefault() + .toName())); + GT_Mod.gregtechproxy.recipeCategorySettings.put(recipeCategory, setting); + } + + GT_Mod.gregtechproxy.mWailaTransformerVoltageTier = GregTech_API.sClientDataFile + .get("waila", "WailaTransformerVoltageTier", true); + GT_Mod.gregtechproxy.wailaAverageNS = GregTech_API.sClientDataFile.get("waila", "WailaAverageNS", false); + + final String[] Circuits = GregTech_API.sClientDataFile.get("interface", "CircuitsOrder"); + GT_Mod.gregtechproxy.mCircuitsOrder.clear(); + for (int i = 0; i < Circuits.length; i++) { + GT_Mod.gregtechproxy.mCircuitsOrder.putIfAbsent(Circuits[i], i); + } + + GT_Mod.gregtechproxy.reloadNEICache(); + } + + private static List<RecipeCategory> findRecipeCategories() { + List<RecipeCategory> ret = new ArrayList<>(); + try { + Field discovererField = Loader.class.getDeclaredField("discoverer"); + discovererField.setAccessible(true); + ModDiscoverer discoverer = (ModDiscoverer) discovererField.get(Loader.instance()); + for (ASMDataTable.ASMData asmData : discoverer.getASMTable() + .getAll(RecipeCategoryHolder.class.getName())) { + try { + Object obj = Class.forName(asmData.getClassName()) + .getDeclaredField(asmData.getObjectName()) + .get(null); + if (obj instanceof RecipeCategory recipeCategory) { + ret.add(recipeCategory); + } else { + GT_FML_LOGGER.error( + "{}#{} is not an instance of RecipeCategory", + asmData.getClassName(), + asmData.getObjectName()); + } + } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) { + GT_FML_LOGGER.error("Failed to find RecipeCategory"); + GT_FML_LOGGER.catching(e); + } + } + } catch (NoSuchFieldException | IllegalAccessException e) { + throw new RuntimeException(e); + } + return ret; + } +} |