diff options
Diffstat (limited to 'src/main/java/gregtech/loaders/postload')
72 files changed, 34734 insertions, 0 deletions
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..b122646c92 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java @@ -0,0 +1,43 @@ +package gregtech.loaders.postload; + +import java.util.Set; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemPickaxe; + +import gregtech.api.util.GT_Utility; + +public class GT_BlockResistanceLoader implements Runnable { + + @Override + @SuppressWarnings("unchecked") + public void run() { + Blocks.stone.setResistance(10.0F); + Blocks.cobblestone.setResistance(10.0F); + Blocks.stonebrick.setResistance(10.0F); + Blocks.brick_block.setResistance(20.0F); + Blocks.hardened_clay.setResistance(15.0F); + Blocks.stained_hardened_clay.setResistance(15.0F); + + Blocks.bed.setHarvestLevel("axe", 0); + Blocks.hay_block.setHarvestLevel("axe", 0); + Blocks.tnt.setHarvestLevel("pickaxe", 0); + Blocks.sponge.setHarvestLevel("axe", 0); + Blocks.monster_egg.setHarvestLevel("pickaxe", 0); + + 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..a30962631e --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java @@ -0,0 +1,369 @@ +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( + "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( + "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)); + } +} 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..fff50aff2f --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java @@ -0,0 +1,2013 @@ +package gregtech.loaders.postload; + +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.GraviSuite; +import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.enums.Mods.NotEnoughItems; +import static gregtech.api.util.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 com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; + +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( + 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) }); + } + + 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) }); + + 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 }); + } + + 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.LV) }); + 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.IV), '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.LV), 'B', + OrePrefixes.battery.get(Materials.HV) }); + 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.HV), 'B', + OrePrefixes.battery.get(Materials.LuV) }); + 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.HV) }); + 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.HV), '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.LV), '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.LV) }); + 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.LV), 'A', GT_ModHandler.getIC2Item("casingiron", 1L), 'I', + OrePrefixes.circuit.get(Materials.LV), '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.LV), 'A', GT_ModHandler.getIC2Item("casingiron", 1L), 'I', + OrePrefixes.circuit.get(Materials.LV), '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.HV), 'C', + OrePrefixes.circuit.get(Materials.HV), '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.IV), 'C', + OrePrefixes.circuit.get(Materials.HV), '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.LV) }); + 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.HV), 'A', + OrePrefixes.circuit.get(Materials.HV) }); + 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.LV) }); + 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.LV), '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.LV), 'P', OrePrefixes.plank.get(Materials.Wood), 'B', + OrePrefixes.battery.get(Materials.LV) }); + 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.LV), '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.LV) }); + + 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.IV), '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.IV), '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.IV), '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.IV), '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.MV), '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.LuV), '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.LuV), '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.HV), '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.EV), 'I', + OrePrefixes.plateAlloy.get("Iridium"), 'P', OrePrefixes.plate.get(Materials.Platinum), 'C', + OrePrefixes.circuit.get(Materials.IV) }); + + 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.IV) }); + + 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.EV) }); + + 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.EV), 'Y', OrePrefixes.wireGt02.get(Materials.Platinum) }); + } + + GT_ModHandler.addShapelessCraftingRecipe( + Materials.Fireclay.getDust(2), + new Object[] { Materials.Brick.getDust(1), Materials.Clay.getDust(1) }); + + GT_ModHandler.addCraftingRecipe( + ItemList.Casing_Advanced_Rhodium_Palladium.get(1L), + bits, + new Object[] { "PhP", "PFP", aTextPlateWrench, 'P', + new ItemStack(WerkstoffLoader.items.get(OrePrefixes.plate), 1, 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 }); + } + } + GT_ModHandler.addCraftingRecipe( + GT_ModHandler.getIC2Item("electronicCircuit", 1L), + 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/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..d4e653dba2 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_FakeRecipeLoader.java @@ -0,0 +1,23 @@ +package gregtech.loaders.postload; + +import gregtech.api.enums.GT_Values; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GT_ModHandler; + +public class GT_FakeRecipeLoader implements Runnable { + + @Override + public void run() { + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("reactorLithiumCell", 1)) + .itemOutputs(GT_ModHandler.getIC2Item("TritiumCell", 1)) + .setNEIDesc( + "Neutron reflecting Breeder", + String.format("Every %d reactor hull heat", 3_000), + String.format("increase speed by %d00%%", 1), + String.format("Required pulses: %d", 10_000)) + .duration(0) + .eut(0) + .addTo(RecipeMaps.ic2NuclearFakeRecipes); + } +} 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..92de5291e1 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java @@ -0,0 +1,126 @@ +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.chains.GT_PurifiedWaterRecipes; +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(); + GT_PurifiedWaterRecipes.run(); + } +} 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..4dae7d5313 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_PostLoad.java @@ -0,0 +1,542 @@ +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.recipe.RecipeMaps.massFabFakeRecipes; +import static gregtech.api.recipe.RecipeMaps.rockBreakerFakeRecipes; +import static gregtech.api.recipe.RecipeMaps.scannerFakeRecipes; +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 java.lang.reflect.InvocationTargetException; +import java.util.Arrays; +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())); + // Remove all IC2 + GT_ModHandler.removeAllIC2Recipes(); + // 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) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Crop_Seeds.getWildcard(1L)) + .itemOutputs(ItemList.IC2_Crop_Seeds.getWithName(1L, "Scanned Seeds")) + .duration(8 * SECONDS) + .eut(8) + .noOptimize() + .ignoreCollision() + .fake() + .addTo(scannerFakeRecipes); + } + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.written_book, 1, 32767)) + .itemOutputs(ItemList.Tool_DataStick.getWithName(1L, "Scanned Book Data")) + .special(ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to")) + .duration(6 * SECONDS + 8 * TICKS) + .eut(TierEU.RECIPE_LV) + .noOptimize() + .ignoreCollision() + .fake() + .addTo(scannerFakeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.filled_map, 1, 32767)) + .itemOutputs(ItemList.Tool_DataStick.getWithName(1L, "Scanned Map Data")) + .special(ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to")) + .duration(6 * SECONDS + 8 * TICKS) + .eut(TierEU.RECIPE_LV) + .noOptimize() + .ignoreCollision() + .fake() + .addTo(scannerFakeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Tool_DataOrb.getWithName(1L, "Orb to overwrite")) + .itemOutputs(ItemList.Tool_DataOrb.getWithName(1L, "Copy of the Orb")) + .duration(25 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_LV) + .noOptimize() + .ignoreCollision() + .fake() + .addTo(scannerFakeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Tool_DataStick.getWithName(1L, "Stick to overwrite")) + .itemOutputs(ItemList.Tool_DataStick.getWithName(1L, "Copy of the Stick")) + .special(ItemList.Tool_DataStick.getWithName(0L, "Stick to copy")) + .duration(6 * SECONDS + 8 * TICKS) + .eut(TierEU.RECIPE_LV) + .noOptimize() + .ignoreCollision() + .fake() + .addTo(scannerFakeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Tool_DataStick.getWithName(1L, "Raw Prospection Data")) + .itemOutputs(ItemList.Tool_DataStick.getWithName(1L, "Analyzed Prospection Data")) + .duration(50 * SECONDS) + .eut(TierEU.RECIPE_LV) + .noOptimize() + .ignoreCollision() + .fake() + .addTo(scannerFakeRecipes); + + if (GalacticraftCore.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs( + Objects + .requireNonNull( + GT_ModHandler.getModItem(GalacticraftCore.ID, "item.schematic", 1, Short.MAX_VALUE)) + .setStackDisplayName("Any Schematic")) + .itemOutputs(ItemList.Tool_DataStick.getWithName(1L, "Scanned Schematic")) + .special(ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to")) + .duration(30 * MINUTES) + .eut(TierEU.RECIPE_HV) + .noOptimize() + .ignoreCollision() + .fake() + .addTo(scannerFakeRecipes); + + if (GalacticraftMars.isModLoaded()) { + GT_Values.RA.stdBuilder() + .itemInputs( + Objects + .requireNonNull( + GT_ModHandler.getModItem(GalacticraftMars.ID, "item.schematic", 1, Short.MAX_VALUE)) + .setStackDisplayName("Any Schematic")) + .itemOutputs(ItemList.Tool_DataStick.getWithName(1L, "Scanned Schematic")) + .special(ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to")) + .duration(30 * MINUTES) + .eut(TierEU.RECIPE_MV) + .noOptimize() + .ignoreCollision() + .fake() + .addTo(scannerFakeRecipes); + } + if (GalaxySpace.isModLoaded()) { + for (int i = 4; i < 9; i++) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getModItem(GalaxySpace.ID, "item.SchematicTier" + i, 1) + .setStackDisplayName("Any Schematic")) + .itemOutputs(ItemList.Tool_DataStick.getWithName(1L, "Scanned Schematic")) + .special(ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to")) + .duration(30 * MINUTES) + .eut(TierEU.RECIPE_HV) + .noOptimize() + .ignoreCollision() + .fake() + .addTo(scannerFakeRecipes); + } + } + } + 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(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(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 = GT_Values.RA.stdBuilder() + .fluidOutputs(Materials.UUMatter.getFluid(1L)) + .duration(GT_MetaTileEntity_Massfabricator.sDurationMultiplier) + .eut(GT_MetaTileEntity_Massfabricator.BASE_EUT) + .ignoreCollision() + .noOptimize() + .fake() + .build() + .get(); + + massFabFakeRecipes.add(GT_MetaTileEntity_Massfabricator.nonUUARecipe); + + } + + GT_MetaTileEntity_Massfabricator.uuaRecipe = GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .fluidInputs(Materials.UUAmplifier.getFluid(GT_MetaTileEntity_Massfabricator.sUUAperUUM)) + .fluidOutputs(Materials.UUMatter.getFluid(1L)) + .duration( + GT_MetaTileEntity_Massfabricator.sDurationMultiplier / GT_MetaTileEntity_Massfabricator.sUUASpeedBonus) + .eut(GT_MetaTileEntity_Massfabricator.BASE_EUT) + .ignoreCollision() + .noOptimize() + .fake() + .build() + .get(); + + massFabFakeRecipes.add(GT_MetaTileEntity_Massfabricator.uuaRecipe); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Display_ITS_FREE.getWithName(1L, "IT'S FREE! Place Lava on Side")) + .itemOutputs(new ItemStack(Blocks.cobblestone, 1)) + .duration(16 * TICKS) + .eut(TierEU.RECIPE_LV) + .ignoreCollision() + .noOptimize() + .fake() + .addTo(rockBreakerFakeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Display_ITS_FREE.getWithName(1L, "IT'S FREE! Place Lava on Side")) + .itemOutputs(new ItemStack(Blocks.stone, 1)) + .duration(16 * TICKS) + .eut(TierEU.RECIPE_LV) + .ignoreCollision() + .noOptimize() + .fake() + .addTo(rockBreakerFakeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(new ItemStack(Blocks.obsidian, 1)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(TierEU.RECIPE_LV) + .ignoreCollision() + .noOptimize() + .fake() + .addTo(rockBreakerFakeRecipes); + } + + 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 = Arrays.stream(Materials.values()) + .filter(GT_RecipeRegistrator::hasVanillaRecipes) + .collect(Collectors.toSet()); + + 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..70bb18527c --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java @@ -0,0 +1,107 @@ +package gregtech.loaders.postload; + +import static gregtech.api.enums.Mods.Chisel; +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 (Chisel.isModLoaded()) { + for (int i = 1; i <= 15; i++) { + addToRecyclerBlackList(GT_ModHandler.getModItem(Chisel.ID, "cobblestone", 1, i)); + } + for (int i = 0; i <= 15; i++) { + addToRecyclerBlackList(GT_ModHandler.getModItem(Chisel.ID, "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..6d466abaa9 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java @@ -0,0 +1,100 @@ +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_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)); + 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..921f227b08 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java @@ -0,0 +1,33 @@ +package gregtech.loaders.postload; + +import bloodasp.galacticgreg.WorldGenGaGT; +import gregtech.api.enums.GTStones; +import gregtech.api.enums.OreMixes; +import gregtech.api.enums.SmallOres; +import gregtech.api.util.GT_Log; +import gregtech.common.GT_Worldgenerator; + +public class GT_Worldgenloader implements Runnable { + + public void run() { + new GT_Worldgenerator(); + + // GT Stones + for (GTStones stone : GTStones.values()) { + stone.addGTStone(); + } + + // GT Default Small Ores + for (SmallOres smallOre : SmallOres.values()) { + smallOre.addGTSmallOre(); + } + + // GT Veins registration + for (OreMixes oreMix : OreMixes.values()) { + oreMix.addGTOreLayer(); + } + + new WorldGenGaGT().run(); + GT_Log.out.println("Started Galactic Greg ore gen code"); + } +} 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/PosteaTransformers.java b/src/main/java/gregtech/loaders/postload/PosteaTransformers.java new file mode 100644 index 0000000000..ae24de26e8 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/PosteaTransformers.java @@ -0,0 +1,76 @@ +package gregtech.loaders.postload; + +import net.minecraft.item.Item; +import net.minecraft.nbt.NBTTagCompound; + +import com.gtnewhorizons.postea.api.ItemStackReplacementManager; +import com.gtnewhorizons.postea.api.TileEntityReplacementManager; +import com.gtnewhorizons.postea.utility.BlockInfo; + +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import vexatos.tgregworks.reference.Mods; + +public class PosteaTransformers implements Runnable { + + @Override + public void run() { + registerFrameboxTransformers(); + } + + private static NBTTagCompound passthrough(NBTTagCompound tag) { + return tag; + } + + private void registerFrameboxTransformers() { + // These are used to convert old TileEntity frame boxes into the new system + // that does not use TEs by default + + TileEntityReplacementManager.tileEntityTransformer("BaseMetaPipeEntity", (tag, world) -> { + // Read the MTE ID from the NBT data and try to figure out if this is a frame box + int id = tag.getInteger("mID"); + // Framebox IDs start at 4096 + int indexInMaterialList = id - 4096; + // The offset from 4096 is the index in the material list, so if this is outside the valid range then this + // is not a valid frame box, and we don't want to modify it + if (indexInMaterialList < 0 || indexInMaterialList >= GregTech_API.sGeneratedMaterials.length) { + // Do not modify this TE, so return null + return null; + } + + // Now we know for sure that the tileentity is a frame box + // If this frame has a cover on it, we need to keep it, but we still need to make sure the block + // is the new frame block. We can make sure to keep the TE using a pass-through transformer. + // This works because between the old and new frame systems, the TileEntity used for covered frames + // is still the same + if (tag.hasKey(GT_Values.NBT.COVERS)) { + return new BlockInfo(GregTech_API.sBlockFrames, indexInMaterialList, PosteaTransformers::passthrough); + } + + // If this frame has no covers, simply return a block and delete the TileEntity + return new BlockInfo(GregTech_API.sBlockFrames, indexInMaterialList); + }); + + ItemStackReplacementManager.addItemReplacement("gregtech:gt.blockmachines", (tag) -> { + // Get item meta id and see if this is a frame box, this works pretty much identically to the TE transformer + int id = tag.getInteger("Damage"); + int indexInMaterialList = id - 4096; + // Not a frame box + if (indexInMaterialList < 0 || indexInMaterialList >= GregTech_API.sGeneratedMaterials.length) { + return tag; + } + // Not a frame box if the material for this id does not have a frame box associated with it. + // Apparently the DEFC ID overlaps with the material ID for a Bastnasite frame box for example + if ((GregTech_API.sGeneratedMaterials[indexInMaterialList].mTypes & 0x2) == 0) { + return tag; + } + Item frameItem = GameRegistry.findItem(Mods.GregTech, "gt.blockframes"); + int itemId = Item.getIdFromItem(frameItem); + // Change this item into the correct frame item (make sure to keep amount) + tag.setInteger("id", itemId); + tag.setInteger("Damage", indexInMaterialList); + return tag; + }); + } +} 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..dfe14762c5 --- /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.fluidHeaterRecipes; +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_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(2000)) + .fluidOutputs(MaterialsOreAlum.HeatedBauxiteSlurry.getFluid(2000)) + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_HV) + .noOptimize() + .addTo(fluidHeaterRecipes); + + 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..1b3802306c --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java @@ -0,0 +1,250 @@ +package gregtech.loaders.postload.chains; + +import static goodgenerator.loader.Loaders.huiCircuit; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.recipe.RecipeMaps.nanoForgeRecipes; +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.NANO_FORGE_TIER; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; +import static gtPlusPlus.core.block.ModBlocks.blockCompressedObsidian; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; + +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; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +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.LuV), 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.UV), 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.stdBuilder() + .itemInputs( + aUVTierLens, + new ItemStack(WerkstoffLoader.BWBlockCasingsAdvanced, 8, 31776), + ItemList.Circuit_Chip_SoC.get(64)) + .itemOutputs(Materials.Carbon.getNanite(64)) + .fluidInputs(Materials.UUMatter.getFluid(200_000)) + .metadata(NANO_FORGE_TIER, 1) + .duration(8 * MINUTES + 20 * SECONDS) + .eut(10_000_000) + .addTo(nanoForgeRecipes); + + // Silver Nanites - Used in Tier 2 PCB Factory to improve board production + GT_Values.RA.stdBuilder() + .itemInputs(aUEVTierLens, Materials.Silver.getBlocks(8), ItemList.Circuit_Chip_SoC.get(16)) + .itemOutputs(Materials.Silver.getNanite(1)) + .fluidInputs(Materials.UUMatter.getFluid(200_000)) + .metadata(NANO_FORGE_TIER, 2) + .duration(12 * MINUTES + 30 * SECONDS) + .eut(10_000_000) + .addTo(nanoForgeRecipes); + + // Neutronium Nanites - Used to upgrade the Nano Forge to Tier 2 + GT_Values.RA.stdBuilder() + .itemInputs( + aUHVTierLens, + Materials.Neutronium.getBlocks(8), + ItemList.Circuit_Chip_SoC2.get(64), + ItemList.Circuit_Chip_SoC2.get(32)) + .itemOutputs(Materials.Neutronium.getNanite(1)) + .fluidInputs(Materials.UUMatter.getFluid(200_000)) + .metadata(NANO_FORGE_TIER, 1) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(100_000_000) + .addTo(nanoForgeRecipes); + + // Glowstone Nanites - Used in the optical circuit line + GT_Values.RA.stdBuilder() + .itemInputs( + aUEVTierLens, + new ItemStack(blockCompressedObsidian, 8, 7), // Double compressed glowstone blocks (yes, + // it's not obsidian) + ItemList.Circuit_Chip_SoC2.get(64)) + .itemOutputs(Materials.Glowstone.getNanite(64)) + .fluidInputs(Materials.UUMatter.getFluid(50_000)) + .metadata(NANO_FORGE_TIER, 2) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(50_000_000) + .addTo(nanoForgeRecipes); + + // Gold Nanites - Used in Tier 3 PCB Factory to improve board production + GT_Values.RA.stdBuilder() + .itemInputs(aUMVTierLens, Materials.Gold.getBlocks(8), ItemList.Circuit_Chip_SoC.get(16)) + .itemOutputs(Materials.Gold.getNanite(1)) + .fluidInputs(Materials.UUMatter.getFluid(300_000)) + .metadata(NANO_FORGE_TIER, 3) + .duration(16 * MINUTES + 40 * SECONDS) + .eut(100_000_000) + .addTo(nanoForgeRecipes); + + // Transcendent Metal Nanites - Used to upgrade the Nano Forge to Tier 3 + GT_Values.RA.stdBuilder() + .itemInputs( + aUIVTierLens, + MaterialsUEVplus.TranscendentMetal.getBlocks(8), + ItemList.Circuit_Chip_SoC2.get(64), + ItemList.Circuit_Chip_SoC2.get(64), + ItemList.Circuit_Chip_SoC2.get(64)) + .itemOutputs(MaterialsUEVplus.TranscendentMetal.getNanite(1)) + .fluidInputs(Materials.UUMatter.getFluid(2_000_000)) + .metadata(NANO_FORGE_TIER, 2) + .duration(12 * MINUTES + 30 * SECONDS) + .eut(1_000_000_000) + .addTo(nanoForgeRecipes); + + // White Dwarf Matter Nanites. Used to make Magnetohydrodynamically constrained star matter. + GT_Values.RA.stdBuilder() + .itemInputs( + aUMVTierLens, + new ItemStack(WerkstoffLoader.items.get(OrePrefixes.lens), 0, 36), // Magneto lens + GregtechItemList.Laser_Lens_Special.get(0), // Quantum Anomaly, couldn't find any better + // naming + MaterialsUEVplus.WhiteDwarfMatter.getBlocks(8), + getModItem(NewHorizonsCoreMod.ID, "item.PicoWafer", 32), + new ItemStack(huiCircuit, 1, 4) // Paradox circuit + ) + .itemOutputs(MaterialsUEVplus.WhiteDwarfMatter.getNanite(4)) + .fluidInputs( + Materials.UUMatter.getFluid(500_000), + MaterialsUEVplus.RawStarMatter.getFluid(50_000), + MaterialsUEVplus.Space.getMolten(720)) + .metadata(NANO_FORGE_TIER, 3) + .duration(12 * MINUTES + 30 * SECONDS) + .eut(2_000_000_000) + .addTo(nanoForgeRecipes); + + // Black Dwarf Matter Nanites. Used to make Magnetohydrodynamically constrained star matter. + GT_Values.RA.stdBuilder() + .itemInputs( + aUMVTierLens, + new ItemStack(WerkstoffLoader.items.get(OrePrefixes.lens), 0, 36), // Magneto lens + GregtechItemList.Laser_Lens_Special.get(0), // Quantum Anomaly, couldn't find any better + // naming + MaterialsUEVplus.BlackDwarfMatter.getBlocks(8), + getModItem(NewHorizonsCoreMod.ID, "item.PicoWafer", 32), + new ItemStack(huiCircuit, 1, 4) // Paradox circuit + ) + .itemOutputs(MaterialsUEVplus.BlackDwarfMatter.getNanite(4)) + .fluidInputs( + Materials.UUMatter.getFluid(500_000), + MaterialsUEVplus.RawStarMatter.getFluid(50_000), + MaterialsUEVplus.Time.getMolten(720)) + .metadata(NANO_FORGE_TIER, 3) + .duration(12 * MINUTES + 30 * SECONDS) + .eut(2_000_000_000) + .addTo(nanoForgeRecipes); + + // Universium nanites. + GT_Values.RA.stdBuilder() + .itemInputs( + aUMVTierLens, + // Quantum Anomaly, couldn't find any better naming. + GregtechItemList.Laser_Lens_Special.get(0), + MaterialsUEVplus.Universium.getBlocks(8), + ItemList.Optically_Perfected_CPU.get(16), + ItemList.Optically_Compatible_Memory.get(16), + new ItemStack(huiCircuit, 1, 4) // Paradox circuit + ) + .itemOutputs(MaterialsUEVplus.Universium.getNanite(2)) + .fluidInputs( + MaterialsUEVplus.SpaceTime.getMolten(144), + Materials.Infinity.getMolten(576), + MaterialsUEVplus.PrimordialMatter.getFluid(64_000)) + .metadata(NANO_FORGE_TIER, 3) + .duration(12 * MINUTES + 30 * SECONDS) + .eut(2_000_000_000) + .addTo(nanoForgeRecipes); + + // Eternity nanites + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Forcicium, 0, false), + // Quantum Anomaly + GregtechItemList.Laser_Lens_Special.get(0), + 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(50_000), + MaterialsUEVplus.PrimordialMatter.getFluid(64_000)) + .metadata(NANO_FORGE_TIER, 3) + .duration(12 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_MAX) + .addTo(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..6be4ab534e --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/chains/GT_PCBFactoryRecipes.java @@ -0,0 +1,694 @@ +package gregtech.loaders.postload.chains; + +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 static gtPlusPlus.core.material.ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN; +import static gtPlusPlus.core.material.ELEMENT.STANDALONE.CHRONOMATIC_GLASS; +import static gtPlusPlus.core.material.ELEMENT.STANDALONE.HYPOGEN; + +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 com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; + +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_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.LuV), 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); + + 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( + CELESTIAL_TUNGSTEN.getFrameBox(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( + HYPOGEN.getFrameBox(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); + } + + // 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), + new ItemStack( + WerkstoffLoader.items.get(OrePrefixes.foil), + (int) (16 * (Math.sqrt(tier - 6))), + 10106), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.InfinityCatalyst, (long) (16 * (Math.sqrt(tier - 6)))), + CHRONOMATIC_GLASS.getFoil((int) (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), + new ItemStack( + WerkstoffLoader.items.get(OrePrefixes.foil), + (int) (16 * (Math.sqrt(tier - 6))), + 10106), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.InfinityCatalyst, (long) (16 * (Math.sqrt(tier - 6)))), + CHRONOMATIC_GLASS.getFoil((int) (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), + new ItemStack( + WerkstoffLoader.items.get(OrePrefixes.foil), + (int) (16 * (Math.sqrt(tier - 6))), + 10106), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.InfinityCatalyst, (long) (16 * (Math.sqrt(tier - 6)))), + CHRONOMATIC_GLASS.getFoil((int) (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/chains/GT_PurifiedWaterRecipes.java b/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java new file mode 100644 index 0000000000..53abc9d1b8 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java @@ -0,0 +1,324 @@ +package gregtech.loaders.postload.chains; + +import static com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader.FluorBuergerit; +import static gregtech.api.enums.MaterialsBotania.ManaDiamond; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.distillationTowerRecipes; +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; +import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; +import static gregtech.api.recipe.RecipeMaps.plasmaForgeRecipes; +import static gregtech.api.recipe.RecipeMaps.purificationClarifierRecipes; +import static gregtech.api.recipe.RecipeMaps.purificationDegasifierRecipes; +import static gregtech.api.recipe.RecipeMaps.purificationFlocculationRecipes; +import static gregtech.api.recipe.RecipeMaps.purificationOzonationRecipes; +import static gregtech.api.recipe.RecipeMaps.purificationParticleExtractionRecipes; +import static gregtech.api.recipe.RecipeMaps.purificationPhAdjustmentRecipes; +import static gregtech.api.recipe.RecipeMaps.purificationPlasmaHeatingRecipes; +import static gregtech.api.recipe.RecipeMaps.purificationUVTreatmentRecipes; +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.COIL_HEAT; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; +import static gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationUnitParticleExtractor.BARYONIC_MATTER_OUTPUT; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import goodgenerator.items.MyMaterial; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.HeatingCoilLevel; +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.maps.PurificationUnitParticleExtractorFrontend; +import gregtech.api.recipe.metadata.PurificationPlantBaseChanceKey; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationPlant; +import gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationUnitUVTreatment; +import gtPlusPlus.core.material.Particle; + +public class GT_PurifiedWaterRecipes { + + static final PurificationPlantBaseChanceKey BASE_CHANCE = PurificationPlantBaseChanceKey.INSTANCE; + + public static void run() { + final int duration = GT_MetaTileEntity_PurificationPlant.CYCLE_TIME_TICKS; + + // Grade 1 - Clarifier + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.ActivatedCarbonFilterMesh.get(1)) + .fluidInputs(GT_ModHandler.getWater(1000L)) + .fluidOutputs(Materials.Grade1PurifiedWater.getFluid(900L)) + .itemOutputs(new ItemStack(Items.stick, 1), Materials.Stone.getDust(1), Materials.Gold.getNuggets(1)) + .outputChances(1000, 500, 100) + .duration(duration) + .eut(TierEU.RECIPE_LuV) + .metadata(BASE_CHANCE, 70.0f) + .addTo(purificationClarifierRecipes); + + // Activated Carbon Line + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Carbon.getDust(1)) + .fluidInputs(Materials.PhosphoricAcid.getFluid(1000L)) + .itemOutputs(Materials.PreActivatedCarbon.getDust(1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(multiblockChemicalReactorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(Materials.PreActivatedCarbon.getDust(1)) + .itemOutputs(Materials.DirtyActivatedCarbon.getDust(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .specialValue((int) HeatingCoilLevel.EV.getHeat()) + .addTo(blastFurnaceRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(Materials.DirtyActivatedCarbon.getDust(1)) + .fluidInputs(Materials.Water.getFluid(1000L)) + .itemOutputs(Materials.ActivatedCarbon.getDust(1)) + .fluidOutputs(Materials.PhosphoricAcid.getFluid(1000L)) + .noOptimize() + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(chemicalBathRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.ActivatedCarbon.getDust(64), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Zinc, 16)) + .itemOutputs(ItemList.ActivatedCarbonFilterMesh.get(1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + // Grade 2 - Ozonation + for (ItemStack lens : GT_OreDictUnificator.getOres("craftingLensBlue")) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(0, lens)) + .noOptimize() + .fluidInputs(Materials.Air.getGas(10000L)) + .fluidOutputs(Materials.Ozone.getGas(2000L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(laserEngraverRecipes); + } + + // Recipes for ozonation, uses 128kL, 256kL, 512kL, 1m kL at each tier + // 20% boost per tier + // Gets you up to 80%, need to water boost for 95% + for (int tier = 1; tier <= 4; ++tier) { + GT_Values.RA.stdBuilder() + .noOptimize() + .fluidInputs( + Materials.Grade1PurifiedWater.getFluid(1000L), + Materials.Ozone.getGas(1000 * (long) Math.pow(2, (tier + 6)))) + .fluidOutputs(Materials.Grade2PurifiedWater.getFluid(900L)) + .itemOutputs(Materials.Manganese.getDust(1), Materials.Iron.getDust(1), Materials.Sulfur.getDust(1)) + .outputChances(500, 500, 500) + .duration(duration) + .ignoreCollision() + .eut(TierEU.RECIPE_LuV) + .metadata(BASE_CHANCE, tier * 20.0f) + .addTo(purificationOzonationRecipes); + } + + // Grade 3 - Flocculation. + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Grade2PurifiedWater.getFluid(1000L)) + .fluidOutputs(Materials.Grade3PurifiedWater.getFluid(900L)) + .itemOutputs( + new ItemStack(Items.clay_ball, 1), + Materials.QuartzSand.getDust(1), + Materials.PolyvinylChloride.getNuggets(1)) + .outputChances(1000, 500, 100) + .duration(duration) + .eut(TierEU.RECIPE_ZPM) + .metadata(BASE_CHANCE, 1 * 10.0f) + .addTo(purificationFlocculationRecipes); + + // 2 Al(OH)3 + 3 HCl -> Al2(OH)3 Cl3 + 3 H2O + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Aluminiumhydroxide.getDust(8)) + .fluidInputs(Materials.HydrochloricAcid.getFluid(3000L)) + .fluidOutputs(Materials.PolyAluminiumChloride.getFluid(1000L), Materials.Water.getFluid(3000L)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(multiblockChemicalReactorRecipes); + + // Diluted is twice what chem balance would suggest, but it is 2:1 with hydrochloric acid which makes it + // correct I believe. + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.FlocculationWasteLiquid.getFluid(1000L)) + .itemOutputs(Materials.Aluminium.getDust(2)) + .fluidOutputs(Materials.Oxygen.getGas(3000L), Materials.DilutedHydrochloricAcid.getFluid(6000L)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(distillationTowerRecipes); + + // Grade 4 - pH adjustment + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Grade3PurifiedWater.getFluid(1000L)) + .fluidOutputs(Materials.Grade4PurifiedWater.getFluid(900L)) + .ignoreCollision() + .duration(duration) + .eut(TierEU.RECIPE_ZPM) + .metadata(BASE_CHANCE, 0.0f) + .addTo(purificationPhAdjustmentRecipes); + + // Grade 5 - Plasma Heating + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Grade4PurifiedWater.getFluid(1000L)) + .fluidOutputs(Materials.Grade5PurifiedWater.getFluid(900L)) + .ignoreCollision() + .duration(duration) + .eut(TierEU.RECIPE_UV) + .metadata(BASE_CHANCE, 0.0f) + .addTo(purificationPlasmaHeatingRecipes); + + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS.add(MyMaterial.orundum.get(OrePrefixes.lens, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Amber, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.InfusedAir, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Emerald, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, ManaDiamond, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.BlueTopaz, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Amethyst, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS.add(FluorBuergerit.get(OrePrefixes.lens, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Dilithium, 1)); + + // Grade 6 - UV treatment + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Grade5PurifiedWater.getFluid(1000L)) + .fluidOutputs(Materials.Grade6PurifiedWater.getFluid(900L)) + .ignoreCollision() + .duration(duration) + .eut(TierEU.RECIPE_UV) + .metadata(BASE_CHANCE, 0.0f) + .addTo(purificationUVTreatmentRecipes); + + // Grade 7 - Degasification + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Grade6PurifiedWater.getFluid(1000L)) + .fluidOutputs(Materials.Grade7PurifiedWater.getFluid(900L)) + .ignoreCollision() + .duration(duration) + .eut(TierEU.RECIPE_UHV) + .metadata(BASE_CHANCE, 0.0f) + .addTo(purificationDegasifierRecipes); + + // Grade 8 - Quark Extraction + + ItemStack[] catalystInputs = new ItemStack[] { ItemList.Quark_Creation_Catalyst_Up.get(1L), + ItemList.Quark_Creation_Catalyst_Down.get(1L), ItemList.Quark_Creation_Catalyst_Bottom.get(1L), + ItemList.Quark_Creation_Catalyst_Top.get(1L), ItemList.Quark_Creation_Catalyst_Strange.get(1L), + ItemList.Quark_Creation_Catalyst_Charm.get(1L) }; + + // Add all combinations of input items to the frontend map + for (int i = 0; i < catalystInputs.length; ++i) { + for (int j = 1; j < catalystInputs.length; ++j) { + PurificationUnitParticleExtractorFrontend.inputItems.add(catalystInputs[i]); + PurificationUnitParticleExtractorFrontend.inputItemsShuffled + .add(catalystInputs[(i + j) % catalystInputs.length]); + } + } + + // Add re-alignment recipes + for (int i = 0; i < catalystInputs.length; ++i) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Quark_Creation_Catalyst_Unaligned.get(1), GT_Utility.getIntegratedCircuit(i + 1)) + .fluidInputs(Materials.StableBaryonicMatter.getFluid(1000L)) + .itemOutputs(catalystInputs[i]) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_UHV) + // Not sure how I feel about it being in the laser engraver, but I don't see a better multi for it right + // now, + // and we can't really add a new one specifically for this (... for now) + .addTo(laserEngraverRecipes); + } + + // Initial aligned quark catalysts, these are not meant to be done often, and simply exist to get you started + ItemStack[] quarks = new ItemStack[] { // make sure these are in the same order as the list above + Particle.getBaseParticle(Particle.UP), Particle.getBaseParticle(Particle.DOWN), + Particle.getBaseParticle(Particle.BOTTOM), Particle.getBaseParticle(Particle.TOP), + Particle.getBaseParticle(Particle.STRANGE), Particle.getBaseParticle(Particle.CHARM) }; + + for (int i = 0; i < catalystInputs.length; ++i) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Quark_Catalyst_Housing.get(1), quarks[i]) + .fluidInputs(MaterialsUEVplus.ExcitedDTRC.getFluid(10000L)) + .itemOutputs(catalystInputs[i]) + .metadata(COIL_HEAT, 10800) + .eut(TierEU.RECIPE_UMV) + .duration(5 * MINUTES) + .addTo(plasmaForgeRecipes); + } + + // Recipe for quark catalyst housing + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electromagnet_Tengam.get(1)) + .metadata(RESEARCH_TIME, 1 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Infinity, 16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tritanium, 16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CosmicNeutronium, 16), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Neutronium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Infinity, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Tritanium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.CosmicNeutronium, 64), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UHV, 16), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UEV, 8), + ItemList.Field_Generator_UEV.get(4)) + .fluidInputs( + Materials.Neutronium.getMolten(16 * 144), + Materials.Infinity.getMolten(16 * 144), + Materials.Tritanium.getMolten(16 * 144), + Materials.CosmicNeutronium.getMolten(16 * 144)) + .itemOutputs(ItemList.Quark_Catalyst_Housing.get(1)) + .eut(TierEU.RECIPE_UIV) + .duration(60 * SECONDS) + .addTo(AssemblyLine); + + GT_Values.RA.stdBuilder() + // Fake item inputs + .itemInputs(ItemList.Quark_Creation_Catalyst_Charm.get(1), ItemList.Quark_Creation_Catalyst_Strange.get(1)) + .fluidInputs(Materials.Grade7PurifiedWater.getFluid(1000L)) + .fluidOutputs( + Materials.Grade8PurifiedWater.getFluid(900L), + Materials.StableBaryonicMatter.getFluid(BARYONIC_MATTER_OUTPUT)) + .itemOutputs(ItemList.Quark_Creation_Catalyst_Unaligned.get(2L), Particle.getBaseParticle(Particle.UNKNOWN)) + .outputChances(10000, 100) + .ignoreCollision() + .duration(duration) + .eut(TierEU.RECIPE_UEV) + .metadata(BASE_CHANCE, 0.0f) + .fake() + .addTo(purificationParticleExtractionRecipes); + + // real recipe + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Grade7PurifiedWater.getFluid(1000L)) + .fluidOutputs(Materials.Grade8PurifiedWater.getFluid(900L)) + .itemOutputs(ItemList.Quark_Creation_Catalyst_Unaligned.get(2L), Particle.getBaseParticle(Particle.UNKNOWN)) + .outputChances(10000, 100) + .ignoreCollision() + .duration(duration) + .eut(TierEU.RECIPE_UEV) + .metadata(BASE_CHANCE, 0.0f) + .hidden() + .addTo(purificationParticleExtractionRecipes); + } +} 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..c2631632c6 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java @@ -0,0 +1,7213 @@ +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.BuildCraftFactory; +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.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 static gtPlusPlus.core.material.ALLOY.INCONEL_690; + +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.dust, Materials.Redstone, 1L), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Spray_Empty.get(1L)) + .duration(40 * SECONDS) + .eut(1) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Aluminium, 1L), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Aluminium, 2L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.ThermosCan_Empty.get(1L)) + .duration(40 * SECONDS) + .eut(1) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Steel, 4L), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.AnyBronze, 4L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Large_Fluid_Cell_Steel.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.TungstenSteel, 4L), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Platinum, 4L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Large_Fluid_Cell_TungstenSteel.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Aluminium, 4L), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Silver, 4L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Large_Fluid_Cell_Aluminium.get(1L)) + .duration(10 * SECONDS) + .eut(64) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.StainlessSteel, 4L), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Electrum, 4L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Large_Fluid_Cell_StainlessSteel.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Titanium, 4L), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.RoseGold, 4L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Large_Fluid_Cell_Titanium.get(1L)) + .duration(10 * SECONDS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Chrome, 4L), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Palladium, 4L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Large_Fluid_Cell_Chrome.get(1L)) + .duration(10 * SECONDS) + .eut(1024) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Iridium, 4L), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Naquadah, 4L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Large_Fluid_Cell_Iridium.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Osmium, 4L), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.ElectrumFlux, 4L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Large_Fluid_Cell_Osmium.get(1L)) + .duration(10 * SECONDS) + .eut(4096) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium, 4L), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Draconium, 4L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Large_Fluid_Cell_Neutronium.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), + ItemList.Large_Fluid_Cell_Aluminium.get(1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Spray_Color_Remover_Empty.get(1L)) + .duration(40 * SECONDS) + .eut(1) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Phosphorus, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Tool_Matches.get(1L)) + .duration(16 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.TricalciumPhosphate, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Tool_Matches.get(1L)) + .duration(16 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Tool_Matches.get(4L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 4L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TricalciumPhosphate, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Tool_Matches.get(4L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Invar, 2L), + new ItemStack(Items.flint, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Tool_Lighter_Invar_Empty.get(1L)) + .duration(12 * SECONDS + 16 * TICKS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Platinum, 2L), + new ItemStack(Items.flint, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Tool_Lighter_Platinum_Empty.get(1L)) + .duration(12 * SECONDS + 16 * TICKS) + .eut(256) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 2L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(2) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(2) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 2L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(2) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(2) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 2L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(2) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(2) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Upgrade_Lock.get(1L)) + .duration(5 * MINUTES + 20 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Upgrade_Lock.get(1L)) + .duration(5 * MINUTES + 20 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Upgrade_Lock.get(1L)) + .duration(5 * MINUTES + 20 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Sensor_EV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_PlayerDetector.get(1L)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), + ItemList.Cover_Drain.get(1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_Shutter.get(1L)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), + ItemList.Cover_Drain.get(1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_Shutter.get(1L)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), + ItemList.Cover_Drain.get(1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_Shutter.get(1L)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2L), + new ItemStack(Blocks.iron_bars, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_Drain.get(1L)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2L), + new ItemStack(Blocks.iron_bars, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_Drain.get(1L)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), + new ItemStack(Blocks.iron_bars, 2), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_Drain.get(1L)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), + new ItemStack(Blocks.crafting_table, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_Crafting.get(1L)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), + new ItemStack(Blocks.crafting_table, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_Crafting.get(1L)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), + new ItemStack(Blocks.crafting_table, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_Crafting.get(1L)) + .duration(40 * SECONDS) + .eut(16) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Cover_Screen.get(1L), + ItemList.Cover_FluidDetector.get(1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_FluidStorageMonitor.get(1L)) + .duration(40 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Sensor_LV.get(1L), ItemList.Emitter_LV.get(1L), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.NC_SensorKit.get(1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(2) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Emitter_EV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_RedstoneTransmitterExternal.get(1L)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Sensor_EV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_RedstoneReceiverExternal.get(1L)) + .duration(2 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Emitter_MV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Cover_NeedsMaintainance.get(1L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 2L), + ItemList.Component_Filter.get(1L), + ItemList.Conveyor_Module_LV.get(1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.ItemFilter_Export.get(1L)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 2L), + ItemList.Component_Filter.get(1L), + ItemList.Conveyor_Module_LV.get(1L), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemList.ItemFilter_Import.get(1L)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BlueSteel, 2L)) + .itemOutputs(ItemList.BatteryHull_EV.get(1L)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(144L)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Platinum, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RoseGold, 6L)) + .itemOutputs(ItemList.BatteryHull_IV.get(1L)) + .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(288L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedSteel, 18L)) + .itemOutputs(ItemList.BatteryHull_LuV.get(1L)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(144L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 6L)) + .itemOutputs(ItemList.BatteryHull_ZPM.get(1L)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(288L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.ElectrumFlux, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 18L)) + .itemOutputs(ItemList.BatteryHull_UV.get(1L)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(576L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt02, Materials.ElectrumFlux, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Naquadah, 24L)) + .itemOutputs(ItemList.BatteryHull_UHV.get(1L)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(1152L)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.ElectrumFlux, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NaquadahEnriched, 36L)) + .itemOutputs(ItemList.BatteryHull_UEV.get(1L)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(2304L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt08, Materials.ElectrumFlux, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NaquadahAlloy, 48L)) + .itemOutputs(ItemList.BatteryHull_UIV.get(1L)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(4608L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUHV, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 56L)) + .itemOutputs(ItemList.BatteryHull_UMV.get(1L)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(9216L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUHV, 2L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DraconiumAwakened, 64L)) + .itemOutputs(ItemList.BatteryHull_UxV.get(1L)) + .fluidInputs(Materials.Polybenzimidazole.getMolten(18432L)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + } + + // If Cleanroom is enabled, add an assembler recipe + if (GT_Mod.gregtechproxy.mEnableCleanroom) { + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Hull_HV.get(1L), + ItemList.Component_Filter.get(3L), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1L), + ItemList.Electric_Motor_HV.get(2L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.HV, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Machine_Multi_Cleanroom.get(1L)) + .fluidInputs(Materials.StainlessSteel.getMolten(144L)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Cover_Shutter.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.LV, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.FluidFilter.get(1L)) + .duration(40 * SECONDS) + .eut(4) + .addTo(assemblerRecipes); + + 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.EV), 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.LV), 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.MV), 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.HV), 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.EV), 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.IV), 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.LuV), 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.ZPM), 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.UV), 2), + GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(ItemList.FluidRegulator_UV.get(1)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Steam_Valve_LV.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.LV), 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.MV), 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.HV), 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.EV), 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.IV), 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.LV), 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.MV), 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.HV), 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(TierEU.RECIPE_UV) + .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(TierEU.RECIPE_UHV) + .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(TierEU.RECIPE_UV) + .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(TierEU.RECIPE_UHV) + .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); + + 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); + + 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); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), + GT_Utility.getIntegratedCircuit(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), + GT_Utility.getIntegratedCircuit(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), + GT_Utility.getIntegratedCircuit(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), + GT_Utility.getIntegratedCircuit(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), + GT_Utility.getIntegratedCircuit(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), + GT_Utility.getIntegratedCircuit(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), + GT_Utility.getIntegratedCircuit(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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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), + GT_Utility.getIntegratedCircuit(1)) + .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_UHV.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_UHV.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() { + + 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() { + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Electric_Pump_EV.get(4), + ItemList.Field_Generator_EV.get(4), + INCONEL_690.getPlate(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.EV, 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.MV), 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.MV), 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..2b4e957d34 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/AssemblyLineRecipes.java @@ -0,0 +1,889 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +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 com.github.technus.tectech.thing.CustomItemList; + +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 = FluidRegistry.getFluid("molten.indalloy140"); + + 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.LuV), 2 }, + new Object[] { OrePrefixes.circuit.get(Materials.IV), 4 }, + new Object[] { OrePrefixes.circuit.get(Materials.EV), 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.ZPM), 2 }, + new Object[] { OrePrefixes.circuit.get(Materials.LuV), 4 }, + new Object[] { OrePrefixes.circuit.get(Materials.IV), 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.UV), 2 }, + new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 4 }, + new Object[] { OrePrefixes.circuit.get(Materials.LuV), 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.LuV), 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.ZPM), 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.UV), 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.LuV), 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.ZPM), 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.UV), 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.ZPM), 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.UV), 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.UHV), 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.LuV), 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.ZPM), 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.UV), 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.LuV), 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.ZPM), 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.UV), 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.ZPM), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 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.UV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.UV), 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.UHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.UHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.UHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.UHV), 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.ZPM), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 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.UV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.UV), 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.UEV), 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.UV), 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("fluid.rocketfuelmixc", 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.UEV), 4 }, + ItemList.Field_Generator_UV.get(16), + ItemList.Gravistar.get(8), + ItemList.Emitter_UV.get(4), + CustomItemList.hatch_CreativeMaintenance.get(16), + ItemList.Energy_Cluster.get(8), + ItemList.Cover_WirelessNeedsMaintainance.get(1)) + .itemOutputs(ItemList.TierdDrone2.get(1)) + .fluidInputs( + new FluidStack(solderIndalloy, 144000), + FluidRegistry.getFluidStack("molten.ethylcyanoacrylatesuperglue", 2000)) + .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..6a95493f8c --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java @@ -0,0 +1,685 @@ +package gregtech.loaders.postload.recipes; + +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.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 com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; + +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); + + 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(TierEU.RECIPE_UIV) + .metadata(COIL_HEAT, 11701) + .addTo(blastFurnaceRecipes); + + // Rh + 3Cl = RhCl3 + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(WerkstoffLoader.items.get(OrePrefixes.dust), 1, 78), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(MaterialsKevlar.RhodiumChloride.getDust(4)) + .fluidInputs(Materials.Chlorine.getGas(3000)) + .duration(30 * SECONDS) + .eut(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..c9e8e631bf --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/CannerRecipes.java @@ -0,0 +1,251 @@ +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.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; + +public class CannerRecipes implements Runnable { + + @Override + public void run() { + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 2L), + ItemList.Battery_Hull_LV.get(1L)) + .itemOutputs(ItemList.Battery_RE_LV_Cadmium.get(1L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 2L), + ItemList.Battery_Hull_LV.get(1L)) + .itemOutputs(ItemList.Battery_RE_LV_Lithium.get(1L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 2L), + ItemList.Battery_Hull_LV.get(1L)) + .itemOutputs(ItemList.Battery_RE_LV_Sodium.get(1L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 8L), + ItemList.Battery_Hull_MV.get(1L)) + .itemOutputs(ItemList.Battery_RE_MV_Cadmium.get(1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 8L), + ItemList.Battery_Hull_MV.get(1L)) + .itemOutputs(ItemList.Battery_RE_MV_Lithium.get(1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 8L), + ItemList.Battery_Hull_MV.get(1L)) + .itemOutputs(ItemList.Battery_RE_MV_Sodium.get(1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 32L), + ItemList.Battery_Hull_HV.get(1L)) + .itemOutputs(ItemList.Battery_RE_HV_Cadmium.get(1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(2) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 32L), + ItemList.Battery_Hull_HV.get(1L)) + .itemOutputs(ItemList.Battery_RE_HV_Lithium.get(1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(2) + .addTo(cannerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 32L), + ItemList.Battery_Hull_HV.get(1L)) + .itemOutputs(ItemList.Battery_RE_HV_Sodium.get(1L)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(2) + .addTo(cannerRecipes); + // Recipes to actually fill the empty hulls with content + // IV 2048 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sunnarium, 4L), + ItemList.BatteryHull_EV.get(1L)) + .itemOutputs(ItemList.BatteryHull_EV_Full.get(1L)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(cannerRecipes); + // EV 8192 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sunnarium, 16L), + ItemList.BatteryHull_IV.get(1L)) + .itemOutputs(ItemList.BatteryHull_IV_Full.get(1L)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(1024) + .addTo(cannerRecipes); + // LuV 32768 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sunnarium, 32L), + ItemList.BatteryHull_LuV.get(1L)) + .itemOutputs(ItemList.BatteryHull_LuV_Full.get(1L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(cannerRecipes); + // ZPM 131072 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 16L), + ItemList.BatteryHull_ZPM.get(1L)) + .itemOutputs(ItemList.BatteryHull_ZPM_Full.get(1L)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(4096) + .addTo(cannerRecipes); + // UV 524288 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 32L), + ItemList.BatteryHull_UV.get(1L)) + .itemOutputs(ItemList.BatteryHull_UV_Full.get(1L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(cannerRecipes); + // UHV 2097152 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neutronium, 16L), + ItemList.BatteryHull_UHV.get(1L)) + .itemOutputs(ItemList.BatteryHull_UHV_Full.get(1L)) + .duration(17 * SECONDS + 10 * TICKS) + .eut(15720) + .addTo(cannerRecipes); + // UEV 8388608 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neutronium, 32L), + ItemList.BatteryHull_UEV.get(1L)) + .itemOutputs(ItemList.BatteryHull_UEV_Full.get(1L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(cannerRecipes); + // UIV 33554432 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neutronium, 64L), + ItemList.BatteryHull_UIV.get(1L)) + .itemOutputs(ItemList.BatteryHull_UIV_Full.get(1L)) + .duration(22 * SECONDS + 10 * TICKS) + .eut(62880) + .addTo(cannerRecipes); + // UMV 134217728 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Infinity, 4L), + ItemList.BatteryHull_UMV.get(1L)) + .itemOutputs(ItemList.BatteryHull_UMV_Full.get(1L)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(cannerRecipes); + // UxV 536870912 + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Infinity, 8L), + ItemList.BatteryHull_UxV.get(1L)) + .itemOutputs(ItemList.BatteryHull_UxV_Full.get(1L)) + .duration(30 * SECONDS) + .eut(251520) + .addTo(cannerRecipes); + + // 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..c4cfca5aba --- /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.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 gregtech.loaders.misc.GT_Bees.combs; +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(TierEU.RECIPE_UHV) + .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(new ItemStack(combs, 1, 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(new ItemStack(combs, 1, 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(new ItemStack(combs, 1, 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(new ItemStack(combs, 1, 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(new ItemStack(combs, 1, 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(new ItemStack(combs, 1, 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(new ItemStack(combs, 1, 152), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(ThaumicTinkerer.ID, "kamiResource", 1L, 6)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(centrifugeRecipes); + + // Endshard + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(combs, 1, 153), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(ThaumicTinkerer.ID, "kamiResource", 1L, 7)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(TierEU.RECIPE_HV) + .addTo(centrifugeRecipes); + } + + if (ExtraUtilities.isModLoaded()) { + // Caelestis red + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(combs, 1, 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(new ItemStack(combs, 1, 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(new ItemStack(combs, 1, 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..3df932edd2 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ChemicalRecipes.java @@ -0,0 +1,5967 @@ +package gregtech.loaders.postload.recipes; + +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 gtPlusPlus.core.material.MISC_MATERIALS.CALCIUM_CHLORIDE; +import static gtPlusPlus.core.material.MISC_MATERIALS.SODIUM_NITRATE; +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 com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; + +import cpw.mods.fml.common.registry.GameRegistry; +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; +import gtPlusPlus.core.item.ModItems; + +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(TierEU.RECIPE_UV) + .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); + + // 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), + new ItemStack(WerkstoffLoader.items.get(OrePrefixes.dust), 3, 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), + new ItemStack(WerkstoffLoader.items.get(OrePrefixes.dust), 6, 10052)) + .fluidInputs(Materials.SiliconTetrachloride.getFluid(1000)) + .duration(20 * SECONDS) + .eut(30) + .addTo(UniversalChemical); + + // 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( // very poor way of looking for it, but getModItem on GT++ within GT5U jar is prohibited now, + // and i don't feel like reworking GT++ cell registration for now + GameRegistry.findItemStack(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(new ItemStack(ModItems.dustCalciumHydroxide, 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), SODIUM_NITRATE.getDust(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(TierEU.RECIPE_UV) + .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(TierEU.RECIPE_UV) + .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(TierEU.RECIPE_UV) + .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.Methanol.getFluid(1000), Materials.Butane.getGas(1000)) + .fluidOutputs(Materials.MTBEMixtureAlt.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(TierEU.RECIPE_UV) + .addTo(multiblockChemicalReactorRecipes); + + // 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(TierEU.RECIPE_UV) + .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(TierEU.RECIPE_UV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), + CALCIUM_CHLORIDE.getDust(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(TierEU.RECIPE_UV) + .addTo(multiblockChemicalReactorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(9), + CALCIUM_CHLORIDE.getDust(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(TierEU.RECIPE_UV) + .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(TierEU.RECIPE_UV) + .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..072992d07e --- /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.LV, 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.LV, 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.LV, 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.MV, 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.MV, 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.MV, 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.HV, 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.HV, 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.HV, 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.ULV, 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.LV, 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.MV, 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.HV, 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.ULV, 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.LV, 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.MV, 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.HV, 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..78d8319907 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java @@ -0,0 +1,259 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.AppliedEnergistics2; +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 static gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator.sapling_Rainforest; + +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(ItemList.Cell_Empty.get(1)) + .itemOutputs(ItemList.Cell_Air.get(1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.sand, 4)) + .itemOutputs(new ItemStack(Blocks.sandstone, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("iridiumShard", 9)) + .itemOutputs(GT_ModHandler.getIC2Item("iridiumOre", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.clay_ball, 4)) + .itemOutputs(new ItemStack(Blocks.clay, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.brick, 4)) + .itemOutputs(new ItemStack(Blocks.brick_block, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.netherbrick, 4)) + .itemOutputs(new ItemStack(Blocks.nether_brick, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("smallPlutonium", 9)) + .itemOutputs(GT_ModHandler.getIC2Item("Plutonium", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("smallUran235", 9)) + .itemOutputs(GT_ModHandler.getIC2Item("Uran235", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.water_bucket, 1)) + .itemOutputs(new ItemStack(Blocks.snow, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.snowball, 4)) + .itemOutputs(new ItemStack(Blocks.snow, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Cell_Water.get(1)) + .itemOutputs(new ItemStack(Blocks.snow, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.snow, 1)) + .itemOutputs(new ItemStack(Blocks.ice, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("carbonMesh", 1)) + .itemOutputs(GT_ModHandler.getIC2Item("carbonPlate", 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getIC2Item("coalBall", 1)) + .itemOutputs(ItemList.IC2_Compressed_Coal_Ball.get(1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 8L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Wood, 1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(sapling_Rainforest, 8)) + .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..6fc53a5675 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/CropProcessingRecipes.java @@ -0,0 +1,161 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; +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.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; + + 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); + } + + 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..1d0eeecd8b --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/CuttingRecipes.java @@ -0,0 +1,316 @@ +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); + // Naq wafer also gets recipes using purified water + recipeWithPurifiedWater( + new ItemStack[] { ItemList.Circuit_Silicon_Ingot3.get(1) }, + new ItemStack[] { ItemList.Circuit_Silicon_Wafer3.get(128), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 16) }, + Materials.Grade1PurifiedWater, + Materials.Grade2PurifiedWater, + (int) ((1 * MINUTES + 20 * SECONDS) * 0.75), + (1 * MINUTES + 20 * SECONDS) / 2, + TierEU.RECIPE_HV); + + recipeWithPurifiedWater( + 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) }, + Materials.Grade3PurifiedWater, + Materials.Grade4PurifiedWater, + 2 * MINUTES, + 1 * MINUTES, + TierEU.RECIPE_EV); + + recipeWithPurifiedWater( + 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) }, + Materials.Grade5PurifiedWater, + Materials.Grade6PurifiedWater, + 2 * MINUTES + 40 * SECONDS, + (2 * MINUTES + 40 * SECONDS) / 2, + TierEU.RECIPE_IV); + + } + + // 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 recipeWithPurifiedWater(ItemStack[] inputs, ItemStack[] outputs, Materials lowTierWater, + Materials highTierWater, int duration, int boostedDuration, long eut) { + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(outputs) + .fluidInputs(lowTierWater.getFluid(100L)) + .duration(duration) + .eut(eut) + .addTo(cutterRecipes); + // Bonus for using higher tier water + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(outputs) + .fluidInputs(highTierWater.getFluid(100L)) + .duration(boostedDuration) + .eut(eut) + .addTo(cutterRecipes); + } + + 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..dfbb2501f0 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/DistilleryRecipes.java @@ -0,0 +1,1255 @@ +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.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(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(1000)) + .fluidOutputs( + Materials.SulfuricHeavyFuel.getFluid(70), + Materials.SulfuricLightFuel.getFluid(130), + Materials.SulfuricNaphtha.getFluid(200), + MaterialsKevlar.NaphthenicAcid.getFluid(15), + Materials.SulfuricGas.getGas(1600)) + .duration(1 * SECONDS + 1 * 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(1000L)) + .fluidOutputs( + Materials.SulfuricHeavyFuel.getFluid(300), + Materials.SulfuricLightFuel.getFluid(1000), + Materials.SulfuricNaphtha.getFluid(400), + MaterialsKevlar.NaphthenicAcid.getFluid(50), + Materials.SulfuricGas.getGas(1200)) + .duration(3 * SECONDS + 4 * 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(450), + Materials.SulfuricLightFuel.getFluid(150), + Materials.SulfuricNaphtha.getFluid(300), + 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() + .fluidInputs(Materials.MTBEMixtureAlt.getGas(900L)) + .fluidOutputs( + Materials.AntiKnock.getFluid(400L), + Materials.Methanol.getFluid(500L), + Materials.Butane.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(100), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.SulfuricHeavyFuel.getFluid(7), Materials.SulfuricLightFuel.getFluid(13), + Materials.SulfuricNaphtha.getFluid(20), Materials.SulfuricGas.getGas(160) }, + null, + 10, + 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(100L), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.SulfuricHeavyFuel.getFluid(30), Materials.SulfuricLightFuel.getFluid(100), + Materials.SulfuricNaphtha.getFluid(40), Materials.SulfuricGas.getGas(120) }, + null, + 30, + 96); + addUniversalDistillationRecipewithCircuit( + Materials.OilHeavy.getFluid(100), + new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, + new FluidStack[] { Materials.SulfuricHeavyFuel.getFluid(100), Materials.SulfuricLightFuel.getFluid(45), + Materials.SulfuricNaphtha.getFluid(15), Materials.SulfuricGas.getGas(60) }, + null, + 40, + 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); + } + + 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..363f279de5 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ElectrolyzerRecipes.java @@ -0,0 +1,357 @@ +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); + // CO2 = C + 2O + + 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(45 * 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(45 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + // CO = C + O + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(Materials.Carbon.getDust(1)) + .fluidInputs(Materials.CarbonMonoxide.getGas(1000)) + .fluidOutputs(Materials.Oxygen.getGas(1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(11), Materials.Empty.getCells(1)) + .itemOutputs(Materials.Carbon.getDust(1), Materials.Oxygen.getCells(1)) + .fluidInputs(Materials.CarbonMonoxide.getGas(1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(Materials.CarbonMonoxide.getCells(1)) + .itemOutputs(Materials.Carbon.getDust(1), Materials.Oxygen.getCells(1)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + + // H2S = S + 2H + + GT_Values.RA.stdBuilder() + .itemOutputs(Materials.Sulfur.getDust(1)) + .fluidInputs(Materials.HydricSulfide.getGas(1000)) + .fluidOutputs(Materials.Hydrogen.getGas(2000)) + .duration(3 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + + GT_Values.RA.stdBuilder() + .itemOutputs(Materials.Sulfur.getDust(1), Materials.Hydrogen.getCells(2)) + .itemInputs(Materials.HydricSulfide.getCells(1), Materials.Empty.getCells(1)) + .duration(3 * SECONDS + 12 * TICKS) + .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); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.PhosphoricAcid, 1L), + ItemList.Cell_Empty.get(6L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 3L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 4L)) + .duration(27 * SECONDS) + .eut(TierEU.RECIPE_MV) + .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..06ad1fa994 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ExtractorRecipes.java @@ -0,0 +1,205 @@ +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)); + addExtractionRecipe(getIC2Item("filledTinCan", 1), getIC2Item("tinCan", 1)); + addExtractionRecipe(new ItemStack(Blocks.clay, 1), new ItemStack(Items.clay_ball, 4)); + addExtractionRecipe(new ItemStack(Blocks.brick_block, 1), new ItemStack(Items.brick, 4)); + addExtractionRecipe(new ItemStack(Blocks.nether_brick, 1), new ItemStack(Items.netherbrick, 4)); + addExtractionRecipe(new ItemStack(Blocks.snow, 1), new ItemStack(Items.snowball, 4)); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_SU_LV_SulfuricAcid.get(1L)) + .itemOutputs(ItemList.Battery_Hull_LV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_SU_LV_Mercury.get(1L)) + .itemOutputs(ItemList.Battery_Hull_LV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_SU_MV_SulfuricAcid.get(1L)) + .itemOutputs(ItemList.Battery_Hull_MV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_SU_MV_Mercury.get(1L)) + .itemOutputs(ItemList.Battery_Hull_MV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_SU_HV_SulfuricAcid.get(1L)) + .itemOutputs(ItemList.Battery_Hull_HV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_SU_HV_Mercury.get(1L)) + .itemOutputs(ItemList.Battery_Hull_HV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_RE_LV_Cadmium.get(1L)) + .itemOutputs(ItemList.Battery_Hull_LV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_RE_LV_Lithium.get(1L)) + .itemOutputs(ItemList.Battery_Hull_LV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_RE_LV_Sodium.get(1L)) + .itemOutputs(ItemList.Battery_Hull_LV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_RE_MV_Cadmium.get(1L)) + .itemOutputs(ItemList.Battery_Hull_MV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_RE_MV_Lithium.get(1L)) + .itemOutputs(ItemList.Battery_Hull_MV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_RE_MV_Sodium.get(1L)) + .itemOutputs(ItemList.Battery_Hull_MV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_RE_HV_Cadmium.get(1L)) + .itemOutputs(ItemList.Battery_Hull_HV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_RE_HV_Lithium.get(1L)) + .itemOutputs(ItemList.Battery_Hull_HV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Battery_RE_HV_Sodium.get(1L)) + .itemOutputs(ItemList.Battery_Hull_HV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.BatteryHull_EV_Full.get(1L)) + .itemOutputs(ItemList.BatteryHull_EV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.BatteryHull_IV_Full.get(1L)) + .itemOutputs(ItemList.BatteryHull_IV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.BatteryHull_LuV_Full.get(1L)) + .itemOutputs(ItemList.BatteryHull_LuV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.BatteryHull_ZPM_Full.get(1L)) + .itemOutputs(ItemList.BatteryHull_ZPM.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.BatteryHull_UV_Full.get(1L)) + .itemOutputs(ItemList.BatteryHull_UV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.BatteryHull_UHV_Full.get(1L)) + .itemOutputs(ItemList.BatteryHull_UHV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.BatteryHull_UEV_Full.get(1L)) + .itemOutputs(ItemList.BatteryHull_UEV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.BatteryHull_UIV_Full.get(1L)) + .itemOutputs(ItemList.BatteryHull_UIV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.BatteryHull_UMV_Full.get(1L)) + .itemOutputs(ItemList.BatteryHull_UMV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.BatteryHull_UxV_Full.get(1L)) + .itemOutputs(ItemList.BatteryHull_UxV.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(extractorRecipes); + } + + 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..d27e85ab2d --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/FluidExtractorRecipes.java @@ -0,0 +1,566 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.enums.Mods.Forestry; +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 gregtech.loaders.misc.GT_Bees.combs; +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(TierEU.RECIPE_MV) + .addTo(fluidExtractionRecipes); + + // Beecombs fluid extractor recipes + // xenon + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(combs, 1, 134)) + .fluidOutputs(getFluidStack("xenon", 250)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_IV) + .addTo(fluidExtractionRecipes); + + // neon + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(combs, 1, 135)) + .fluidOutputs(getFluidStack("neon", 250)) + .duration(15 * TICKS) + .eut(TierEU.RECIPE_IV) + .addTo(fluidExtractionRecipes); + + // krpton + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(combs, 1, 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..4ebb4b8da6 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ForgeHammerRecipes.java @@ -0,0 +1,156 @@ +package gregtech.loaders.postload.recipes; + +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; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +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.Fireclay.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); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Tesseract.get(1L), GregtechItemList.Laser_Lens_Special.get(1)) + .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..9780a0a7ba --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/FormingPressRecipes.java @@ -0,0 +1,188 @@ +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.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_MV) + .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( + 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..88c07e365e --- /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(TierEU.RECIPE_EV) + .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(TierEU.RECIPE_IV) + .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(TierEU.RECIPE_IV) + .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(TierEU.RECIPE_IV) + .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..9e0d3e4780 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java @@ -0,0 +1,1722 @@ +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(TierEU.RECIPE_HV) + .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(TierEU.RECIPE_EV) + .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(TierEU.RECIPE_EV) + .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(TierEU.RECIPE_EV) + .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(TierEU.RECIPE_HV) + .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(TierEU.RECIPE_IV) + .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); + + // McGuffium239 is non-renewable and only obtainable though world gen. + // It's a meme, don't think too deep about it. + 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.Methanol.getCells(1), Materials.Butane.getCells(1)) + .itemOutputs(Materials.MTBEMixtureAlt.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(4), + ItemList.SFMixture.get(8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_SSFUEL.get(4)) + .fluidInputs(Materials.GasolinePremium.getFluid(480)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + EnumCube.COKE_BLOCK.getItem(4), + ItemList.SFMixture.get(8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Block_SSFUEL.get(4)) + .fluidInputs(Materials.NitroFuel.getFluid(1200)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .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..4ff99582c2 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/PackagerRecipes.java @@ -0,0 +1,67 @@ +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.Tool_Matches.get(16L), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Paper, 1L)) + .itemOutputs(ItemList.Tool_MatchBox_Full.get(1L)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(packagerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Tool_MatchBox_Full.get(1L)) + .itemOutputs(ItemList.Tool_Matches.get(16L)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(16) + .addTo(packagerRecipes); + + 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..2763bb8d77 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java @@ -0,0 +1,53 @@ +package gregtech.loaders.postload.recipes; + +import static goodgenerator.loader.Loaders.huiCircuit; +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 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.TierEU; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +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( + new ItemStack(ModItems.itemStandarParticleBase, 1, 24), + getModItem(NewHorizonsCoreMod.ID, "item.ChromaticLens", 0), + new ItemStack(huiCircuit, 0, 4)) + .fluidInputs(MaterialsUEVplus.ExcitedDTRC.getFluid(92), Materials.Duranium.getMolten(144)) + .itemOutputs(GregtechItemList.Laser_Lens_Special.get(1)) + .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..e700ee0730 --- /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)) + .special(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)) + .special(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)) + .special(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..75a81448e0 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/Pulverizer.java @@ -0,0 +1,603 @@ +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.getIC2Item; +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.poisonous_potato, 1)) + .itemOutputs(ItemList.IC2_Grin_Powder.get(1L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.spider_eye, 1)) + .itemOutputs(ItemList.IC2_Grin_Powder.get(1L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Items.bone, 1)) + .itemOutputs(new ItemStack(Items.dye, 4, 15)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_EnergyCrystal.get(1)) + .itemOutputs(getIC2Item("energiumDust", 9)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getIC2Item("biochaff", 1)) + .itemOutputs(new ItemStack(Blocks.dirt, 1)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(maceratorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.quartz_stairs, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 6)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .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.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..441da5a116 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ThaumcraftRecipes.java @@ -0,0 +1,960 @@ +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.MV, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), + ItemList.Sensor_MV.get(2L), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.MV, 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.HV, 1L), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Thaumium, 1L), + ItemList.Sensor_HV.get(2L), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.HV, 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.EV, 1L), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1L), + ItemList.Field_Generator_MV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.EV, 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.MV, 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.HV, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L), ItemList.Sensor_HV.get(2L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.HV, 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.EV, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Void, 1), + ItemList.Field_Generator_MV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.EV, 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.IV, 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.IV, 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..8e06eec1e0 --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/ThermalCentrifugeRecipes.java @@ -0,0 +1,121 @@ +package gregtech.loaders.postload.recipes; + +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; +import static gregtech.api.util.GT_ModHandler.getIC2Item; +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.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); + + // Recipes from the old ic2 recipe maps + GT_Values.RA.stdBuilder() + .itemInputs(getIC2Item("reactorDepletedMOXSimple", 1)) + .itemOutputs( + getIC2Item("smallPlutonium", 1), + getIC2Item("Plutonium", 3), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getIC2Item("reactorDepletedMOXDual", 1)) + .itemOutputs( + getIC2Item("smallPlutonium", 2), + getIC2Item("Plutonium", 6), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 3)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getIC2Item("reactorDepletedMOXQuad", 1)) + .itemOutputs( + getIC2Item("smallPlutonium", 4), + getIC2Item("Plutonium", 12), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 6)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getIC2Item("reactorDepletedUraniumSimple", 1)) + .itemOutputs( + getIC2Item("smallPlutonium", 1), + getIC2Item("Uran238", 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getIC2Item("reactorDepletedUraniumDual", 1)) + .itemOutputs( + getIC2Item("smallPlutonium", 2), + getIC2Item("Uran238", 8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 3)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getIC2Item("reactorDepletedUraniumQuad", 1)) + .itemOutputs( + getIC2Item("smallPlutonium", 4), + getIC2Item("Uran238", 16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 6)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(getIC2Item("RTGPellets", 1)) + .itemOutputs(getIC2Item("Plutonium", 3), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 54)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 2)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lithium, 1)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 4)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(thermalCentrifugeRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.cobblestone, 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 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..b3fd9a392b --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java @@ -0,0 +1,413 @@ +package gregtech.loaders.postload.recipes; + +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); + } + + // 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..b91163619b --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/recipes/WiremillRecipes.java @@ -0,0 +1,41 @@ +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_RecipeRegistrator.registerWiremillRecipes; + +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.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); + } +} |