diff options
| author | Raven Szewczyk <git@eigenraven.me> | 2024-05-24 19:50:35 +0100 |
|---|---|---|
| committer | Raven Szewczyk <git@eigenraven.me> | 2024-05-24 19:50:35 +0100 |
| commit | 6d1b2216464d4dad449ac6fcfec476832224a55e (patch) | |
| tree | 526a0c15f7056313c80e6c0386e025e9b3f61781 /src/main/java/gtPlusPlus/core/recipe | |
| parent | b5d35f40afa606ed1b07061dad82e0521a59c186 (diff) | |
| download | GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.tar.gz GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.tar.bz2 GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.zip | |
Merge addon sources
Diffstat (limited to 'src/main/java/gtPlusPlus/core/recipe')
12 files changed, 7048 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/core/recipe/LOADER_Machine_Components.java b/src/main/java/gtPlusPlus/core/recipe/LOADER_Machine_Components.java new file mode 100644 index 0000000000..a10d2cd05b --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/LOADER_Machine_Components.java @@ -0,0 +1,114 @@ +package gtPlusPlus.core.recipe; + +import gregtech.api.enums.ItemList; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +public class LOADER_Machine_Components { + + public static void initialise() { + registerDefaultComponents(); + + registerGTNHComponents(); + } + + private static void registerDefaultComponents() { + // Machine Components + CI.electricMotor_LV = ItemList.Electric_Motor_LV.get(1); + CI.electricMotor_MV = ItemList.Electric_Motor_MV.get(1); + CI.electricMotor_HV = ItemList.Electric_Motor_HV.get(1); + CI.electricMotor_EV = ItemList.Electric_Motor_EV.get(1); + CI.electricMotor_IV = ItemList.Electric_Motor_IV.get(1); + CI.electricPump_LV = ItemList.Electric_Pump_LV.get(1); + CI.electricPump_MV = ItemList.Electric_Pump_MV.get(1); + CI.electricPump_HV = ItemList.Electric_Pump_HV.get(1); + CI.electricPump_EV = ItemList.Electric_Pump_EV.get(1); + CI.electricPump_IV = ItemList.Electric_Pump_IV.get(1); + CI.electricPiston_LV = ItemList.Electric_Piston_LV.get(1); + CI.electricPiston_MV = ItemList.Electric_Piston_MV.get(1); + CI.electricPiston_HV = ItemList.Electric_Piston_HV.get(1); + CI.electricPiston_EV = ItemList.Electric_Piston_EV.get(1); + CI.electricPiston_IV = ItemList.Electric_Piston_IV.get(1); + CI.robotArm_LV = ItemList.Robot_Arm_LV.get(1); + CI.robotArm_MV = ItemList.Robot_Arm_MV.get(1); + CI.robotArm_HV = ItemList.Robot_Arm_HV.get(1); + CI.robotArm_EV = ItemList.Robot_Arm_EV.get(1); + CI.robotArm_IV = ItemList.Robot_Arm_IV.get(1); + CI.conveyorModule_LV = ItemList.Conveyor_Module_LV.get(1); + CI.conveyorModule_MV = ItemList.Conveyor_Module_MV.get(1); + CI.conveyorModule_HV = ItemList.Conveyor_Module_HV.get(1); + CI.conveyorModule_EV = ItemList.Conveyor_Module_EV.get(1); + CI.conveyorModule_IV = ItemList.Conveyor_Module_IV.get(1); + CI.emitter_LV = ItemList.Emitter_LV.get(1); + CI.emitter_MV = ItemList.Emitter_MV.get(1); + CI.emitter_HV = ItemList.Emitter_HV.get(1); + CI.emitter_EV = ItemList.Emitter_EV.get(1); + CI.emitter_IV = ItemList.Emitter_IV.get(1); + CI.fieldGenerator_LV = ItemList.Field_Generator_LV.get(1); + CI.fieldGenerator_MV = ItemList.Field_Generator_MV.get(1); + CI.fieldGenerator_HV = ItemList.Field_Generator_HV.get(1); + CI.fieldGenerator_EV = ItemList.Field_Generator_EV.get(1); + CI.fieldGenerator_IV = ItemList.Field_Generator_IV.get(1); + CI.sensor_LV = ItemList.Sensor_LV.get(1); + CI.sensor_MV = ItemList.Sensor_MV.get(1); + CI.sensor_HV = ItemList.Sensor_HV.get(1); + CI.sensor_EV = ItemList.Sensor_EV.get(1); + CI.sensor_IV = ItemList.Sensor_IV.get(1); + CI.fluidRegulator_LV = ItemList.FluidRegulator_LV.get(1); + CI.fluidRegulator_MV = ItemList.FluidRegulator_MV.get(1); + CI.fluidRegulator_HV = ItemList.FluidRegulator_HV.get(1); + CI.fluidRegulator_EV = ItemList.FluidRegulator_EV.get(1); + CI.fluidRegulator_IV = ItemList.FluidRegulator_IV.get(1); + } + + private static void registerGTNHComponents() { + // Machine Components + CI.electricMotor_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32606, 1); + CI.electricMotor_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32607, 1); + CI.electricMotor_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32608, 1); + + CI.electricPump_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32615, 1); + CI.electricPump_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32616, 1); + CI.electricPump_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32617, 1); + + CI.electricPiston_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32645, 1); + CI.electricPiston_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32646, 1); + CI.electricPiston_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32647, 1); + + CI.robotArm_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32655, 1); + CI.robotArm_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32656, 1); + CI.robotArm_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32657, 1); + + CI.conveyorModule_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32635, 1); + CI.conveyorModule_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32636, 1); + CI.conveyorModule_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32637, 1); + + CI.emitter_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32685, 1); + CI.emitter_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32686, 1); + CI.emitter_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32687, 1); + + CI.fieldGenerator_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32675, 1); + CI.fieldGenerator_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32676, 1); + CI.fieldGenerator_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32677, 1); + + CI.sensor_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32695, 1); + CI.sensor_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32696, 1); + CI.sensor_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32697, 1); + + CI.fluidRegulator_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32665, 1); + CI.fluidRegulator_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32666, 1); + CI.fluidRegulator_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32667, 1); + + // Thanks 0lafe + CI.electricMotor_UHV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32596, 1); + CI.electricPump_UHV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32618, 1); + CI.electricPiston_UHV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32648, 1); + CI.robotArm_UHV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32658, 1); + CI.conveyorModule_UHV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32638, 1); + CI.emitter_UHV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32688, 1); + CI.fieldGenerator_UHV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32678, 1); + CI.sensor_UHV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32698, 1); + + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java new file mode 100644 index 0000000000..0900bbb4fa --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -0,0 +1,1806 @@ +package gtPlusPlus.core.recipe; + +import static gregtech.api.enums.Mods.Backpack; +import static gregtech.api.enums.Mods.Baubles; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.brewingRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.distillationTowerRecipes; +import static gregtech.api.recipe.RecipeMaps.distilleryRecipes; +import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidHeaterRecipes; +import static gregtech.api.recipe.RecipeMaps.fusionRecipes; +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.BUCKETS; +import static gregtech.api.util.GT_RecipeBuilder.HOURS; +import static gregtech.api.util.GT_RecipeBuilder.INGOTS; +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.AssemblyLine; +import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; +import static gregtech.api.util.GT_RecipeConstants.FUSION_THRESHOLD; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; +import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.thermalBoilerRecipes; + +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 cpw.mods.fml.common.Loader; +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_RecipeConstants; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.item.chemistry.AgriculturalChem; +import gtPlusPlus.core.item.chemistry.GenericChem; +import gtPlusPlus.core.item.chemistry.IonParticles; +import gtPlusPlus.core.item.crafting.ItemDummyResearch; +import gtPlusPlus.core.item.crafting.ItemDummyResearch.ASSEMBLY_LINE_RESEARCH; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.ALLOY; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.MISC_MATERIALS; +import gtPlusPlus.core.material.ORES; +import gtPlusPlus.core.material.Particle; +import gtPlusPlus.core.material.nuclear.FLUORIDES; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.MaterialUtils; +import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +public class RECIPES_GREGTECH { + + public static void run() { + Logger.INFO("Loading Recipes through GregAPI for Industrial Multiblocks."); + execute(); + } + + private static void execute() { + electrolyzerRecipes(); + assemblerRecipes(); + distilleryRecipes(); + extractorRecipes(); + fluidExtractorRecipes(); + chemicalReactorRecipes(); + dehydratorRecipes(); + blastFurnaceRecipes(); + largeChemReactorRecipes(); + fusionRecipes(); + compressorRecipes(); + mixerRecipes(); + macerationRecipes(); + centrifugeRecipes(); + cyclotronRecipes(); + blastSmelterRecipes(); + extruderRecipes(); + cuttingSawRecipes(); + breweryRecipes(); + laserEngraverRecipes(); + assemblyLineRecipes(); + fluidHeaterRecipes(); + chemplantRecipes(); + alloySmelterRecipes(); + thermalBoilerRecipes(); + + /* + * Special Recipe handlers + */ + RECIPES_SeleniumProcessing.init(); + RECIPES_RareEarthProcessing.init(); + + addFuels(); + } + + private static void alloySmelterRecipes() { + + // Wood's Glass Laser Lens + GT_Values.RA.stdBuilder() + .itemInputs(MISC_MATERIALS.WOODS_GLASS.getDust(5), ItemList.Shape_Mold_Ball.get(0)) + .itemOutputs(GregtechItemList.Laser_Lens_WoodsGlass.get(1)) + .duration(5 * MINUTES) + .eut(TierEU.RECIPE_HV) + .addTo(alloySmelterRecipes); + } + + private static void chemplantRecipes() { + + // This is subsequently absorbed in water to form nitric acid and nitric oxide. + // 3 NO2 (g) + H2O (l) → 2 HNO3 (aq) + NO (g) (ΔH = −117 kJ/mol) + // The nitric oxide is cycled back for reoxidation. Alternatively, if the last step is carried out in air: + // 4 NO2 (g) + O2 (g) + 2 H2O (l) → 4 HNO3 (aq) + + // Advanced method for Nitric Acid Production + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(17), CI.getPinkCatalyst(0), }, + new FluidStack[] { Materials.NitrogenDioxide.getGas(4000L), FluidUtils.getAir(4000), + FluidUtils.getWater(2000), }, + new ItemStack[] {}, + new FluidStack[] { FluidUtils.getFluidStack("nitricacid", 4000), }, + 10 * 20, + 480, + 3); + + // Advanced recipe for Fluorine Production + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(17), CI.getPurpleCatalyst(0), + ItemUtils.getSimpleStack(Blocks.sandstone, 64), ItemUtils.getSimpleStack(Blocks.sandstone, 64) }, + new FluidStack[] { FluidUtils.getFluidStack("nitricacid", 4000), FluidUtils.getAir(8000) }, + new ItemStack[] { FLUORIDES.FLUORITE.getOre(8), FLUORIDES.FLUORITE.getOre(4), FLUORIDES.FLUORITE.getOre(4), + FLUORIDES.FLUORITE.getOre(4), }, + new FluidStack[] {}, + new int[] { 0, 2500, 2000, 1500 }, + 10 * 20, + 1024, + 5); + + // Advanced recipe for Fluorine Production + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(17), CI.getPurpleCatalyst(0), + ItemUtils.getSimpleStack(Blocks.sand, 64), ItemUtils.getSimpleStack(Blocks.sand, 64) }, + new FluidStack[] { FluidUtils.getFluidStack("nitricacid", 5000), FluidUtils.getAir(12000) }, + new ItemStack[] { FLUORIDES.FLUORITE.getOre(4), FLUORIDES.FLUORITE.getOre(2), FLUORIDES.FLUORITE.getOre(2), + FLUORIDES.FLUORITE.getOre(2), }, + new FluidStack[] {}, + new int[] { 7500, 1500, 1000, 500 }, + 10 * 20, + 1024, + 5); + + // 3NO2 + H2O = 2HNO3 + NO + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(16), CI.getPinkCatalyst(0), }, + new FluidStack[] { Materials.NitrogenDioxide.getGas(3000L), FluidUtils.getDistilledWater(1000) }, + new ItemStack[] {}, + new FluidStack[] { FluidUtils.getFluidStack("nitricacid", 2000), Materials.NitricOxide.getGas(1000L), }, + 10 * 20, + 480, + 2); + + // Produce Boric Acid + // Na2B4O7·10H2O + 2HCl = 4B(OH)3 + 2NaCl + 5H2O + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(21), + ItemUtils.getItemStackOfAmountFromOreDict("dustBorax", 23), }, + new FluidStack[] { FluidUtils.getFluidStack(GenericChem.HydrochloricAcid, 2000) }, + new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustSalt", 4), }, + new FluidStack[] { FluidUtils.getFluidStack("boricacid", 4000), FluidUtils.getWater(5000) }, + 20 * 30, + MaterialUtils.getVoltageForTier(3), + 3); + + // Produce Th232 + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(22), ELEMENT.getInstance().THORIUM.getDust(16) }, + new FluidStack[] { FluidUtils.getDistilledWater(2000), FluidUtils.getFluidStack("boricacid", 1500) }, + new ItemStack[] { ELEMENT.getInstance().THORIUM.getSmallDust(32), + ELEMENT.getInstance().THORIUM232.getDust(2), ELEMENT.getInstance().THORIUM232.getSmallDust(2), + ELEMENT.getInstance().URANIUM232.getDust(1), }, + new FluidStack[] {}, + new int[] { 0, 0, 1000, 250 }, + 20 * 300, + MaterialUtils.getVoltageForTier(4), + 4); + + // Modify Sapling into Pine Sapling + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(6), ItemUtils.getSimpleStack(Blocks.sapling, 32) }, + new FluidStack[] { FluidUtils.getFluidStack("fluid.geneticmutagen", 2000), + FluidUtils.getDistilledWater(8000) }, + new ItemStack[] { ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Pine, 16) }, + new FluidStack[] {}, + 120 * 20, + 64, + 2); + + int aLaureniumTier = ALLOY.LAURENIUM.vTier; + // Adding Recipes for Casings + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(12), CI.getTieredMachineCasing(aLaureniumTier - 1), + ALLOY.LAURENIUM.getPlate(8), CI.getGear(aLaureniumTier, 2) }, + new FluidStack[] { CI.getTieredFluid(aLaureniumTier, 2 * 144), + CI.getAlternativeTieredFluid(aLaureniumTier - 1, 4 * 144), + CI.getTertiaryTieredFluid(aLaureniumTier - 2, 6 * 144) }, + new ItemStack[] { GregtechItemList.Casing_Machine_Custom_3.get(1) }, + new FluidStack[] {}, + 20 * 20, + MaterialUtils.getVoltageForTier(aLaureniumTier - 2), + 5); + + int aBotmiumTier = ALLOY.BOTMIUM.vTier; + // Adding Recipes for Casings + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(12), CI.getTieredMachineCasing(aBotmiumTier - 1), + ALLOY.BOTMIUM.getPlate(8), CI.getGear(aBotmiumTier, 2) }, + new FluidStack[] { CI.getTieredFluid(aBotmiumTier, 2 * 144), + CI.getAlternativeTieredFluid(aBotmiumTier - 1, 4 * 144), + CI.getTertiaryTieredFluid(aBotmiumTier - 2, 6 * 144) }, + new ItemStack[] { GregtechItemList.Casing_Machine_Custom_4.get(1) }, + new FluidStack[] {}, + 20 * 20, + MaterialUtils.getVoltageForTier(aBotmiumTier - 2), + 6); + + // Refine GT HF into GT++ HF + if (FluidUtils.doesHydrofluoricAcidGtExist()) { + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(22), }, + new FluidStack[] { FluidUtils.getHydrofluoricAcid(2000), FluidUtils.getHydrofluoricAcidGT(5000) }, + new ItemStack[] {}, + new FluidStack[] { FluidUtils.getHydrofluoricAcid(4500) }, + 30 * 20, + 480, + 3); + } + } + + private static void fluidHeaterRecipes() { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(20)) + .fluidInputs(Materials.Water.getFluid(1000)) + .fluidOutputs(FluidUtils.getHotWater(1000)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(fluidHeaterRecipes); + } + + private static void fusionRecipes() { + // Hypogen + GT_Values.RA.stdBuilder() + .fluidInputs( + ELEMENT.STANDALONE.DRAGON_METAL.getFluidStack(144), + ELEMENT.STANDALONE.RHUGNOR.getFluidStack(288)) + .fluidOutputs(ELEMENT.STANDALONE.HYPOGEN.getFluidStack(36)) + .duration(6 * MINUTES + 49 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_UHV) + .metadata(FUSION_THRESHOLD, 1_200_000_000) + .addTo(fusionRecipes); + + // Rhugnor + GT_Values.RA.stdBuilder() + .fluidInputs( + MaterialUtils.getMaterial("Infinity", "Neutronium") + .getMolten(144), + ALLOY.QUANTUM.getFluidStack(288)) + .fluidOutputs(ELEMENT.STANDALONE.RHUGNOR.getFluidStack(144)) + .duration(25 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_UV) + .metadata(FUSION_THRESHOLD, 2_000_000_000) + .addTo(fusionRecipes); + } + + private static void assemblyLineRecipes() { + + // Containment Casings + GT_Values.RA.stdBuilder() + .metadata( + RESEARCH_ITEM, + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_1_CONTAINMENT, 1)) + .metadata(RESEARCH_TIME, 30 * MINUTES) + .itemInputs( + ItemList.Field_Generator_IV.get(32), + ItemList.Electric_Motor_EV.get(64), + ItemList.Energy_LapotronicOrb.get(32), + CI.getTieredComponent(OrePrefixes.cableGt12, 7, 32), + CI.getTieredComponent(OrePrefixes.wireGt16, 6, 64), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Naquadria, 64L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gadolinium, 32L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Samarium, 16L), + ALLOY.ARCANITE.getGear(8), + new Object[] { CI.getTieredCircuitOreDictName(5), 64 }, + new Object[] { CI.getTieredCircuitOreDictName(6), 32 }, + new Object[] { CI.getTieredCircuitOreDictName(7), 16 }, + GregtechItemList.Laser_Lens_Special.get(1), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 3, 64)) + .fluidInputs( + ALLOY.NITINOL_60.getFluidStack(144 * 9 * 4), + ALLOY.ENERGYCRYSTAL.getFluidStack(144 * 9 * 8), + ALLOY.TUMBAGA.getFluidStack(144 * 9 * 32), + Materials.Nichrome.getMolten(16 * INGOTS)) + .itemOutputs(ItemUtils.getSimpleStack(ModBlocks.blockCasings3Misc, 15, 32)) + .eut(TierEU.RECIPE_LuV) + .duration(20 * MINUTES) + .addTo(AssemblyLine); + + // Turbine Automation Port + GT_Values.RA.stdBuilder() + .metadata( + RESEARCH_ITEM, + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_8_TURBINE_AUTOMATION, 1)) + .metadata(RESEARCH_TIME, 24 * HOURS) + .itemInputs( + CI.getTieredMachineHull(8, 4), + CI.getConveyor(8, 24), + CI.getElectricMotor(7, 32), + CI.getElectricPiston(7, 16), + CI.getEnergyCore(6, 8), + CI.getPlate(8, 24), + CI.getTieredComponent(OrePrefixes.screw, 8, 48), + CI.getTieredComponent(OrePrefixes.bolt, 7, 32), + CI.getTieredComponent(OrePrefixes.rod, 6, 12), + new Object[] { CI.getTieredCircuitOreDictName(7), 20 }, + CI.getTieredComponent(OrePrefixes.rotor, 6, 16)) + .fluidInputs( + CI.getTieredFluid(8, 144 * 32), + CI.getAlternativeTieredFluid(7, 144 * 16), + CI.getTertiaryTieredFluid(7, 144 * 16), + ALLOY.BABBIT_ALLOY.getFluidStack(128 * 144)) + .itemOutputs(GregtechItemList.Hatch_Input_TurbineHousing.get(4)) + .eut(TierEU.RECIPE_UV) + .duration(2 * HOURS) + .addTo(AssemblyLine); + + /* + * Containment casings + */ + ItemStack[] aCoilWire = new ItemStack[] { ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 0, 64), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 1, 64), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 2, 64), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 3, 64), }; + ItemStack[] aGemCasings = new ItemStack[] { GregtechItemList.Battery_Casing_Gem_1.get(1), + GregtechItemList.Battery_Casing_Gem_2.get(1), GregtechItemList.Battery_Casing_Gem_3.get(1), + GregtechItemList.Battery_Casing_Gem_4.get(1), }; + ItemStack[] aResearch = new ItemStack[] { Particle.getBaseParticle(Particle.UNKNOWN), + GregtechItemList.Battery_Casing_Gem_1.get(1), GregtechItemList.Battery_Casing_Gem_2.get(1), + GregtechItemList.Battery_Casing_Gem_3.get(1), }; + + int aCasingSlot = 0; + for (int j = 6; j < 10; j++) { + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, aResearch[aCasingSlot]) + .metadata(RESEARCH_TIME, 1 * HOURS) + .itemInputs( + CI.getTieredComponent(OrePrefixes.plate, j - 1, 16), + CI.getTieredComponent(OrePrefixes.cableGt08, j + 1, 32), + CI.getTieredComponent(OrePrefixes.gearGt, j - 1, 4), + aCoilWire[aCasingSlot]) + .fluidInputs( + CI.getTieredFluid(j, 144 * 8), + CI.getTertiaryTieredFluid(j - 2, 144 * 16), + CI.getAlternativeTieredFluid(j, 144 * 16)) + .itemOutputs(aGemCasings[aCasingSlot++]) + .eut(GT_Values.V[j]) + .duration(2 * MINUTES) + .addTo(AssemblyLine); + } + + /* + * Gem Battery Recipes + */ + + ItemStack[] aGemBatteries = new ItemStack[] { GregtechItemList.Battery_Gem_1.get(1), + GregtechItemList.Battery_Gem_2.get(1), GregtechItemList.Battery_Gem_3.get(1), + GregtechItemList.Battery_Gem_4.get(1), }; + + ItemStack[] aExoticInputs = new ItemStack[] { Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.ELECTRON), Particle.getBaseParticle(Particle.CHARM), + Particle.getBaseParticle(Particle.GRAVITON) }; + aCasingSlot = 0; + for (int j = 6; j < 10; j++) { + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, aExoticInputs[aCasingSlot]) + .metadata(RESEARCH_TIME, 5 * HOURS) + .itemInputs( + aGemCasings[aCasingSlot], + ItemUtils.getSimpleStack(aExoticInputs[aCasingSlot], 16), + CI.getTieredComponent(OrePrefixes.plate, j, 16), + new Object[] { CI.getTieredCircuitOreDictName(j), 8 }, + CI.getTieredComponent(OrePrefixes.wireGt16, j + 1, 32), + CI.getTieredComponent(OrePrefixes.bolt, j, 8), + CI.getTieredComponent(OrePrefixes.screw, j - 1, 8)) + .fluidInputs( + CI.getTieredFluid(j, 144 * 1 * 16), + CI.getTertiaryTieredFluid(j - 2, 144 * 2 * 16), + CI.getAlternativeTieredFluid(j, 144 * 16), + CI.getTertiaryTieredFluid(j - 1, 144 * 16)) + .itemOutputs(aGemBatteries[aCasingSlot++]) + .eut(GT_Values.V[j]) + .duration(2 * MINUTES) + .addTo(AssemblyLine); + } + + if (Baubles.isModLoaded()) { + // Nano Healer + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemUtils.simpleMetaStack(Items.golden_apple, 1, 1)) + .metadata(RESEARCH_TIME, 10 * MINUTES) + .itemInputs( + ItemUtils.getSimpleStack(aGemCasings[2], 4), + CI.getTieredComponent(OrePrefixes.plate, 8, 32), + new Object[] { CI.getTieredCircuitOreDictName(7), 16 }, + CI.getTieredComponent(OrePrefixes.cableGt02, 7, 16), + CI.getTieredComponent(OrePrefixes.gearGt, 6, 6), + CI.getTieredComponent(OrePrefixes.screw, 7, 16), + CI.getTieredComponent(OrePrefixes.bolt, 5, 24), + CI.getTieredComponent(OrePrefixes.frameGt, 4, 12), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 3, 64)) + .fluidInputs( + CI.getTieredFluid(7, 144 * 18 * 16), + CI.getTertiaryTieredFluid(7, 144 * 18 * 16), + CI.getAlternativeTieredFluid(6, 144 * 18 * 16), + CI.getAlternativeTieredFluid(7, 144 * 18 * 16)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("miscutils:personalHealingDevice", 1)) + .eut(TierEU.RECIPE_ZPM) + .duration(1 * HOURS) + .addTo(AssemblyLine); + + // Charge Pack LuV-UV + + ItemStack[] aChargeResearch = new ItemStack[] { + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore7", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore8", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore9", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore10", 1), }; + + ItemStack[] aChargeOutputs = new ItemStack[] { ItemUtils.getSimpleStack(ModItems.itemChargePack_High_1, 1), + ItemUtils.getSimpleStack(ModItems.itemChargePack_High_2, 1), + ItemUtils.getSimpleStack(ModItems.itemChargePack_High_3, 1), + ItemUtils.getSimpleStack(ModItems.itemChargePack_High_4, 1), }; + + int aCurrSlot = 0; + for (int h = 6; h < 10; h++) { + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, aChargeResearch[aCurrSlot]) + .metadata(RESEARCH_TIME, 10 * (aCurrSlot + 1) * MINUTES) + .itemInputs( + ItemUtils.getSimpleStack(aGemBatteries[aCurrSlot], 2), + aCoilWire[aCurrSlot], + CI.getTieredComponent(OrePrefixes.plate, h, 8), + new Object[] { CI.getTieredCircuitOreDictName(h), 4 }, + new Object[] { CI.getTieredCircuitOreDictName(h - 1), 8 }, + CI.getTieredComponent(OrePrefixes.cableGt12, h - 1, 16), + CI.getTieredComponent(OrePrefixes.screw, h, 16), + CI.getTieredComponent(OrePrefixes.bolt, h - 2, 32), + CI.getFieldGenerator(h - 1, 1)) + .fluidInputs( + CI.getTieredFluid(h, 144 * 4 * 8), + CI.getTertiaryTieredFluid(h - 1, 144 * 4 * 8), + CI.getAlternativeTieredFluid(h - 1, 144 * 4 * 8), + CI.getAlternativeTieredFluid(h - 2, 144 * 4 * 8)) + .itemOutputs(aChargeOutputs[aCurrSlot]) + .eut(GT_Values.V[h]) + .duration((aCurrSlot + 1) * HOURS) + .addTo(AssemblyLine); + aCurrSlot++; + } + + // Cloaking device + GT_Values.RA.stdBuilder() + .metadata( + RESEARCH_ITEM, + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_9_CLOAKING, 1)) + .metadata(RESEARCH_TIME, 10 * MINUTES) + .itemInputs( + ItemUtils.getSimpleStack(aGemCasings[3], 4), + CI.getTieredComponent(OrePrefixes.plate, 8, 32), + new Object[] { CI.getTieredCircuitOreDictName(7), 16 }, + CI.getTieredComponent(OrePrefixes.cableGt04, 8, 16), + CI.getTieredComponent(OrePrefixes.gearGt, 7, 6), + CI.getTieredComponent(OrePrefixes.screw, 8, 16), + CI.getTieredComponent(OrePrefixes.bolt, 7, 24), + CI.getTieredComponent(OrePrefixes.frameGt, 5, 12), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 3, 64)) + .fluidInputs( + CI.getTieredFluid(8, 144 * 18 * 16), + CI.getTertiaryTieredFluid(8, 144 * 18 * 16), + CI.getAlternativeTieredFluid(7, 144 * 18 * 16), + CI.getAlternativeTieredFluid(8, 144 * 18 * 16)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("miscutils:personalCloakingDevice-0.0", 1)) + .eut(TierEU.RECIPE_UV) + .duration(1 * HOURS) + .addTo(AssemblyLine); + } + + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, GregtechItemList.Industrial_AlloyBlastSmelter.get(1, new Object() {})) + .metadata(RESEARCH_TIME, 30 * MINUTES) + .itemInputs( + GregtechItemList.Industrial_AlloyBlastSmelter.get(64L, new Object() {}), + GregtechItemList.Industrial_AlloyBlastSmelter.get(64L, new Object() {}), + GregtechItemList.Industrial_AlloyBlastSmelter.get(64L, new Object() {}), + GregtechItemList.Industrial_AlloyBlastSmelter.get(64L, new Object() {}), + ItemList.UV_Coil.get(16L, new Object() {}), + ItemList.Conveyor_Module_UV.get(4L, new Object() {}), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 8 }, + new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 16 }, + ItemList.Circuit_Chip_PPIC.get(16, new Object() {}), + ALLOY.PIKYONIUM.getPlate(16), + ALLOY.CINOBITE.getScrew(32)) + .fluidInputs( + ALLOY.PIKYONIUM.getFluidStack(144 * 8), + ALLOY.INDALLOY_140.getFluidStack(144 * 9), + Materials.SolderingAlloy.getMolten(144 * 10)) + .itemOutputs(GregtechItemList.Mega_AlloyBlastSmelter.get(1L)) + .eut(TierEU.RECIPE_UHV / 2) + .duration(1 * MINUTES) + .addTo(AssemblyLine); + } + + private static void laserEngraverRecipes() { + + // Laser Sensors and Emitters together + GregtechItemList[] aTransParts = new GregtechItemList[] { GregtechItemList.TransmissionComponent_LV, + GregtechItemList.TransmissionComponent_MV, GregtechItemList.TransmissionComponent_HV, + GregtechItemList.TransmissionComponent_EV, GregtechItemList.TransmissionComponent_IV, + GregtechItemList.TransmissionComponent_LuV, GregtechItemList.TransmissionComponent_ZPM, + GregtechItemList.TransmissionComponent_UV, GregtechItemList.TransmissionComponent_UHV, }; + for (int i = 1; i < aTransParts.length; i++) { + GT_Values.RA.stdBuilder() + .itemInputs(CI.getEmitter(i, 2), CI.getSensor(i, 2)) + .itemOutputs(aTransParts[i - 1].get(1)) + .duration(5 * SECONDS) + .eut(GT_Values.VP[i]) + .addTo(laserEngraverRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 6L), + GregtechItemList.Laser_Lens_Special.get(0)) + .itemOutputs(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getDust(1)) + .duration(3 * MINUTES) + .eut(MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.vTier)) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 8L), + GregtechItemList.Laser_Lens_Special.get(0)) + .itemOutputs(ELEMENT.STANDALONE.ASTRAL_TITANIUM.getDust(1)) + .duration(2 * MINUTES) + .eut(MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.ASTRAL_TITANIUM.vTier)) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ALLOY.NITINOL_60.getBlock(2), GregtechItemList.Laser_Lens_Special.get(0)) + .itemOutputs(ELEMENT.STANDALONE.ADVANCED_NITINOL.getBlock(1)) + .duration(1 * MINUTES) + .eut(MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.ADVANCED_NITINOL.vTier)) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 64L), + GregtechItemList.Laser_Lens_Special.get(0)) + .itemOutputs(ELEMENT.STANDALONE.CHRONOMATIC_GLASS.getDust(1)) + .duration(5 * MINUTES) + .eut(MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.CHRONOMATIC_GLASS.vTier)) + .addTo(laserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(CI.getFieldGenerator(6, 1), CI.getEmitter(7, 2)) + .itemOutputs(ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_1_CONTAINMENT, 1)) + .duration(5 * MINUTES) + .eut(TierEU.RECIPE_IV) + .addTo(laserEngraverRecipes); + + // Distillus Upgrade Chip + GT_Values.RA.stdBuilder() + .itemInputs( + GregtechItemList.Laser_Lens_WoodsGlass.get(0), + ItemUtils.simpleMetaStack(AgriculturalChem.mBioCircuit, 20, 1)) + .itemOutputs(GregtechItemList.Distillus_Upgrade_Chip.get(1)) + .duration(5 * MINUTES) + .eut(TierEU.RECIPE_IV) + .addTo(laserEngraverRecipes); + } + + private static void breweryRecipes() { + + if (Loader.isModLoaded("OpenBlocks")) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(14)) + .fluidInputs(FluidRegistry.getFluidStack("mobessence", 100)) + .fluidOutputs(FluidRegistry.getFluidStack("liquidxp", 1332)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(brewingRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(14)) + .fluidInputs(FluidRegistry.getFluidStack("liquidxp", 1332)) + .fluidOutputs(FluidRegistry.getFluidStack("mobessence", 100)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(brewingRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Rainforest)) + .fluidInputs(Materials.Water.getFluid(100L)) + .fluidOutputs(Materials.Biomass.getFluid(100L)) + .duration(1 * MINUTES) + .eut(3) + .addTo(brewingRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Rainforest)) + .fluidInputs(Materials.Honey.getFluid(100L)) + .fluidOutputs(Materials.Biomass.getFluid(100L)) + .duration(1 * MINUTES) + .eut(3) + .addTo(brewingRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Rainforest)) + .fluidInputs(FluidUtils.getFluidStack("juice", 100)) + .fluidOutputs(Materials.Biomass.getFluid(100L)) + .duration(1 * MINUTES) + .eut(3) + .addTo(brewingRecipes); + } + + private static void cuttingSawRecipes() { + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("blockMeatRaw", 1)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("plateMeatRaw", 9)) + .duration(16 * TICKS) + .eut(TierEU.RECIPE_ULV) + .addTo(cutterRecipes); + } + + private static void electrolyzerRecipes() { + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(ModItems.dustDecayedRadium226, 1)) + .fluidOutputs(FluidUtils.getFluidStack("radon", 144)) + .duration(1 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_HV / 2) + .addTo(electrolyzerRecipes); + } + + private static void extruderRecipes() { + // Osmium Credits + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("blockOsmium", 1), ItemList.Shape_Mold_Credit.get(0)) + .itemOutputs(ItemList.Credit_Greg_Osmium.get(1)) + .duration(6 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_EV / 2) + .addTo(extruderRecipes); + } + + private static void blastSmelterRecipes() { + + // Eglin Steel + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(6), ELEMENT.getInstance().IRON.getDust(4), + ALLOY.KANTHAL.getDust(1), ALLOY.INVAR.getDust(5), ELEMENT.getInstance().SULFUR.getDust(1), + ELEMENT.getInstance().CARBON.getDust(1), ELEMENT.getInstance().SILICON.getDust(4) }, + ALLOY.EGLIN_STEEL.getFluidStack(16 * 144), + 0, + 20 * 45, + 120); + + // HG1223 + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(5), ELEMENT.getInstance().BARIUM.getDust(2), + ELEMENT.getInstance().CALCIUM.getDust(2), ELEMENT.getInstance().COPPER.getDust(3), }, + new FluidStack[] { ELEMENT.getInstance().OXYGEN.getFluidStack(8000), + ELEMENT.getInstance().MERCURY.getFluidStack(1000), }, + ALLOY.HG1223.getFluidStack(16 * 144), + null, + new int[] { 10000 }, // Output Chance + 20 * 120, + 30720); + + // NITINOL_60 + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(2), ELEMENT.getInstance().TITANIUM.getDust(3), + ELEMENT.getInstance().NICKEL.getDust(2) }, + ALLOY.NITINOL_60.getFluidStack(5 * 144), + 0, + 20 * 75, + 7680); + + // INDALLOY_140 + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(5), ELEMENT.getInstance().BISMUTH.getDust(47), + ELEMENT.getInstance().LEAD.getDust(25), ELEMENT.getInstance().TIN.getDust(13), + ELEMENT.getInstance().CADMIUM.getDust(10), ELEMENT.getInstance().INDIUM.getDust(5) }, + ALLOY.INDALLOY_140.getFluidStack(100 * 144), + 0, + 20 * 40, + 7680); + + // Germanium Roasting + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(15), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedSphalerite", 8), + ELEMENT.getInstance().CARBON.getDust(32), }, + Materials.SulfuricAcid.getFluid(2000), + ELEMENT.getInstance().GERMANIUM.getFluidStack(288), + 0, + 20 * 300, + 4000); + + // Rhenium Roasting + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(20), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedScheelite", 8), + ELEMENT.getInstance().CARBON.getDust(32), }, + Materials.SulfuricAcid.getFluid(10000), + ELEMENT.getInstance().RHENIUM.getFluidStack(144), + 0, + 20 * 300, + 4000); + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(20), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedMolybdenite", 8), + ELEMENT.getInstance().CARBON.getDust(32), }, + Materials.SulfuricAcid.getFluid(7500), + ELEMENT.getInstance().RHENIUM.getFluidStack(144), + 0, + 20 * 300, + 4000); + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(20), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedMolybdenum", 8), + ELEMENT.getInstance().CARBON.getDust(32), }, + Materials.SulfuricAcid.getFluid(5000), + ELEMENT.getInstance().RHENIUM.getFluidStack(288), + 0, + 20 * 300, + 4000); + + // Thallium Roasting + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(21), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedZinc", 3), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedPyrite", 4), + ELEMENT.getInstance().CARBON.getDust(16), }, + Materials.SulfuricAcid.getFluid(1250), + ELEMENT.getInstance().THALLIUM.getFluidStack(288), + new ItemStack[] {}, + new int[] { 0 }, + 20 * 75, + 8000, + 3700, + false); + + // Strontium processing + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(21), MISC_MATERIALS.STRONTIUM_OXIDE.getDust(8), + ELEMENT.getInstance().ALUMINIUM.getDust(8), }, + (FluidStack) null, + ELEMENT.getInstance().OXYGEN.getFluidStack(8000), + new ItemStack[] { ELEMENT.getInstance().ALUMINIUM.getIngot(8), + ELEMENT.getInstance().STRONTIUM.getIngot(8) }, + new int[] { 10000, 10000 }, // Output Chance + 20 * 120, + 480 * 4); + + // molten botmium + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(4), + ItemUtils.getItemStackOfAmountFromOreDict("dustNitinol60", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustOsmium", 6), + ItemUtils.getItemStackOfAmountFromOreDict("dustRuthenium", 6), + ItemUtils.getItemStackOfAmountFromOreDict("dustThallium", 3) }, + GT_Values.NF, + ALLOY.BOTMIUM.getFluidStack(2304), + 0, + 20 * 120, + 491520); + + // molten precious metals alloy + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(6), + ItemUtils.getItemStackOfAmountFromOreDict("dustRuthenium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustRhodium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustPalladium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustPlatinum", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustOsmium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustIridium", 1) }, + GT_Values.NF, + FluidUtils.getFluidStack("molten.precious metals alloy", 864), + 0, + 20 * 540, + 7864320); + } + + private static void dehydratorRecipes() { + Logger.INFO("Loading Recipes for Chemical Dehydrator."); + + ItemStack cropGrape = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cropGrape", 1); + ItemStack foodRaisins = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("foodRaisins", 1); + + if (cropGrape != null && foodRaisins != null) CORE.RA.addDehydratorRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(20), cropGrape }, // Item + null, // Fluid input (slot 1) + null, // Fluid output (slot 2) + new ItemStack[] { foodRaisins }, // Output + new int[] { 10000 }, + 10, // Time in ticks + 2); // EU + + // Process Waste Water + CORE.RA.addDehydratorRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(21) }, + FluidUtils.getFluidStack("fluid.sludge", 1000), + FluidUtils.getFluidStack("nitricacid", 10), + new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustTinyIron", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyCopper", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyTin", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyNickel", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyCobalt", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyAluminium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinySilver", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyGold", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyIridium", 1) }, + new int[] { 10, 5, 5, 4, 4, 3, 2, 2, 1 }, + 2 * 20, + 500); // EU + + // C8H10 = C8H8 + 2H + CORE.RA.addDehydratorRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), CI.emptyCells(3) }, + FluidUtils.getFluidStack("fluid.ethylbenzene", 1000), + null, + new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("cellStyrene", 1), + ItemUtils.getItemStackOfAmountFromOreDict("cellHydrogen", 2) }, + new int[] { 10000, 10000 }, + 3 * 20, + 30); + + /* + * Add custom recipes for drying leather + */ + if (Backpack.isModLoaded()) { + CORE.RA.addDehydratorRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), new ItemStack(Items.leather, 2) }, + FluidUtils.getFluidStack("fluid.ethylbenzene", 1000), + null, + new ItemStack[] { ItemUtils.getCorrectStacktype("Backpack:tannedLeather", 1) }, + new int[] { 10000 }, + 5 * 20, + 180); + if (NewHorizonsCoreMod.isModLoaded()) { + CORE.RA.addDehydratorRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), + GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.ArtificialLeather", 2L, 0) }, + FluidUtils.getFluidStack("fluid.ethylbenzene", 1000), + null, + new ItemStack[] { ItemUtils.getCorrectStacktype("Backpack:tannedLeather", 1) }, + new int[] { 10000 }, + 5 * 20, + 180); + } + } + // Alternative ACETIC ANHYDRIDE recipe for Kevlar Line + // 2C2H4O2 = C4H6O3 + H2O + CORE.RA.addDehydratorRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), CI.emptyCells(1) }, + FluidUtils.getFluidStack("aceticacid", 2000), + MISC_MATERIALS.ACETIC_ANHYDRIDE.getFluidStack(1000), + new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 1), }, + new int[] { 10000 }, + 30 * 20, + 480); + } + + private static void largeChemReactorRecipes() { + // Styrene + // C8H10 = C8H8 + 2H + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .itemOutputs() + .fluidInputs(FluidUtils.getFluidStack("fluid.ethylbenzene", 1000)) + .fluidOutputs(Materials.Styrene.getFluid(1000L), Materials.Hydrogen.getGas(2000)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(multiblockChemicalReactorRecipes); + + // Short-cut Styrene + // C6H6 + C2H4 = C8H8 + 2H + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .itemOutputs() + .fluidInputs(Materials.Ethylene.getGas(500L), Materials.Benzene.getFluid(500L)) + .fluidOutputs(Materials.Styrene.getFluid(500L), Materials.Hydrogen.getGas(1000)) + .duration(12 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(multiblockChemicalReactorRecipes); + } + + private static void assemblerRecipes() { + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Vanadium, 32L), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.VanadiumSteel, 8L)) + .itemOutputs(ItemUtils.simpleMetaStack(ModItems.itemHalfCompleteCasings, 0, 4)) + .fluidInputs(Materials.Oxygen.getGas(8000L)) + .duration(16 * SECONDS) + .eut(TierEU.RECIPE_MV / 2) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.simpleMetaStack(ModItems.itemHalfCompleteCasings, 0, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VanadiumGallium, 8L)) + .itemOutputs(ItemUtils.simpleMetaStack(ModItems.itemHalfCompleteCasings, 1, 8)) + .fluidInputs(Materials.Tantalum.getMolten(4 * INGOTS)) + .duration(32 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.simpleMetaStack(ModItems.itemHalfCompleteCasings, 1, 1), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Lead, 4L), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(3), 4), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorHV, 2L)) + .itemOutputs(ItemUtils.getSimpleStack(GregtechItemList.Casing_Vanadium_Redox.get(1), 1)) + .fluidInputs(Materials.Oxygen.getGas(16 * BUCKETS)) + .duration(3 * SECONDS + 4 * TICKS) + .eut(TierEU.RECIPE_HV / 2) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GregtechItemList.Casing_Vanadium_Redox.get(1), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Titanium, 4L), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(4), 4), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorEV, 2L)) + .itemOutputs(GregtechItemList.Casing_Vanadium_Redox_IV.get(1)) + .fluidInputs(Materials.Nitrogen.getGas(16 * BUCKETS)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GregtechItemList.Casing_Vanadium_Redox_IV.get(1), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.TungstenSteel, 4L), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(5), 4), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorIV, 2L)) + .itemOutputs(GregtechItemList.Casing_Vanadium_Redox_LuV.get(1)) + .fluidInputs(Materials.Helium.getGas(8 * BUCKETS)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GregtechItemList.Casing_Vanadium_Redox_LuV.get(1), + ItemUtils.getItemStackOfAmountFromOreDict("plateAlloyIridium", 16), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(6), 4), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 2L)) + .itemOutputs(GregtechItemList.Casing_Vanadium_Redox_ZPM.get(1)) + .fluidInputs(Materials.Argon.getGas(4 * BUCKETS)) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GregtechItemList.Casing_Vanadium_Redox_ZPM.get(1), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Naquadah, 4L), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(7), 4), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorZPM, 2L)) + .itemOutputs(GregtechItemList.Casing_Vanadium_Redox_UV.get(1)) + .fluidInputs(Materials.Radon.getGas(4 * BUCKETS)) + .duration(50 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GregtechItemList.Casing_Vanadium_Redox_UV.get(1), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Americium, 4L), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(8), 4), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUV, 2L)) + .itemOutputs(GregtechItemList.Casing_Vanadium_Redox_MAX.get(1)) + .fluidInputs(FluidUtils.getFluidStack("krypton", 500)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getSimpleStack(CI.explosiveITNT, 2), + ItemUtils.getSimpleStack(CI.explosiveTNT, 4), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 2L), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Iron, 1L)) + .itemOutputs(ItemUtils.getSimpleStack(ModBlocks.blockMiningExplosive, 3)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_MV / 2) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherStar, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 8L), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.BlackSteel, 8L)) + .itemOutputs(ItemUtils.getSimpleStack(ModBlocks.blockWitherGuard, 64)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + CI.fluidRegulator_LV, + CI.electricMotor_LV, + CI.getTieredComponent(OrePrefixes.bolt, 1, 8), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Brass, 1L), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Brass, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 2L)) + .itemOutputs(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 1, 1)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + CI.fluidRegulator_MV, + CI.electricMotor_MV, + CI.getTieredComponent(OrePrefixes.bolt, 2, 8), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Invar, 1L), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Invar, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2L)) + .itemOutputs(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 2, 1)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + CI.fluidRegulator_HV, + CI.electricMotor_HV, + CI.getTieredComponent(OrePrefixes.bolt, 3, 8), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Chrome, 1L), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Chrome, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 2L)) + .itemOutputs(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 3, 1)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + CI.fluidRegulator_EV, + CI.electricMotor_EV, + CI.getTieredComponent(OrePrefixes.bolt, 4, 8), + GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Titanium, 1L), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Titanium, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 2L)) + .itemOutputs(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 4, 1)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 1, 1), GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(ItemUtils.simpleMetaStack(ModItems.toolGregtechPump, 1000, 1)) + .duration(1 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 2, 1), GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(ItemUtils.simpleMetaStack(ModItems.toolGregtechPump, 1001, 1)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 3, 1), GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(ItemUtils.simpleMetaStack(ModItems.toolGregtechPump, 1002, 1)) + .duration(24 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 4, 1), GT_Utility.getIntegratedCircuit(20)) + .itemOutputs(ItemUtils.simpleMetaStack(ModItems.toolGregtechPump, 1003, 1)) + .duration(1 * MINUTES + 36 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + // Low tier Charge Packs + + final ItemStack[] aPackBatteries = new ItemStack[] { ItemList.Battery_RE_LV_Lithium.get(4), + ItemList.Battery_RE_MV_Lithium.get(4), ItemList.Battery_RE_HV_Lithium.get(4), + GregtechItemList.Battery_RE_EV_Lithium.get(4), ItemList.Energy_LapotronicOrb.get(4), }; + final ItemStack[] aPackPlates = new ItemStack[] { CI.getPlate(1, 8), CI.getPlate(2, 8), CI.getPlate(3, 8), + CI.getPlate(4, 8), CI.getPlate(5, 8), }; + final ItemStack[] aPackWire = new ItemStack[] { CI.getTieredComponent(OrePrefixes.wireGt02, 1, 6), + CI.getTieredComponent(OrePrefixes.wireGt04, 2, 6), CI.getTieredComponent(OrePrefixes.wireGt08, 3, 6), + CI.getTieredComponent(OrePrefixes.wireGt12, 4, 6), CI.getTieredComponent(OrePrefixes.wireGt16, 5, 6), }; + final ItemStack[] aPackCircuit = new ItemStack[] { CI.getTieredComponent(OrePrefixes.circuit, 1, 4), + CI.getTieredComponent(OrePrefixes.circuit, 2, 4), CI.getTieredComponent(OrePrefixes.circuit, 3, 4), + CI.getTieredComponent(OrePrefixes.circuit, 4, 4), CI.getTieredComponent(OrePrefixes.circuit, 5, 4), }; + final ItemStack[] aPackRing = new ItemStack[] { CI.getTieredComponent(OrePrefixes.ring, 1, 12), + CI.getTieredComponent(OrePrefixes.ring, 2, 12), CI.getTieredComponent(OrePrefixes.ring, 3, 12), + CI.getTieredComponent(OrePrefixes.ring, 4, 12), CI.getTieredComponent(OrePrefixes.ring, 5, 12), }; + final ItemStack[] aPackOutput = new ItemStack[] { ItemUtils.getSimpleStack(ModItems.itemChargePack_Low_1), + ItemUtils.getSimpleStack(ModItems.itemChargePack_Low_2), + ItemUtils.getSimpleStack(ModItems.itemChargePack_Low_3), + ItemUtils.getSimpleStack(ModItems.itemChargePack_Low_4), + ItemUtils.getSimpleStack(ModItems.itemChargePack_Low_5) }; + + for (int i = 1; i < 6; i++) { + + int aAS = i - 1; + + GT_Values.RA.stdBuilder() + .itemInputs( + aPackPlates[aAS], + aPackRing[aAS], + aPackWire[aAS], + aPackCircuit[aAS], + aPackBatteries[aAS], + CI.getSensor(i, 4)) + .itemOutputs(aPackOutput[aAS]) + .fluidInputs(CI.getTieredFluid(i, (144 * 4))) + .duration(30 * i * SECONDS) + .eut(GT_Values.V[i]) + .addTo(assemblerRecipes); + } + + if (Baubles.isModLoaded()) { + + // Turbine Housing Research Page + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(17), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Trinium, 64L), + CI.getSensor(6, 6), + CI.getBolt(7, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Platinum, 64L), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(7), 12)) + .itemOutputs( + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_8_TURBINE_AUTOMATION, 1)) + .fluidInputs(CI.getAlternativeTieredFluid(7, 144 * 32)) + .duration(5 * MINUTES) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + + // Cloaking Device Research Page + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(17), + ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR, 4), + CI.getFieldGenerator(6, 16), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Palladium, 32L), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(6), 12)) + .itemOutputs(ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_9_CLOAKING, 1)) + .fluidInputs(CI.getAlternativeTieredFluid(7, 144 * 32)) + .duration(10 * MINUTES) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + } + } + + private static void distilleryRecipes() { + Logger.INFO("Registering Distillery/Distillation Tower Recipes."); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(4)) + .fluidInputs(Materials.Air.getGas(1000L)) + .fluidOutputs(Materials.Helium.getGas(1L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(distilleryRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Air.getGas(20000L)) + .fluidOutputs(Materials.Helium.getGas(25L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV / 2) + .addTo(distillationTowerRecipes); + + // Apatite Distillation + /* + * so if you dissolve aparite in sulphuric acid you'll get a mixture of SO2, H2O, HF and HCl + */ + + GT_Values.RA.stdBuilder() + .fluidInputs(FluidUtils.getFluidStack("sulfuricapatite", 5200)) + .fluidOutputs( + FluidUtils.getFluidStack("sulfurousacid", 3800), + FluidUtils.getFluidStack("hydrogenchloride", 1000), + FluidUtils.getFluidStack("hydrofluoricacid", 400)) + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(distillationTowerRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(FluidUtils.getFluidStack("sulfurousacid", 1000)) + .fluidOutputs(Materials.SulfurDioxide.getGas(500), Materials.Water.getFluid(500)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV / 2) + .addTo(distillationTowerRecipes); + } + + private static void thermalBoilerRecipes() { + Logger.INFO("Registering Thermal Boiler Recipes."); + + // Recipes with special value -1 display additional tooltip in NEI about lava filters. + + // Lava + + GT_Values.RA.stdBuilder() + .fluidInputs(FluidUtils.getLava(1000), FluidUtils.getWater(16_000 / GT_Values.STEAM_PER_WATER)) + .fluidOutputs(FluidUtils.getPahoehoeLava(1000), FluidUtils.getSteam(16_000)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tantalum, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungstate, 1), + new ItemStack(Blocks.obsidian, 1, 0)) + .outputChances(444, 222, 56, 56, 56, 125, 1000) + .specialValue(-1) + .duration(1 * SECONDS) + .eut(0) + .addTo(thermalBoilerRecipes); + + // Pahoehoe Lava + + GT_Values.RA.stdBuilder() + .fluidInputs(FluidUtils.getPahoehoeLava(1000), FluidUtils.getWater(16_000 / GT_Values.STEAM_PER_WATER)) + .fluidOutputs(FluidUtils.getSteam(16_000)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Electrum, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tantalum, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungstate, 1), + new ItemStack(Blocks.obsidian, 1, 0)) + .outputChances(167, 56, 56, 125, 3700) + .specialValue(-1) + .duration(1 * SECONDS) + .eut(0) + .addTo(thermalBoilerRecipes); + + // Hot Coolant + + GT_Values.RA.stdBuilder() + .fluidInputs( + FluidUtils.getFluidStack("ic2hotcoolant", 500), + FluidUtils.getWater(100_000 / GT_Values.STEAM_PER_WATER)) + .fluidOutputs(FluidUtils.getFluidStack("ic2coolant", 500), FluidUtils.getSuperHeatedSteam(100_000)) + .duration(1 * SECONDS) + .eut(0) + .addTo(thermalBoilerRecipes); + + // Solar Salt (Hot) + + GT_Values.RA.stdBuilder() + .fluidInputs( + MISC_MATERIALS.SOLAR_SALT_HOT.getFluidStack(100), + FluidUtils.getWater(100_000 / GT_Values.STEAM_PER_WATER)) + .fluidOutputs(MISC_MATERIALS.SOLAR_SALT_COLD.getFluidStack(100), FluidUtils.getSuperHeatedSteam(100_000)) + .duration(1 * SECONDS) + .eut(0) + .addTo(thermalBoilerRecipes); + } + + private static void addFuels() { + Logger.INFO("Registering New Fuels."); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(Items.lava_bucket)) + .metadata(FUEL_VALUE, 32) + .metadata(FUEL_TYPE, 2) + .duration(0) + .eut(0) + .addTo(GT_RecipeConstants.Fuel); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getIC2Cell(2)) + .metadata(FUEL_VALUE, 32) + .metadata(FUEL_TYPE, 2) + .duration(0) + .eut(0) + .addTo(GT_RecipeConstants.Fuel); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getIC2Cell(11)) + .metadata(FUEL_VALUE, 24) + .metadata(FUEL_TYPE, 2) + .duration(0) + .eut(0) + .addTo(GT_RecipeConstants.Fuel); + } + + private static void extractorRecipes() { + Logger.INFO("Registering Extractor Recipes."); + GT_ModHandler.addExtractionRecipe( + GregtechItemList.Battery_RE_EV_Sodium.get(1L, new Object[0]), + ItemList.Battery_Hull_HV.get(4L, new Object[0])); + GT_ModHandler.addExtractionRecipe( + GregtechItemList.Battery_RE_EV_Cadmium.get(1L, new Object[0]), + ItemList.Battery_Hull_HV.get(4L, new Object[0])); + GT_ModHandler.addExtractionRecipe( + GregtechItemList.Battery_RE_EV_Lithium.get(1L, new Object[0]), + ItemList.Battery_Hull_HV.get(4L, new Object[0])); + } + + private static void fluidExtractorRecipes() { + // Gelid Cryotheum + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cryotheum, 1L)) + .fluidOutputs(FluidUtils.getFluidStack("cryotheum", 250)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV / 2) + .addTo(fluidExtractionRecipes); + + // Ender Fluid + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(Items.ender_pearl)) + .fluidOutputs(FluidUtils.getFluidStack("ender", 250)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(fluidExtractionRecipes); + + // Blazing Pyrotheum + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Pyrotheum, 1L)) + .fluidOutputs(FluidUtils.getFluidStack("pyrotheum", 250)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV / 2) + .addTo(fluidExtractionRecipes); + } + + private static void centrifugeRecipes() { + + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(2), MISC_MATERIALS.SOLAR_SALT_COLD.getCell(1)) + .itemOutputs( + MISC_MATERIALS.SODIUM_NITRATE.getDust(3), + MISC_MATERIALS.POTASSIUM_NITRATE.getDust(2), + CI.emptyCells(1)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + } + + private static void mixerRecipes() { + + GT_Values.RA.stdBuilder() + .itemInputs( + CI.getNumberedAdvancedCircuit(2), + CI.emptyCells(1), + MISC_MATERIALS.SODIUM_NITRATE.getDust(3), + MISC_MATERIALS.POTASSIUM_NITRATE.getDust(2)) + .itemOutputs(MISC_MATERIALS.SOLAR_SALT_COLD.getCell(1)) + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + CI.getNumberedAdvancedCircuit(2), + Materials.Titanium.getDust(9), + Materials.Carbon.getDust(9), + Materials.Potassium.getDust(9), + Materials.Lithium.getDust(9), + Materials.Sulfur.getDust(9)) + .itemOutputs(ALLOY.LEAGRISIUM.getDust(50)) + .fluidInputs(Materials.Hydrogen.getGas(5000)) + .duration(1 * MINUTES) + .eut(TierEU.RECIPE_EV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + CI.getNumberedAdvancedCircuit(2), + Materials.Steel.getDust(16), + Materials.Molybdenum.getDust(1), + Materials.Titanium.getDust(1), + Materials.Nickel.getDust(4), + Materials.Cobalt.getDust(2)) + .itemOutputs(ALLOY.MARAGING250.getDust(24)) + .duration(1 * MINUTES) + .eut(TierEU.RECIPE_EV) + .addTo(mixerRecipes); + } + + private static void chemicalReactorRecipes() { + + GT_Values.RA.stdBuilder() + .itemInputs( + CI.getNumberedAdvancedCircuit(21), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 32L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Sulfur, 8L)) + .fluidInputs(FluidUtils.getFluidStack("sulfuricacid", 4000)) + .fluidOutputs(FluidUtils.getFluidStack("sulfuricapatite", 8000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // KOH + HNO3 = KNO3 + H2O + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(GenericChem.mPotassiumHydroxide, 3), CI.getNumberedAdvancedCircuit(1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PotassiumNitrade, 5L)) + .fluidInputs(Materials.NitricAcid.getFluid(1000)) + .fluidOutputs(Materials.Water.getFluid(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // Na2CO3 + 2HNO3 = 2NaNO3 + CO2 + H2O + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getSimpleStack(AgriculturalChem.mSodiumCarbonate, 6), + CI.getNumberedAdvancedCircuit(1)) + .itemOutputs(MISC_MATERIALS.SODIUM_NITRATE.getDust(10)) + .fluidInputs(Materials.NitricAcid.getFluid(2000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + } + + private static void blastFurnaceRecipes() { + + // Synthetic Graphite + GT_Values.RA.stdBuilder() + .itemInputs(ALLOY.SILICON_CARBIDE.getDust(16), GT_Utility.getIntegratedCircuit(22)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 8L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Silicon, 8L)) + .fluidInputs(Materials.Nitrogen.getGas(4000)) + .fluidOutputs() + .duration(1 * MINUTES) + .eut(TierEU.RECIPE_IV) + .metadata(COIL_HEAT, 4500) + .addTo(blastFurnaceRecipes); + + } + + private static void compressorRecipes() { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Clay, 1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 9L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, Materials.MeatRaw, 1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.FusionComputer_UV.get(9)) + .itemOutputs(GregtechItemList.Compressed_Fusion_Reactor.get(1)) + .duration(1 * HOURS + 50 * MINUTES) + .eut(TierEU.RECIPE_UV) + .addTo(compressorRecipes); + } + + private static void macerationRecipes() { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.block, Materials.MeatRaw, 1L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 9L)) + .duration(44 * SECONDS) + .eut(4) + .addTo(maceratorRecipes); + + if (ItemUtils.simpleMetaStack("chisel:limestone", 0, 1) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("limestone", 1)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 4L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } + } + + private static void cyclotronRecipes() { + + // Polonium + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(1), + FluidUtils.getFluidStack("molten.bismuth", 1), + new ItemStack[] { GregtechItemList.Pellet_RTG_PO210.get(1) }, + null, + new int[] { 100 }, + 20 * 300 * 100, + 2040 * 4, + 500 * 20); + + // Americium + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(1), + FluidUtils.getFluidStack("molten.americium", 1), + new ItemStack[] { GregtechItemList.Pellet_RTG_AM241.get(4) }, + null, + new int[] { 2500 }, + 20 * 300 * 100, + 1020 * 4, + 500 * 20); // PO Special Value + + // Strontium u235 + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(1), + FluidUtils.getFluidStack("molten.uranium235", 10), + new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, + null, + new int[] { 570 }, + 20 * 300 * 100, + 1020 * 4, + 500 * 20); // PO Special Value + + // Strontium u233 + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(1), + FluidUtils.getFluidStack("molten.uranium233", 10), + new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, + null, + new int[] { 660 }, + 20 * 300 * 100, + 1020 * 4, + 500 * 20); // PO Special Value + + // Strontium pu239 + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(1), + FluidUtils.getFluidStack("molten.plutonium", 10), + new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, + null, + new int[] { 220 }, + 20 * 300 * 100, + 1020 * 4, + 500 * 20); // PO Special Value + + // Plutonium + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(1), + FluidUtils.getFluidStack("molten.plutonium238", 1), + new ItemStack[] { GregtechItemList.Pellet_RTG_PU238.get(2) }, + null, + new int[] { 780 }, + 20 * 300 * 100, + 1020 * 4, + 500 * 20); // PO Special Value + + // Neptunium + CORE.RA.addCyclotronRecipe( + new ItemStack[] { ELEMENT.getInstance().URANIUM238.getDust(1) }, + FluidUtils.getFluidStack("deuterium", 400), + new ItemStack[] { ItemUtils.getSimpleStack(ModItems.dustNeptunium238) }, + null, + new int[] { 500 }, + 20 * 5, + 500 * 4, + 500 * 20); // PO Special Value + + /* + * Particle Science + */ + + // Quark Smash + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(3), + FluidUtils.getFluidStack("plasma.hydrogen", 100), + new ItemStack[] { Particle.getBaseParticle(Particle.UP), Particle.getBaseParticle(Particle.DOWN), + Particle.getBaseParticle(Particle.CHARM), Particle.getBaseParticle(Particle.STRANGE), + Particle.getBaseParticle(Particle.TOP), Particle.getBaseParticle(Particle.BOTTOM), }, + null, + new int[] { 50, 50, 50, 50, 50, 50 }, + 20 * 300 * 9, + (int) MaterialUtils.getVoltageForTier(7), + 750 * 20); + + // Lepton Smash + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(6), + FluidUtils.getFluidStack("plasma.helium", 1500), + new ItemStack[] { Particle.getBaseParticle(Particle.ELECTRON), Particle.getBaseParticle(Particle.MUON), + Particle.getBaseParticle(Particle.TAU), Particle.getBaseParticle(Particle.ELECTRON_NEUTRINO), + Particle.getBaseParticle(Particle.MUON_NEUTRINO), Particle.getBaseParticle(Particle.TAU_NEUTRINO), }, + null, + new int[] { 600, 40, 20, 15, 10, 5 }, + 20 * 300 * 8, + (int) MaterialUtils.getVoltageForTier(7), + 750 * 20); + + // Boson Smash + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(9), + FluidUtils.getFluidStack("plasma.helium", 1500), + new ItemStack[] { Particle.getBaseParticle(Particle.GLUON), Particle.getBaseParticle(Particle.PHOTON), + Particle.getBaseParticle(Particle.Z_BOSON), Particle.getBaseParticle(Particle.W_BOSON), + Particle.getBaseParticle(Particle.HIGGS_BOSON), }, + null, + new int[] { 160, 260, 150, 150, 1 }, + 20 * 300 * 6, + (int) MaterialUtils.getVoltageForTier(7), + 750 * 20); + + // Mixed Smash 1 + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(12), + Materials.Americium.getPlasma(2500), + new ItemStack[] { Particle.getBaseParticle(Particle.GRAVITON), Particle.getBaseParticle(Particle.ETA_MESON), + Particle.getBaseParticle(Particle.PION), Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.NEUTRON), Particle.getBaseParticle(Particle.LAMBDA), + Particle.getBaseParticle(Particle.OMEGA), Particle.getBaseParticle(Particle.HIGGS_BOSON), }, + null, + new int[] { 50, 50, 50, 40, 30, 20, 20, 10 }, + 1000 * 20, + (int) MaterialUtils.getVoltageForTier(8), + 750 * 20); + + // Mixed Smash 1 + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(12), + new FluidStack(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getPlasma(), 2500), + new ItemStack[] { Particle.getBaseParticle(Particle.GRAVITON), Particle.getBaseParticle(Particle.ETA_MESON), + Particle.getBaseParticle(Particle.PION), Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.NEUTRON), Particle.getBaseParticle(Particle.LAMBDA), + Particle.getBaseParticle(Particle.OMEGA), Particle.getBaseParticle(Particle.HIGGS_BOSON), }, + null, + new int[] { 5000, 200, 200, 100, 80, 60, 40, 30 }, + 100 * 20, + (int) MaterialUtils.getVoltageForTier(8), + 750 * 20); + + // Graviton Smash + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(15), + FluidUtils.getFluidStack("plasma.hydrogen", 100), + new ItemStack[] { Particle.getBaseParticle(Particle.GRAVITON), Particle.getBaseParticle(Particle.UNKNOWN) }, + null, + new int[] { 1000, 100 }, + 20 * (90), + (int) MaterialUtils.getVoltageForTier(6), + 1000 * 20); + + FluidStack aPlasma = Materials.Duranium.getMolten(40); + FluidStack aPlasma_NULL = Materials._NULL.getPlasma(1); + + if (aPlasma == null || aPlasma.isFluidEqual(aPlasma_NULL)) { + aPlasma = Materials.Americium.getMolten(20); + } + + // Quantum Anomaly + CORE.RA.addCyclotronRecipe( + new ItemStack[] { CI.getNumberedCircuit(24), Particle.getBaseParticle(Particle.UNKNOWN), }, + aPlasma, + new ItemStack[] { GregtechItemList.Laser_Lens_Special.get(1) }, + null, + new int[] { 100 }, + 20 * (25), + (int) MaterialUtils.getVoltageForTier(8), + 500 * 20); + + /* + * Ions + */ + + int IonCount = 2; + int tenCountA = 2; + int tenCountB = 0; + for (String y : IonParticles.MetaToNameMap.values()) { + if (y.toLowerCase() + .contains("hydrogen")) { + continue; + } + FluidStack aPlasma2 = FluidUtils.getFluidStack("plasma." + y.toLowerCase(), 2); + Materials aTestMat = MaterialUtils.getMaterial(y); + FluidStack aPlasma3 = aTestMat != null ? aTestMat.getPlasma(2) : aPlasma2; + + // Ionize Plasma + if ((aPlasma2 != null && !aPlasma2.isFluidEqual(aPlasma_NULL)) + || (aPlasma3 != null && !aPlasma3.isFluidEqual(aPlasma_NULL))) { + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(1 + (tenCountA - 1)), + aPlasma2 != null ? aPlasma2 : aPlasma3, + new ItemStack[] { Particle.getIon(y, 1), Particle.getIon(y, 2), Particle.getIon(y, 3), + Particle.getIon(y, -1), Particle.getIon(y, -2), Particle.getIon(y, -3), Particle.getIon(y, 1), + Particle.getIon(y, 2), Particle.getIon(y, -1), }, + null, + new int[] { 275, 250, 225, 275, 250, 225, 275, 250, 275 }, + 20 * 20 * (IonCount++) * tenCountA, + (int) MaterialUtils.getVoltageForTier(7), + 1500 * 20 * tenCountA); + } else { + Logger.INFO("Plasma for " + y + " does not exist, please report this to Alkalus."); + } + + if (tenCountB == 12) { + tenCountB = 0; + tenCountA++; + } else { + tenCountB++; + } + } + + // Generate Hydrogen Ion Recipe + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(24), + FluidUtils.getWildcardFluidStack("hydrogen", 1000), + new ItemStack[] { Particle.getIon("Hydrogen", 1), Particle.getIon("Hydrogen", 2), + Particle.getIon("Hydrogen", 3), Particle.getIon("Hydrogen", 1), Particle.getIon("Hydrogen", 2), + Particle.getIon("Hydrogen", 3), Particle.getIon("Hydrogen", -1), Particle.getIon("Hydrogen", -2), + Particle.getIon("Hydrogen", -3) }, + null, + new int[] { 500, 500, 500, 500, 500, 500, 500, 500, 500 }, + 20 * 20, + (int) MaterialUtils.getVoltageForTier(6), + 2500); + + // Generate Hydrogen Plasma Recipe + CORE.RA.addCyclotronRecipe( + new ItemStack[] { CI.getNumberedCircuit(21), Particle.getIon("Hydrogen", 0), }, + FluidUtils.getFluidStack("hydrogen", 1000), + new ItemStack[] { Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.NEUTRON), + Particle.getBaseParticle(Particle.ELECTRON), Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), Particle.getBaseParticle(Particle.UNKNOWN), }, + FluidUtils.getFluidStack("plasma.hydrogen", 100), + new int[] { 1250, 1250, 1250, 750, 750, 750 }, + 20 * 60 * 2, + (int) MaterialUtils.getVoltageForTier(6), + 750 * 20); + + // Generate Protons Easily + CORE.RA.addCyclotronRecipe( + new ItemStack[] { CI.getNumberedCircuit(20), Particle.getIon("Hydrogen", 0) }, + FluidUtils.getWildcardFluidStack("hydrogen", 100), + new ItemStack[] { Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), }, + null, + new int[] { 750, 750, 750, 750, 750, 750, 750, 750, 750 }, + 20 * 20, + (int) MaterialUtils.getVoltageForTier(6), + 1500); + + CORE.RA.addCyclotronRecipe( + new ItemStack[] { CI.getNumberedCircuit(22), Particle.getBaseParticle(Particle.UNKNOWN), }, + FluidUtils.getWildcardFluidStack("hydrogen", 100), + new ItemStack[] { Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), }, + null, + new int[] { 375, 375, 375, 375, 375, 375, 375, 375, 375 }, + 20 * 20, + (int) MaterialUtils.getVoltageForTier(6), + 1500); + + // Create Strange Dust + CORE.RA.addCyclotronRecipe( + new ItemStack[] { ELEMENT.getInstance().PLUTONIUM238.getDust(1), Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), }, + FluidUtils.getFluidStack(FluidUtils.getWildcardFluidStack("ender", 1000), 1000), + new ItemStack[] { ORES.DEEP_EARTH_REACTOR_FUEL_DEPOSIT.getDust(1) }, + null, + new int[] { 2500 }, + 20 * 60 * 15, + (int) MaterialUtils.getVoltageForTier(7), + 250); + } +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java new file mode 100644 index 0000000000..5e198bfac4 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java @@ -0,0 +1,475 @@ +package gtPlusPlus.core.recipe; + +import static gregtech.api.enums.Mods.EnderIO; +import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gtPlusPlus.core.recipe.common.CI.bitsd; +import static gtPlusPlus.core.util.minecraft.ItemUtils.getSimpleStack; +import static gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechConduits.generatePipeRecipes; +import static gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechConduits.generateWireRecipes; + +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.TierEU; +import gregtech.api.util.GT_ModHandler; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.ALLOY; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; +import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; +import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; +import gtPlusPlus.xmod.gregtech.common.helpers.VolumetricFlaskHelper; + +public class RECIPES_General { + + static final ItemStack NULL = null; + static ItemStack RECIPE_Paper; + static ItemStack RECIPE_Dirt; + static ItemStack RECIPE_Snow; + static ItemStack RECIPE_Obsidian; + static String RECIPE_LapisDust = "dustLazurite"; + static ItemStack OUTPUT_Blueprint; + static ItemStack RECIPE_CraftingTable; + static ItemStack RECIPE_BasicCasingIC2; + + public static void loadRecipes() { + RECIPE_Paper = ItemUtils.getSimpleStack(Items.paper); + RECIPE_Dirt = ItemUtils.getSimpleStack(Blocks.dirt); + RECIPE_Snow = ItemUtils.getSimpleStack(Blocks.snow); + RECIPE_Obsidian = ItemUtils.getSimpleStack(Blocks.obsidian); + RECIPE_CraftingTable = ItemUtils.getSimpleStack(Blocks.crafting_table); + RECIPE_BasicCasingIC2 = ItemUtils.getItemStackFromFQRN("IC2:blockMachine", 1); + OUTPUT_Blueprint = ItemUtils.getSimpleStack(ModItems.itemBlueprintBase, 2); + run(); + addCompressedObsidian(); + migratedRecipes(); + } + + private static void run() { + // Workbench Blueprint + RecipeUtils.addShapedRecipe( + RECIPE_Paper, + RECIPE_LapisDust, + NULL, + RECIPE_Paper, + RECIPE_LapisDust, + NULL, + RECIPE_LapisDust, + RECIPE_LapisDust, + NULL, + OUTPUT_Blueprint); + + // Rainforest oak Sapling + if (RecipeUtils.addShapedRecipe( + "stickWood", + "stickWood", + "stickWood", + "stickWood", + "treeSapling", + "stickWood", + "stickWood", + "dustBone", + "stickWood", + ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Rainforest))) { + Logger.INFO("Added a recipe for Rainforest oak Saplings."); + } + + // Iron bars + final ItemStack ironBars = ItemUtils.getItemStackFromFQRN("dreamcraft:item.SteelBars", 1); + + // Fish Trap + if (RecipeUtils.addShapedRecipe( + ironBars, + ironBars, + ironBars, + ironBars, + "frameGtWroughtIron", + ironBars, + ironBars, + ironBars, + ironBars, + ItemUtils.getSimpleStack(ModBlocks.blockFishTrap))) { + Logger.INFO("Added a recipe for the Fish Trap."); + } + + // Potin + if (RecipeUtils.addShapelessGregtechRecipe( + new Object[] { "dustLead", "dustBronze", "dustTin", "dustLead", "dustBronze" }, + ALLOY.POTIN.getDust(5))) { + Logger.INFO("Added shapeless recipe for Potin Dust."); + } + + // Tumbaga + if (RecipeUtils.addShapelessGregtechRecipe( + new Object[] { "dustGold", "dustGold", "dustCopper" }, + ItemUtils.getSimpleStack(ModItems.dustTumbagaMix))) { + Logger.INFO("Added shapeless recipe for Tumbaga Mix."); + } + if (RecipeUtils.addShapelessGregtechRecipe( + new Object[] { ItemUtils.getSimpleStack(ModItems.dustTumbagaMix), + ItemUtils.getSimpleStack(ModItems.dustTumbagaMix), ItemUtils.getSimpleStack(ModItems.dustTumbagaMix), + "dustGold" }, + ALLOY.TUMBAGA.getDust(10))) { + Logger.INFO("Added shapeless recipe for Tumbaga Dust."); + } + + if (CORE.ConfigSwitches.enableMachine_Pollution) { + RecipeUtils.addShapedRecipe( + CI.craftingToolFile, + "plateIron", + "stickIron", + "plateIron", + "ringIron", + "plateIron", + "stickIron", + "plateIron", + CI.craftingToolHammer_Hard, + ItemUtils.simpleMetaStack(ModItems.itemBasicTurbine, 0, 1)); + RecipeUtils.addShapedRecipe( + CI.craftingToolFile, + "plateBronze", + "stickBronze", + "plateBronze", + "ringBronze", + "plateBronze", + "stickBronze", + "plateBronze", + CI.craftingToolHammer_Hard, + ItemUtils.simpleMetaStack(ModItems.itemBasicTurbine, 1, 1)); + RecipeUtils.addShapedRecipe( + CI.craftingToolFile, + "plateSteel", + "stickSteel", + "plateSteel", + "ringSteel", + "plateSteel", + "stickSteel", + "plateSteel", + CI.craftingToolHammer_Hard, + ItemUtils.simpleMetaStack(ModItems.itemBasicTurbine, 2, 1)); + } + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getSimpleStack(Blocks.glass, 16), + ItemUtils.getSimpleStack(Blocks.glowstone, 16), + ItemList.Large_Fluid_Cell_Steel.get(1), + CI.getNumberedAdvancedCircuit(4)) + .itemOutputs(VolumetricFlaskHelper.getLargeVolumetricFlask(2)) + .fluidInputs(FluidUtils.getFluidStack("molten.borosilicateglass", 2000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getSimpleStack(Blocks.glass, 64), + ItemUtils.getSimpleStack(Blocks.glowstone, 64), + ItemList.Large_Fluid_Cell_TungstenSteel.get(1), + CI.getNumberedAdvancedCircuit(5)) + .itemOutputs(VolumetricFlaskHelper.getGiganticVolumetricFlask(2)) + .fluidInputs(FluidUtils.getFluidStack("molten.borosilicateglass", 8000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + + // Mining Explosive + Logger.RECIPE("[Inspection] Explosives"); + if (RecipeUtils.addShapedRecipe( + CI.explosiveITNT, + CI.explosiveTNT, + CI.explosiveITNT, + CI.explosiveTNT, + "frameGtIron", + CI.explosiveTNT, + "dustSulfur", + CI.explosiveTNT, + "dustSulfur", + ItemUtils.getSimpleStack(ModBlocks.blockMiningExplosive, 3))) { + Logger.INFO("Added a recipe for Mining Explosives."); + } + + // Alkalus Coin + if (RecipeUtils.addShapedRecipe( + "gemExquisiteRuby", + "gemFlawlessDiamond", + "gemExquisiteDiamond", + "gemFlawlessRuby", + ItemList.Credit_Greg_Osmium.get(1), + "gemFlawlessSapphire", + "gemExquisiteEmerald", + "gemFlawlessEmerald", + "gemExquisiteSapphire", + ItemUtils.getSimpleStack(ModItems.itemAlkalusDisk))) { + Logger.INFO("Added a recipe for The Alkalus Disk."); + } + + /* + * final String fancyGems[] = new String[]{"gemExquisiteDiamond", "gemExquisiteEmerald", "gemExquisiteRuby", + * "gemExquisiteSapphire"}; final ItemStack gemShards[] = new + * ItemStack[]{ItemUtils.simpleMetaStack(ModItems.itemGemShards, 0, 1), + * ItemUtils.simpleMetaStack(ModItems.itemGemShards, 1, 1), ItemUtils.simpleMetaStack(ModItems.itemGemShards, 2, + * 1), ItemUtils.simpleMetaStack(ModItems.itemGemShards, 3, 1)}; int l=0; for (final String gem : fancyGems){ + * GameRegistry.addShapelessRecipe( gemShards[l], ItemUtils.getItemStackOfAmountFromOreDict(gem, 1), new + * ItemStack(ModItems.itemAlkalusDisk, 1, OreDictionary.WILDCARD_VALUE)); l++; } + */ + + Logger.RECIPE("[Inspection] Wither Cage"); + if (RecipeUtils.addShapedRecipe( + "stickBlackSteel", + "plateTungstenSteel", + "stickBlackSteel", + "plateTungstenSteel", + getSimpleStack(Items.nether_star), + "plateTungstenSteel", + "stickBlackSteel", + "plateTungstenSteel", + "stickBlackSteel", + ItemUtils.getSimpleStack(ModBlocks.blockWitherGuard, 32))) { + Logger.INFO("Added a recipe for Wither Cages."); + } + + // Magic Feather + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getSimpleStack(Items.feather, 64), + ItemUtils.getSimpleStack(Blocks.emerald_block, 32), + ItemUtils.getSimpleStack(Blocks.diamond_block, 32), + Materials.Ruby.getBlocks(32), + Materials.Sapphire.getBlocks(32), + ItemUtils.getSimpleStack(Blocks.gold_block, 32)) + .itemOutputs(ItemUtils.getSimpleStack(ModItems.itemMagicFeather, 1)) + .fluidInputs(Materials.Silver.getMolten(32 * 144)) + .duration(2 * MINUTES) + .eut(TierEU.RECIPE_EV) + .addTo(assemblerRecipes); + + // Pest Killer + GT_Values.RA.stdBuilder() + .itemInputs( + CI.getTieredMachineCasing(1), + CI.getElectricPump(2, 1), + CI.getPlate(2, 4), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(0), 2), + CI.getNumberedCircuit(16)) + .itemOutputs(ItemUtils.getSimpleStack(ModBlocks.blockPestKiller)) + .fluidInputs(FluidUtils.getHotWater(500)) + .duration(1 * MINUTES) + .eut(TierEU.RECIPE_LV / 2) + .addTo(assemblerRecipes); + } + + private static boolean addCompressedObsidian() { + // Invert Obsidian + ItemStack aInvertedObsidian = ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 5, 1); + if (RecipeUtils.addShapedRecipe( + getSimpleStack(Items.redstone), + getSimpleStack(Items.glowstone_dust), + getSimpleStack(Items.redstone), + getSimpleStack(Items.glowstone_dust), + ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 1, 1), + getSimpleStack(Items.glowstone_dust), + getSimpleStack(Items.redstone), + getSimpleStack(Items.glowstone_dust), + getSimpleStack(Items.redstone), + aInvertedObsidian)) { + Logger.INFO("Added a recipe for Inverted Obsidian."); + } + + final ItemStack[] mItems = new ItemStack[6]; + mItems[0] = ItemUtils.getSimpleStack(Blocks.obsidian); + for (int r = 0; r < 5; r++) { + mItems[r + 1] = ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, r, 1); + } + + final ItemStack[] mItems2 = new ItemStack[6]; + mItems2[0] = ItemUtils.getSimpleStack(Blocks.glowstone); + for (int r = 0; r < 5; r++) { + mItems2[r + 1] = ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 6 + r, 1); + } + + // Compressed Obsidian 1-5 + for (int r = 0; r < 5; r++) { + + final ItemStack input = mItems[r]; + final ItemStack output = mItems[r + 1]; + + if (RecipeUtils.addShapedRecipe(input, input, input, input, input, input, input, input, input, output)) { + Logger.INFO("Added a recipe for Compressed Obsidian [" + r + "]"); + } + + if (RecipeUtils + .addShapelessGregtechRecipe(new ItemStack[] { output }, ItemUtils.getSimpleStack(input, 9))) { + Logger.INFO("Added a shapeless recipe for Compressed Obsidian [" + r + "]"); + } + } + + // Compressed Glowstone 1-5 + for (int r = 0; r < 5; r++) { + + final ItemStack input = mItems2[r]; + final ItemStack output = mItems2[r + 1]; + + if (RecipeUtils.addShapedRecipe( + input, + input, + input, + input, + r == 2 ? aInvertedObsidian : input, + input, + input, + input, + input, + output)) { + Logger.INFO("Added a recipe for Compressed Glowstone [" + r + "]"); + } + + if (RecipeUtils + .addShapelessGregtechRecipe(new ItemStack[] { output }, ItemUtils.getSimpleStack(input, 9))) { + Logger.INFO("Added a shapeless recipe for Compressed Glowstone [" + r + "]"); + } + } + return true; + } + + private static void migratedRecipes() { + + RecipeUtils.generateMortarRecipe( + ItemUtils.getSimpleStack(ModItems.itemPlateRawMeat), + ItemUtils.getItemStackOfAmountFromOreDict("dustMeatRaw", 1)); + + generateWireRecipes(ELEMENT.getInstance().ZIRCONIUM); + generateWireRecipes(ALLOY.HG1223); + generateWireRecipes(ALLOY.LEAGRISIUM); + generateWireRecipes(ALLOY.TRINIUM_TITANIUM); + generateWireRecipes(ELEMENT.STANDALONE.HYPOGEN); + generateWireRecipes(ELEMENT.STANDALONE.CHRONOMATIC_GLASS); + + // No Material for void, natch. + if (Thaumcraft.isModLoaded()) { + generatePipeRecipes(GT_Materials.Void.mDefaultLocalName, GT_Materials.Void.getMass(), 16); + } + + Material[] gtpp = new Material[] { ALLOY.STABALLOY, ALLOY.TANTALLOY_60, ALLOY.TANTALLOY_61, ALLOY.POTIN, + ALLOY.MARAGING300, ALLOY.MARAGING350, ALLOY.INCONEL_690, ALLOY.INCONEL_792, ALLOY.HASTELLOY_X, + ALLOY.TRINIUM_NAQUADAH_CARBON }; + + for (Material mat : gtpp) { + // generatePipeRecipes multiplies the voltage multiplier by 8 because ??! reasons. + generatePipeRecipes(mat.getLocalizedName(), mat.getMass(), mat.vVoltageMultiplier / 8); + } + + Materials[] h = new Materials[] { Materials.Europium, Materials.Tungsten, Materials.DarkSteel, Materials.Clay, + Materials.Lead, }; + + for (Materials e : h) { + if (e == Materials.DarkSteel) { + if (!EnderIO.isModLoaded()) { + continue; + } + } + int tVoltageMultiplier = (e.mBlastFurnaceTemp >= 2800) ? 64 : 16; + generatePipeRecipes(e.mDefaultLocalName, e.getMass(), tVoltageMultiplier); + } + + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], + ALLOY.MARAGING250.getGear(1), + CI.component_Plate[6], + CI.getTieredCircuitOreDictName(4), + GregtechItemList.Casing_AdvancedVacuum.get(1), + CI.getTieredCircuitOreDictName(4), + CI.component_Plate[5], + ItemList.Hatch_Input_IV.get(1), + CI.component_Plate[5], + GregtechItemList.Hatch_Input_Cryotheum.get(1L)); + + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], + ALLOY.MARAGING300.getGear(1), + CI.component_Plate[6], + CI.getTieredCircuitOreDictName(5), + GregtechItemList.Casing_Adv_BlastFurnace.get(1), + CI.getTieredCircuitOreDictName(5), + CI.component_Plate[6], + ItemList.Hatch_Input_IV.get(1), + CI.component_Plate[6], + GregtechItemList.Hatch_Input_Pyrotheum.get(1L)); + + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[8], + ALLOY.PIKYONIUM.getGear(1), + CI.component_Plate[9], + CI.getTieredCircuitOreDictName(7), + GregtechItemList.Casing_Naq_Reactor_A.get(1), + CI.getTieredCircuitOreDictName(7), + CI.component_Plate[9], + ItemList.Hatch_Input_ZPM.get(1), + CI.component_Plate[8], + GregtechItemList.Hatch_Input_Naquadah.get(1L, new Object[0])); + + if (PollutionUtils.isPollutionEnabled()) { + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Hatch_Muffler_Adv_LV.get(1L, new Object[0]), + bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_LV.get(1), + Character.valueOf('P'), GregtechItemList.Pollution_Cleaner_LV.get(1) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Hatch_Muffler_Adv_MV.get(1L, new Object[0]), + bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_MV.get(1), + Character.valueOf('P'), GregtechItemList.Pollution_Cleaner_MV.get(1) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Hatch_Muffler_Adv_HV.get(1L, new Object[0]), + bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_HV.get(1), + Character.valueOf('P'), GregtechItemList.Pollution_Cleaner_HV.get(1) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Hatch_Muffler_Adv_EV.get(1L, new Object[0]), + bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_EV.get(1), + Character.valueOf('P'), GregtechItemList.Pollution_Cleaner_EV.get(1) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Hatch_Muffler_Adv_IV.get(1L, new Object[0]), + bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_IV.get(1), + Character.valueOf('P'), GregtechItemList.Pollution_Cleaner_IV.get(1) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Hatch_Muffler_Adv_LuV.get(1L, new Object[0]), + bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_LuV.get(1), + Character.valueOf('P'), GregtechItemList.Pollution_Cleaner_LuV.get(1) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Hatch_Muffler_Adv_ZPM.get(1L, new Object[0]), + bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_ZPM.get(1), + Character.valueOf('P'), GregtechItemList.Pollution_Cleaner_ZPM.get(1) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Hatch_Muffler_Adv_UV.get(1L, new Object[0]), + bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_UV.get(1), + Character.valueOf('P'), GregtechItemList.Pollution_Cleaner_UV.get(1) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Hatch_Muffler_Adv_MAX.get(1L, new Object[0]), + bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_MAX.get(1), + Character.valueOf('P'), GregtechItemList.Pollution_Cleaner_MAX.get(1) }); + } + } +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_LaserEngraver.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_LaserEngraver.java new file mode 100644 index 0000000000..1f8d5d9a8e --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_LaserEngraver.java @@ -0,0 +1,135 @@ +package gtPlusPlus.core.recipe; + +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; +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 net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OreDictNames; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.interfaces.IOreRecipeRegistrator; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.everglades.dimension.Dimension_Everglades; + +public class RECIPES_LaserEngraver implements IOreRecipeRegistrator { + + public RECIPES_LaserEngraver() { + OrePrefixes.crafting.add(this); + } + + @Override + public void registerOre(final OrePrefixes aPrefix, final Materials aMaterial, final String aOreDictName, + final String aModName, final ItemStack aStack) { + if (aOreDictName.equals(OreDictNames.craftingLensWhite.toString())) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lithium, 2L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("plateDoubleLithium7", 1)) + .duration(4 * MINUTES) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 3L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustLithium7", 1)) + .duration(2 * MINUTES) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + + } else if (aOreDictName.equals(OreDictNames.craftingLensLime.toString())) { + // Coil Wires + ItemStack coilWire1 = ItemUtils + .getItemStackWithMeta(true, "miscutils:itemDehydratorCoilWire", "coilWire1", 0, 1); + ItemStack coilWire2 = ItemUtils + .getItemStackWithMeta(true, "miscutils:itemDehydratorCoilWire:1", "coilWire2", 1, 1); + ItemStack coilWire3 = ItemUtils + .getItemStackWithMeta(true, "miscutils:itemDehydratorCoilWire:2", "coilWire3", 2, 1); + ItemStack coilWire4 = ItemUtils + .getItemStackWithMeta(true, "miscutils:itemDehydratorCoilWire:3", "coilWire4", 3, 1); + + // Simple Life + String wire = "wireGt02"; + + // Wires to Laser + ItemStack wireT1a = ItemUtils.getItemStackOfAmountFromOreDict(wire + "Aluminium", 1); + ItemStack wireT1b = ItemUtils.getItemStackOfAmountFromOreDict(wire + "Nichrome", 1); + ItemStack wireT2a = ItemUtils.getItemStackOfAmountFromOreDict(wire + "Osmium", 1); + ItemStack wireT2b = ItemUtils.getItemStackOfAmountFromOreDict(wire + "Platinum", 1); + ItemStack wireT3a = ItemUtils.getItemStackOfAmountFromOreDict(wire + "VanadiumGallium", 1); + ItemStack wireT3b = ItemUtils.getItemStackOfAmountFromOreDict(wire + "YttriumBariumCuprate", 1); + ItemStack wireT3c = ItemUtils.getItemStackOfAmountFromOreDict(wire + "NiobiumTitanium", 1); + ItemStack wireT4a = ItemUtils.getItemStackOfAmountFromOreDict(wire + "Naquadah", 1); + + // T1 + GT_Values.RA.stdBuilder() + .itemInputs(wireT1a, GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(coilWire1) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(laserEngraverRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(wireT1b, GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(coilWire1) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(laserEngraverRecipes); + // T2 + GT_Values.RA.stdBuilder() + .itemInputs(wireT2a, GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(coilWire2) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(wireT2b, GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(coilWire2) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(laserEngraverRecipes); + // T3 + GT_Values.RA.stdBuilder() + .itemInputs(wireT3a, GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(coilWire3) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(laserEngraverRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(wireT3b, GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(coilWire3) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(laserEngraverRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(wireT3c, GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(coilWire3) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(laserEngraverRecipes); + // T4 + GT_Values.RA.stdBuilder() + .itemInputs(wireT4a, GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(coilWire4) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(laserEngraverRecipes); + + } else if (aOreDictName.equals(OreDictNames.craftingLensOrange.toString())) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(ModItems.itemAlkalusDisk), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemUtils.getSimpleStack(Dimension_Everglades.portalItem)) + .duration(3 * HOURS) + .eut(TierEU.RECIPE_IV) + .addTo(laserEngraverRecipes); + } + } +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_MachineComponents.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_MachineComponents.java new file mode 100644 index 0000000000..4929872caa --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_MachineComponents.java @@ -0,0 +1,10 @@ +package gtPlusPlus.core.recipe; + +public class RECIPES_MachineComponents { + + // Fluid Pipe + public static String pipeTier7 = "pipeHugeSteel"; + public static String pipeTier8 = "pipeHugeStainlessSteel"; + public static String pipeTier9 = "pipeHugeTitanium"; + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java new file mode 100644 index 0000000000..2f9e347b52 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java @@ -0,0 +1,2960 @@ +package gtPlusPlus.core.recipe; + +import static gregtech.api.enums.Mods.BartWorks; +import static gregtech.api.enums.Mods.EternalSingularity; +import static gregtech.api.enums.Mods.GoodGenerator; +import static gregtech.api.enums.Mods.GregTech; +import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.enums.Mods.RemoteIO; + +import java.util.List; + +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 net.minecraftforge.oredict.OreDictionary; + +import com.github.technus.tectech.recipe.TT_recipeAdder; +import com.github.technus.tectech.thing.CustomItemList; +import com.google.common.collect.ImmutableList; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.item.chemistry.AgriculturalChem; +import gtPlusPlus.core.item.crafting.ItemDummyResearch; +import gtPlusPlus.core.item.crafting.ItemDummyResearch.ASSEMBLY_LINE_RESEARCH; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.ALLOY; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.MISC_MATERIALS; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.MaterialUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; +import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; +import gtPlusPlus.everglades.dimension.Dimension_Everglades; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import gtPlusPlus.xmod.gregtech.common.covers.CoverManager; +import gtPlusPlus.xmod.gregtech.common.helpers.VolumetricFlaskHelper; + +public class RECIPES_Machines { + + // Outputs + public static ItemStack RECIPE_Buffer_ULV = GregtechItemList.Energy_Buffer_1by1_ULV.get(1); + public static ItemStack RECIPE_Buffer_LV = GregtechItemList.Energy_Buffer_1by1_LV.get(1); + public static ItemStack RECIPE_Buffer_MV = GregtechItemList.Energy_Buffer_1by1_MV.get(1); + public static ItemStack RECIPE_Buffer_HV = GregtechItemList.Energy_Buffer_1by1_HV.get(1); + public static ItemStack RECIPE_Buffer_EV = GregtechItemList.Energy_Buffer_1by1_EV.get(1); + public static ItemStack RECIPE_Buffer_IV = GregtechItemList.Energy_Buffer_1by1_IV.get(1); + public static ItemStack RECIPE_Buffer_LuV = GregtechItemList.Energy_Buffer_1by1_LuV.get(1); + public static ItemStack RECIPE_Buffer_ZPM = GregtechItemList.Energy_Buffer_1by1_ZPM.get(1); + public static ItemStack RECIPE_Buffer_UV = GregtechItemList.Energy_Buffer_1by1_UV.get(1); + public static ItemStack RECIPE_Buffer_MAX = GregtechItemList.Energy_Buffer_1by1_MAX.get(1); + // Industrial Centrifuge + public static ItemStack RECIPE_IndustrialCentrifugeController; + public static ItemStack RECIPE_IndustrialCentrifugeCasing; + // Industrial Coke Oven + public static ItemStack RECIPE_IndustrialCokeOvenController; + public static ItemStack RECIPE_IndustrialCokeOvenFrame; + public static ItemStack RECIPE_IndustrialCokeOvenCasingA; + public static ItemStack RECIPE_IndustrialCokeOvenCasingB; + // Industrial Electrolyzer + public static ItemStack RECIPE_IndustrialElectrolyzerController; + public static ItemStack RECIPE_IndustrialElectrolyzerFrame; + // Industrial Material Press + public static ItemStack RECIPE_IndustrialMaterialPressController; + public static ItemStack RECIPE_IndustrialMaterialPressFrame; + // Industrial Maceration Stack + public static ItemStack RECIPE_IndustrialMacerationStackController; + public static ItemStack RECIPE_IndustrialMacerationStackFrame; + // Industrial Wire Factory + public static ItemStack RECIPE_IndustrialWireFactoryController; + public static ItemStack RECIPE_IndustrialWireFactoryFrame; + // Industrial Multi Tank + public static ItemStack RECIPE_IndustrialMultiTankController; + public static ItemStack RECIPE_IndustrialMultiTankFrame; + // Industrial Matter Fabricator + public static ItemStack RECIPE_IndustrialMatterFabController; + public static ItemStack RECIPE_IndustrialMatterFabFrame; + public static ItemStack RECIPE_IndustrialMatterFabCoil; + // Industrial Blast Smelter + public static ItemStack RECIPE_IndustrialBlastSmelterController; + public static ItemStack RECIPE_IndustrialBlastSmelterFrame; + public static ItemStack RECIPE_IndustrialBlastSmelterCoil; + // Industrial Sieve + public static ItemStack RECIPE_IndustrialSieveController; + public static ItemStack RECIPE_IndustrialSieveFrame; + public static ItemStack RECIPE_IndustrialSieveGrate; + // Industrial Tree Farmer + public static ItemStack RECIPE_TreeFarmController; + public static ItemStack RECIPE_TreeFarmFrame; + // Tesseracts + public static ItemStack RECIPE_TesseractGenerator; + public static ItemStack RECIPE_TesseractTerminal; + // Thermal Boiler + public static ItemStack RECIPE_ThermalBoilerController; + public static ItemStack RECIPE_ThermalBoilerCasing; + + // Thorium Reactor + public static ItemStack RECIPE_LFTRController; + public static ItemStack RECIPE_LFTROuterCasing; + public static ItemStack RECIPE_LFTRInnerCasing; + + // Nuclear Salt Processing Plant + public static ItemStack RECIPE_SaltPlantController; + + // Cyclotron + public static ItemStack RECIPE_CyclotronController; + public static ItemStack RECIPE_CyclotronOuterCasing; + public static ItemStack RECIPE_CyclotronInnerCoil; + + // Wire + public static String cableTier4 = "cableGt04Gold"; + public static String cableTier6 = "cableGt04Tungsten"; + + public static String pipeTier1 = "pipeHuge" + "Clay"; + public static String pipeTier2 = "pipeHuge" + "Potin"; + public static String pipeTier3 = "pipeHuge" + "Steel"; + public static String pipeTier4 = "pipeHuge" + "StainlessSteel"; + public static String pipeTier7 = "pipeHuge" + "Tantalloy60"; + + // EV/IV MACHINES + public static ItemStack IV_MACHINE_Electrolyzer; + public static ItemStack EV_MACHINE_Centrifuge; + public static ItemStack EV_MACHINE_BendingMachine; + public static ItemStack IV_MACHINE_Wiremill; + public static ItemStack EV_MACHINE_Macerator; + public static ItemStack IV_MACHINE_Macerator; + public static ItemStack IV_MACHINE_Cutter; + public static ItemStack IV_MACHINE_Extruder; + public static ItemStack HV_MACHINE_Sifter; + public static ItemStack EV_MACHINE_ThermalCentrifuge; + public static ItemStack EV_MACHINE_OreWasher; + public static ItemStack IV_MACHINE_AlloySmelter; + public static ItemStack IV_MACHINE_Mixer; + public static ItemStack EV_MACHINE_ChemicalBath; + + // Plates + public static String plateBronze = "plateBronze"; + public static String plateSteel = "plateSteel"; + + // Pipes + public static String pipeHugeStainlessSteel = "pipeHugeStainlessSteel"; + + // Lava Boiler + public static ItemStack boiler_Coal; + public static ItemStack IC2MFE; + public static ItemStack IC2MFSU; + + // Misc + public static ItemStack INPUT_RCCokeOvenBlock; + + public static final void loadRecipes() { + run(); + Logger.INFO("Loading Recipes for the Various machine blocks."); + } + + private static void run() { + + initModItems(); + tieredMachineHulls(); + energyCores(); + wirelessChargers(); + largeArcFurnace(); + industrialVacuumFurnace(); + fakeMachineCasingCovers(); + overflowValveCovers(); + superBuses(); + distillus(); + algaeFarm(); + chemPlant(); + zyngen(); + milling(); + sparging(); + chisels(); + rockBreaker(); + thermicFluidHeater(); + advHeatExchanger(); + chiselBuses(); + solidifierHatches(); + + gt4FarmManager(); + gt4Inventory(); + + multiForgeHammer(); + multiMolecularTransformer(); + multiXlTurbines(); + multiSolarTower(); + multiElementalDuplicator(); + + resonanceChambers(); + modulators(); + } + + private static void thermicFluidHeater() { + + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(5, 1), + CI.circuitTier5, + CI.getPlate(5, 1), + pipeTier7, + ItemList.Machine_IV_FluidHeater.get(1), + pipeTier7, + CI.getPlate(5, 1), + CI.circuitTier4, + CI.getPlate(5, 1), + GregtechItemList.Controller_IndustrialFluidHeater.get(1)); + } + + private static void advHeatExchanger() { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.Machine_Multi_HeatExchanger.get(1), + CI.getDoublePlate(6, 8), CI.getScrew(6, 16), CI.getCircuit(5, 8) }, + CI.tieredMaterials[5].getMolten(144 * 8), + GregtechItemList.XL_HeatExchanger.get(1), + 20 * 60, + MaterialUtils.getVoltageForTier(6)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.Casing_StableTitanium.get(1), + CI.getPlate(5, 4), CI.getScrew(5, 8), }, + CI.tieredMaterials[5].getMolten(144 * 2), + GregtechItemList.Casing_XL_HeatExchanger.get(1), + 20 * 5, + MaterialUtils.getVoltageForTier(6)); + } + + private static void gt4FarmManager() { + + ItemList[] aInputHatches = new ItemList[] { ItemList.Hatch_Input_LV, ItemList.Hatch_Input_MV, + ItemList.Hatch_Input_HV, ItemList.Hatch_Input_EV, ItemList.Hatch_Input_IV, ItemList.Hatch_Input_LuV, + ItemList.Hatch_Input_ZPM, ItemList.Hatch_Input_UV }; + GregtechItemList[] aOutputMachines = new GregtechItemList[] { GregtechItemList.GT4_Crop_Harvester_LV, + GregtechItemList.GT4_Crop_Harvester_MV, GregtechItemList.GT4_Crop_Harvester_HV, + GregtechItemList.GT4_Crop_Harvester_EV, GregtechItemList.GT4_Crop_Harvester_IV, + GregtechItemList.GT4_Crop_Harvester_LuV, GregtechItemList.GT4_Crop_Harvester_ZPM, + GregtechItemList.GT4_Crop_Harvester_UV }; + + int aTier = 1; + for (int i = 0; i < 8; i++) { + RecipeUtils.addShapedRecipe( + CI.getRobotArm(aTier, 1), + CI.getSensor(aTier, 1), + CI.getRobotArm(aTier, 1), + ItemUtils.getOrePrefixStack(OrePrefixes.toolHeadSense, CI.tieredMaterials[aTier], 1), + CI.getTieredMachineHull(aTier, 1), + ItemUtils.getOrePrefixStack(OrePrefixes.toolHeadSense, CI.tieredMaterials[aTier], 1), + CI.getTieredCircuitOreDictName(aTier), + aInputHatches[i].get(1), + CI.getTieredCircuitOreDictName(aTier), + aOutputMachines[i].get(1)); + aTier++; + } + } + + private static void gt4Inventory() { + + GregtechItemList[] aOutputElectricCraftingTable = new GregtechItemList[] { + GregtechItemList.GT4_Electric_Auto_Workbench_LV, GregtechItemList.GT4_Electric_Auto_Workbench_MV, + GregtechItemList.GT4_Electric_Auto_Workbench_HV, GregtechItemList.GT4_Electric_Auto_Workbench_EV, + GregtechItemList.GT4_Electric_Auto_Workbench_IV, GregtechItemList.GT4_Electric_Auto_Workbench_LuV, + GregtechItemList.GT4_Electric_Auto_Workbench_ZPM, GregtechItemList.GT4_Electric_Auto_Workbench_UV }; + + int aTier = 1; + for (int i = 0; i < 8; i++) { + RecipeUtils.addShapedRecipe( + ItemUtils.getOrePrefixStack(OrePrefixes.plate, CI.tieredMaterials[aTier], 1), + ItemUtils.getSimpleStack(Blocks.crafting_table), + ItemUtils.getOrePrefixStack(OrePrefixes.plate, CI.tieredMaterials[aTier], 1), + CI.getTieredCircuitOreDictName(aTier), + CI.getTieredMachineHull(aTier), + CI.getTieredCircuitOreDictName(aTier), + ItemUtils.getOrePrefixStack(OrePrefixes.plate, CI.tieredMaterials[aTier], 1), + CI.getRobotArm(aTier, 1), + ItemUtils.getOrePrefixStack(OrePrefixes.plate, CI.tieredMaterials[aTier], 1), + aOutputElectricCraftingTable[i].get(1)); + aTier++; + } + } + + private static void multiForgeHammer() { + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(CI.machineHull_IV, 2), ItemList.Machine_IV_Hammer.get(1), + CI.getPlate(4, 8), CI.getBolt(5, 32), ELEMENT.getInstance().ZIRCONIUM.getFineWire(32), + ItemUtils.getItemStackOfAmountFromOreDict("circuitElite", 4) }, + CI.getTieredFluid(4, 144 * 12), + GregtechItemList.Controller_IndustrialForgeHammer.get(1), + 20 * 30, + MaterialUtils.getVoltageForTier(5)); + + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Casing_IndustrialForgeHammer.get(1), + CI.bitsd, + new Object[] { "IBI", "HCH", "IHI", 'I', CI.getPlate(4, 1), 'B', ALLOY.BABBIT_ALLOY.getPlate(1), 'C', + ItemList.Casing_HeatProof.get(1), 'H', ALLOY.HASTELLOY_X.getRod(1) }); + } + + private static void multiMolecularTransformer() { + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getTieredGTPPMachineCasing(6, 1), CI.getPlate(5, 16), CI.getBolt(5, 32), + ALLOY.HG1223.getFineWire(64), CI.getEmitter(4, 8), + ItemUtils.getItemStackOfAmountFromOreDict("circuitMaster", 10) }, + CI.getTieredFluid(5, 144 * 16), + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_11_MOLECULAR_TRANSFORMER, 1), + 20 * 60, + MaterialUtils.getVoltageForTier(5)); + + CORE.RA.addAssemblylineRecipe( + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_11_MOLECULAR_TRANSFORMER, 1), + 20 * 60 * 30, + new Object[] { ALLOY.HG1223.getFineWire(64), ALLOY.HG1223.getFineWire(64), + ItemList.Electric_Motor_IV.get(16), ItemList.Energy_LapotronicOrb.get(16), + CI.getTieredComponent(OrePrefixes.cableGt12, 6, 16), CI.getTieredComponent(OrePrefixes.wireGt16, 5, 32), + ALLOY.ZERON_100.getFrameBox(4), ALLOY.ZIRCONIUM_CARBIDE.getPlateDouble(32), + ALLOY.BABBIT_ALLOY.getPlate(64), ALLOY.LEAGRISIUM.getGear(8), + new Object[] { CI.getTieredCircuitOreDictName(4), 64 }, + new Object[] { CI.getTieredCircuitOreDictName(5), 32 }, + new Object[] { CI.getTieredCircuitOreDictName(6), 16 }, + GregtechItemList.Laser_Lens_WoodsGlass.get(1), }, + new FluidStack[] { ALLOY.NITINOL_60.getFluidStack(144 * 9 * (2)), + ALLOY.INCOLOY_MA956.getFluidStack(144 * 9 * (8)), ALLOY.KANTHAL.getFluidStack(144 * 1 * (4)), }, + GregtechItemList.Controller_MolecularTransformer.get(1), + 20 * 60 * 10 * (1), + MaterialUtils.getVoltageForTier(6)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(16), CI.getPlate(6, 4), CI.getScrew(6, 8), + ELEMENT.getInstance().PALLADIUM.getFineWire(16), CI.getSensor(5, 2), + ItemUtils.getItemStackOfAmountFromOreDict("circuitElite", 4) }, + CI.getTieredFluid(5, 144 * 4), + GregtechItemList.Casing_Molecular_Transformer_1.get(1), + 20 * 20, + MaterialUtils.getVoltageForTier(5)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(16), CI.getPlate(5, 4), CI.getScrew(5, 8), + ItemList.Casing_Coil_Nichrome.get(2), CI.getFieldGenerator(3, 2), + ItemUtils.getItemStackOfAmountFromOreDict("circuitData", 8) }, + CI.getTieredFluid(5, 144 * 4), + GregtechItemList.Casing_Molecular_Transformer_2.get(1), + 20 * 20, + MaterialUtils.getVoltageForTier(5)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(16), ItemUtils.getSimpleStack(Blocks.glowstone, 16), + CI.getGear(5, 8), ELEMENT.getInstance().TITANIUM.getWire04(4), CI.getFieldGenerator(4, 2), + ItemUtils.getItemStackOfAmountFromOreDict("circuitData", 8) }, + CI.getTieredFluid(5, 144 * 4), + GregtechItemList.Casing_Molecular_Transformer_3.get(1), + 20 * 60, + MaterialUtils.getVoltageForTier(5)); + } + + private static void multiXlTurbines() { + + RecipeUtils.addShapedRecipe( + CI.getDoublePlate(4, 1), + CI.getElectricMotor(3, 1), + CI.getDoublePlate(4, 1), + ItemUtils.getItemStackOfAmountFromOreDict("cellLubricant", 1), + ItemList.Casing_Gearbox_Titanium.get(1), + ItemUtils.getItemStackOfAmountFromOreDict("cellLubricant", 1), + CI.getDoublePlate(4, 1), + CI.getElectricMotor(3, 1), + CI.getDoublePlate(4, 1), + GregtechItemList.Casing_Turbine_Shaft.get(1)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.Casing_Turbine.get(1), CI.getPlate(4, 4), + CI.getScrew(4, 8), CI.getCircuit(4, 4), CI.getGear(3, 8) }, + CI.tieredMaterials[3].getMolten(144 * 8), + GregtechItemList.Hatch_Turbine_Rotor.get(1), + 20 * 60, + MaterialUtils.getVoltageForTier(4)); + + // Steam + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.Casing_Turbine.get(1), CI.getPlate(3, 4), + CI.getScrew(3, 8), }, + CI.tieredMaterials[2].getMolten(144 * 2), + GregtechItemList.Casing_Turbine_LP.get(1), + 20 * 5, + MaterialUtils.getVoltageForTier(3)); + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.LargeSteamTurbine.get(1), CI.getPlate(4, 8), + CI.getScrew(4, 16), CI.getGear(4, 4), CI.getCircuit(4, 8) }, + CI.tieredMaterials[4].getMolten(144 * 8), + GregtechItemList.Large_Steam_Turbine.get(1), + 20 * 60, + MaterialUtils.getVoltageForTier(4)); + + // Gas + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.Casing_Turbine1.get(1), CI.getPlate(4, 4), + CI.getScrew(4, 8), }, + CI.tieredMaterials[3].getMolten(144 * 2), + GregtechItemList.Casing_Turbine_Gas.get(1), + 20 * 5, + MaterialUtils.getVoltageForTier(4)); + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.LargeGasTurbine.get(1), CI.getPlate(5, 8), + CI.getScrew(5, 16), CI.getGear(5, 4), CI.getCircuit(5, 8) }, + CI.tieredMaterials[5].getMolten(144 * 8), + GregtechItemList.Large_Gas_Turbine.get(1), + 20 * 60, + MaterialUtils.getVoltageForTier(5)); + + // HP Steam + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.Casing_Turbine2.get(1), CI.getPlate(5, 4), + CI.getScrew(5, 8), }, + CI.tieredMaterials[4].getMolten(144 * 2), + GregtechItemList.Casing_Turbine_HP.get(1), + 20 * 5, + MaterialUtils.getVoltageForTier(5)); + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.LargeHPSteamTurbine.get(1), CI.getPlate(6, 8), + CI.getScrew(6, 16), CI.getGear(6, 4), CI.getCircuit(6, 8) }, + CI.tieredMaterials[6].getMolten(144 * 8), + GregtechItemList.Large_HPSteam_Turbine.get(1), + 20 * 60, + MaterialUtils.getVoltageForTier(6)); + + // Plasma + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.Casing_Turbine3.get(1), CI.getPlate(6, 4), + CI.getScrew(6, 8), }, + CI.tieredMaterials[5].getMolten(144 * 2), + GregtechItemList.Casing_Turbine_Plasma.get(1), + 20 * 5, + MaterialUtils.getVoltageForTier(6)); + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), ItemList.LargePlasmaTurbine.get(1), CI.getPlate(7, 8), + CI.getScrew(7, 16), CI.getGear(7, 4), CI.getCircuit(7, 8) }, + CI.tieredMaterials[7].getMolten(144 * 8), + GregtechItemList.Large_Plasma_Turbine.get(1), + 20 * 60, + MaterialUtils.getVoltageForTier(7)); + if (GoodGenerator.isModLoaded()) { + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), + GT_ModHandler.getModItem(GoodGenerator.ID, "supercriticalFluidTurbineCasing", 1), + GT_ModHandler.getModItem(BartWorks.ID, "gt.bwMetaGeneratedplate", 4, 10101), + GT_ModHandler.getModItem(BartWorks.ID, "gt.bwMetaGeneratedscrew", 8, 10101) }, + FluidRegistry.getFluidStack("molten.adamantium alloy", 144 * 2), + GregtechItemList.Casing_Turbine_SC.get(1), + 20 * 5, + MaterialUtils.getVoltageForTier(6)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(18), + GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 32016), + GT_ModHandler.getModItem(BartWorks.ID, "gt.bwMetaGeneratedplate", 8, 10104), + GT_ModHandler.getModItem(BartWorks.ID, "gt.bwMetaGeneratedscrew", 16, 10104), + GT_ModHandler.getModItem(BartWorks.ID, "gt.bwMetaGeneratedgearGt", 4, 10104), CI.getCircuit(7, 8) }, + FluidRegistry.getFluidStack("molten.hikarium", 144 * 8), + GregtechItemList.Large_SCSteam_Turbine.get(1), + 20 * 60, + MaterialUtils.getVoltageForTier(7)); + } + } + + private static void multiSolarTower() { + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(17), CI.getTieredGTPPMachineCasing(3, 4), + ALLOY.MARAGING250.getPlate(8), ALLOY.MARAGING250.getBolt(8), ALLOY.MARAGING250.getScrew(8), + CI.getCircuit(5, 8) }, + CI.getTieredFluid(3, 144 * 16), + GregtechItemList.Industrial_Solar_Tower.get(1), + 20 * 30, + MaterialUtils.getVoltageForTier(4)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(17), ALLOY.MARAGING350.getFrameBox(1), + ALLOY.STAINLESS_STEEL.getPlate(4), ALLOY.MARAGING350.getScrew(8) }, + CI.getTieredFluid(3, 144 * 4), + GregtechItemList.Casing_SolarTower_Structural.get(1), + 20 * 30, + MaterialUtils.getVoltageForTier(3)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(17), ALLOY.MARAGING250.getFrameBox(1), + ALLOY.STAINLESS_STEEL.getPlate(4), ALLOY.MARAGING250.getBolt(16), + ELEMENT.getInstance().ALUMINIUM.getScrew(8) }, + CI.getTieredFluid(3, 144 * 4), + GregtechItemList.Casing_SolarTower_SaltContainment.get(1), + 20 * 30, + MaterialUtils.getVoltageForTier(3)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(17), ALLOY.MARAGING250.getFrameBox(1), + ALLOY.STEEL_BLACK.getPlate(4), ALLOY.MARAGING250.getScrew(8) }, + CI.getAlternativeTieredFluid(3, 144 * 4), + GregtechItemList.Casing_SolarTower_HeatContainment.get(1), + 20 * 30, + MaterialUtils.getVoltageForTier(3)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(17), CI.getTieredGTPPMachineCasing(2, 1), CI.getPlate(3, 2), + CI.getGear(3, 4), CI.getElectricMotor(3, 2), CI.getCircuit(3, 4) }, + CI.getTertiaryTieredFluid(3, 144 * 4), + GregtechItemList.Solar_Tower_Reflector.get(1), + 20 * 60, + MaterialUtils.getVoltageForTier(3)); + } + + private static void multiElementalDuplicator() { + + CORE.RA.addAssemblylineRecipe( + ItemList.Machine_IV_Replicator.get(1), + 20 * 60 * 60 * 12, + new Object[] { CI.getTieredMachineHull(7, 4), CI.getFieldGenerator(5, 16), CI.getElectricMotor(7, 16), + CI.getElectricPiston(7, 4), CI.getEnergyCore(6, 2), CI.getPlate(7, 16), CI.getScrew(7, 32), + CI.getBolt(6, 32), CI.getTieredComponent(OrePrefixes.rod, 6, 10), + new Object[] { CI.getTieredCircuitOreDictName(7), 20 }, ItemList.Tool_DataOrb.get(32), + GregtechItemList.Laser_Lens_Special.get(1) }, + new FluidStack[] { CI.getTieredFluid(7, 144 * 32), CI.getAlternativeTieredFluid(6, 144 * 16), + CI.getTertiaryTieredFluid(6, 144 * 16), ALLOY.BABBIT_ALLOY.getFluidStack(128 * 144), }, + GregtechItemList.Controller_ElementalDuplicator.get(1), + 20 * 60 * 60, + (int) MaterialUtils.getVoltageForTier(7)); + + CORE.RA.addAssemblylineRecipe( + GregtechItemList.Modulator_III.get(1), + 20 * 60 * 60 * 4, + new Object[] { CI.getTieredGTPPMachineCasing(7, 2), CI.getFieldGenerator(4, 4), CI.getEnergyCore(4, 2), + CI.getPlate(7, 8), CI.getScrew(6, 16), CI.getBolt(6, 16), CI.getTieredComponent(OrePrefixes.rod, 5, 16), + new Object[] { CI.getTieredCircuitOreDictName(6), 32 }, ItemList.Tool_DataOrb.get(32), }, + new FluidStack[] { CI.getTieredFluid(6, 144 * 16), CI.getAlternativeTieredFluid(5, 144 * 8), + CI.getTertiaryTieredFluid(5, 144 * 8), ALLOY.BABBIT_ALLOY.getFluidStack(64 * 144), }, + GregtechItemList.Hatch_Input_Elemental_Duplicator.get(1), + 20 * 60 * 60 * (2), + (int) MaterialUtils.getVoltageForTier(6)); + + CORE.RA.addAssemblylineRecipe( + GregtechItemList.ResonanceChamber_III.get(1), + 20 * 60 * 60 * 2, + new Object[] { CI.getTieredMachineHull(6, 5), CI.getFieldGenerator(3, 16), CI.getEnergyCore(2, 2), + CI.getPlate(7, 4), CI.getScrew(7, 4), CI.getBolt(6, 8), CI.getTieredComponent(OrePrefixes.rod, 5, 4), + new Object[] { CI.getTieredCircuitOreDictName(5), 4 }, ItemList.Tool_DataStick.get(4), }, + new FluidStack[] { CI.getTieredFluid(5, 144 * 16), CI.getAlternativeTieredFluid(4, 144 * 8), + CI.getTertiaryTieredFluid(4, 144 * 8), ALLOY.BABBIT_ALLOY.getFluidStack(16 * 144), }, + GregtechItemList.Casing_ElementalDuplicator.get(1), + 20 * 60 * (10), + (int) MaterialUtils.getVoltageForTier(6)); + } + + private static void resonanceChambers() { + int aFieldTier = 1; + int aCasingTier = 4; + for (int i = 0; i < 4; i++) { + RecipeUtils.addShapedRecipe( + CI.getDoublePlate(aCasingTier, 1), + CI.getFieldGenerator(aFieldTier, 1), + CI.getDoublePlate(aCasingTier, 1), + CI.getFieldGenerator(aFieldTier, 1), + CI.getTieredMachineCasing(aCasingTier), + CI.getFieldGenerator(aFieldTier, 1), + CI.getDoublePlate(aCasingTier, 1), + CI.getFieldGenerator(aFieldTier, 1), + CI.getDoublePlate(aCasingTier, 1), + ItemUtils.simpleMetaStack(ModBlocks.blockSpecialMultiCasings2, i, 1)); + aCasingTier++; + aFieldTier++; + } + } + + private static void modulators() { + int aCasingTier = 4; + for (int i = 4; i < 8; i++) { + RecipeUtils.addShapedRecipe( + CI.getTieredCircuitOreDictName(aCasingTier), + CI.getPlate(aCasingTier, 1), + CI.getTieredCircuitOreDictName(aCasingTier), + CI.getPlate(aCasingTier, 1), + CI.getTieredMachineCasing(aCasingTier), + CI.getPlate(aCasingTier, 1), + CI.getTieredCircuitOreDictName(aCasingTier), + CI.getPlate(aCasingTier, 1), + CI.getTieredCircuitOreDictName(aCasingTier), + ItemUtils.simpleMetaStack(ModBlocks.blockSpecialMultiCasings2, i, 1)); + aCasingTier++; + } + } + + private static void zyngen() { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(6), CI.getTieredMachineHull(4), + ItemList.Machine_IV_AlloySmelter.get(1), CI.getGear(3, 16), CI.getBolt(3, 64), CI.getPlate(4, 16) }, + CI.getAlternativeTieredFluid(4, 144 * 8), + GregtechItemList.Industrial_AlloySmelter.get(1), + 20 * 30, + MaterialUtils.getVoltageForTier(4)); + } + + private static void chemPlant() { + + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Casing_Machine_Custom_1.get(2L, new Object[0]), + CI.bits, + new Object[] { "PhP", "PFP", "PwP", 'P', OrePrefixes.plate.get(Materials.Bronze), 'F', + OrePrefixes.frameGt.get(Materials.Bronze) }); + + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Casing_Machine_Custom_2.get(2L, new Object[0]), + CI.bits, + new Object[] { "PPP", "hFw", "PPP", 'P', OrePrefixes.plate.get(Materials.Aluminium), 'F', + OrePrefixes.frameGt.get(Materials.Aluminium) }); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(19), CI.getTieredGTPPMachineCasing(2, 4), + CI.getTieredComponentOfMaterial(Materials.Aluminium, OrePrefixes.gearGt, 4), + CI.getTieredComponentOfMaterial(Materials.AnnealedCopper, OrePrefixes.plate, 16), + CI.getTieredComponentOfMaterial(Materials.Plastic, OrePrefixes.pipeLarge, 4), + CI.getTieredComponent(OrePrefixes.frameGt, 2, 4), }, + ALLOY.STEEL_BLACK.getFluidStack(2 * (144 * 4)), + GregtechItemList.ChemicalPlant_Controller.get(1), + 120 * 20, + MaterialUtils.getVoltageForTier(2)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(15), CI.getTieredGTPPMachineCasing(1, 2), + ItemList.Hatch_Input_Bus_MV.get(1), + CI.getTieredComponentOfMaterial(Materials.Bronze, OrePrefixes.gearGt, 8), + CI.getTieredComponentOfMaterial(Materials.Lead, OrePrefixes.plate, 48), + CI.getTieredComponentOfMaterial(Materials.SolderingAlloy, OrePrefixes.wireFine, 16), }, + ALLOY.BRONZE.getFluidStack(2 * (144 * 4)), + GregtechItemList.Bus_Catalysts.get(1), + 60 * 20, + MaterialUtils.getVoltageForTier(2)); + } + + private static void algaeFarm() { + + // Give the bad algae a use. + CORE.RA.addDistilleryRecipe( + ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 32), + null, + null, + ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 4), + 20 * 15, + 16, + false); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(21), CI.getTieredGTPPMachineCasing(0, 4), + CI.getTieredComponentOfMaterial(Materials.Aluminium, OrePrefixes.rod, 12), + CI.getTieredComponentOfMaterial(Materials.Wood, OrePrefixes.plate, 32), + CI.getTieredComponentOfMaterial(Materials.Steel, OrePrefixes.bolt, 16), + CI.getTieredComponentOfMaterial(Materials.Redstone, OrePrefixes.dust, 32), }, + ALLOY.POTIN.getFluidStack(2 * (144 * 4)), + GregtechItemList.AlgaeFarm_Controller.get(1), + 60 * 20, + MaterialUtils.getVoltageForTier(2)); + } + + private static void distillus() { + + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(19), ItemList.Distillation_Tower.get(2), + GregtechItemList.GTPP_Casing_IV.get(16), CI.getTieredComponent(OrePrefixes.circuit, 6, 8) }, + new FluidStack[] { ALLOY.AQUATIC_STEEL.getFluidStack(144 * 32), ALLOY.BABBIT_ALLOY.getFluidStack(144 * 16), + ALLOY.BRONZE.getFluidStack(144 * 64), ALLOY.KANTHAL.getFluidStack(144 * 16), }, + new ItemStack[] { GregtechItemList.Machine_Adv_DistillationTower.get(1) }, + new FluidStack[] {}, + 20 * 600, + MaterialUtils.getVoltageForTier(6), + 5); + } + + private static void overflowValveCovers() { + ItemStack aOutputs[] = new ItemStack[] { GregtechItemList.Cover_Overflow_LV.get(1L), + GregtechItemList.Cover_Overflow_MV.get(1L), GregtechItemList.Cover_Overflow_HV.get(1L), + GregtechItemList.Cover_Overflow_EV.get(1L), GregtechItemList.Cover_Overflow_IV.get(1L), }; + + for (int tier = 1; tier < aOutputs.length + 1; tier++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(19), CI.getElectricPump(tier, 2), + CI.getElectricMotor(tier, 2), CI.getPlate(tier, 4) }, + Materials.SolderingAlloy.getFluid(tier * (144)), + aOutputs[tier - 1].copy(), + 20 * 20, + MaterialUtils.getVoltageForTier(tier)); + } + } + + private static void tieredMachineHulls() { + + GregtechItemList[] aHulls = new GregtechItemList[] { GregtechItemList.GTPP_Casing_ULV, + GregtechItemList.GTPP_Casing_LV, GregtechItemList.GTPP_Casing_MV, GregtechItemList.GTPP_Casing_HV, + GregtechItemList.GTPP_Casing_EV, GregtechItemList.GTPP_Casing_IV, GregtechItemList.GTPP_Casing_LuV, + GregtechItemList.GTPP_Casing_ZPM, GregtechItemList.GTPP_Casing_UV, GregtechItemList.GTPP_Casing_UHV }; + + for (int i = 0; i < 10; i++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(20), CI.getTieredMachineCasing(i), CI.getPlate(i, 8), + CI.getGear(i, 2), CI.getTieredComponent(OrePrefixes.cableGt02, i, 4), + CI.getTieredComponent(OrePrefixes.circuit, i, 2) }, + CI.getAlternativeTieredFluid(i, 144 * (i + 1) * 2), + aHulls[i].get(1), + 20 * 20, + MaterialUtils.getVoltageForTier(i)); + } + } + + private static void initModItems() { + IC2MFE = ItemUtils.getItemStackWithMeta(true, "IC2:blockElectric", "IC2_MFE", 1, 1); + IC2MFSU = ItemUtils.getItemStackWithMeta(true, "IC2:blockElectric", "IC2_MFSU", 2, 1); + + // Lava Boiler + boiler_Coal = ItemList.Machine_Bronze_Boiler.get(1); + + // IV/EV/HV MACHINES + IV_MACHINE_Electrolyzer = ItemList.Machine_IV_Electrolyzer.get(1); + EV_MACHINE_Centrifuge = ItemList.Machine_EV_Centrifuge.get(1); + EV_MACHINE_BendingMachine = ItemList.Machine_EV_Bender.get(1); + IV_MACHINE_Wiremill = ItemList.Machine_IV_Wiremill.get(1); + EV_MACHINE_Macerator = ItemList.Machine_EV_Macerator.get(1); + IV_MACHINE_Macerator = ItemList.Machine_IV_Macerator.get(1); + IV_MACHINE_Cutter = ItemList.Machine_IV_Cutter.get(1); + IV_MACHINE_Extruder = ItemList.Machine_IV_Extruder.get(1); + HV_MACHINE_Sifter = ItemList.Machine_HV_Sifter.get(1); + EV_MACHINE_ThermalCentrifuge = ItemList.Machine_EV_ThermalCentrifuge.get(1); + EV_MACHINE_OreWasher = ItemList.Machine_EV_OreWasher.get(1); + IV_MACHINE_AlloySmelter = ItemList.Machine_IV_AlloySmelter.get(1); + IV_MACHINE_Mixer = ItemList.Machine_IV_Mixer.get(1); + EV_MACHINE_ChemicalBath = ItemList.Machine_EV_ChemicalBath.get(1); + if (CORE.ConfigSwitches.enableMultiblock_IndustrialCokeOven) { + if (Railcraft.isModLoaded()) { + // Misc + INPUT_RCCokeOvenBlock = ItemUtils + .getItemStackWithMeta(Railcraft.isModLoaded(), "Railcraft:machine.alpha", "Coke_Oven_RC", 7, 1); + } + } + runModRecipes(); + } + + private static void runModRecipes() { + // Computer Cube + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(CI.getDataOrb(), 4 * (1)), ItemList.Cover_Screen.get(4), + CI.machineHull_IV, ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(7), 2) }, + ELEMENT.getInstance().TANTALUM.getFluidStack(144 * 16), + GregtechItemList.Gregtech_Computer_Cube.get(1), + 60 * 20 * 3, + 8000); + + // Circuit programmer + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(CI.robotArm_LV, 4 * (1)), + ItemList.Cover_Controller.get(1, CI.electricMotor_MV), CI.machineHull_MV, + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(1), 2), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(2), 2) }, + ELEMENT.getInstance().IRON.getFluidStack(144 * 4), + ItemUtils.getSimpleStack(ModBlocks.blockCircuitProgrammer), + 60 * 10 * 1, + 30); + + // Lead Lined Chest + for (ItemStack plateRubber : OreDictionary.getOres("plateAnyRubber")) CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.machineHull_LV, GT_Utility.copyAmount(32, plateRubber), + ItemUtils.getItemStackOfAmountFromOreDict("plateDenseLead", 9), + ItemUtils.getSimpleStack(Blocks.chest) }, + ELEMENT.getInstance().LEAD.getFluidStack(144 * 16), + ItemUtils.getSimpleStack(ModBlocks.blockDecayablesChest), + 60 * 10 * 3, + 60); + + // RTG + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getItemStackWithMeta(true, "IC2:blockGenerator:6", "IC2-RTG", 6, 1), + ALLOY.NITINOL_60.getPlate(8), ALLOY.MARAGING350.getGear(4), + ItemUtils.getSimpleStack(CI.fieldGenerator_EV, 8), + ItemUtils.getItemStackOfAmountFromOreDict("wireFinePlatinum", 32), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(6), 4) }, + ALLOY.NIOBIUM_CARBIDE.getFluidStack(144 * 16), + GregtechItemList.RTG.get(1), + 60 * 20 * 10, + 8000); + + // Super Jukebox + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.machineHull_LV, ItemUtils.getItemStackOfAmountFromOreDict("circuitBasic", 4), + ItemUtils.getItemStackOfAmountFromOreDict("plateTumbaga", 8), + ItemUtils.getSimpleStack(Blocks.jukebox) }, + ELEMENT.getInstance().COPPER.getFluidStack(144 * 2), + ItemUtils.getSimpleStack(ModBlocks.blockCustomJukebox), + 20 * 30, + 30); + + // Poo Collector + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.machineHull_MV, ItemList.FluidRegulator_MV.get(2), + CI.getTieredComponent(OrePrefixes.pipeMedium, 2, 2), ALLOY.EGLIN_STEEL.getPlate(4), + ALLOY.POTIN.getScrew(6) }, + ALLOY.TUMBAGA.getFluidStack(144 * 4), + ItemUtils.getSimpleStack(ModBlocks.blockPooCollector), + 20 * 60, + 30); + + // Adv. Poo Collector + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getTieredMachineHull(-1), ItemUtils.getSimpleStack(ModBlocks.blockPooCollector), + ItemList.FluidRegulator_IV.get(2), CI.getTieredComponent(OrePrefixes.pipeHuge, 6, 4), + CI.getTieredComponent(OrePrefixes.screw, 6, 16) }, + CI.getAlternativeTieredFluid(5, 144 * 9), + ItemUtils.getSimpleStack(ModBlocks.blockPooCollector, 8, 1), + 20 * 60 * 5, + 500); + + ItemStack aBronzeBricks = ItemUtils.simpleMetaStack(GregTech_API.sBlockCasings1, 10, 1); + // Steam Macerator Multi + RecipeUtils.addShapedGregtechRecipe( + aBronzeBricks, + "gemDiamond", + aBronzeBricks, + "craftingPiston", + ALLOY.TUMBAGA.getFrameBox(1), + "craftingPiston", + aBronzeBricks, + "gemDiamond", + aBronzeBricks, + GregtechItemList.Controller_SteamMaceratorMulti.get(1)); + // Steam Compressor Multi + RecipeUtils.addShapedGregtechRecipe( + aBronzeBricks, + "craftingPiston", + aBronzeBricks, + ALLOY.TUMBAGA.getGear(1), + ALLOY.TUMBAGA.getFrameBox(1), + ALLOY.TUMBAGA.getGear(1), + aBronzeBricks, + "craftingPiston", + aBronzeBricks, + GregtechItemList.Controller_SteamCompressorMulti.get(1)); + + // Steam Hatch + RecipeUtils.addShapedGregtechRecipe( + "plateBronze", + "pipeMediumBronze", + "plateBronze", + "plateBronze", + GregtechItemList.GT_FluidTank_ULV.get(1), + "plateBronze", + "plateBronze", + "pipeMediumBronze", + "plateBronze", + GregtechItemList.Hatch_Input_Steam.get(1)); + + // Steam Input Bus + RecipeUtils.addShapedGregtechRecipe( + "plateBronze", + ALLOY.TUMBAGA.getPlate(1), + "plateBronze", + "plateTin", + ItemUtils.getSimpleStack(Blocks.hopper), + "plateTin", + "plateBronze", + ALLOY.TUMBAGA.getPlate(1), + "plateBronze", + GregtechItemList.Hatch_Input_Bus_Steam.get(1)); + + // Steam Output Bus + RecipeUtils.addShapedGregtechRecipe( + "plateBronze", + "plateTin", + "plateBronze", + ALLOY.TUMBAGA.getPlate(1), + ItemUtils.getSimpleStack(Blocks.hopper), + ALLOY.TUMBAGA.getPlate(1), + "plateBronze", + "plateTin", + "plateBronze", + GregtechItemList.Hatch_Output_Bus_Steam.get(1)); + + // Flask Configurator + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(8), CI.getTieredMachineHull(2), + ItemUtils.getSimpleStack(ModBlocks.blockCircuitProgrammer), VolumetricFlaskHelper.getVolumetricFlask(8), + CI.getTieredComponent(OrePrefixes.pipeSmall, 2, 2), CI.getPlate(2, 4) }, + CI.getAlternativeTieredFluid(1, 144 * 8), + ItemUtils.getSimpleStack(ModBlocks.blockVolumetricFlaskSetter, 1), + 20 * 60, + 120); + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialCentrifuge) { + // Industrial Centrifuge + RECIPE_IndustrialCentrifugeController = GregtechItemList.Industrial_Centrifuge.get(1); + RECIPE_IndustrialCentrifugeCasing = GregtechItemList.Casing_Centrifuge1.get(1); + + // Industrial Centrifuge + RecipeUtils.addShapedGregtechRecipe( + CI.circuitTier4, + pipeHugeStainlessSteel, + CI.circuitTier4, + CI.component_Plate[6], + EV_MACHINE_Centrifuge, + CI.component_Plate[6], + CI.component_Plate[8], + CI.machineCasing_EV, + CI.component_Plate[8], + RECIPE_IndustrialCentrifugeController); + // Centrifuge Casing + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], + "stickTumbaga", + CI.component_Plate[6], + CI.component_Plate[8], + "stickTumbaga", + CI.component_Plate[8], + CI.component_Plate[6], + "stickTumbaga", + CI.component_Plate[6], + RECIPE_IndustrialCentrifugeCasing); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.MARAGING250.getPlate(4), ALLOY.INCONEL_792.getPlate(2), ALLOY.TUMBAGA.getRod(3), + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialCentrifugeCasing, + 50, + 16); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialCokeOven) { + // Industrial Coke Oven + RECIPE_IndustrialCokeOvenController = GregtechItemList.Industrial_CokeOven.get(1); + RECIPE_IndustrialCokeOvenFrame = GregtechItemList.Casing_CokeOven.get(1); + RECIPE_IndustrialCokeOvenCasingA = GregtechItemList.Casing_CokeOven_Coil1.get(1); + RECIPE_IndustrialCokeOvenCasingB = GregtechItemList.Casing_CokeOven_Coil2.get(1); + + if (Railcraft.isModLoaded()) { + // Industrial Coke Oven + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[7], + CI.circuitTier4, + CI.component_Plate[7], + CI.machineCasing_EV, + INPUT_RCCokeOvenBlock, + CI.machineCasing_EV, + CI.component_Plate[7], + CI.circuitTier4, + CI.component_Plate[7], + RECIPE_IndustrialCokeOvenController); + } + // Coke Oven Frame Casing + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[7], + CI.component_Rod[7], + CI.component_Plate[7], + CI.component_Rod[7], + "frameGtTantalloy61", + CI.component_Rod[7], + CI.component_Plate[7], + CI.component_Rod[7], + CI.component_Plate[7], + RECIPE_IndustrialCokeOvenFrame); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.TANTALLOY_61.getPlate(4), ALLOY.TANTALLOY_61.getRod(4), + ALLOY.TANTALLOY_61.getFrameBox(1), GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialCokeOvenFrame, + 50, + 16); + // Coke Oven Coil 1 + RecipeUtils.addShapedGregtechRecipe( + plateBronze, + plateBronze, + plateBronze, + "frameGtBronze", + CI.gearboxCasing_Tier_1, + "frameGtBronze", + plateBronze, + plateBronze, + plateBronze, + RECIPE_IndustrialCokeOvenCasingA); + // Coke Oven Coil 2 + RecipeUtils.addShapedGregtechRecipe( + plateSteel, + plateSteel, + plateSteel, + "frameGtSteel", + CI.gearboxCasing_Tier_2, + "frameGtSteel", + plateSteel, + plateSteel, + plateSteel, + RECIPE_IndustrialCokeOvenCasingB); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialElectrolyzer) { + // Industrial Electrolyzer + RECIPE_IndustrialElectrolyzerController = GregtechItemList.Industrial_Electrolyzer.get(1); + RECIPE_IndustrialElectrolyzerFrame = GregtechItemList.Casing_Electrolyzer.get(1); + + // Electrolyzer Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "platePotin", + "stickLongChrome", + "platePotin", + "stickLongPotin", + "frameGtPotin", + "stickLongPotin", + "platePotin", + "stickLongPotin", + "platePotin", + RECIPE_IndustrialElectrolyzerFrame); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.POTIN.getPlate(4), ALLOY.POTIN.getLongRod(3), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Chrome, 1), ALLOY.POTIN.getFrameBox(1), + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialElectrolyzerFrame, + 50, + 16); + // Industrial Electrolyzer + RecipeUtils.addShapedGregtechRecipe( + "plateStellite", + CI.circuitTier5, + "plateStellite", + CI.machineCasing_IV, + IV_MACHINE_Electrolyzer, + CI.machineCasing_IV, + "plateStellite", + "rotorStellite", + "plateStellite", + RECIPE_IndustrialElectrolyzerController); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialPlatePress) { + // Industrial Material Press + RECIPE_IndustrialMaterialPressController = GregtechItemList.Industrial_PlatePress.get(1); + RECIPE_IndustrialMaterialPressFrame = GregtechItemList.Casing_MaterialPress.get(1); + + // Material Press Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "plateTitanium", + "stickLongTumbaga", + "plateTitanium", + "stickTantalloy60", + "frameGtTumbaga", + "stickTantalloy60", + "plateTitanium", + "stickLongTumbaga", + "plateTitanium", + RECIPE_IndustrialMaterialPressFrame); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 4), + ALLOY.TANTALLOY_60.getRod(2), ALLOY.TUMBAGA.getLongRod(2), ALLOY.TUMBAGA.getFrameBox(1), + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialMaterialPressFrame, + 50, + 16); + // Industrial Material Press + RecipeUtils.addShapedGregtechRecipe( + "plateTitanium", + CI.circuitTier4, + "plateTitanium", + CI.machineCasing_EV, + EV_MACHINE_BendingMachine, + CI.machineCasing_EV, + "plateTitanium", + CI.circuitTier4, + "plateTitanium", + RECIPE_IndustrialMaterialPressController); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialMacerationStack) { + // Industrial Maceration Stack + RECIPE_IndustrialMacerationStackController = GregtechItemList.Industrial_MacerationStack.get(1); + RECIPE_IndustrialMacerationStackFrame = GregtechItemList.Casing_MacerationStack.get(1); + + // Maceration Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "platePalladium", + "platePalladium", + "platePalladium", + "stickPlatinum", + "frameGtInconel625", + "stickPlatinum", + "platePalladium", + "stickLongPalladium", + "platePalladium", + RECIPE_IndustrialMacerationStackFrame); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Palladium, 5), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Platinum, 2), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Palladium, 1), + ALLOY.INCONEL_625.getFrameBox(1), GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialMacerationStackFrame, + 50, + 16); + // Industrial Maceration stack + RecipeUtils.addShapedGregtechRecipe( + "plateTitanium", + EV_MACHINE_Macerator, + "plateTitanium", + EV_MACHINE_Macerator, + CI.circuitTier4, + EV_MACHINE_Macerator, + "plateTitanium", + EV_MACHINE_Macerator, + "plateTitanium", + RECIPE_IndustrialMacerationStackController); + // T2-Upgrade Card + RecipeUtils.addShapedGregtechRecipe( + "plateTungstenCarbide", + IV_MACHINE_Macerator, + "plateTungstenCarbide", + IV_MACHINE_Macerator, + CI.circuitTier7, + IV_MACHINE_Macerator, + "plateTungstenCarbide", + IV_MACHINE_Macerator, + "plateTungstenCarbide", + GregtechItemList.Maceration_Upgrade_Chip.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialWireMill) { + // Industrial Wire Factory + RECIPE_IndustrialWireFactoryController = GregtechItemList.Industrial_WireFactory.get(1); + RECIPE_IndustrialWireFactoryFrame = GregtechItemList.Casing_WireFactory.get(1); + + // Wire Factory Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "plateBlueSteel", + "stickBlueSteel", + "plateBlueSteel", + "stickBlueSteel", + "frameGtBlueSteel", + "stickBlueSteel", + "plateBlueSteel", + "stickBlueSteel", + "plateBlueSteel", + RECIPE_IndustrialWireFactoryFrame); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BlueSteel, 4), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.BlueSteel, 4), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlueSteel, 1), + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialWireFactoryFrame, + 50, + 16); + // Industrial Wire Factory + RecipeUtils.addShapedGregtechRecipe( + "plateZeron100", + CI.machineCasing_IV, + "plateZeron100", + CI.circuitTier5, + IV_MACHINE_Wiremill, + CI.circuitTier5, + "plateZeron100", + CI.machineCasing_IV, + "plateZeron100", + RECIPE_IndustrialWireFactoryController); + } + + // Tiered Tanks + if (CORE.ConfigSwitches.enableMachine_FluidTanks) { + CI.component_Plate[1] = "plateTin"; + pipeTier1 = "pipeLargeClay"; + CI.circuitTier1 = ItemList.Circuit_Primitive.get(1); + CI.component_Plate[2] = "plateCopper"; + pipeTier2 = "pipeHugeClay"; + CI.component_Plate[3] = "plateBronze"; + pipeTier3 = "pipeMediumBronze"; + CI.component_Plate[4] = "plateIron"; + pipeTier4 = "pipeMediumSteel"; + CI.component_Plate[5] = "plateSteel"; + CI.component_Plate[6] = "plateRedstone"; + CI.component_Plate[7] = "plateAluminium"; + CI.component_Plate[8] = "plateDarkSteel"; + ItemStack waterBucket = ItemUtils.getSimpleStack(Items.water_bucket); + + // Allows clearing stored fluids. + GregtechItemList[] aTanks = new GregtechItemList[] { GregtechItemList.GT_FluidTank_ULV, + GregtechItemList.GT_FluidTank_LV, GregtechItemList.GT_FluidTank_MV, GregtechItemList.GT_FluidTank_HV }; + for (GregtechItemList aTank : aTanks) { + RecipeUtils.addShapelessGregtechRecipe(new Object[] { aTank.get(1) }, aTank.get(1)); + } + + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[1], + CI.component_Plate[5], + CI.component_Plate[1], + CI.component_Plate[4], + pipeTier1, + CI.component_Plate[4], + CI.component_Plate[4], + waterBucket, + CI.component_Plate[4], + GregtechItemList.GT_FluidTank_ULV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[5], + CI.component_Plate[4], + CI.component_Plate[5], + CI.component_Plate[3], + pipeTier2, + CI.component_Plate[3], + CI.component_Plate[3], + CI.electricPump_LV, + CI.component_Plate[3], + GregtechItemList.GT_FluidTank_LV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[8], + CI.component_Plate[3], + CI.component_Plate[8], + CI.component_Plate[5], + pipeTier3, + CI.component_Plate[5], + CI.component_Plate[5], + CI.electricPump_LV, + CI.component_Plate[5], + GregtechItemList.GT_FluidTank_MV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.circuitTier1, + CI.component_Plate[7], + CI.circuitTier1, + CI.component_Plate[8], + pipeTier4, + CI.component_Plate[8], + CI.circuitTier1, + CI.electricPump_MV, + CI.circuitTier1, + GregtechItemList.GT_FluidTank_HV.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_MultiTank) { + // Industrial Multi Tank + // RECIPE_IndustrialMultiTankController = GregtechItemList.Industrial_MultiTank.get(1); + RECIPE_IndustrialMultiTankFrame = GregtechItemList.Casing_MultitankExterior.get(1); + + // Industrial Multi Tank Casing + RecipeUtils.addShapedGregtechRecipe( + "stickGrisium", + "plateGrisium", + "stickGrisium", + "plateGrisium", + "frameGtGrisium", + "plateGrisium", + "plateGrisium", + "plateGrisium", + "plateGrisium", + RECIPE_IndustrialMultiTankFrame); + // Industrial Multi Tank + RecipeUtils.addShapedGregtechRecipe( + "pipeHugeTantalloy60", + "gearGrisium", + "pipeHugeTantalloy60", + CI.circuitTier4, + RECIPE_IndustrialMultiTankFrame, + CI.circuitTier4, + "plateDoubleGrisium", + "rotorGrisium", + "plateDoubleGrisium", + RECIPE_IndustrialMultiTankController); + } + // TODO + + // Semi-Fluid Generators + ItemStack[][] aSemiFluidInputs = new ItemStack[5][10]; + aSemiFluidInputs[0] = new ItemStack[] { CI.getNumberedBioCircuit(14), CI.getTieredMachineHull(1, 1), + CI.getElectricMotor(1, 2), CI.getElectricPiston(1, 2), CI.getTieredComponent(OrePrefixes.cableGt01, 1, 1), + CI.getTieredComponent(OrePrefixes.circuit, 1, 1), CI.getGear(1, 2) }; + aSemiFluidInputs[1] = new ItemStack[] { CI.getNumberedBioCircuit(14), CI.getTieredMachineHull(2, 1), + CI.getElectricMotor(2, 2), CI.getElectricPiston(2, 2), CI.getTieredComponent(OrePrefixes.cableGt01, 2, 1), + CI.getTieredComponent(OrePrefixes.circuit, 2, 1), CI.getGear(2, 2) }; + aSemiFluidInputs[2] = new ItemStack[] { CI.getNumberedBioCircuit(14), CI.getTieredMachineHull(3, 1), + CI.getElectricMotor(3, 2), CI.getElectricPiston(3, 2), CI.getTieredComponent(OrePrefixes.cableGt01, 3, 1), + CI.getTieredComponent(OrePrefixes.circuit, 3, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Chrome, 2) }; + aSemiFluidInputs[3] = new ItemStack[] { CI.getNumberedBioCircuit(14), CI.getTieredMachineHull(4, 1), + CI.getElectricMotor(4, 2), CI.getElectricPiston(4, 2), CI.getTieredComponent(OrePrefixes.cableGt01, 4, 1), + CI.getTieredComponent(OrePrefixes.circuit, 4, 1), CI.getGear(4, 2) }; + aSemiFluidInputs[4] = new ItemStack[] { CI.getNumberedBioCircuit(14), CI.getTieredMachineHull(5, 1), + CI.getElectricMotor(5, 2), CI.getElectricPiston(5, 2), CI.getTieredComponent(OrePrefixes.cableGt01, 5, 1), + CI.getTieredComponent(OrePrefixes.circuit, 5, 1), CI.getGear(5, 2) }; + FluidStack[] aSemiFluidFluidInputs = new FluidStack[] { ALLOY.POLYETHYLENE.getFluidStack(144), + ALLOY.POLYETHYLENE.getFluidStack(144), ALLOY.POLYETHYLENE.getFluidStack(144), + ALLOY.POLYETHYLENE.getFluidStack(144), ALLOY.POLYTETRAFLUOROETHYLENE.getFluidStack(144) }; + + ItemStack[] aSemifluids = new ItemStack[] { GregtechItemList.Generator_SemiFluid_LV.get(1), + GregtechItemList.Generator_SemiFluid_MV.get(1), GregtechItemList.Generator_SemiFluid_HV.get(1), + GregtechItemList.Generator_SemiFluid_EV.get(1), GregtechItemList.Generator_SemiFluid_IV.get(1) }; + for (int o = 0; o < 5; o++) { + CORE.RA.addSixSlotAssemblingRecipe( + aSemiFluidInputs[o], + aSemiFluidFluidInputs[o], + aSemifluids[o], + 20 * 30, + MaterialUtils.getVoltageForTier(o + 1)); + } + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Generator_SemiFluid_LV.get(1L), + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_LV, 'P', ItemList.Electric_Piston_LV, 'E', + ItemList.Electric_Motor_LV, 'C', OrePrefixes.circuit.get(Materials.Basic), 'W', + OrePrefixes.cableGt01.get(Materials.Tin), 'G', ALLOY.TUMBAGA.getGear(2) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Generator_SemiFluid_MV.get(1L), + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_MV, 'P', ItemList.Electric_Piston_MV, 'E', + ItemList.Electric_Motor_MV, 'C', OrePrefixes.circuit.get(Materials.Good), 'W', + OrePrefixes.cableGt01.get(Materials.AnyCopper), 'G', ALLOY.EGLIN_STEEL.getGear(2) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Generator_SemiFluid_HV.get(1L), + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_HV, 'P', ItemList.Electric_Piston_HV, 'E', + ItemList.Electric_Motor_HV, 'C', OrePrefixes.circuit.get(Materials.Advanced), 'W', + OrePrefixes.cableGt01.get(Materials.Gold), 'G', + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Chrome, 1) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Generator_SemiFluid_EV.get(1L), + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_EV, 'P', ItemList.Electric_Piston_EV, 'E', + ItemList.Electric_Motor_EV, 'C', OrePrefixes.circuit.get(Materials.Data), 'W', + OrePrefixes.cableGt01.get(Materials.Aluminium), 'G', ALLOY.INCOLOY_DS.getGear(1) }); + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Generator_SemiFluid_IV.get(1L), + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_IV, 'P', ItemList.Electric_Piston_IV, 'E', + ItemList.Electric_Motor_IV, 'C', OrePrefixes.circuit.get(Materials.Elite), 'W', + OrePrefixes.cableGt01.get(Materials.Tungsten), 'G', ALLOY.NITINOL_60.getGear(1) }); + + if (CORE.ConfigSwitches.enableMultiblock_AlloyBlastSmelter) { + // Industrial Blast Smelter + RECIPE_IndustrialBlastSmelterController = GregtechItemList.Industrial_AlloyBlastSmelter.get(1); + RECIPE_IndustrialBlastSmelterFrame = GregtechItemList.Casing_BlastSmelter.get(1); + RECIPE_IndustrialBlastSmelterCoil = GregtechItemList.Casing_Coil_BlastSmelter.get(1); + + // Blast Smelter + RecipeUtils.addShapedGregtechRecipe( + "plateZirconiumCarbide", + CI.circuitTier5, + "plateZirconiumCarbide", + cableTier6, + IV_MACHINE_AlloySmelter, + cableTier6, + "plateZirconiumCarbide", + CI.circuitTier5, + "plateZirconiumCarbide", + RECIPE_IndustrialBlastSmelterController); + // Blast Smelter Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "plateZirconiumCarbide", + CI.craftingToolHammer_Hard, + "plateZirconiumCarbide", + "plateZirconiumCarbide", + "frameGtZirconiumCarbide", + "plateZirconiumCarbide", + "plateZirconiumCarbide", + CI.craftingToolWrench, + "plateZirconiumCarbide", + RECIPE_IndustrialBlastSmelterFrame); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.ZIRCONIUM_CARBIDE.getPlate(6), ALLOY.ZIRCONIUM_CARBIDE.getFrameBox(1), + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialBlastSmelterFrame, + 50, + 16); + // Blast Smelter Coil + RecipeUtils.addShapedGregtechRecipe( + "plateStaballoy", + "plateStaballoy", + "plateStaballoy", + "frameGtStaballoy", + CI.gearboxCasing_Tier_3, + "frameGtStaballoy", + "plateStaballoy", + "plateStaballoy", + "plateStaballoy", + RECIPE_IndustrialBlastSmelterCoil); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.STABALLOY.getPlate(6), ALLOY.STABALLOY.getFrameBox(2), CI.gearboxCasing_Tier_3, + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialBlastSmelterCoil, + 50, + 16); + } + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemList.Casing_Coil_Infinity.get(1), ItemList.Reactor_Coolant_Sp_6.get(4), + ALLOY.LAURENIUM.getPlateDouble(2), CustomItemList.eM_Coil.get(1) }, + ALLOY.QUANTUM.getFluidStack(144 * 4), + GregtechItemList.Casing_Coil_QuantumForceTransformer.get(1), + 60 * 30, + MaterialUtils.getVoltageForTier(6)); + + TT_recipeAdder.addResearchableAssemblylineRecipe( + GregtechItemList.Casing_Coil_QuantumForceTransformer.get(1), + 2048 * 120 * 20, + 2048, + (int) GT_Values.VP[11], + 16, + new Object[] { GregtechItemList.Controller_MolecularTransformer.get(1), + GT_ModHandler.getModItem(EternalSingularity.ID, "eternal_singularity", 1), + new Object[] { OrePrefixes.circuit.get(Materials.Bio), 8 }, ItemList.Electric_Pump_UEV.get(4), + ItemList.Field_Generator_UEV.get(4), GregtechItemList.Laser_Lens_Special.get(1) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(144 * 10), + ALLOY.PIKYONIUM.getFluidStack(144 * 32) }, + GregtechItemList.QuantumForceTransformer.get(1), + 1200 * 20, + (int) GT_Values.VP[11]); + + if (CORE.ConfigSwitches.enableMultiblock_MatterFabricator) { + // Industrial Matter Fabricator + RECIPE_IndustrialMatterFabController = GregtechItemList.Industrial_MassFab.get(1); + RECIPE_IndustrialMatterFabFrame = GregtechItemList.Casing_MatterFab.get(1); + RECIPE_IndustrialMatterFabCoil = GregtechItemList.Casing_MatterGen.get(1); + + // Matter Fabricator CPU + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(8, 1), + CI.circuitTier8, + CI.getPlate(8, 1), + GT_OreDictUnificator.get(OrePrefixes.cableGt04.get(Materials.NaquadahAlloy), 1L), + CI.machineCasing_UV, + GT_OreDictUnificator.get(OrePrefixes.cableGt04.get(Materials.NaquadahAlloy), 1L), + CI.getPlate(8, 1), + CI.circuitTier8, + CI.getPlate(8, 1), + RECIPE_IndustrialMatterFabController); + // Matter Fabricator Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "plateNiobiumCarbide", + CI.component_Rod[8], + "plateNiobiumCarbide", + CI.component_Rod[8], + "frameGtInconel690", + CI.component_Rod[8], + "plateNiobiumCarbide", + CI.component_Rod[8], + "plateNiobiumCarbide", + RECIPE_IndustrialMatterFabFrame); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.NIOBIUM_CARBIDE.getPlate(4), ALLOY.INCONEL_792.getRod(4), + ALLOY.INCONEL_690.getFrameBox(1), GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialMatterFabFrame, + 50, + 16); + // Matter Fabricator Coil + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(6, 1), + CI.getPlate(7, 1), + CI.getPlate(6, 1), + "frameGtStellite", + CI.machineCasing_UV, + "frameGtStellite", + CI.getPlate(6, 1), + CI.getPlate(7, 1), + CI.getPlate(6, 1), + RECIPE_IndustrialMatterFabCoil); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { CI.machineCasing_UV, ALLOY.ZERON_100.getPlate(4), ALLOY.PIKYONIUM.getPlate(2), + ALLOY.STELLITE.getFrameBox(2), GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialMatterFabCoil, + 50, + 16); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialSifter) { + // Industrial Sieve + RECIPE_IndustrialSieveController = GregtechItemList.Industrial_Sifter.get(1); + RECIPE_IndustrialSieveFrame = GregtechItemList.Casing_Sifter.get(1); + RECIPE_IndustrialSieveGrate = GregtechItemList.Casing_SifterGrate.get(1); + + // Industrial Sieve + RecipeUtils.addShapedGregtechRecipe( + "plateEglinSteel", + CI.circuitTier3, + "plateEglinSteel", + cableTier4, + HV_MACHINE_Sifter, + cableTier4, + "plateEglinSteel", + CI.circuitTier3, + "plateEglinSteel", + RECIPE_IndustrialSieveController); + // Industrial Sieve Casing + RecipeUtils.addShapedGregtechRecipe( + "plateEglinSteel", + "plateEglinSteel", + "plateEglinSteel", + "plateEglinSteel", + "frameGtTumbaga", + "plateEglinSteel", + "plateEglinSteel", + "plateEglinSteel", + "plateEglinSteel", + RECIPE_IndustrialSieveFrame); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.EGLIN_STEEL.getPlate(8), ALLOY.TUMBAGA.getFrameBox(1), + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialSieveFrame, + 50, + 16); + // Industrial Sieve Grate + RecipeUtils.addShapedGregtechRecipe( + "frameGtEglinSteel", + "wireFineSteel", + "frameGtEglinSteel", + "wireFineSteel", + "wireFineSteel", + "wireFineSteel", + "frameGtEglinSteel", + "wireFineSteel", + "frameGtEglinSteel", + RECIPE_IndustrialSieveGrate); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Steel, 5), + ALLOY.EGLIN_STEEL.getFrameBox(4), GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + RECIPE_IndustrialSieveGrate, + 50, + 16); + } + + if (CORE.ConfigSwitches.enableMultiblock_TreeFarmer) { + // Industrial Tree Farmer + RECIPE_TreeFarmController = GregtechItemList.Industrial_TreeFarm.get(1); + RECIPE_TreeFarmFrame = GregtechItemList.Casing_PLACEHOLDER_TreeFarmer.get(1); + // Industrial Tree Farm Controller + RecipeUtils.addShapedGregtechRecipe( + ItemList.Field_Generator_IV.get(1), + ALLOY.INCOLOY_MA956.getRotor(1), + ItemList.Field_Generator_IV.get(1), + ALLOY.NITINOL_60.getPlate(1), + GregtechItemList.GTPP_Casing_IV.get(1), + ALLOY.NITINOL_60.getPlate(1), + ItemList.Field_Generator_IV.get(1), + ALLOY.INCONEL_792.getComponentByPrefix(OrePrefixes.pipeMedium, 1), + ItemList.Field_Generator_IV.get(1), + RECIPE_TreeFarmController); + // Industrial Tree Farm Frame + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { GT_Utility.getIntegratedCircuit(2), ALLOY.TUMBAGA.getFrameBox(1), + ItemUtils.getItemStackOfAmountFromOreDict("pipeTinySteel", 1), ItemList.MV_Coil.get(1), + ItemList.IC2_Plantball.get(4), GT_OreDictUnificator.get(OrePrefixes.plank, Materials.Wood, 8), }, + GT_ModHandler.getDistilledWater(2000), + RECIPE_TreeFarmFrame, + 200, + 64); + } + + if (CORE.ConfigSwitches.enableMachine_Tesseracts) { + // Tesseracts + RECIPE_TesseractGenerator = GregtechItemList.GT4_Tesseract_Generator.get(1); + RECIPE_TesseractTerminal = GregtechItemList.GT4_Tesseract_Terminal.get(1); + // Tesseract Generator + RecipeUtils.addShapedGregtechRecipe( + "plateTitanium", + "circuitMaster", + "plateTitanium", + "circuitMaster", + ItemUtils.getSimpleStack(Blocks.ender_chest), + "circuitMaster", + "plateTitanium", + GregtechItemList.Gregtech_Computer_Cube.get(1), + "plateTitanium", + RECIPE_TesseractGenerator); + // Tesseract Terminal + RecipeUtils.addShapedGregtechRecipe( + "plateTitanium", + "circuitElite", + "plateTitanium", + "circuitElite", + ItemUtils.getSimpleStack(Blocks.ender_chest), + "circuitElite", + "plateTitanium", + CI.machineHull_EV, + "plateTitanium", + RECIPE_TesseractTerminal); + } + + if (CORE.ConfigSwitches.enableMachine_SimpleWasher) { + final List<ItemStack> washers = ImmutableList.of( + GregtechItemList.SimpleDustWasher_LV.get(1), + GregtechItemList.SimpleDustWasher_MV.get(1), + GregtechItemList.SimpleDustWasher_HV.get(1), + GregtechItemList.SimpleDustWasher_EV.get(1), + GregtechItemList.SimpleDustWasher_IV.get(1), + GregtechItemList.SimpleDustWasher_LuV.get(1), + GregtechItemList.SimpleDustWasher_ZPM.get(1), + GregtechItemList.SimpleDustWasher_UV.get(1)); + + for (int i = 0; i < washers.size(); i++) { + final int tier = i + 1; + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getTieredMachineHull(tier), + CI.getTieredComponent(OrePrefixes.screw, tier, tier * 4), + CI.getTieredComponent(OrePrefixes.plate, tier - 1, tier * 2), + CI.getTieredComponent(OrePrefixes.rod, tier, tier), + CI.getTieredComponent(OrePrefixes.circuit, tier, 1) }, + CI.getTieredFluid(tier, 144 * tier), + washers.get(i), + 20 * 5 * tier, + (int) GT_Values.V[tier]); + } + } + + if (CORE.ConfigSwitches.enableMachine_Pollution && PollutionUtils.isPollutionEnabled()) { + + RecipeUtils.addShapedGregtechRecipe( + "plateCarbon", + "plateCarbon", + "plateCarbon", + "dustCarbon", + "dustCarbon", + "dustCarbon", + "plateCarbon", + "plateCarbon", + "plateCarbon", + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1)); + + RecipeUtils.addShapedGregtechRecipe( + "plateCarbon", + "plateCarbon", + "plateCarbon", + "cellLithiumPeroxide", + "dustCarbon", + "cellLithiumPeroxide", + "plateCarbon", + "plateCarbon", + "plateCarbon", + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1)); + + // Pollution Detector + RecipeUtils.addShapedGregtechRecipe( + "plateSteel", + CI.sensor_LV, + "plateSteel", + "plateSteel", + CI.electricMotor_LV, + "plateSteel", + CI.getTieredCircuit(1), + CI.machineHull_LV, + CI.getTieredCircuit(1), + GregtechItemList.Pollution_Detector.get(1)); + + // LV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[1], + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1), + CI.component_Plate[1], + CI.component_Plate[1], + CI.electricMotor_LV, + CI.component_Plate[1], + CI.getTieredCircuit(1), + CI.machineHull_LV, + CI.getTieredCircuit(1), + GregtechItemList.Pollution_Cleaner_LV.get(1)); + // MV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[2], + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1), + CI.component_Plate[2], + CI.component_Plate[2], + CI.electricMotor_MV, + CI.component_Plate[2], + CI.getTieredCircuit(2), + CI.machineHull_MV, + CI.getTieredCircuit(2), + GregtechItemList.Pollution_Cleaner_MV.get(1)); + // HV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[3], + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1), + CI.component_Plate[3], + CI.component_Plate[3], + CI.electricMotor_HV, + CI.component_Plate[3], + CI.getTieredCircuit(3), + CI.machineHull_HV, + CI.getTieredCircuit(3), + GregtechItemList.Pollution_Cleaner_HV.get(1)); + // EV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[4], + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1), + CI.component_Plate[4], + CI.component_Plate[4], + CI.electricMotor_EV, + CI.component_Plate[4], + CI.getTieredCircuit(4), + CI.machineHull_EV, + CI.getTieredCircuit(4), + GregtechItemList.Pollution_Cleaner_EV.get(1)); + // IV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[5], + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1), + CI.component_Plate[5], + CI.component_Plate[5], + CI.electricMotor_IV, + CI.component_Plate[5], + CI.getTieredCircuit(5), + CI.machineHull_IV, + CI.getTieredCircuit(5), + GregtechItemList.Pollution_Cleaner_IV.get(1)); + // LuV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1), + CI.component_Plate[6], + CI.component_Plate[6], + CI.electricMotor_LuV, + CI.component_Plate[6], + CI.getTieredCircuit(6), + CI.machineHull_LuV, + CI.getTieredCircuit(6), + GregtechItemList.Pollution_Cleaner_LuV.get(1)); + // ZPM + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[7], + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1), + CI.component_Plate[7], + CI.component_Plate[7], + CI.electricMotor_ZPM, + CI.component_Plate[7], + CI.getTieredCircuit(7), + CI.machineHull_ZPM, + CI.getTieredCircuit(7), + GregtechItemList.Pollution_Cleaner_ZPM.get(1)); + // UV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[8], + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1), + CI.component_Plate[8], + CI.component_Plate[8], + CI.electricMotor_UV, + CI.component_Plate[8], + CI.getTieredCircuit(8), + CI.machineHull_UV, + CI.getTieredCircuit(8), + GregtechItemList.Pollution_Cleaner_UV.get(1)); + // MAX + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[9], + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1), + CI.component_Plate[9], + CI.component_Plate[9], + CI.electricMotor_UHV, + CI.component_Plate[9], + CI.getTieredCircuit(9), + CI.machineHull_UHV, + CI.getTieredCircuit(9), + GregtechItemList.Pollution_Cleaner_MAX.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_ThermalBoiler) { + RECIPE_ThermalBoilerController = GregtechItemList.GT4_Thermal_Boiler.get(1); + RECIPE_ThermalBoilerCasing = GregtechItemList.Casing_ThermalContainment.get(2); + ItemStack centrifugeEV = ItemList.Machine_EV_Centrifuge.get(1); + + RecipeUtils.addShapedGregtechRecipe( + "craftingGeothermalGenerator", + centrifugeEV, + "craftingGeothermalGenerator", + "gearGtTitanium", + CI.getTieredCircuitOreDictName(6), + "gearGtTitanium", + "craftingGeothermalGenerator", + centrifugeEV, + "craftingGeothermalGenerator", + RECIPE_ThermalBoilerController); + + RecipeUtils.addShapedGregtechRecipe( + "craftingGeothermalGenerator", + centrifugeEV, + "craftingGeothermalGenerator", + "gearGtTungstenSteel", + CI.getTieredCircuitOreDictName(5), + "gearGtTungstenSteel", + "craftingGeothermalGenerator", + centrifugeEV, + "craftingGeothermalGenerator", + RECIPE_ThermalBoilerController); + + RecipeUtils.addShapedGregtechRecipe( + ALLOY.MARAGING350.getPlate(1), + "plateStainlessSteel", + ALLOY.MARAGING350.getPlate(1), + "circuitAdvanced", + CI.machineCasing_HV, + "circuitAdvanced", + ALLOY.MARAGING350.getPlate(1), + ALLOY.MARAGING350.getPlate(1), + ALLOY.MARAGING350.getPlate(1), + RECIPE_ThermalBoilerCasing); + + // Lava Filter Recipe + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(18), + ItemUtils.getItemStackOfAmountFromOreDict("dustCarbon", 32), + ItemUtils.getItemStackOfAmountFromOreDict("wireFineSteel", 32), + ItemUtils.getItemStackOfAmountFromOreDict("ringTumbaga", 16), + ItemUtils.getItemStackOfAmountFromOreDict("foilCopper", 4), + ItemUtils.getItemStackWithMeta(true, "IC2:itemPartCarbonMesh", "RawCarbonMesh", 0, 64), }, + CI.getTieredFluid(3, 144), + ItemUtils.getSimpleStack(ModItems.itemLavaFilter, 16), + 1600, + 240); + } + + // Air Intake Hatch + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], + ItemList.Casing_Grate.get(1), + CI.component_Plate[6], + CI.component_Plate[6], + CI.getFluidRegulator(5, 1), + CI.component_Plate[6], + CI.getTieredCircuit(5), + ItemList.Hatch_Input_IV.get(1), + CI.getTieredCircuit(5), + GregtechItemList.Hatch_Air_Intake.get(1)); + + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(7, 1), + GregtechItemList.Hatch_Air_Intake.get(1), + CI.getPlate(7, 1), + CI.getPlate(7, 1), + CI.getFluidRegulator(7, 1), + CI.getPlate(7, 1), + CI.getTieredCircuit(7), + ItemList.Hatch_Input_ZPM.get(1), + CI.getTieredCircuit(7), + GregtechItemList.Hatch_Air_Intake_Extreme.get(1)); + + if (CORE.ConfigSwitches.enableMultiblock_LiquidFluorideThoriumReactor) { + + // Thorium Reactor + RECIPE_LFTRController = GregtechItemList.ThoriumReactor.get(1); + RECIPE_LFTRInnerCasing = GregtechItemList.Casing_Reactor_II.get(1); // Zeron + RECIPE_LFTROuterCasing = GregtechItemList.Casing_Reactor_I.get(1); // Hastelloy + + ItemStack controlCircuit = ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR); + RecipeUtils.addShapedGregtechRecipe( + controlCircuit, + "cableGt12Naquadah", + controlCircuit, + "plateDoubleHastelloyN", + GregtechItemList.Gregtech_Computer_Cube.get(1), + "plateDoubleHastelloyN", + "plateThorium232", + CI.machineHull_IV, + "plateThorium232", + RECIPE_LFTRController); + RecipeUtils.addShapedGregtechRecipe( + "plateDoubleHastelloyC276", + CI.craftingToolScrewdriver, + "plateDoubleHastelloyC276", + "gearGtTalonite", + CI.fieldGenerator_LV, + "gearGtTalonite", + "plateDoubleHastelloyC276", + CI.craftingToolHammer_Hard, + "plateDoubleHastelloyC276", + RECIPE_LFTRInnerCasing); + + ItemStack IC2HeatPlate = ItemUtils.getItemStackFromFQRN("IC2:reactorPlatingHeat", 1); + RecipeUtils.addShapedGregtechRecipe( + "plateDoubleHastelloyN", + IC2HeatPlate, + "plateDoubleHastelloyN", + IC2HeatPlate, + "frameGtHastelloyC276", + IC2HeatPlate, + "plateDoubleHastelloyN", + IC2HeatPlate, + "plateDoubleHastelloyN", + RECIPE_LFTROuterCasing); + + // LFTR Control Circuit + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(6), 1), + CI.fieldGenerator_HV }, + null, + controlCircuit, + 240 * 20, + 500); + + // Fission Fuel Plant + RecipeUtils.addShapedGregtechRecipe( + CI.getTieredCircuitOreDictName(5), + CI.craftingToolSolderingIron, + CI.getTieredCircuitOreDictName(5), + "plateDenseTungstenSteel", + GregtechItemList.Gregtech_Computer_Cube.get(1), + "plateDenseTungstenSteel", + "gearGtStellite", + CI.machineHull_IV, + "gearGtStellite", + GregtechItemList.Industrial_FuelRefinery.get(1)); + + ItemStack mInnerTank = ItemList.Super_Tank_IV.get(1); + + // Incoloy Casing + RecipeUtils.addShapedGregtechRecipe( + "plateIncoloyDS", + "pipeHugeStaballoy", + "plateIncoloyDS", + "gearGtIncoloyDS", + mInnerTank, + "gearGtIncoloyDS", + "plateIncoloyDS", + "pipeHugeStaballoy", + "plateIncoloyDS", + GregtechItemList.Casing_Refinery_Internal.get(1)); + + // Hastelloy-N Sealant Casing + RecipeUtils.addShapedGregtechRecipe( + "plateIncoloyMA956", + "plateHastelloyN", + "plateIncoloyMA956", + "plateHastelloyN", + "frameGtHastelloyC276", + "plateHastelloyN", + "plateIncoloyMA956", + "plateHastelloyN", + "plateIncoloyMA956", + GregtechItemList.Casing_Refinery_External.get(1)); + + // Hastelloy-X Structural Casing + RecipeUtils.addShapedGregtechRecipe( + "ringInconel792", + "gearGtHastelloyX", + CI.component_Plate[5], + CI.craftingToolHammer_Hard, + "frameGtHastelloyC276", + CI.craftingToolWrench, + CI.component_Plate[5], + CI.getTieredMachineCasing(4), + "ringInconel792", + GregtechItemList.Casing_Refinery_Structural.get(1)); + + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(5, 1), + ALLOY.HASTELLOY_X.getPlateDouble(1), + CI.getPlate(5, 1), + CI.getPlate(5, 1), + CI.getTieredMachineCasing(5), + CI.getPlate(5, 1), + CI.getRobotArm(5, 1), + ItemList.Casing_FrostProof.get(1), + CI.getRobotArm(5, 1), + GregtechItemList.ColdTrap_IV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(7, 1), + ALLOY.HS188A.getPlateDouble(1), + CI.getPlate(7, 1), + CI.getPlate(7, 1), + GregtechItemList.ColdTrap_IV.get(1), + CI.getPlate(7, 1), + CI.getRobotArm(7, 1), + ItemList.Casing_FrostProof.get(1), + CI.getRobotArm(7, 1), + GregtechItemList.ColdTrap_ZPM.get(1)); + + RecipeUtils.addShapedGregtechRecipe( + CI.getFieldGenerator(3, 1), + CI.getRobotArm(5, 1), + CI.getPlate(5, 1), + ALLOY.HASTELLOY_N.getPlateDouble(1), + ItemList.Machine_IV_ChemicalReactor.get(1), + ALLOY.HASTELLOY_N.getPlateDouble(1), + CI.getPlate(5, 1), + ALLOY.HASTELLOY_N.getPlateDouble(1), + CI.getFieldGenerator(3, 1), + GregtechItemList.ReactorProcessingUnit_IV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.getFieldGenerator(5, 1), + CI.getRobotArm(7, 1), + CI.getPlate(7, 1), + ALLOY.HS188A.getPlateDouble(1), + GregtechItemList.ReactorProcessingUnit_IV.get(1), + ALLOY.HS188A.getPlateDouble(1), + CI.getPlate(7, 1), + ALLOY.HS188A.getPlateDouble(1), + CI.getFieldGenerator(5, 1), + GregtechItemList.ReactorProcessingUnit_ZPM.get(1)); + + // Nuclear Salt Processing Plant Controller + RECIPE_SaltPlantController = GregtechItemList.Nuclear_Salt_Processing_Plant.get(1); + + RecipeUtils.addShapedGregtechRecipe( + "plateOsmiridium", + GregtechItemList.ReactorProcessingUnit_IV.get(1), + "plateOsmiridium", + "plateRuridit", + CI.getTieredCircuitOreDictName(7), + "plateRuridit", + "plateOsmiridium", + GregtechItemList.ColdTrap_IV.get(1), + "plateOsmiridium", + RECIPE_SaltPlantController); + } + + // Cyclotron + if (CORE.ConfigSwitches.enableMultiblock_Cyclotron) { + RECIPE_CyclotronController = GregtechItemList.COMET_Cyclotron.get(1); + RECIPE_CyclotronOuterCasing = GregtechItemList.Casing_Cyclotron_External.get(1); + RECIPE_CyclotronInnerCoil = GregtechItemList.Casing_Cyclotron_Coil.get(1); + + // Outer Casing + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemList.Casing_FrostProof.get(1), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 0, 4), ALLOY.INCOLOY_DS.getPlate(8), + ALLOY.INCONEL_690.getScrew(16), ALLOY.EGLIN_STEEL.getLongRod(4), CI.getElectricPiston(3, 2) }, + ALLOY.ZIRCONIUM_CARBIDE.getFluidStack(144 * 8), // Input Fluid + RECIPE_CyclotronOuterCasing, + 30 * 20 * 2, + MaterialUtils.getVoltageForTier(4)); + + // Inner Coil + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemList.Casing_Coil_Nichrome.get(1), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 1, 8), + ALLOY.INCOLOY_MA956.getPlate(8), ALLOY.TANTALLOY_61.getBolt(16), ALLOY.INCOLOY_020.getScrew(32), + CI.getFieldGenerator(4, 1) }, + ALLOY.HG1223.getFluidStack(144 * 5), // Input Fluid + RECIPE_CyclotronInnerCoil, + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(5)); + + // Controller + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.machineHull_IV, ItemUtils.getSimpleStack(RECIPE_CyclotronInnerCoil, 2), + ALLOY.INCOLOY_020.getPlate(8), ALLOY.TANTALLOY_61.getGear(2), ALLOY.INCOLOY_MA956.getScrew(16), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(5), 16) }, + ALLOY.INCOLOY_020.getFluidStack(144 * 9), // Input Fluid + RECIPE_CyclotronController, + 60 * 20 * 5, + MaterialUtils.getVoltageForTier(5)); + } + + // Mazut + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Controller_LargeSemifluidGenerator.get(1L), + CI.bitsd, + new Object[] { "PCP", "EME", "GWG", 'M', ItemList.Hull_EV, 'P', ItemList.Electric_Piston_EV, 'E', + ItemList.Electric_Pump_EV, 'C', OrePrefixes.circuit.get(Materials.Data), 'W', + OrePrefixes.cableGt08.get(Materials.Electrum), 'G', ALLOY.INCONEL_792.getGear(1) }); + + if (CORE.ConfigSwitches.enableMultiblock_PowerSubstation) { + RecipeUtils.addShapedRecipe( + "screwTitanium", + "plateIncoloy020", + "screwTitanium", + "plateIncoloy020", + "frameGtIncoloyMA956", + "plateIncoloy020", + "screwTitanium", + "plateIncoloy020", + "screwTitanium", + GregtechItemList.Casing_Power_SubStation.get(1)); + + ItemStack mBattery = ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR); + + RecipeUtils.addShapedRecipe( + "plateIncoloyMA956", + mBattery, + "plateIncoloyMA956", + GregtechItemList.Casing_Power_SubStation.get(1), + GregtechItemList.Casing_Vanadium_Redox.get(1), + GregtechItemList.Casing_Power_SubStation.get(1), + "plateIncoloy020", + "plateIncoloyMA956", + "plateIncoloy020", + GregtechItemList.PowerSubStation.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialThermalCentrifuge) { + RecipeUtils.addShapedRecipe( + "plateRedSteel", + CI.craftingToolHammer_Hard, + "plateRedSteel", + "plateRedSteel", + "frameGtBlackSteel", + "plateRedSteel", + "plateRedSteel", + CI.craftingToolWrench, + "plateRedSteel", + GregtechItemList.Casing_ThermalCentrifuge.get(1)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedSteel, 6), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlackSteel, 1), + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + GregtechItemList.Casing_ThermalCentrifuge.get(1L), + 50, + 16); + + RecipeUtils.addShapedRecipe( + "plateRedSteel", + "circuitData", + "plateRedSteel", + "stickTalonite", + EV_MACHINE_ThermalCentrifuge, + "stickTalonite", + "plateRedSteel", + "gearGtTalonite", + "plateRedSteel", + GregtechItemList.Industrial_ThermalCentrifuge.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialWashPlant) { + RecipeUtils.addShapedRecipe( + "plateGrisium", + CI.craftingToolHammer_Hard, + "plateGrisium", + "plateTalonite", + "frameGtGrisium", + "plateTalonite", + "plateGrisium", + CI.craftingToolWrench, + "plateGrisium", + GregtechItemList.Casing_WashPlant.get(1)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.LEAGRISIUM.getPlate(4), ALLOY.TALONITE.getPlate(2), + ALLOY.LEAGRISIUM.getFrameBox(1), GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + GregtechItemList.Casing_WashPlant.get(1L), + 50, + 16); + + RecipeUtils.addShapedRecipe( + "plateGrisium", + EV_MACHINE_OreWasher, + "plateGrisium", + "plateTalonite", + "circuitData", + "plateTalonite", + "plateGrisium", + EV_MACHINE_ChemicalBath, + "plateGrisium", + GregtechItemList.Industrial_WashPlant.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_LargeAutoCrafter) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(GregtechItemList.Casing_Multi_Use.get(1), 1), + ItemList.Block_IridiumTungstensteel.get(1), CI.getTieredComponent(OrePrefixes.circuit, 2, 16), + CI.getTieredComponent(OrePrefixes.screw, 5, 32), CI.getTieredComponent(OrePrefixes.bolt, 5, 12), + CI.getTieredComponent(OrePrefixes.plate, 6, 8), }, + CI.getTertiaryTieredFluid(6, 144 * (4)), + GregtechItemList.Casing_Autocrafter.get(1), + 20 * 60 * 2, + MaterialUtils.getVoltageForTier(5)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { GregtechItemList.Casing_Refinery_Structural.get(4), + ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR, 1), + CI.getTieredComponent(OrePrefixes.cableGt08, 6, 16), CI.getTransmissionComponent(5, 2), + GregtechItemList.Gregtech_Computer_Cube.get(1), }, + CI.getTieredFluid(7, 144 * 8), + GregtechItemList.GT4_Multi_Crafter.get(1), + 20 * 60 * 5, + MaterialUtils.getVoltageForTier(5)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(GregtechItemList.Casing_Multi_Use.get(1), 1), + CI.getEmitter(4, 2), CI.getRobotArm(4, 2), CI.getTieredComponent(OrePrefixes.circuit, 2, 8), + CI.getTieredComponent(OrePrefixes.screw, 3, 8), CI.getTieredComponent(OrePrefixes.plate, 5, 4), }, + CI.getAlternativeTieredFluid(5, 144 * 4), + ItemUtils.getSimpleStack(ModBlocks.blockProjectTable), + 20 * 30 * 3, + MaterialUtils.getVoltageForTier(4)); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialCuttingMachine) { + ItemStack plate = ALLOY.MARAGING300.getPlate(1); + RecipeUtils.addShapedRecipe( + plate, + CI.craftingToolHammer_Hard, + plate, + "plateStellite", + "frameGtTalonite", + "plateStellite", + plate, + CI.craftingToolWrench, + plate, + GregtechItemList.Casing_CuttingFactoryFrame.get(1)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.MARAGING300.getPlate(4), ALLOY.STELLITE.getPlate(2), + ALLOY.TALONITE.getFrameBox(1), GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + GregtechItemList.Casing_CuttingFactoryFrame.get(1L), + 50, + 16); + + RecipeUtils.addShapedRecipe( + plate, + CI.getTieredCircuit(4), + plate, + "wireFinePlatinum", + IV_MACHINE_Cutter, + "wireFinePlatinum", + plate, + CI.getTieredCircuit(4), + plate, + GregtechItemList.Industrial_CuttingFactoryController.get(1)); + } + + // IV_MACHINE_Extruder + if (CORE.ConfigSwitches.enableMultiblock_IndustrialExtrudingMachine) { + ItemStack plate = ALLOY.INCONEL_690.getPlate(1); + RecipeUtils.addShapedRecipe( + plate, + CI.craftingToolHammer_Hard, + plate, + "plateTalonite", + "frameGtStaballoy", + "plateTalonite", + plate, + CI.craftingToolWrench, + plate, + GregtechItemList.Casing_Extruder.get(1)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.INCONEL_690.getPlate(4), ALLOY.TALONITE.getPlate(2), + ALLOY.STABALLOY.getFrameBox(1), GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + GregtechItemList.Casing_Extruder.get(1L), + 50, + 16); + + RecipeUtils.addShapedRecipe( + plate, + CI.getTieredCircuit(5), + plate, + CI.electricPiston_IV, + IV_MACHINE_Extruder, + CI.electricPiston_IV, + plate, + CI.getTieredCircuit(5), + plate, + GregtechItemList.Industrial_Extruder.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialFishingPort) { + ItemStack plate = ALLOY.AQUATIC_STEEL.getPlate(1); + RecipeUtils.addShapedRecipe( + plate, + CI.craftingToolHammer_Hard, + plate, + "plateEglinSteel", + "frameGtEglinSteel", + "plateEglinSteel", + plate, + CI.craftingToolWrench, + plate, + GregtechItemList.Casing_FishPond.get(1)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.AQUATIC_STEEL.getPlate(4), ALLOY.EGLIN_STEEL.getPlate(2), + ALLOY.EGLIN_STEEL.getFrameBox(1), GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + GregtechItemList.Casing_FishPond.get(1L), + 50, + 16); + RecipeUtils.addShapedRecipe( + plate, + CI.getTieredCircuit(5), + plate, + "wireFineElectrum", + ItemUtils.getSimpleStack(ModBlocks.blockFishTrap), + "wireFineElectrum", + plate, + CI.getTieredCircuit(5), + plate, + GregtechItemList.Industrial_FishingPond.get(1)); + } + + if (true) { + // Advanced Vacuum Freezer + ItemStack plate = ALLOY.HG1223.getPlateDouble(1); + ItemStack gear = ALLOY.INCOLOY_MA956.getGear(1); + ItemStack frame = ALLOY.LAFIUM.getFrameBox(1); + ItemStack cell1 = ItemList.Reactor_Coolant_He_6.get(1); + ItemStack cell2 = ItemList.Reactor_Coolant_NaK_6.get(1); + + RecipeUtils.addShapedRecipe( + plate, + gear, + plate, + cell1, + frame, + cell2, + plate, + gear, + plate, + GregtechItemList.Casing_AdvancedVacuum.get(1)); + RecipeUtils.addShapedRecipe( + gear, + CI.getTieredCircuit(6), + gear, + CI.electricPiston_IV, + GregtechItemList.Casing_AdvancedVacuum.get(1), + CI.electricPiston_IV, + plate, + GregtechItemList.Gregtech_Computer_Cube.get(1), + plate, + GregtechItemList.Industrial_Cryogenic_Freezer.get(1)); + + // Advanced Blast Furnace + plate = ALLOY.HASTELLOY_N.getPlateDouble(1); + gear = ALLOY.HASTELLOY_W.getGear(1); + frame = ALLOY.HASTELLOY_X.getFrameBox(1); + cell1 = ItemUtils.simpleMetaStack("IC2:reactorHeatSwitchDiamond:1", 1, 1); + cell2 = ItemUtils.simpleMetaStack("IC2:reactorVentGold:1", 1, 1); + ItemStack cell3 = ItemUtils.simpleMetaStack("IC2:reactorVentDiamond:1:1", 1, 1); + + RecipeUtils.addShapedRecipe( + plate, + cell1, + plate, + cell3, + frame, + cell2, + plate, + gear, + plate, + GregtechItemList.Casing_Adv_BlastFurnace.get(1)); + RecipeUtils.addShapedRecipe( + gear, + CI.getTieredCircuit(6), + gear, + CI.robotArm_IV, + GregtechItemList.Casing_Adv_BlastFurnace.get(1), + CI.robotArm_IV, + plate, + GregtechItemList.Gregtech_Computer_Cube.get(1), + plate, + GregtechItemList.Machine_Adv_BlastFurnace.get(1)); + // Hatch_Input_Pyrotheum + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ItemList.Hatch_Input_IV.get(1), GregtechItemList.Casing_Adv_BlastFurnace.get(1), + ALLOY.MARAGING250.getPlate(4), ALLOY.MARAGING300.getGear(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 2), + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + GregtechItemList.Hatch_Input_Pyrotheum.get(1L), + 50, + 16); + // Casing_Adv_BlastFurnace + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.HASTELLOY_X.getFrameBox(1), ALLOY.HASTELLOY_N.getPlateDouble(4), + ALLOY.HASTELLOY_W.getGear(1), ItemUtils.simpleMetaStack("IC2:reactorHeatSwitchDiamond:1", 1, 1), + ItemUtils.simpleMetaStack("IC2:reactorVentGold:1", 1, 1), + ItemUtils.simpleMetaStack("IC2:reactorVentDiamond:1:1", 1, 1), + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + GregtechItemList.Casing_Adv_BlastFurnace.get(1L), + 50, + 16); + + // Advanced Implosion Compressor + plate = ItemUtils.getItemStackOfAmountFromOreDict("plateAlloyIridium", 1); + gear = ALLOY.LEAGRISIUM.getGear(1); + frame = ALLOY.CINOBITE.getFrameBox(1); + cell1 = ItemUtils.simpleMetaStack("IC2:reactorHeatSwitchDiamond:1", 1, 1); + cell2 = ItemUtils.simpleMetaStack("IC2:reactorVentGold:1", 1, 1); + + RecipeUtils.addShapedRecipe( + gear, + CI.getTieredCircuit(6), + gear, + CI.fieldGenerator_IV, + CI.machineHull_ZPM, + CI.robotArm_IV, + plate, + GregtechItemList.Gregtech_Computer_Cube.get(1), + plate, + GregtechItemList.Machine_Adv_ImplosionCompressor.get(1)); + + // Supply Depot + plate = ALLOY.TUNGSTEN_CARBIDE.getPlateDouble(1); + gear = ALLOY.TRINIUM_TITANIUM.getRing(1); + frame = ALLOY.TUNGSTEN_CARBIDE.getFrameBox(1); + cell1 = CI.conveyorModule_LuV; + cell2 = CI.electricMotor_LuV; + ItemStack casingAmazon = GregtechItemList.Casing_AmazonWarehouse.get(1); + + RecipeUtils.addShapedRecipe( + plate, + ItemUtils.getItemStackOfAmountFromOreDict("cableGt12VanadiumGallium", 1), + plate, + cell1, + frame, + cell2, + plate, + gear, + plate, + GregtechItemList.Casing_AmazonWarehouse.get(1)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.TUNGSTEN_CARBIDE.getFrameBox(1), ALLOY.TUNGSTEN_CARBIDE.getPlateDouble(4), + ALLOY.TRINIUM_TITANIUM.getRing(1), ItemList.Electric_Motor_LuV.get(1), + ItemList.Conveyor_Module_LuV.get(1), + ItemUtils.getItemStackOfAmountFromOreDict("cableGt12VanadiumGallium", 1), + GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + GregtechItemList.Casing_AmazonWarehouse.get(1L), + 50, + 16); + RecipeUtils.addShapedRecipe( + casingAmazon, + CI.getTieredCircuit(7), + casingAmazon, + CI.robotArm_LuV, + ItemList.Machine_LuV_Unboxinator.get(1), + CI.robotArm_LuV, + CI.conveyorModule_LuV, + GregtechItemList.Gregtech_Computer_Cube.get(1), + CI.conveyorModule_LuV, + GregtechItemList.Amazon_Warehouse_Controller.get(1)); + + // Industrial Mixing Machine + RecipeUtils.addShapedRecipe( + "plateStaballoy", + CI.getTieredCircuit(5), + "plateStaballoy", + "plateZirconiumCarbide", + IV_MACHINE_Mixer, + "plateZirconiumCarbide", + "plateStaballoy", + CI.getTieredCircuit(5), + "plateStaballoy", + GregtechItemList.Industrial_Mixer.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialMultiMachine) { + ItemStack plate = ALLOY.STABALLOY.getPlate(1); + + ItemStack o_Compressor = ItemList.Machine_IV_Compressor.get(1); + ItemStack o_Lathe = ItemList.Machine_IV_Lathe.get(1); + ItemStack o_Electromagnet = ItemList.Machine_IV_Polarizer.get(1); + ItemStack o_Fermenter = ItemList.Machine_IV_Fermenter.get(1); + ItemStack o_Distillery = ItemList.Machine_IV_FluidExtractor.get(1); + ItemStack o_Extractor = ItemList.Machine_IV_Extractor.get(1); + + RecipeUtils.addShapedRecipe( + plate, + CI.craftingToolHammer_Hard, + plate, + "plateStainlessSteel", + "frameGtZirconiumCarbide", + "plateStainlessSteel", + plate, + CI.craftingToolWrench, + plate, + GregtechItemList.Casing_Multi_Use.get(1)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ALLOY.STABALLOY.getPlate(4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 2), + ALLOY.ZIRCONIUM_CARBIDE.getFrameBox(1), GT_Utility.getIntegratedCircuit(1), }, + GT_Values.NF, + GregtechItemList.Casing_Multi_Use.get(1L), + 50, + 16); + + RecipeUtils.addShapedRecipe( + o_Compressor, + o_Lathe, + o_Electromagnet, + plate, + ItemUtils.getSimpleStack(ModBlocks.blockProjectTable), + plate, + o_Fermenter, + o_Distillery, + o_Extractor, + GregtechItemList.Industrial_MultiMachine.get(1)); + } + + /* + * 6/1/19 - Content additions + */ + + // Drilling Platform Casings + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("frameGtTriniumNaquadahCarbonite", 4), + ItemUtils.getItemStackOfAmountFromOreDict("plateDoubleTriniumTitaniumAlloy", 1 * (1)), + ItemUtils.getItemStackOfAmountFromOreDict("gearGtPikyonium64B", 2 * (1)), + ALLOY.TRINIUM_REINFORCED_STEEL.getPlateDouble(4 * 1), + ItemUtils.getSimpleStack((CI.machineHull_LuV), 1 * 1), }, + ALLOY.MARAGING350.getFluidStack(144 * 16 * 1), + GregtechItemList.Casing_BedrockMiner.get(1), + (int) GT_Values.V[4], + (int) GT_Values.V[6]); + + int aCostMultiplier = 1; + + // Reservoir Hatch + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { ItemList.Hatch_Input_EV.get(1), GT_ModHandler.getModItem(RemoteIO.ID, "tile.machine", 1), + ItemList.Electric_Pump_EV.get(1) }, + GT_Values.NF, + GregtechItemList.Hatch_Reservoir.get(1), + 100, + 1920); + + // Mystic Frame + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { GregtechItemList.Casing_Multi_Use.get(1), + ItemList.Field_Generator_MV.get(1, CI.circuitTier7), + ItemList.Field_Generator_HV.get(1, CI.circuitTier7), ItemList.Emitter_HV.get(1, CI.circuitTier7), + ItemList.Sensor_HV.get(1, CI.circuitTier7), + CI.getTieredComponent(OrePrefixes.plate, 7, 8 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.wireGt08, 8, 4 * aCostMultiplier), }, + CI.getTieredFluid(6, (144 * 8)), // Input Fluid + ItemUtils.getSimpleStack(Dimension_Everglades.blockPortalFrame, 2), + 45 * 20 * 1 * (6), + MaterialUtils.getVoltageForTier(6)); + + // Player Doors + ItemStack[] aDoorInputs = new ItemStack[] { ItemUtils.getSimpleStack(Blocks.log2), + ItemUtils.getSimpleStack(Blocks.iron_block), ItemUtils.getSimpleStack(Blocks.glass), + ItemUtils.getSimpleStack(Blocks.packed_ice), ItemUtils.getSimpleStack(Blocks.cactus), }; + ItemStack[] aDoorOutputs = new ItemStack[] { ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorWooden), + ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorIron), + ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorCustom_Glass), + ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorCustom_Ice), + ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorCustom_Cactus), }; + + for (int y = 0; y < aDoorInputs.length; y++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(Items.iron_door), aDoorInputs[y], + ItemList.Sensor_LV.get(1, CI.circuitTier7), + CI.getTieredComponent(OrePrefixes.plate, 1, 2 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.wireGt02, 1, 2 * aCostMultiplier), + ItemUtils.getSimpleStack(Items.redstone, 16) }, + CI.getTieredFluid(1, (144 * 2)), // Input Fluid + aDoorOutputs[y], + 100, + MaterialUtils.getVoltageForTier(1)); + } + + Logger.INFO("Done loading recipes for the Various machine blocks."); + } + + private static void energyCores() { + + ItemStack[] aBufferOutput = new ItemStack[] { RECIPE_Buffer_ULV, RECIPE_Buffer_LV, RECIPE_Buffer_MV, + RECIPE_Buffer_HV, RECIPE_Buffer_EV, RECIPE_Buffer_IV, RECIPE_Buffer_LuV, RECIPE_Buffer_ZPM, + RECIPE_Buffer_UV, RECIPE_Buffer_MAX }; + + ItemStack[] aOutput = new ItemStack[] { + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "1", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "2", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "3", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "4", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "5", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "6", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "7", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "8", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "9", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "10", 1) }; + + for (int i = 0; i < 10; i++) { + + ItemStack aPrevTier = (i == 0 ? CI.getTieredMachineHull(1) : aOutput[i - 1]); + aPrevTier.stackSize = 1; + int aTier = (i + 1); + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { aPrevTier, CI.getTieredComponent(OrePrefixes.plate, aTier, 4), + CI.getTieredComponent(OrePrefixes.cableGt04, i, 2), + CI.getTieredComponent(OrePrefixes.circuit, aTier, 2), + CI.getTieredComponent(OrePrefixes.screw, aTier, 6), + CI.getTieredComponent(OrePrefixes.bolt, i, 12), }, + CI.getTieredFluid(i, (144 * 4 * aTier)), // Input Fluid + aOutput[i], + 45 * 10 * 1 * (aTier), + MaterialUtils.getVoltageForTier(i)); + + // Energy Buffer + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(aOutput[i], 4), + CI.getTieredComponent(OrePrefixes.plate, aTier, 8), + CI.getTieredComponent(OrePrefixes.wireGt08, i, 4), CI.getTieredComponent(OrePrefixes.circuit, i, 4), + CI.getTieredComponent(OrePrefixes.stickLong, aTier, 4), + CI.getTieredComponent(OrePrefixes.gearGt, i, 5), }, + CI.getTieredFluid(aTier, (144 * 16 * aTier)), // Input Fluid + aBufferOutput[i], + 45 * 20 * 1 * (aTier), + MaterialUtils.getVoltageForTier(i)); + } + } + + private static void wirelessChargers() { + + ItemStack[] aChargers = new ItemStack[] { GregtechItemList.Charger_LV.get(1), + GregtechItemList.Charger_MV.get(1), GregtechItemList.Charger_HV.get(1), GregtechItemList.Charger_EV.get(1), + GregtechItemList.Charger_IV.get(1), GregtechItemList.Charger_LuV.get(1), + GregtechItemList.Charger_ZPM.get(1), GregtechItemList.Charger_UV.get(1), + GregtechItemList.Charger_UHV.get(1) }; + + for (int tier = 1; tier < aChargers.length + 1; tier++) { + + ItemStack[] aInputs = new ItemStack[] { CI.getTieredMachineHull(tier, 1), + CI.getTransmissionComponent(tier, 2), CI.getFieldGenerator(tier, 1), + CI.getTieredComponent(OrePrefixes.plate, tier + 1, 4), + CI.getTieredComponent(OrePrefixes.circuit, tier + 1, 2), }; + CORE.RA.addSixSlotAssemblingRecipe( + aInputs, + CI.getAlternativeTieredFluid(tier, (144 * 2 * (tier + 1))), // Input Fluid + aChargers[tier - 1], + 45 * 10 * (tier + 1), + MaterialUtils.getVoltageForTier(tier)); + } + } + + private static void largeArcFurnace() { + int aCostMultiplier = 1; + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { GregtechItemList.Casing_Multi_Use.get(aCostMultiplier), + CI.getTransmissionComponent(2, 2 * aCostMultiplier), CI.getElectricPiston(4, 2 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.plate, 5, 4 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.pipeSmall, 4, 1 * aCostMultiplier), }, + CI.getAlternativeTieredFluid(5, (144 * 2 * 4)), // Input Fluid + GregtechItemList.Casing_Industrial_Arc_Furnace.get(1), + 20 * 10 * 1 * (6), + MaterialUtils.getVoltageForTier(5)); + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { GregtechItemList.Casing_Industrial_Arc_Furnace.get(1), + CI.getFieldGenerator(4, 2 * aCostMultiplier), CI.getRobotArm(5, 4 * aCostMultiplier), + CI.getEnergyCore(4, 2 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.plate, 6, 8 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.circuit, 5, 8 * aCostMultiplier), }, + CI.getAlternativeTieredFluid(6, (144 * 4 * 5)), // Input Fluid + GregtechItemList.Industrial_Arc_Furnace.get(1), + 60 * 20 * 8, + MaterialUtils.getVoltageForTier(6)); + } + + private static void industrialVacuumFurnace() { + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { GregtechItemList.Casing_Multi_Use.get(1), CI.getHeatCoil(2), CI.getElectricPiston(3, 2), + CI.getTieredComponent(OrePrefixes.plate, 6, 4), CI.getTieredComponent(OrePrefixes.gearGt, 6, 2), }, + CI.getTertiaryTieredFluid(5, (144 * 2 * 4)), // Input Fluid + GregtechItemList.Casing_Vacuum_Furnace.get(1), + 20 * 10 * 6, + MaterialUtils.getVoltageForTier(6)); + + ; + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { GregtechItemList.Casing_Vacuum_Furnace.get(1), + CI.getTieredComponent(OrePrefixes.wireGt16, 7, 4), CI.getEnergyCore(5, 1), CI.getRobotArm(4, 4), + CI.getTieredComponent(OrePrefixes.plate, 6, 8), CI.getTieredComponent(OrePrefixes.circuit, 6, 8), }, + CI.getTieredFluid(6, (144 * 4 * 5)), // Input Fluid + GregtechItemList.Controller_Vacuum_Furnace.get(1), + 60 * 20 * 12, + MaterialUtils.getVoltageForTier(6)); + } + + private static void milling() { + + /* + * public static ItemStack RECIPE_ISAMill_Controller; public static ItemStack RECIPE_ISAMill_Gearbox; public + * static ItemStack RECIPE_ISAMill_Casing; public static ItemStack RECIPE_ISAMill_Hatch; public static ItemStack + * RECIPE_Flotation_Controller; public static ItemStack RECIPE_Flotation_Casing; + */ + + // Isa Mill Controller + CORE.RA.addAssemblylineRecipe( + ItemList.Machine_IV_Macerator.get(1), + 20 * 60 * 20, + new Object[] { GregtechItemList.Casing_IsaMill_Gearbox.get(4), CI.getTieredGTPPMachineCasing(6, 4), + ItemList.Component_Grinder_Tungsten.get(16), new Object[] { CI.getTieredCircuitOreDictName(6), 8 }, + ALLOY.INCONEL_625.getGear(8), ALLOY.INCONEL_625.getPlate(32), ALLOY.ZERON_100.getPlateDouble(8), + ALLOY.ZERON_100.getPlateDouble(8), ALLOY.ZERON_100.getScrew(64), + CI.getTieredComponentOfMaterial(Materials.NiobiumTitanium, OrePrefixes.wireFine, 32), + CI.getTieredComponentOfMaterial(Materials.NiobiumTitanium, OrePrefixes.wireFine, 32), + CI.getTieredComponentOfMaterial(Materials.Titanium, OrePrefixes.foil, 16), + CI.getTieredComponentOfMaterial(Materials.Titanium, OrePrefixes.foil, 16), }, + new FluidStack[] { CI.getTieredFluid(6, 16 * 144), CI.getAlternativeTieredFluid(6, 32 * 144), + CI.getTertiaryTieredFluid(6, 32 * 144) }, + GregtechItemList.Controller_IsaMill.get(1), + 20 * 60 * 10, + MaterialUtils.getVoltageForTier(6)); + + // Isa Mill Gearbox + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(7), ItemList.Casing_Gearbox_Titanium.get(2), + ALLOY.INCONEL_625.getGear(4), + CI.getTieredComponentOfMaterial(Materials.HSSE, OrePrefixes.gearGtSmall, 8), + ALLOY.INCONEL_625.getPlate(16), ALLOY.ZERON_100.getBolt(16), }, + ALLOY.TUNGSTENSTEEL.getFluidStack(8 * 144), + GregtechItemList.Casing_IsaMill_Gearbox.get(1), + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(6)); + + // Isa Mill Casing + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(7), CI.getTieredGTPPMachineCasing(5, 1), + ALLOY.INCONEL_625.getPlate(8), ALLOY.ZERON_100.getRod(4), + CI.getTieredComponentOfMaterial(Materials.HSSG, OrePrefixes.gearGtSmall, 4), + ALLOY.ZERON_100.getScrew(8), }, + ELEMENT.getInstance().TITANIUM.getFluidStack(4 * 144), + GregtechItemList.Casing_IsaMill_Casing.get(1), + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(6)); + + // Isa Mill Pipe + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(7), CI.getTieredGTPPMachineCasing(4, 2), + ALLOY.INCONEL_625.getPlateDouble(4), ALLOY.INCOLOY_MA956.getRing(8), + CI.getTieredComponentOfMaterial(Materials.HSSE, OrePrefixes.plate, 8), + ALLOY.INCOLOY_MA956.getBolt(16), }, + ELEMENT.getInstance().ALUMINIUM.getFluidStack(8 * 144), + GregtechItemList.Casing_IsaMill_Pipe.get(1), + 60 * 20 * 8, + MaterialUtils.getVoltageForTier(4)); + + // Flotation Cell Controller + CORE.RA.addAssemblylineRecipe( + ItemList.Distillation_Tower.get(1), + 20 * 60 * 20, + new Object[] { GregtechItemList.Casing_Flotation_Cell.get(4), CI.getTieredGTPPMachineCasing(5, 4), + ItemList.Machine_IV_Distillery.get(1), new Object[] { CI.getTieredCircuitOreDictName(6), 8 }, + ALLOY.STELLITE.getGear(8), ALLOY.STELLITE.getPlate(32), ALLOY.HASTELLOY_N.getPlateDouble(8), + ALLOY.HASTELLOY_N.getPlateDouble(8), ALLOY.HASTELLOY_N.getScrew(64), + CI.getTieredComponentOfMaterial(Materials.YttriumBariumCuprate, OrePrefixes.wireFine, 64), + CI.getTieredComponentOfMaterial(Materials.YttriumBariumCuprate, OrePrefixes.wireFine, 64), + CI.getTieredComponentOfMaterial(Materials.Platinum, OrePrefixes.foil, 32), + CI.getTieredComponentOfMaterial(Materials.Platinum, OrePrefixes.foil, 32), }, + new FluidStack[] { CI.getTieredFluid(5, 16 * 144), CI.getAlternativeTieredFluid(4, 32 * 144), + CI.getTertiaryTieredFluid(4, 32 * 144) }, + GregtechItemList.Controller_Flotation_Cell.get(1), + 20 * 60 * 10, + MaterialUtils.getVoltageForTier(6)); + + // Flotation Cell Casing + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(7), CI.getTieredGTPPMachineCasing(4, 1), + ALLOY.AQUATIC_STEEL.getPlate(8), ALLOY.STELLITE.getRing(8), + CI.getTieredComponentOfMaterial(Materials.HSSG, OrePrefixes.plateDouble, 4), + ALLOY.HASTELLOY_N.getScrew(8), }, + ALLOY.STAINLESS_STEEL.getFluidStack(8 * 144), + GregtechItemList.Casing_Flotation_Cell.get(1), + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(6)); + + // Milling Bus + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(7), CI.getTieredGTPPMachineCasing(5, 1), + ItemList.Hatch_Input_Bus_EV.get(1), + CI.getTieredComponentOfMaterial(Materials.Titanium, OrePrefixes.gearGt, 8), + CI.getTieredComponentOfMaterial(Materials.TungstenSteel, OrePrefixes.plate, 32), + CI.getTieredComponentOfMaterial(Materials.SolderingAlloy, OrePrefixes.wireFine, 16), }, + ELEMENT.getInstance().TUNGSTEN.getFluidStack(8 * 144), + GregtechItemList.Bus_Milling_Balls.get(1), + 60 * 20 * 4, + MaterialUtils.getVoltageForTier(5)); + } + + private static void sparging() { + + // Sparge Tower Research + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(8), ELEMENT.getInstance().HELIUM.getCell(8), + ELEMENT.getInstance().FLUORINE.getCell(8), ALLOY.HS188A.getIngot(8), + ItemList.Distillation_Tower.get(1) }, + null, + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_10_SPARGING, 1), + 60 * 20 * 5, + MaterialUtils.getVoltageForTier(5)); + + // Sparge Tower Controller + CORE.RA.addAssemblylineRecipe( + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_10_SPARGING, 1), + 20 * 60 * 20, + new Object[] { GregtechItemList.Casing_Sparge_Tower_Exterior.get(4), CI.getTieredGTPPMachineCasing(4, 4), + ItemList.Machine_IV_Distillery.get(1), new Object[] { CI.getTieredCircuitOreDictName(5), 8 }, + ALLOY.HS188A.getGear(8), ALLOY.HS188A.getPlate(32), ALLOY.HASTELLOY_N.getPlateDouble(8), + ALLOY.HASTELLOY_N.getPlateDouble(8), ALLOY.HASTELLOY_N.getScrew(64), + CI.getTieredComponentOfMaterial(Materials.YttriumBariumCuprate, OrePrefixes.wireFine, 64), + CI.getTieredComponentOfMaterial(Materials.YttriumBariumCuprate, OrePrefixes.wireFine, 64), + CI.getTieredComponentOfMaterial(Materials.Platinum, OrePrefixes.foil, 32), + CI.getTieredComponentOfMaterial(Materials.Platinum, OrePrefixes.foil, 32), }, + new FluidStack[] { CI.getTieredFluid(4, 16 * 144), CI.getAlternativeTieredFluid(3, 32 * 144), + CI.getTertiaryTieredFluid(3, 32 * 144) }, + GregtechItemList.Controller_Sparge_Tower.get(1), + 20 * 60 * 10, + MaterialUtils.getVoltageForTier(6)); + + // Sparge Tower Casing + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(8), CI.getTieredGTPPMachineCasing(3, 1), + ALLOY.HS188A.getPlate(2), ALLOY.HASTELLOY_N.getRing(4), + CI.getTieredComponentOfMaterial(Materials.TungstenSteel, OrePrefixes.plateDouble, 4), + ALLOY.HASTELLOY_N.getScrew(4), }, + ALLOY.STAINLESS_STEEL.getFluidStack(8 * 144), + GregtechItemList.Casing_Sparge_Tower_Exterior.get(1), + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(5)); + } + + private static void chisels() { + ItemStack[] aChisels = new ItemStack[] { GregtechItemList.GT_Chisel_LV.get(1), + GregtechItemList.GT_Chisel_MV.get(1), GregtechItemList.GT_Chisel_HV.get(1), }; + for (int i = 1; i < 4; i++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(10 + i), CI.getTieredMachineCasing(i), CI.getPlate(i, 4), + CI.getElectricMotor(i, 2), CI.getConveyor(i, 2), CI.getRobotArm(i, 1) }, + CI.getTieredFluid(i, 144 * 4), + aChisels[i - 1], + 20 * 20, + MaterialUtils.getVoltageForTier(i)); + } + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(14), aChisels[2], CI.getPlate(4, 8), CI.getElectricMotor(4, 8), + CI.getConveyor(4, 8), CI.getRobotArm(4, 4) }, + CI.getTieredFluid(4, 144 * 8), + GregtechItemList.Controller_IndustrialAutoChisel.get(1), + 20 * 20, + MaterialUtils.getVoltageForTier(4)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedBioCircuit(14), ItemList.Casing_SolidSteel.get(2), CI.getPlate(4, 2), + CI.getTieredComponent(OrePrefixes.plate, 3, 4), CI.getTieredComponent(OrePrefixes.ring, 3, 8), + CI.getTieredComponent(OrePrefixes.rod, 2, 4), }, + CI.getTieredFluid(2, 144 * 2), + GregtechItemList.Casing_IndustrialAutoChisel.get(1), + 20 * 20, + MaterialUtils.getVoltageForTier(3)); + } + + private static void rockBreaker() { + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(12), ItemList.Machine_EV_RockBreaker.get(1), + ALLOY.STAINLESS_STEEL.getPlate(8), ALLOY.STAINLESS_STEEL.getRing(4), + CI.getTieredComponentOfMaterial(Materials.Aluminium, OrePrefixes.plateDouble, 8), + ALLOY.EGLIN_STEEL.getScrew(8), }, + ELEMENT.getInstance().ALUMINIUM.getFluidStack(144 * 8), + GregtechItemList.Controller_IndustrialRockBreaker.get(1), + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(4)); + } + + private static void fakeMachineCasingCovers() { + int aMaxTier = GT_Values.VOLTAGE_NAMES.length; + ItemStack aTier[] = new ItemStack[aMaxTier]; + for (int i = 0; i < aMaxTier; i++) { + aTier[i] = ItemUtils.simpleMetaStack(CoverManager.Cover_Gt_Machine_Casing, i, 7); + } + // Add recipes for new ones + for (int i = 0; i < aMaxTier; i++) { + GT_Values.RA + .addCutterRecipe(CI.getTieredMachineCasing(i), aTier[i], null, 20 * 5 * i, (int) GT_Values.V[i]); + } + } + + private static void superBuses() { + GregtechItemList[] mSuperBusesInput = new GregtechItemList[] { GregtechItemList.Hatch_SuperBus_Input_LV, + GregtechItemList.Hatch_SuperBus_Input_MV, GregtechItemList.Hatch_SuperBus_Input_HV, + GregtechItemList.Hatch_SuperBus_Input_EV, GregtechItemList.Hatch_SuperBus_Input_IV, + GregtechItemList.Hatch_SuperBus_Input_LuV, GregtechItemList.Hatch_SuperBus_Input_ZPM, + GregtechItemList.Hatch_SuperBus_Input_UV, GregtechItemList.Hatch_SuperBus_Input_MAX, }; + + GregtechItemList[] mSuperBusesOutput = new GregtechItemList[] { GregtechItemList.Hatch_SuperBus_Output_LV, + GregtechItemList.Hatch_SuperBus_Output_MV, GregtechItemList.Hatch_SuperBus_Output_HV, + GregtechItemList.Hatch_SuperBus_Output_EV, GregtechItemList.Hatch_SuperBus_Output_IV, + GregtechItemList.Hatch_SuperBus_Output_LuV, GregtechItemList.Hatch_SuperBus_Output_ZPM, + GregtechItemList.Hatch_SuperBus_Output_UV, GregtechItemList.Hatch_SuperBus_Output_MAX, }; + + ItemStack[] mInputHatch = new ItemStack[] { ItemList.Hatch_Input_Bus_EV.get(1), + ItemList.Hatch_Input_Bus_IV.get(1), ItemList.Hatch_Input_Bus_LuV.get(1), + ItemList.Hatch_Input_Bus_ZPM.get(1), ItemList.Hatch_Input_Bus_UV.get(1), + ItemList.Hatch_Input_Bus_MAX.get(1), GregtechItemList.Hatch_SuperBus_Input_LV.get(1), + GregtechItemList.Hatch_SuperBus_Input_MV.get(1), GregtechItemList.Hatch_SuperBus_Input_HV.get(1), + GregtechItemList.Hatch_SuperBus_Input_EV.get(1), }; + + ItemStack[] mOutputHatch = new ItemStack[] { ItemList.Hatch_Output_Bus_EV.get(1), + ItemList.Hatch_Output_Bus_IV.get(1), ItemList.Hatch_Output_Bus_LuV.get(1), + ItemList.Hatch_Output_Bus_ZPM.get(1), ItemList.Hatch_Output_Bus_UV.get(1), + ItemList.Hatch_Output_Bus_MAX.get(1), GregtechItemList.Hatch_SuperBus_Output_LV.get(1), + GregtechItemList.Hatch_SuperBus_Output_MV.get(1), GregtechItemList.Hatch_SuperBus_Output_HV.get(1), + GregtechItemList.Hatch_SuperBus_Output_EV.get(1), }; + + // Input Buses + for (int tier = 1; tier < mSuperBusesInput.length + 1; tier++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(17), mInputHatch[tier - 1], CI.getElectricMotor(tier, 2), + CI.getConveyor(tier, 5), CI.getBolt(tier, 16), + CI.getTieredComponent(OrePrefixes.circuit, tier, 2) }, + CI.getAlternativeTieredFluid(tier, 144 * 8), + mSuperBusesInput[tier - 1].get(1), + 20 * 30 * 2, + (int) GT_Values.V[tier]); + } + // Output Buses + for (int tier = 1; tier < mSuperBusesOutput.length + 1; tier++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(18), mOutputHatch[tier - 1], CI.getElectricPiston(tier, 2), + CI.getConveyor(tier, 5), CI.getGear(tier, 3), CI.getTieredComponent(OrePrefixes.circuit, tier, 2) }, + CI.getTertiaryTieredFluid(tier, 144 * 8), + mSuperBusesOutput[tier - 1].get(1), + 20 * 30 * 2, + (int) GT_Values.V[tier]); + } + } + + private static void chiselBuses() { + ItemStack[] mSuperBusesInput = new ItemStack[] { GregtechItemList.Hatch_SuperBus_Input_LV.get(1), + GregtechItemList.Hatch_SuperBus_Input_MV.get(1), GregtechItemList.Hatch_SuperBus_Input_HV.get(1), }; + + ItemStack[] mChiselBuses = new ItemStack[] { GregtechItemList.GT_MetaTileEntity_ChiselBus_LV.get(1), + GregtechItemList.GT_MetaTileEntity_ChiselBus_MV.get(1), + GregtechItemList.GT_MetaTileEntity_ChiselBus_HV.get(1), }; + + for (int tier = 1; tier < mChiselBuses.length + 1; tier++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(17), mSuperBusesInput[tier - 1], CI.getSensor(tier, 1), + CI.getRobotArm(tier, 2), CI.getBolt(tier, 16), ItemUtils.getSimpleStack(Blocks.chest) }, + CI.getAlternativeTieredFluid(tier, 144 * 2), + mChiselBuses[tier - 1], + 20 * 30 * 2, + (int) GT_Values.VP[tier + 1]); + } + } + + private static void solidifierHatches() { + ItemStack[] mSuperBusesInput = new ItemStack[] { ItemList.Hatch_Input_IV.get(1), + ItemList.Hatch_Input_LuV.get(1), ItemList.Hatch_Input_ZPM.get(1), ItemList.Hatch_Input_UV.get(1), }; + + ItemStack[] mSolidifierHatches = new ItemStack[] { GregtechItemList.GT_MetaTileEntity_Solidifier_I.get(1), + GregtechItemList.GT_MetaTileEntity_Solidifier_II.get(1), + GregtechItemList.GT_MetaTileEntity_Solidifier_III.get(1), + GregtechItemList.GT_MetaTileEntity_Solidifier_IV.get(1), }; + + for (int i = 0; i < 4; i++) { + int componentTier = i + 5; + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(17), mSuperBusesInput[i], CI.getSensor(componentTier, 1), + CI.getFluidRegulator(componentTier, 1), + CI.getTieredComponent(OrePrefixes.circuit, componentTier + 1, 4), + ItemUtils.getSimpleStack(Blocks.chest) }, + CI.getTieredFluid(componentTier, 144 * 2), + mSolidifierHatches[i], + 20 * 30, + (int) GT_Values.VP[componentTier]); + } + } +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java new file mode 100644 index 0000000000..0cf0152c53 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java @@ -0,0 +1,168 @@ +package gtPlusPlus.core.recipe; + +import static gregtech.api.recipe.RecipeMaps.brewingRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gtPlusPlus.core.material.MISC_MATERIALS.BRINE; +import static gtPlusPlus.core.material.MISC_MATERIALS.HYDROGEN_CHLORIDE; +import static gtPlusPlus.core.material.MISC_MATERIALS.HYDROGEN_CHLORIDE_MIX; +import static gtPlusPlus.core.material.MISC_MATERIALS.RARE_EARTH_HIGH; +import static gtPlusPlus.core.material.MISC_MATERIALS.RARE_EARTH_LOW; +import static gtPlusPlus.core.material.MISC_MATERIALS.RARE_EARTH_MID; + +import net.minecraftforge.fluids.Fluid; +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_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.material.MaterialGenerator; +import gtPlusPlus.core.material.ORES; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +public class RECIPES_RareEarthProcessing { + + public static void init() { + + // Brine Check and assignment + FluidStack mBrine = FluidUtils.getFluidStack("brine", 1000); + if (mBrine == null) { + Fluid f = BRINE.generateFluid(); + BRINE.registerComponentForMaterial(FluidUtils.getFluidStack(f, 1000)); + mBrine = BRINE.getFluidStack(1000); + } else { + BRINE.registerComponentForMaterial(FluidUtils.getFluidStack(mBrine, 1000)); + } + + // Hydrogen Chloride Check and assignment + FluidStack mHydrogenChloride = FluidUtils.getFluidStack("hydrogenchloride", 1000); + if (mHydrogenChloride == null) { + HYDROGEN_CHLORIDE.generateFluid(); + mHydrogenChloride = BRINE.getFluidStack(1000); + } else { + HYDROGEN_CHLORIDE.registerComponentForMaterial(FluidUtils.getFluidStack(mHydrogenChloride, 1000)); + } + + // Add Process for creating Brine + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 16L)) + .fluidInputs(Materials.SaltWater.getFluid(2000L)) + .fluidOutputs(FluidUtils.getFluidStack(mBrine, 4000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(brewingRecipes); + + // Chloralkali process + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1), ItemList.Cell_Empty.get(2L)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Chlorine, 1L), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 1L)) + .fluidInputs(FluidUtils.getFluidStack(mBrine, 2000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(electrolyzerRecipes); + + // Generate Special Laser Recipe + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Chlorine, 1L), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1L), + CI.getNumberedBioCircuit(2)) + .itemOutputs(ItemUtils.getSimpleStack(ModItems.cellHydrogenChlorideMix, 2)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GregtechItemList.Laser_Lens_WoodsGlass.get(0)) + .fluidInputs(HYDROGEN_CHLORIDE_MIX.getFluidStack(4000)) + .fluidOutputs(HYDROGEN_CHLORIDE.getFluidStack(4000)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .noOptimize() + .addTo(laserEngraverRecipes); + + // Set Material Tiers correctly + ORES.GREENOCKITE.vTier = 1; + RARE_EARTH_LOW.vTier = 1; + RARE_EARTH_MID.vTier = 3; + RARE_EARTH_HIGH.vTier = 5; + + // Set Material Voltages correctly + ORES.GREENOCKITE.vVoltageMultiplier = 30; + RARE_EARTH_LOW.vVoltageMultiplier = 30; + RARE_EARTH_MID.vVoltageMultiplier = 480; + RARE_EARTH_HIGH.vVoltageMultiplier = 7680; + + // Set Material Tooltips to be shorter + RARE_EARTH_LOW.vChemicalFormula = "??????"; + RARE_EARTH_MID.vChemicalFormula = "??????"; + RARE_EARTH_HIGH.vChemicalFormula = "??????"; + + // Set Material Tooltips to be shorter + RARE_EARTH_LOW.vChemicalSymbol = "??"; + RARE_EARTH_MID.vChemicalSymbol = "??"; + RARE_EARTH_HIGH.vChemicalSymbol = "??"; + + // Generate Ore Materials + MaterialGenerator.generateOreMaterial(RARE_EARTH_LOW); + MaterialGenerator.generateOreMaterial(RARE_EARTH_MID); + MaterialGenerator.generateOreMaterial(RARE_EARTH_HIGH); + + // industrial strength HCl + Fluid aHydrochloric = FluidUtils.getFluidStack("hydrogenchloride", 1) + .getFluid(); + + // LV Rare Earth + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RareEarth, 3L)) + .itemOutputs(RARE_EARTH_LOW.getCrushed(2), RARE_EARTH_LOW.getCrushed(2), RARE_EARTH_LOW.getCrushed(2)) + .fluidInputs(Materials.SulfuricAcid.getFluid(1000L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalBathRecipes); + + // HV Rare Earth + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RareEarth, 3L)) + .itemOutputs(RARE_EARTH_MID.getCrushed(2), RARE_EARTH_MID.getCrushed(2), RARE_EARTH_MID.getCrushed(2)) + .outputChances(10000, 9000, 8000) + .fluidInputs(FluidUtils.getFluidStack(aHydrochloric, 1000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalBathRecipes); + + // IV Rare Earth + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RareEarth, 3L)) + .itemOutputs(RARE_EARTH_HIGH.getCrushed(2), RARE_EARTH_HIGH.getCrushed(2), RARE_EARTH_HIGH.getCrushed(2)) + .outputChances(10000, 9000, 8000) + .fluidInputs(FluidUtils.getHydrofluoricAcid(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(chemicalBathRecipes); + + // IV Rare Earth + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RareEarth, 3L)) + .itemOutputs(RARE_EARTH_HIGH.getCrushed(2), RARE_EARTH_HIGH.getCrushed(2), RARE_EARTH_HIGH.getCrushed(2)) + .outputChances(9000, 8000, 7000) + .fluidInputs(Materials.HydrofluoricAcid.getFluid(2000L)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(chemicalBathRecipes); + } +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java new file mode 100644 index 0000000000..b7a7b43549 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java @@ -0,0 +1,142 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.MISC_MATERIALS; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.MaterialUtils; +import gtPlusPlus.core.util.reflect.AddGregtechRecipe; + +public class RECIPES_SeleniumProcessing { + + public static void init() { + + // We need this + MaterialUtils.generateSpecialDustAndAssignToAMaterial(MISC_MATERIALS.SELENIUM_DIOXIDE, false); + + // Makes Selenium Dioxide + processCopperRecipes(); + + // Liquify the Dried Dioxide + AddGregtechRecipe.addCokeAndPyrolyseRecipes( + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + 13, + FluidUtils.getSteam(500), + null, + MISC_MATERIALS.SELENIUM_DIOXIDE.getFluidStack(1000), + 20, + 1024); + + // Produce Selenious Acid + AddGregtechRecipe.addCokeAndPyrolyseRecipes( + MISC_MATERIALS.SELENIUM_DIOXIDE.getCell(1), + 14, + FluidUtils.getHotWater(4000), + CI.emptyCells(1), + MISC_MATERIALS.SELENIOUS_ACID.getFluidStack(1000), + 20, + 2048); + + // Make Selenium + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { ItemUtils.getGregtechCircuit(14), ELEMENT.getInstance().CARBON.getDust(16), }, + new FluidStack[] { MISC_MATERIALS.SELENIOUS_ACID.getFluidStack(750), + Materials.SulfuricAcid.getFluid(8000), }, + ELEMENT.getInstance().SELENIUM.getFluidStack(144 * 1), + new ItemStack[] { ELEMENT.getInstance().SELENIUM.getIngot(1), ELEMENT.getInstance().SELENIUM.getIngot(1), }, + new int[] { 10000, 2000, 2000 }, + 20 * 300, + 7200); + + /* + * // Old recipes for Selenium Roasting CORE.RA.addBlastSmelterRecipe( new ItemStack[] { + * ItemUtils.getGregtechCircuit(16), ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedPyrite", 8), + * ELEMENT.getInstance().CARBON.getDust(32), }, Materials.SulfuricAcid.getFluid(4000), + * ELEMENT.getInstance().SELENIUM.getFluid(144), 0, 20 * 300, 2000); CORE.RA.addBlastSmelterRecipe( new + * ItemStack[] { ItemUtils.getGregtechCircuit(17), + * ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedChalcopyrite", 8), + * ELEMENT.getInstance().CARBON.getDust(32), }, Materials.SulfuricAcid.getFluid(4000), + * ELEMENT.getInstance().SELENIUM.getFluid(144), 0, 20 * 300, 2000); CORE.RA.addBlastSmelterRecipe( new + * ItemStack[] { ItemUtils.getGregtechCircuit(18), + * ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedGalena", 8), + * ELEMENT.getInstance().CARBON.getDust(32), }, Materials.SulfuricAcid.getFluid(4000), + * ELEMENT.getInstance().SELENIUM.getFluid(144), 0, 20 * 300, 2000); + */ + } + + public static void processCopperRecipes() { + + // Copper + CORE.RA.addDehydratorRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(23), + ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Copper, 1), // Item Input + }, + FluidUtils.getHotWater(1000), // Fluid + MISC_MATERIALS.SELENIUM_DIOXIDE.getFluidStack(20), // Fluid + new ItemStack[] { ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Copper, 1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), }, // Output + new int[] { 10000, 100, 100, 500, 500, 500, 1000, 1000, 1000 }, + 40 * 20, // Time in ticks + 1024); // EU + + // Tetra + CORE.RA.addDehydratorRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(23), + ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Tetrahedrite, 1), // Item + // Input + }, + FluidUtils.getHotWater(1000), // Fluid + MISC_MATERIALS.SELENIUM_DIOXIDE.getFluidStack(10), // Fluid + new ItemStack[] { ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Tetrahedrite, 1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), }, // Output + new int[] { 10000, 100, 100, 300, 300, 300, 800, 800, 800 }, + 40 * 20, // Time in ticks + 1024); // EU + + // Chalco + CORE.RA.addDehydratorRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(23), + ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Chalcopyrite, 1), // Item + // Input + }, + FluidUtils.getHotWater(1000), // Fluid + MISC_MATERIALS.SELENIUM_DIOXIDE.getFluidStack(10), // Fluid + new ItemStack[] { ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Chalcopyrite, 1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), }, // Output + new int[] { 10000, 100, 100, 300, 300, 300, 800, 800, 800 }, + 40 * 20, // Time in ticks + 1024); // EU + + // Malachite + CORE.RA.addDehydratorRecipe( + new ItemStack[] { CI.getNumberedAdvancedCircuit(23), + ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Malachite, 1), // Item Input + }, + FluidUtils.getHotWater(1000), // Fluid + MISC_MATERIALS.SELENIUM_DIOXIDE.getFluidStack(10), // Fluid + new ItemStack[] { ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Malachite, 1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), }, // Output + new int[] { 10000, 100, 100, 300, 300, 300, 800, 800, 800 }, + 40 * 20, // Time in ticks + 1024); // EU + } +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Tools.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Tools.java new file mode 100644 index 0000000000..229b7cc045 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Tools.java @@ -0,0 +1,118 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +public class RECIPES_Tools { + + // Outputs + public static ItemStack RECIPE_SandStone = new ItemStack(Blocks.sandstone, 2); + public static ItemStack RECIPE_Sand = new ItemStack(Blocks.sand, 4); + + public static ItemStack RECIPE_DivisionSigil; + + // MC Items + public static Item Apple = Items.apple; + + // MC Blocks + public static Block CobbleStone = Blocks.cobblestone; + public static Block Dirt = Blocks.dirt; + public static Block Sand = Blocks.sand; + public static Block Gravel = Blocks.gravel; + public static Block Sandstone = Blocks.sandstone; + + // null + public static String empty = " "; + + // Batteries + public static String batteryBasic = "batteryBasic"; + public static String batteryAdvanced = "batteryAdvanced"; + public static String batteryElite = "batteryElite"; + public static String batteryMaster = "batteryMaster"; + public static String batteryUltimate = "batteryUltimate"; + + // Circuits + public static String circuitPrimitive = "circuitPrimitive"; + public static String circuitBasic = "circuitBasic"; + public static String circuitGood = "circuitGood"; + public static String circuitAdvanced = "circuitAdvanced"; + public static String circuitElite = "circuitElite"; + public static String circuitMaster = "circuitMaster"; + public static String circuitUltimate = "circuitUltimate"; + + // Cables + public static String cableGt01Electrum = "cableGt01Electrum"; + public static String cableGt02Electrum = "cableGt02Electrum"; + public static String cableGt01RedstoneAlloy = "cableGt01RedstoneAlloy"; + public static String cableGt02RedstoneAlloy = "cableGt02RedstoneAlloy"; + public static String cableGt01Copper = "cableGt01Copper"; + public static String cableGt02Copper = "cableGt02Copper"; + public static String cableGt01AnnealedCopper = "cableGt01AnnealedCopper"; + public static String cableGt02AnnealedCopper = "cableGt02AnnealedCopper"; + + // Rods + public static String stickWood = "stickWood"; + public static String stickStaballoy = "stickStaballoy"; + public static String stickTitanium = "stickTitanium"; + public static String stickIron = "stickIron"; + public static String stickGold = "stickGold"; + public static String stickSilver = "stickSilver"; + public static String stickSteel = "stickSteel"; + public static String stickBronze = "stickBronze"; + public static String stickTungsten = "stickTungsten"; + public static String stickRedAlloy = "stickRedAlloy"; + public static String stickInvar = "stickInvar"; + public static String stickElectrum = "stickElectrum"; + public static String stickElectricalSteel = "stickElectricalSteel"; + + // Plates + public static String plateStaballoy = "plateStaballoy"; + public static String plateTitanium = "plateTitanium"; + public static String plateIron = "plateIron"; + public static String plateGold = "plateGold"; + public static String plateSilver = "plateSilver"; + public static String plateSteel = "plateSteel"; + public static String plateBronze = "plateBronze"; + public static String plateTungsten = "plateTungsten"; + public static String plateRedAlloy = "plateRedAlloy"; + public static String plateInvar = "plateInvar"; + public static String plateElectrum = "plateElectrum"; + public static String plateElectricalSteel = "plateElectricalSteel"; + + // Ingots + public static String ingotStaballoy = "ingotStaballoy"; + public static String ingotTitanium = "ingotTitanium"; + public static String ingotIron = "ingotIron"; + public static String ingotGold = "ingotGold"; + public static String ingotSilver = "ingotSilver"; + public static String ingotSteel = "ingotSteel"; + public static String ingotBronze = "ingotBronze"; + public static String ingotTungsten = "ingotTungsten"; + public static String ingotRedAlloy = "ingotRedAlloy"; + public static String ingotInvar = "ingotInvar"; + public static String ingotElectrum = "ingotElectrum"; + public static String ingotUranium = "ingotUranium"; + public static String ingotElectricalSteel = "ingotElectricalSteel"; + + // Crafting Tools + public static String craftingToolHardHammer = "craftingToolHardHammer"; + public static String craftingToolSoftHammer = "craftingToolSoftHammer"; + public static String craftingToolFile = "craftingToolFile"; + public static String craftingToolSaw = "craftingToolSaw"; + public static String craftingToolPickaxe = "craftingToolPickaxe"; + public static String craftingToolWrench = "craftingToolWrench"; + public static String craftingToolCrowbar = "craftingToolCrowbar"; + public static String craftingToolKnife = "craftingToolKnife"; + public static String craftingToolScrewdriver = "craftingToolScrewdriver"; + + public static ItemStack personalCloakingDevice = ItemUtils.getSimpleStack(ModItems.itemPersonalCloakingDevice); + public static String plateDoubleNiChrome = "plateDoubleNichrome"; + public static String plateIridiumAlloy = "plateAlloyIridium"; + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPE_Batteries.java b/src/main/java/gtPlusPlus/core/recipe/RECIPE_Batteries.java new file mode 100644 index 0000000000..4369fdbfa3 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPE_Batteries.java @@ -0,0 +1,62 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.ItemList; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +public class RECIPE_Batteries { + + static ItemStack RECIPE_Battery_Sodium = GregtechItemList.Battery_RE_EV_Sodium.get(1); + static ItemStack RECIPE_Battery_Cadmium = GregtechItemList.Battery_RE_EV_Cadmium.get(1); + static ItemStack RECIPE_Battery_Lithium = GregtechItemList.Battery_RE_EV_Lithium.get(1); + static ItemStack GT_Battery_Sodium = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32539, 1); + static ItemStack GT_Battery_Cadmium = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32537, 1); + static ItemStack GT_Battery_Lithium = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32538, 1); + static ItemStack machineTransformer_EV; + + public static void loadRecipes() { + machineTransformer_EV = ItemList.Transformer_EV_HV.get(1); + run(); + } + + private static void run() { + + RecipeUtils.addShapedGregtechRecipe( + GT_Battery_Sodium, + RECIPES_Machines.cableTier4, + GT_Battery_Sodium, + CI.circuitTier3, + machineTransformer_EV, + CI.circuitTier3, + GT_Battery_Sodium, + RECIPES_Machines.cableTier4, + GT_Battery_Sodium, + RECIPE_Battery_Sodium); + RecipeUtils.addShapedGregtechRecipe( + GT_Battery_Cadmium, + RECIPES_Machines.cableTier4, + GT_Battery_Cadmium, + CI.circuitTier3, + machineTransformer_EV, + CI.circuitTier3, + GT_Battery_Cadmium, + RECIPES_Machines.cableTier4, + GT_Battery_Cadmium, + RECIPE_Battery_Cadmium); + RecipeUtils.addShapedGregtechRecipe( + GT_Battery_Lithium, + RECIPES_Machines.cableTier4, + GT_Battery_Lithium, + CI.circuitTier3, + machineTransformer_EV, + CI.circuitTier3, + GT_Battery_Lithium, + RECIPES_Machines.cableTier4, + GT_Battery_Lithium, + RECIPE_Battery_Lithium); + } +} diff --git a/src/main/java/gtPlusPlus/core/recipe/ShapedRecipeObject.java b/src/main/java/gtPlusPlus/core/recipe/ShapedRecipeObject.java new file mode 100644 index 0000000000..18c1c2c70c --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/ShapedRecipeObject.java @@ -0,0 +1,50 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.item.ItemStack; + +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.util.minecraft.RecipeUtils; + +public class ShapedRecipeObject { + + public Object object_A; + public Object object_B; + public Object object_C; + public Object object_D; + public Object object_E; + public Object object_F; + public Object object_G; + public Object object_H; + public Object object_I; + public ItemStack object_OUTPUT; + + public ShapedRecipeObject(final Object input_A, final Object input_B, final Object input_C, final Object input_D, + final Object input_E, final Object input_F, final Object input_G, final Object input_H, final Object input_I, + final ItemStack input_Output) { + this.object_A = input_A; + this.object_B = input_B; + this.object_C = input_C; + this.object_D = input_D; + this.object_E = input_E; + this.object_F = input_F; + this.object_G = input_G; + this.object_H = input_H; + this.object_I = input_I; + this.object_OUTPUT = input_Output; + Logger.SPECIFIC_WARNING("ShapedRecipeObject", "New object created.", 36); + } + + public void buildRecipe() { + RecipeUtils.recipeBuilder( + this.object_A, + this.object_B, + this.object_C, + this.object_D, + this.object_E, + this.object_F, + this.object_G, + this.object_H, + this.object_I, + this.object_OUTPUT); + } +} diff --git a/src/main/java/gtPlusPlus/core/recipe/common/CI.java b/src/main/java/gtPlusPlus/core/recipe/common/CI.java new file mode 100644 index 0000000000..5c1620160d --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/common/CI.java @@ -0,0 +1,1008 @@ +package gtPlusPlus.core.recipe.common; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.GregTech_API; +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_Utility; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.item.chemistry.AgriculturalChem; +import gtPlusPlus.core.item.chemistry.GenericChem; +import gtPlusPlus.core.material.ALLOY; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.recipe.LOADER_Machine_Components; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.math.MathUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import ic2.core.Ic2Items; + +public class CI { + + // null + public static ItemStack _NULL = ItemUtils.getErrorStack(1); + + // bits + public static long bits = GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.BUFFERED; + public static long bitsd = GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.BUFFERED; + + // Circuits + public static Object circuitPrimitive; + public static Object circuitTier1; + public static Object circuitTier2; + public static Object circuitTier3; + public static Object circuitTier4; + public static Object circuitTier5; + public static Object circuitTier6; + public static Object circuitTier7; + public static Object circuitTier8; + public static Object circuitTier9; + + // Machine Components + public static ItemStack electricMotor_LV; + public static ItemStack electricMotor_MV; + public static ItemStack electricMotor_HV; + public static ItemStack electricMotor_EV; + public static ItemStack electricMotor_IV; + public static ItemStack electricMotor_LuV; + public static ItemStack electricMotor_ZPM; + public static ItemStack electricMotor_UV; + public static ItemStack electricMotor_UHV; + public static ItemStack electricPump_LV; + public static ItemStack electricPump_MV; + public static ItemStack electricPump_HV; + public static ItemStack electricPump_EV; + public static ItemStack electricPump_IV; + public static ItemStack electricPump_LuV; + public static ItemStack electricPump_ZPM; + public static ItemStack electricPump_UV; + public static ItemStack electricPump_UHV; + public static ItemStack electricPiston_LV; + public static ItemStack electricPiston_MV; + public static ItemStack electricPiston_HV; + public static ItemStack electricPiston_EV; + public static ItemStack electricPiston_IV; + public static ItemStack electricPiston_LuV; + public static ItemStack electricPiston_ZPM; + public static ItemStack electricPiston_UV; + public static ItemStack electricPiston_UHV; + public static ItemStack robotArm_LV; + public static ItemStack robotArm_MV; + public static ItemStack robotArm_HV; + public static ItemStack robotArm_EV; + public static ItemStack robotArm_IV; + public static ItemStack robotArm_LuV; + public static ItemStack robotArm_ZPM; + public static ItemStack robotArm_UV; + public static ItemStack robotArm_UHV; + public static ItemStack conveyorModule_LV; + public static ItemStack conveyorModule_MV; + public static ItemStack conveyorModule_HV; + public static ItemStack conveyorModule_EV; + public static ItemStack conveyorModule_IV; + public static ItemStack conveyorModule_LuV; + public static ItemStack conveyorModule_ZPM; + public static ItemStack conveyorModule_UV; + public static ItemStack conveyorModule_UHV; + public static ItemStack emitter_LV; + public static ItemStack emitter_MV; + public static ItemStack emitter_HV; + public static ItemStack emitter_EV; + public static ItemStack emitter_IV; + public static ItemStack emitter_LuV; + public static ItemStack emitter_ZPM; + public static ItemStack emitter_UV; + public static ItemStack emitter_UHV; + public static ItemStack fieldGenerator_LV; + public static ItemStack fieldGenerator_MV; + public static ItemStack fieldGenerator_HV; + public static ItemStack fieldGenerator_EV; + public static ItemStack fieldGenerator_IV; + public static ItemStack fieldGenerator_LuV; + public static ItemStack fieldGenerator_ZPM; + public static ItemStack fieldGenerator_UV; + public static ItemStack fieldGenerator_UHV; + public static ItemStack sensor_LV; + public static ItemStack sensor_MV; + public static ItemStack sensor_HV; + public static ItemStack sensor_EV; + public static ItemStack sensor_IV; + public static ItemStack sensor_LuV; + public static ItemStack sensor_ZPM; + public static ItemStack sensor_UV; + public static ItemStack sensor_UHV; + + public static ItemStack fluidRegulator_LV; + public static ItemStack fluidRegulator_MV; + public static ItemStack fluidRegulator_HV; + public static ItemStack fluidRegulator_EV; + public static ItemStack fluidRegulator_IV; + public static ItemStack fluidRegulator_LuV; + public static ItemStack fluidRegulator_ZPM; + public static ItemStack fluidRegulator_UV; + + // Machine Casings + public static ItemStack machineCasing_ULV; + public static ItemStack machineCasing_LV; + public static ItemStack machineCasing_MV; + public static ItemStack machineCasing_HV; + public static ItemStack machineCasing_EV; + public static ItemStack machineCasing_IV; + public static ItemStack machineCasing_LuV; + public static ItemStack machineCasing_ZPM; + public static ItemStack machineCasing_UV; + public static ItemStack machineCasing_UHV; + + // Machine Hulls + public static ItemStack machineHull_ULV; + public static ItemStack machineHull_LV; + public static ItemStack machineHull_MV; + public static ItemStack machineHull_HV; + public static ItemStack machineHull_EV; + public static ItemStack machineHull_IV; + public static ItemStack machineHull_LuV; + public static ItemStack machineHull_ZPM; + public static ItemStack machineHull_UV; + public static ItemStack machineHull_UHV; + + // Gearbox Casings + public static ItemStack gearboxCasing_Tier_1; + public static ItemStack gearboxCasing_Tier_2; + public static ItemStack gearboxCasing_Tier_3; + public static ItemStack gearboxCasing_Tier_4; + + public static String[] component_Plate; + public static String[] component_Rod; + public static String[] component_Ingot; + + // Crafting Tools + public static String craftingToolWrench = "craftingToolWrench"; + public static String craftingToolHammer_Hard = "craftingToolHardHammer"; + public static String craftingToolScrewdriver = "craftingToolScrewdriver"; + public static String craftingToolFile = "craftingToolFile"; + public static String craftingToolMortar = "craftingToolMortar"; + public static String craftingToolSaw = "craftingToolSaw"; + public static String craftingToolWireCutter = "craftingToolWirecutter"; + public static String craftingToolSolderingIron = "craftingToolSolderingIron"; + + // Explosives + public static ItemStack explosivePowderKeg; + public static ItemStack explosiveTNT; + public static ItemStack explosiveITNT; + + public static Materials[] tieredMaterials = new Materials[] { Materials.Iron, Materials.Steel, Materials.Aluminium, + Materials.StainlessSteel, Materials.Titanium, Materials.TungstenSteel, Materials.Chrome, Materials.Iridium, + Materials.Osmium, Materials.Neutronium }; + + public static void preInit() { + + // Tiered Components + component_Plate = new String[] { getTieredComponent(OrePrefixes.plate, 0), + getTieredComponent(OrePrefixes.plate, 1), getTieredComponent(OrePrefixes.plate, 2), + getTieredComponent(OrePrefixes.plate, 3), getTieredComponent(OrePrefixes.plate, 4), + getTieredComponent(OrePrefixes.plate, 5), getTieredComponent(OrePrefixes.plate, 6), + getTieredComponent(OrePrefixes.plate, 7), getTieredComponent(OrePrefixes.plate, 8), + getTieredComponent(OrePrefixes.plate, 9), getTieredComponent(OrePrefixes.plate, 10), + getTieredComponent(OrePrefixes.plate, 11) }; + component_Rod = new String[] { getTieredComponent(OrePrefixes.stick, 0), + getTieredComponent(OrePrefixes.stick, 1), getTieredComponent(OrePrefixes.stick, 2), + getTieredComponent(OrePrefixes.stick, 3), getTieredComponent(OrePrefixes.stick, 4), + getTieredComponent(OrePrefixes.stick, 5), getTieredComponent(OrePrefixes.stick, 6), + getTieredComponent(OrePrefixes.stick, 7), getTieredComponent(OrePrefixes.stick, 8), + getTieredComponent(OrePrefixes.stick, 9), getTieredComponent(OrePrefixes.stick, 10), + getTieredComponent(OrePrefixes.stick, 11) }; + component_Ingot = new String[] { getTieredComponent(OrePrefixes.ingot, 0), + getTieredComponent(OrePrefixes.ingot, 1), getTieredComponent(OrePrefixes.ingot, 2), + getTieredComponent(OrePrefixes.ingot, 3), getTieredComponent(OrePrefixes.ingot, 4), + getTieredComponent(OrePrefixes.ingot, 5), getTieredComponent(OrePrefixes.ingot, 6), + getTieredComponent(OrePrefixes.ingot, 7), getTieredComponent(OrePrefixes.ingot, 8), + getTieredComponent(OrePrefixes.ingot, 9), getTieredComponent(OrePrefixes.ingot, 10), + getTieredComponent(OrePrefixes.ingot, 11) }; + + // Circuits + circuitPrimitive = getTieredCircuit(0); + circuitTier1 = getTieredCircuit(1); + circuitTier2 = getTieredCircuit(2); + circuitTier3 = getTieredCircuit(3); + circuitTier4 = getTieredCircuit(4); + circuitTier5 = getTieredCircuit(5); + circuitTier6 = getTieredCircuit(6); + circuitTier7 = getTieredCircuit(7); + circuitTier8 = getTieredCircuit(8); + circuitTier9 = getTieredCircuit(9); + } + + public static Object getTieredCircuit(int tier) { + return getTieredCircuitOreDictName(tier); + } + + public static String getTieredCircuitOreDictName(int tier) { + if (tier == 0) { + return "circuitPrimitive"; + } else if (tier == 1) { + return "circuitBasic"; + } else if (tier == 2) { + return "circuitGood"; + } else if (tier == 3) { + return "circuitAdvanced"; + } else if (tier == 4) { + return "circuitData"; + } else if (tier == 5) { + return "circuitElite"; + } else if (tier == 6) { + return "circuitMaster"; + } else if (tier == 7) { + return "circuitUltimate"; + } else if (tier == 8) { + return "circuitSuperconductor"; + } else if (tier == 9) { + return "circuitInfinite"; + } else if (tier == 10) { + return "circuitQuantum"; + } else { + return "circuitPrimitive"; + } + } + + public static ItemStack getNumberedCircuit(int Meta) { + return ItemUtils.getGregtechCircuit(Meta); + } + + private static Object getMaterialFromTier(int tier) { + if (tier == 0) { + return Materials.Wood; + } else if (tier == 1) { + return Materials.Lead; + } else if (tier == 2) { + return Materials.Bronze; + } else if (tier == 3) { + return Materials.Steel; + } else if (tier == 4) { + return ALLOY.EGLIN_STEEL; + } else if (tier == 5) { + return Materials.Aluminium; + } else if (tier == 6) { + return ALLOY.MARAGING250; + } else if (tier == 7) { + return ALLOY.TANTALLOY_61; + } else if (tier == 8) { + return ALLOY.INCONEL_792; + } else if (tier == 9) { + return ALLOY.ZERON_100; + } else if (tier == 10) { + return Materials.NaquadahEnriched; + } else if (tier == 11) { + return Materials.Neutronium; + } + return Materials._NULL; + } + + public static String getTieredComponent(OrePrefixes type, int tier) { + Object material = getMaterialFromTier(tier); + if (material != null) { + if (material instanceof Materials) { + // return (ItemStack) type.get(material); + String materialName = ((Materials) material).mDefaultLocalName; + Logger.INFO("Searching for a component named " + type.name() + materialName); + // return ItemUtils.getItemStackOfAmountFromOreDict(type.name()+materialName, 1); + return (type.name() + materialName); + } else { + String materialName = (Utils.sanitizeString(((Material) material).getLocalizedName())); + Logger.INFO("Searching for a component named " + type.name() + materialName); + // return ItemUtils.getItemStackOfAmountFromOreDict(type.name()+materialName, 1); + return (type.name() + materialName); + } + } + Logger.INFO("[Components] Failed getting a tiered component. " + type.name() + " | " + tier); + return null; + } + + public static ItemStack getDataOrb() { + return ItemList.Tool_DataOrb.get(1); + } + + public static ItemStack getDataStick() { + return ItemList.Tool_DataStick.get(1); + } + + public static ItemStack getTieredMachineHull(int tier) { + if (tier == 0) { + return machineHull_ULV; + } else if (tier == 1) { + return machineHull_LV; + } else if (tier == 2) { + return machineHull_MV; + } else if (tier == 3) { + return machineHull_HV; + } else if (tier == 4) { + return machineHull_EV; + } else if (tier == 5) { + return machineHull_IV; + } else if (tier == 6) { + return machineHull_LuV; + } else if (tier == 7) { + return machineHull_ZPM; + } else if (tier == 8) { + return machineHull_UV; + } else if (tier == 9) { + return machineHull_UHV; + } else { + return GregtechItemList.Casing_Multi_Use.get(1); + } + } + + public static ItemStack getTieredMachineCasing(int tier) { + if (tier == 0) { + if (machineCasing_ULV == null) { + machineCasing_ULV = ItemList.Casing_ULV.get(1); + } + return machineCasing_ULV; + } else if (tier == 1) { + return machineCasing_LV; + } else if (tier == 2) { + return machineCasing_MV; + } else if (tier == 3) { + return machineCasing_HV; + } else if (tier == 4) { + return machineCasing_EV; + } else if (tier == 5) { + return machineCasing_IV; + } else if (tier == 6) { + return machineCasing_LuV; + } else if (tier == 7) { + return machineCasing_ZPM; + } else if (tier == 8) { + return machineCasing_UV; + } else if (tier == 9) { + return machineCasing_UHV; + } else { + return GregtechItemList.Casing_Multi_Use.get(1); + } + } + + public static void init() { + // Set Explosives + explosivePowderKeg = ItemList.Block_Powderbarrel.get(1); + explosiveTNT = ItemUtils.getSimpleStack(Blocks.tnt) + .copy(); + explosiveITNT = Ic2Items.industrialTnt.copy(); + + // Machine Casings + machineCasing_ULV = ItemList.Casing_ULV.get(1); + machineCasing_LV = ItemList.Casing_LV.get(1); + machineCasing_MV = ItemList.Casing_MV.get(1); + machineCasing_HV = ItemList.Casing_HV.get(1); + machineCasing_EV = ItemList.Casing_EV.get(1); + machineCasing_IV = ItemList.Casing_IV.get(1); + machineCasing_LuV = ItemList.Casing_LuV.get(1); + machineCasing_ZPM = ItemList.Casing_ZPM.get(1); + machineCasing_UV = ItemList.Casing_UV.get(1); + machineCasing_UHV = ItemList.Casing_MAX.get(1); + + // Machine Hulls + machineHull_ULV = ItemList.Hull_ULV.get(1); + machineHull_LV = ItemList.Hull_LV.get(1); + machineHull_MV = ItemList.Hull_MV.get(1); + machineHull_HV = ItemList.Hull_HV.get(1); + machineHull_EV = ItemList.Hull_EV.get(1); + machineHull_IV = ItemList.Hull_IV.get(1); + machineHull_LuV = ItemList.Hull_LuV.get(1); + machineHull_ZPM = ItemList.Hull_ZPM.get(1); + machineHull_UV = ItemList.Hull_UV.get(1); + machineHull_UHV = ItemList.Hull_MAX.get(1); + + // Gear box Casings + gearboxCasing_Tier_1 = ItemList.Casing_Gearbox_Bronze.get(1); + gearboxCasing_Tier_2 = ItemList.Casing_Gearbox_Steel.get(1); + gearboxCasing_Tier_3 = ItemList.Casing_Gearbox_Titanium.get(1); + gearboxCasing_Tier_4 = ItemList.Casing_Gearbox_TungstenSteel.get(1); + + // Machine Components + LOADER_Machine_Components.initialise(); + } + + public static ItemStack emptyCells(int i) { + return ItemUtils.getEmptyCell(i); + } + + private static final Material[] aMaterial_Main = new Material[] { ALLOY.POTIN, ALLOY.TUMBAGA, ALLOY.EGLIN_STEEL, + ALLOY.INCONEL_625, ALLOY.INCOLOY_DS, ALLOY.NITINOL_60, ALLOY.ZERON_100, ALLOY.PIKYONIUM, + ELEMENT.STANDALONE.ADVANCED_NITINOL, ALLOY.ABYSSAL, ALLOY.QUANTUM, ELEMENT.STANDALONE.HYPOGEN }; + + private static final Material[] aMaterial_Secondary = new Material[] { ALLOY.STEEL, ALLOY.SILICON_CARBIDE, + ALLOY.BLOODSTEEL, ALLOY.TANTALUM_CARBIDE, ALLOY.INCONEL_792, ALLOY.ARCANITE, ALLOY.LAFIUM, ALLOY.CINOBITE, + ALLOY.TITANSTEEL, ALLOY.OCTIRON, ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN, ELEMENT.STANDALONE.HYPOGEN }; + + private static final Material[] aMaterial_Tertiary = new Material[] { ELEMENT.getInstance().LEAD, + ELEMENT.getInstance().ALUMINIUM, ELEMENT.STANDALONE.BLACK_METAL, ELEMENT.getInstance().TITANIUM, + ALLOY.HASTELLOY_N, ALLOY.ENERGYCRYSTAL, ALLOY.TRINIUM_NAQUADAH_CARBON, ALLOY.TRINIUM_REINFORCED_STEEL, // Arceus + ALLOY.TITANSTEEL, ELEMENT.STANDALONE.ASTRAL_TITANIUM, ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN, + ELEMENT.STANDALONE.HYPOGEN }; + + private static final Materials[] aMaterial_Cables = new Materials[] { Materials.Tin, Materials.Cobalt, + Materials.AnnealedCopper, Materials.Gold, Materials.Titanium, Materials.Nichrome, Materials.Platinum, + Materials.YttriumBariumCuprate, Materials.Naquadah, Materials.Duranium, Materials.SuperconductorUHV, }; + + private static final Materials[] aMaterial_Circuits = new Materials[] { Materials.Primitive, Materials.Basic, + Materials.Good, Materials.Advanced, Materials.Data, Materials.Data, Materials.Elite, Materials.Master, + Materials.Ultimate, Materials.SuperconductorUHV, Materials.Infinite, }; + + private static final Material[][] aMaster = new Material[][] { aMaterial_Main, aMaterial_Secondary, + aMaterial_Tertiary }; + + public static FluidStack getTieredFluid(int aTier, int aAmount) { + return getTieredFluid(aTier, aAmount, 0); + } + + public static FluidStack getAlternativeTieredFluid(int aTier, int aAmount) { + return getTieredFluid(aTier, aAmount, 1); + } + + public static FluidStack getTertiaryTieredFluid(int aTier, int aAmount) { + return getTieredFluid(aTier, aAmount, 2); + } + + public static FluidStack getTieredFluid(int aTier, int aAmount, int aType) { + // Weird Legacy handling + /* + * ItemStack aCell = getTieredComponent(OrePrefixes.liquid, aTier, 1); FluidStack a = + * GT_Utility.getFluidForFilledItem(aCell, true); if (a == null) { a = aMaster[aType][aTier].getFluid(aAmount); + * } + */ + + // Modern Handling + FluidStack a = aMaster[aType][aTier].getFluidStack(aAmount); + if (a == null) { + ItemStack aCell = getTieredComponent(OrePrefixes.liquid, aTier, 1); + if (aCell != null) { + a = GT_Utility.getFluidForFilledItem(aCell, true); + a.amount = aAmount; + } + } + return a; + } + + public static ItemStack getEnergyCore(int aTier, int aAmount) { + ItemStack[] aOutput = new ItemStack[] { + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "1", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "2", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "3", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "4", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "5", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "6", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "7", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "8", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "9", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore" + "10", 1) }; + return ItemUtils.getSimpleStack(aOutput[MathUtils.balance(aTier, 0, 9)], aAmount); + } + + public static ItemStack getPlate(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.plate, aTier, aAmount); + } + + public static ItemStack getDoublePlate(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.plateDouble, aTier, aAmount); + } + + public static ItemStack getGear(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.gearGt, aTier, aAmount); + } + + public static ItemStack getIngot(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.ingot, aTier, aAmount); + } + + public static ItemStack getBolt(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.bolt, aTier, aAmount); + } + + public static ItemStack getScrew(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.screw, aTier, aAmount); + } + + public static ItemStack getCircuit(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.circuit, aTier, aAmount); + } + + public static ItemStack getTieredComponent(OrePrefixes aPrefix, int aTier, int aAmount) { + aTier = Math.max(0, aTier); + + Material m; + + if (aPrefix == OrePrefixes.liquid) { + int aMatID = (aTier == 0 || aTier == 2 || aTier == 5 || aTier == 8 ? 0 + : (aTier == 1 || aTier == 3 || aTier == 6 || aTier == 9 ? 1 : 2)); + ItemStack aCell = aMaster[aMatID][aTier].getCell(aAmount); + return aCell; + } + + if (aPrefix == OrePrefixes.circuit) { + /* + * if (aTier == 4) { return ItemUtils.getSimpleStack(CI.getDataStick(), aAmount); } else if (aTier == 5) { + * return ItemUtils.getSimpleStack(CI.getDataOrb(), aAmount); } + */ + return ItemUtils.getOrePrefixStack(OrePrefixes.circuit, aMaterial_Circuits[aTier], aAmount); + } + + // Check for Cables first, catch SuperConductor case and swap to wire. + if (aPrefix == OrePrefixes.cableGt01 || aPrefix == OrePrefixes.cableGt02 + || aPrefix == OrePrefixes.cableGt04 + || aPrefix == OrePrefixes.cableGt08 + || aPrefix == OrePrefixes.cableGt12) { + // Special Handler + if (aTier == 10) { + if (aPrefix == OrePrefixes.cableGt01) { + aPrefix = OrePrefixes.wireGt02; + } else if (aPrefix == OrePrefixes.cableGt02) { + aPrefix = OrePrefixes.wireGt04; + } else if (aPrefix == OrePrefixes.cableGt04) { + aPrefix = OrePrefixes.wireGt08; + } else if (aPrefix == OrePrefixes.cableGt08) { + aPrefix = OrePrefixes.wireGt12; + } else if (aPrefix == OrePrefixes.cableGt12) { + aPrefix = OrePrefixes.wireGt16; + } + } else { + return ItemUtils.getOrePrefixStack(aPrefix, aMaterial_Cables[aTier], aAmount); + } + } + if (aPrefix == OrePrefixes.wireGt01 || aPrefix == OrePrefixes.wireGt02 + || aPrefix == OrePrefixes.wireGt04 + || aPrefix == OrePrefixes.wireGt08 + || aPrefix == OrePrefixes.wireGt12 + || aPrefix == OrePrefixes.wireGt16) { + return ItemUtils.getOrePrefixStack(aPrefix, aMaterial_Cables[aTier], aAmount); + } + + if (aPrefix == OrePrefixes.pipeTiny || aPrefix == OrePrefixes.pipeSmall + || aPrefix == OrePrefixes.pipe + || aPrefix == OrePrefixes.pipeMedium + || aPrefix == OrePrefixes.pipeLarge + || aPrefix == OrePrefixes.pipeHuge) { + + if (aPrefix == OrePrefixes.pipe) { + aPrefix = OrePrefixes.pipeMedium; + } + + if (aTier == 0) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Lead, aAmount); + } else if (aTier == 1) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Steel, aAmount); + } else if (aTier == 2) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.StainlessSteel, aAmount); + } else if (aTier == 3) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Tungsten, aAmount); + } else if (aTier == 4) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.TungstenSteel, aAmount); + } else if (aTier == 5) { + return ItemUtils.getOrePrefixStack(aPrefix, ALLOY.MARAGING350, aAmount); + } else if (aTier == 6) { + return ItemUtils.getOrePrefixStack(aPrefix, ALLOY.STABALLOY, aAmount); + } else if (aTier == 7) { + return ItemUtils.getOrePrefixStack(aPrefix, ALLOY.HASTELLOY_X, aAmount); + } else if (aTier == 8) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Ultimate, aAmount); + } else if (aTier == 9) { + return ItemUtils.getOrePrefixStack(OrePrefixes.pipeMedium, Materials.SuperconductorUHV, aAmount); + } else if (aTier == 10) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Europium, aAmount); + } else { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Titanium, aAmount); + } + } + + if (aPrefix == OrePrefixes.rod) { + aPrefix = OrePrefixes.stick; + } + + if (aPrefix == OrePrefixes.gear || aPrefix == OrePrefixes.gearGt) { + m = aMaster[0][aTier]; + } else if (aPrefix == OrePrefixes.rod || aPrefix == OrePrefixes.stick) { + m = aMaster[0][aTier]; + } else if (aPrefix == OrePrefixes.stickLong) { + m = aMaster[1][aTier]; + } else if (aPrefix == OrePrefixes.bolt) { + m = aMaster[2][aTier]; + } else if (aPrefix == OrePrefixes.screw) { + m = aMaster[0][aTier]; + } else if (aPrefix == OrePrefixes.rotor) { + m = aMaster[1][aTier]; + } else if (aPrefix == OrePrefixes.frame || aPrefix == OrePrefixes.frameGt) { + m = aMaster[2][aTier]; + } else if (aPrefix == OrePrefixes.ingot) { + m = aMaster[1][aTier]; + } else if (aPrefix == OrePrefixes.plate) { + m = aMaster[0][aTier]; + } else if (aPrefix == OrePrefixes.plateDouble) { + m = aMaster[0][aTier]; + } else if (aPrefix == OrePrefixes.ring) { + m = aMaster[2][aTier]; + } else if (aPrefix == OrePrefixes.cell) { + m = aMaster[1][aTier]; + } else { + m = aMaterial_Main[aTier]; + } + + ItemStack aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); + + // If Invalid, Try First Material + if (!ItemUtils.checkForInvalidItems(aReturn)) { + m = aMaster[0][aTier]; + aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); + + // If Invalid, Try Second Material + if (!ItemUtils.checkForInvalidItems(aReturn)) { + m = aMaster[1][aTier]; + aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); + + // If Invalid, Try Third Material + if (!ItemUtils.checkForInvalidItems(aReturn)) { + m = aMaster[2][aTier]; + aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); + + // All Invalid? + // Let's add a special error ingot. + if (!ItemUtils.checkForInvalidItems(aReturn)) { + aReturn = ItemUtils.getErrorStack(1, (aPrefix + m.getLocalizedName() + " x" + aAmount)); + } + } + } + } + + return aReturn; + } + + public static ItemStack getElectricMotor(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 1; + if (aTier == aLazyTier++) { + aType = CI.electricMotor_LV; + } else if (aTier == aLazyTier++) { + aType = CI.electricMotor_MV; + } else if (aTier == aLazyTier++) { + aType = CI.electricMotor_HV; + } else if (aTier == aLazyTier++) { + aType = CI.electricMotor_EV; + } else if (aTier == aLazyTier++) { + aType = CI.electricMotor_IV; + } else if (aTier == aLazyTier++) { + aType = CI.electricMotor_LuV; + } else if (aTier == aLazyTier++) { + aType = CI.electricMotor_ZPM; + } else if (aTier == aLazyTier++) { + aType = CI.electricMotor_UV; + } else if (aTier == aLazyTier) { + aType = CI.electricMotor_UHV; + } else { + throw new IllegalArgumentException(); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getFluidRegulator(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.fluidRegulator_LV; + } else if (aTier == aLazyTier++) { + aType = CI.fluidRegulator_LV; + } else if (aTier == aLazyTier++) { + aType = CI.fluidRegulator_MV; + } else if (aTier == aLazyTier++) { + aType = CI.fluidRegulator_HV; + } else if (aTier == aLazyTier++) { + aType = CI.fluidRegulator_EV; + } else if (aTier == aLazyTier++) { + aType = CI.fluidRegulator_IV; + } else if (aTier == aLazyTier++) { + aType = CI.fluidRegulator_LuV; + } else if (aTier == aLazyTier++) { + aType = CI.fluidRegulator_ZPM; + } else if (aTier == aLazyTier++) { + aType = CI.fluidRegulator_UV; + } else if (aTier == aLazyTier) { + aType = CI.fluidRegulator_UV; + } else { + throw new IllegalArgumentException(); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getElectricPiston(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 1; + if (aTier == aLazyTier++) { + aType = CI.electricPiston_LV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPiston_MV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPiston_HV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPiston_EV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPiston_IV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPiston_LuV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPiston_ZPM; + } else if (aTier == aLazyTier++) { + aType = CI.electricPiston_UV; + } else if (aTier == aLazyTier) { + aType = CI.electricPiston_UHV; + } else { + throw new IllegalArgumentException(); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getElectricPump(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 1; + if (aTier == aLazyTier++) { + aType = CI.electricPump_LV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPump_MV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPump_HV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPump_EV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPump_IV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPump_LuV; + } else if (aTier == aLazyTier++) { + aType = CI.electricPump_ZPM; + } else if (aTier == aLazyTier++) { + aType = CI.electricPump_UV; + } else if (aTier == aLazyTier) { + aType = CI.electricPump_UHV; + } else { + throw new IllegalArgumentException(); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getRobotArm(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 1; + if (aTier == aLazyTier++) { + aType = CI.robotArm_LV; + } else if (aTier == aLazyTier++) { + aType = CI.robotArm_MV; + } else if (aTier == aLazyTier++) { + aType = CI.robotArm_HV; + } else if (aTier == aLazyTier++) { + aType = CI.robotArm_EV; + } else if (aTier == aLazyTier++) { + aType = CI.robotArm_IV; + } else if (aTier == aLazyTier++) { + aType = CI.robotArm_LuV; + } else if (aTier == aLazyTier++) { + aType = CI.robotArm_ZPM; + } else if (aTier == aLazyTier++) { + aType = CI.robotArm_UV; + } else if (aTier == aLazyTier) { + aType = CI.robotArm_UHV; + } else { + throw new IllegalArgumentException(); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getConveyor(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 1; + if (aTier == aLazyTier++) { + aType = CI.conveyorModule_LV; + } else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_MV; + } else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_HV; + } else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_EV; + } else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_IV; + } else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_LuV; + } else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_ZPM; + } else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_UV; + } else if (aTier == aLazyTier) { + aType = CI.conveyorModule_UHV; + } else { + throw new IllegalArgumentException(); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getEmitter(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 1; + if (aTier == aLazyTier++) { + aType = CI.emitter_LV; + } else if (aTier == aLazyTier++) { + aType = CI.emitter_MV; + } else if (aTier == aLazyTier++) { + aType = CI.emitter_HV; + } else if (aTier == aLazyTier++) { + aType = CI.emitter_EV; + } else if (aTier == aLazyTier++) { + aType = CI.emitter_IV; + } else if (aTier == aLazyTier++) { + aType = CI.emitter_LuV; + } else if (aTier == aLazyTier++) { + aType = CI.emitter_ZPM; + } else if (aTier == aLazyTier++) { + aType = CI.emitter_UV; + } else if (aTier == aLazyTier) { + aType = CI.emitter_UHV; + } else { + throw new IllegalArgumentException(); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getSensor(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 1; + if (aTier == aLazyTier++) { + aType = CI.sensor_LV; + } else if (aTier == aLazyTier++) { + aType = CI.sensor_MV; + } else if (aTier == aLazyTier++) { + aType = CI.sensor_HV; + } else if (aTier == aLazyTier++) { + aType = CI.sensor_EV; + } else if (aTier == aLazyTier++) { + aType = CI.sensor_IV; + } else if (aTier == aLazyTier++) { + aType = CI.sensor_LuV; + } else if (aTier == aLazyTier++) { + aType = CI.sensor_ZPM; + } else if (aTier == aLazyTier++) { + aType = CI.sensor_UV; + } else if (aTier == aLazyTier) { + aType = CI.sensor_UHV; + } else { + throw new IllegalArgumentException(); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getFieldGenerator(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 1; + if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_LV; + } else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_MV; + } else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_HV; + } else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_EV; + } else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_IV; + } else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_LuV; + } else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_ZPM; + } else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_UV; + } else if (aTier == aLazyTier) { + aType = CI.fieldGenerator_UHV; + } else { + throw new IllegalArgumentException(); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getTieredMachineHull(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.machineHull_ULV; + } else if (aTier == aLazyTier++) { + aType = CI.machineHull_LV; + } else if (aTier == aLazyTier++) { + aType = CI.machineHull_MV; + } else if (aTier == aLazyTier++) { + aType = CI.machineHull_HV; + } else if (aTier == aLazyTier++) { + aType = CI.machineHull_EV; + } else if (aTier == aLazyTier++) { + aType = CI.machineHull_IV; + } else if (aTier == aLazyTier++) { + aType = CI.machineHull_LuV; + } else if (aTier == aLazyTier++) { + aType = CI.machineHull_ZPM; + } else if (aTier == aLazyTier++) { + aType = CI.machineHull_UV; + } else if (aTier == aLazyTier) { + aType = CI.machineHull_UHV; + } else { + throw new IllegalArgumentException(); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getHeatCoil(int i) { + if (i > 8) { + i = 8; + } + return ItemUtils.simpleMetaStack(GregTech_API.sBlockCasings5, i, 1); + } + + public static ItemStack getNumberedBioCircuit(int i) { + return ItemUtils.simpleMetaStack(AgriculturalChem.mBioCircuit, i, 0); + } + + public static ItemStack getNumberedAdvancedCircuit(int i) { + return ItemUtils.simpleMetaStack(GenericChem.mAdvancedCircuit, i, 0); + } + + public static ItemStack getTieredGTPPMachineCasing(int aTier, int aAmount) { + GregtechItemList[] aHulls = new GregtechItemList[] { GregtechItemList.GTPP_Casing_ULV, + GregtechItemList.GTPP_Casing_LV, GregtechItemList.GTPP_Casing_MV, GregtechItemList.GTPP_Casing_HV, + GregtechItemList.GTPP_Casing_EV, GregtechItemList.GTPP_Casing_IV, GregtechItemList.GTPP_Casing_LuV, + GregtechItemList.GTPP_Casing_ZPM, GregtechItemList.GTPP_Casing_UV, GregtechItemList.GTPP_Casing_UHV }; + return aHulls[aTier].get(aAmount); + } + + public static ItemStack getTieredComponentOfMaterial(Materials aMaterial, OrePrefixes aPrefix, int aAmount) { + return ItemUtils.getOrePrefixStack(aPrefix, aMaterial, aAmount); + } + + public static ItemStack getTransmissionComponent(int aTier, int aAmount) { + GregtechItemList[] aTransParts = new GregtechItemList[] { null, GregtechItemList.TransmissionComponent_LV, + GregtechItemList.TransmissionComponent_MV, GregtechItemList.TransmissionComponent_HV, + GregtechItemList.TransmissionComponent_EV, GregtechItemList.TransmissionComponent_IV, + GregtechItemList.TransmissionComponent_LuV, GregtechItemList.TransmissionComponent_ZPM, + GregtechItemList.TransmissionComponent_UV, GregtechItemList.TransmissionComponent_UHV, }; + return aTransParts[aTier].get(aAmount); + } + + public static ItemStack getEmptyCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(AgriculturalChem.mAgrichemItem1, 13, aAmount); + } + + /** + * Aluminium + Silver Catalyst + * + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getGreenCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(AgriculturalChem.mAgrichemItem1, 14, aAmount); + } + + /** + * Iridium + Ruthenium Catalyst + * + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getPurpleCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 4, aAmount); + } + + /** + * Platinum + Rhodium Catalyst + * + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getPinkCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 6, aAmount); + } +} |
