package common.recipeLoaders; import gregtech.api.enums.TierEU; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import common.Blocks; 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 static gregtech.api.enums.Mods.Avaritia; import static gregtech.api.enums.Mods.EnderIO; import static gregtech.api.enums.Mods.EternalSingularity; import static gregtech.api.enums.Mods.GTPlusPlus; import static gregtech.api.enums.Mods.GoodGenerator; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; import static gregtech.api.enums.Mods.UniversalSingularities; import static gregtech.api.util.GT_RecipeBuilder.HOURS; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeConstants.AssemblyLine; import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; public class AssemblyLine implements Runnable { @Override public void run() { final Fluid radoxPoly = FluidRegistry.getFluid("molten.radoxpoly") != null ? FluidRegistry.getFluid("molten.radoxpoly") : FluidRegistry.getFluid("molten.polybenzimidazole"); final Fluid solderIndalloy = FluidRegistry.getFluid("molten.indalloy140") != null ? FluidRegistry.getFluid("molten.indalloy140") : FluidRegistry.getFluid("molten.solderingalloy"); // TFFTStorageField6 GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(Blocks.tfftStorageField, 1, 5)) .metadata(RESEARCH_TIME, 1*HOURS + 6*MINUTES + 40*SECONDS) .itemInputs( ItemList.Casing_Tank_7.get(4), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.CrystallinePinkSlime, 6), GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Naquadah, 3), GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.ChromeBars", 6), GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Quantium, 6), ItemList.Field_Generator_EV.get(8), ItemList.FluidRegulator_LuV.get(1), GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EngineeringProcessorFluidEmeraldCore", 4) ) .fluidInputs( Materials.Enderium.getMolten(1440), Materials.Polybenzimidazole.getMolten(1584) ) .noFluidOutputs() .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 6)) .eut(TierEU.RECIPE_LuV) .duration(30*SECONDS) .addTo(AssemblyLine); // TFFTStorageField7 GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(Blocks.tfftStorageField, 1, 6)) .metadata(RESEARCH_TIME, 1*HOURS+6*MINUTES+40*SECONDS) .itemInputs( ItemList.Casing_Tank_10.get(16), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.MelodicAlloy, 6), GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.NetherStar, 3), GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.OsmiumBars", 6), GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.MysteriousCrystal, 6), ItemList.Field_Generator_IV.get(16), ItemList.Field_Generator_LuV.get(4), ItemList.FluidRegulator_UV.get(1), GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EngineeringProcessorFluidEmeraldCore", 16) ) .fluidInputs( Materials.CrystallineAlloy.getMolten(2880), Materials.Polybenzimidazole.getMolten(2016) ) .noFluidOutputs() .itemOutputs( new ItemStack(Blocks.tfftStorageField, 1, 7) ) .duration(30*SECONDS) .eut(TierEU.RECIPE_UV) .addTo(AssemblyLine); // TFFTStorageField8 GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(Blocks.tfftStorageField, 1, 7)) .metadata(RESEARCH_TIME, 2*HOURS+40*MINUTES) .itemInputs( ItemList.Quantum_Tank_IV.get(1), GT_ModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 1), GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 6), GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 6), GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.DraconiumAwakened, 3), GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.NeutroniumBars", 6), GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.InfinityCatalyst, 6), ItemList.Field_Generator_ZPM.get(16), ItemList.Field_Generator_UV.get(4), GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 4, 2), GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.tinkersConstruct.singularity", 1, 4) ) .fluidInputs( Materials.CrystallinePinkSlime.getMolten(4320), new FluidStack(radoxPoly, 2880) ) .noFluidOutputs() .itemOutputs( new ItemStack(Blocks.tfftStorageField, 1, 8) ) .duration(30*SECONDS) .eut(TierEU.RECIPE_UEV) .addTo(AssemblyLine); GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(Blocks.tfftStorageField, 1, 8)) .metadata(RESEARCH_TIME, 2*HOURS+13*MINUTES+20*SECONDS) .itemInputs( ItemList.Quantum_Tank_IV.get(4), GT_ModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 2), GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.TranscendentMetal, 6), GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.TranscendentMetal, 6), GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Infinity, 3), ItemList.EnergisedTesseract.get(1), GT_ModHandler.getModItem(GTPlusPlus.ID, "itemRotorHypogen", 6), ItemList.Field_Generator_UHV.get(16), ItemList.Field_Generator_UEV.get(4), GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 4, 3), GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.tinkersConstruct.singularity", 1, 4) ) .fluidInputs( Materials.MelodicAlloy.getMolten(5760), new FluidStack(radoxPoly, 3456) ) .noFluidOutputs() .itemOutputs( new ItemStack(Blocks.tfftStorageField, 1, 9) ) .duration(30*SECONDS) .eut(TierEU.RECIPE_UMV) .addTo(AssemblyLine); // TFFTStorageField10 GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(Blocks.tfftStorageField, 1, 9)) .metadata(RESEARCH_TIME,2*HOURS+46*MINUTES+40*SECONDS) .itemInputs( ItemList.Quantum_Tank_IV.get(16), GT_ModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 4), GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.SpaceTime, 6), GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.SpaceTime, 6), GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.SpaceTime, 3), ItemList.EnergisedTesseract.get(6), GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.SpaceTime, 6), ItemList.Field_Generator_UEV.get(16), ItemList.Field_Generator_UIV.get(4), GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 4, 4), GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 4, 4), GT_ModHandler.getModItem(EnderIO.ID, "itemBasicCapacitor", 64, 6), GT_ModHandler.getModItem(EternalSingularity.ID, "eternal_singularity", 1) ) .fluidInputs( Materials.StellarAlloy.getMolten(7200), new FluidStack(radoxPoly, 4608) ) .noFluidOutputs() .itemOutputs( new ItemStack(Blocks.tfftStorageField, 1, 10) ) .duration(30*SECONDS) .eut(TierEU.RECIPE_UXV) .addTo(AssemblyLine); // LuV Capacitor GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1)) .metadata(RESEARCH_TIME,4*HOURS) .itemInputs( GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24), ItemList.Circuit_Board_Elite.get(1), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.NaquadahAlloy, 64), new Object[] { OrePrefixes.circuit.get(Materials.Master), 4 }, ItemList.Circuit_Parts_Crystal_Chip_Master.get(36), ItemList.Circuit_Parts_Crystal_Chip_Master.get(36), ItemList.Circuit_Chip_HPIC.get(64), ItemList.Circuit_Parts_DiodeASMD.get(8), ItemList.Circuit_Parts_CapacitorASMD.get(8), ItemList.Circuit_Parts_ResistorASMD.get(8), ItemList.Circuit_Parts_TransistorASMD.get(8), GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Platinum, 64) ) .fluidInputs( new FluidStack(solderIndalloy, 720) ) .noFluidOutputs() .itemOutputs( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2) ) .duration(50*SECONDS) .eut(80_000) .addTo(AssemblyLine); // ZPM Capacitor GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2)) .metadata(RESEARCH_TIME, 4*HOURS) .itemInputs( GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 16L), new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 1 }, ItemList.Energy_LapotronicOrb2.get(8L), ItemList.Field_Generator_LuV.get(2), ItemList.Circuit_Wafer_SoC2.get(64), ItemList.Circuit_Wafer_SoC2.get(64), ItemList.Circuit_Parts_DiodeASMD.get(8), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 32) ) .fluidInputs( new FluidStack(solderIndalloy, 2880), new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000) ) .noFluidOutputs() .itemOutputs( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3) ) .duration(1*MINUTES+40*SECONDS) .eut(100_000) .addTo(AssemblyLine); // UV Capacitor GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3)) .metadata(RESEARCH_TIME, 4*HOURS) .itemInputs( GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 4), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 32L), new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, ItemList.Energy_Module.get(8L), ItemList.Field_Generator_ZPM.get(2), ItemList.Circuit_Wafer_HPIC.get(64), ItemList.Circuit_Wafer_HPIC.get(64), ItemList.Circuit_Parts_DiodeASMD.get(16), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy, 32) ) .fluidInputs( new FluidStack(solderIndalloy, 2880), new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000) ) .noFluidOutputs() .itemOutputs( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4) ) .eut(200_000) .duration(1*MINUTES+40*SECONDS) .addTo(AssemblyLine); } }