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)) |
