aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/common/recipeLoaders
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/common/recipeLoaders')
-rw-r--r--src/main/java/common/recipeLoaders/AlloySmelter.java32
-rw-r--r--src/main/java/common/recipeLoaders/Assembler.java246
-rw-r--r--src/main/java/common/recipeLoaders/AssemblyLine.java205
-rw-r--r--src/main/java/common/recipeLoaders/ChemicalReactor.java28
-rw-r--r--src/main/java/common/recipeLoaders/Crafting.java75
-rw-r--r--src/main/java/common/recipeLoaders/FormingPress.java28
-rw-r--r--src/main/java/common/recipeLoaders/Mixer.java44
-rw-r--r--src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java136
-rw-r--r--src/main/java/common/recipeLoaders/Unpackager.java146
9 files changed, 940 insertions, 0 deletions
diff --git a/src/main/java/common/recipeLoaders/AlloySmelter.java b/src/main/java/common/recipeLoaders/AlloySmelter.java
new file mode 100644
index 0000000000..86af24d4a4
--- /dev/null
+++ b/src/main/java/common/recipeLoaders/AlloySmelter.java
@@ -0,0 +1,32 @@
+package common.recipeLoaders;
+
+import static gregtech.api.enums.Mods.BartWorks;
+import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes;
+import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
+
+import kekztech.Items;
+
+import common.items.MetaItem_CraftingComponent;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.TierEU;
+
+public class AlloySmelter implements Runnable {
+
+ @Override
+ public void run() {
+ if (BartWorks.isModLoaded()) {
+ final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
+
+ // YSZ Cermic Plate
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 3),
+ ItemList.Shape_Mold_Plate.get(0))
+ .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 1))
+ .noFluidInputs().noFluidOutputs().duration(20 * SECONDS).eut(TierEU.RECIPE_HV)
+ .addTo(sAlloySmelterRecipes);
+ }
+ }
+}
diff --git a/src/main/java/common/recipeLoaders/Assembler.java b/src/main/java/common/recipeLoaders/Assembler.java
new file mode 100644
index 0000000000..01001038bd
--- /dev/null
+++ b/src/main/java/common/recipeLoaders/Assembler.java
@@ -0,0 +1,246 @@
+package common.recipeLoaders;
+
+import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes;
+import static gregtech.api.util.GT_RecipeBuilder.MINUTES;
+import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
+
+import kekztech.Items;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidRegistry;
+
+import common.Blocks;
+import common.TileEntities;
+import common.items.ErrorItem;
+import common.items.MetaItem_CraftingComponent;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
+
+public class Assembler implements Runnable {
+
+ @Override
+ public void run() {
+ // TFFT Casing
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_Utility.getIntegratedCircuit(6),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.StainlessSteel, 1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DarkSteel, 3),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnderPearl, 3))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1))
+ .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(144)).noFluidOutputs().duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV).addTo(sAssemblerRecipes);
+ // TFFT Multi Hatch
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Hull_HV.get(1),
+ ItemList.Cover_FluidStorageMonitor.get(1),
+ ItemList.Field_Generator_LV.get(4),
+ GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Polytetrafluoroethylene, 25))
+ .itemOutputs(TileEntities.tfftHatch.getStackForm(1)).fluidInputs(Materials.Plastic.getMolten(432))
+ .noFluidOutputs().duration(20 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sAssemblerRecipes);
+ // TFFTStorageField1
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_Utility.getIntegratedCircuit(6),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CrudeSteel, 1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrudeSteel, 6),
+ GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Steel, 3),
+ ItemList.FluidRegulator_LV.get(1))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 1)).fluidInputs(Materials.Glass.getMolten(144))
+ .noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sAssemblerRecipes);
+ // TFFTStorageField2
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_Utility.getIntegratedCircuit(6),
+ ItemList.Casing_Tank_1.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnergeticSilver, 6),
+ GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Plastic, 3),
+ ItemList.FluidRegulator_MV.get(1))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 2)).fluidInputs(Materials.Plastic.getMolten(288))
+ .noFluidOutputs().duration(10 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sAssemblerRecipes);
+ // TFFTStorageField3
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_Utility.getIntegratedCircuit(6),
+ ItemList.Casing_Tank_3.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VividAlloy, 6),
+ GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.StainlessSteel, 3),
+ ItemList.Field_Generator_LV.get(1),
+ ItemList.FluidRegulator_HV.get(1))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 3)).fluidInputs(Materials.Plastic.getMolten(432))
+ .noFluidOutputs().duration(20 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sAssemblerRecipes);
+ // TFFTStorageField4
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_Utility.getIntegratedCircuit(6),
+ ItemList.Casing_Tank_5.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Enderium, 6),
+ GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Polytetrafluoroethylene, 3),
+ ItemList.Field_Generator_MV.get(2),
+ ItemList.FluidRegulator_EV.get(1))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 4)).fluidInputs(Materials.Epoxid.getMolten(864))
+ .noFluidOutputs().duration(20 * SECONDS).eut(TierEU.RECIPE_EV).addTo(sAssemblerRecipes);
+ // TFFTStorageField5
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_Utility.getIntegratedCircuit(6),
+ ItemList.Casing_Tank_7.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrystallineAlloy, 6),
+ GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Enderium, 3),
+ ItemList.Field_Generator_HV.get(4),
+ ItemList.FluidRegulator_IV.get(1))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 5)).fluidInputs(Materials.Epoxid.getMolten(1152))
+ .noFluidOutputs().duration(20 * SECONDS).eut(TierEU.RECIPE_IV).addTo(sAssemblerRecipes);
+ // LSC Casing
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tantalum, 4),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 2),
+ GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenSteel, 2),
+ GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lapis, 1))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 0)).noFluidInputs().noFluidOutputs()
+ .duration(5 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sAssemblerRecipes);
+ // EV Capacitor alt recipe
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6),
+ GT_ModHandler.getIC2Item("lapotronCrystal", 1L, GT_Values.W),
+ GT_Utility.getIntegratedCircuit(7))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 7)).noFluidInputs().noFluidOutputs()
+ .duration(10 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sAssemblerRecipes);
+ // IV Capacitor alt recipe
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6),
+ ItemList.Energy_LapotronicOrb.get(1L),
+ GT_Utility.getIntegratedCircuit(1))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1)).noFluidInputs().noFluidOutputs()
+ .duration(20 * SECONDS).eut(TierEU.RECIPE_EV).addTo(sAssemblerRecipes);
+ // LuV Capacitor alt recipe
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Energy_LapotronicOrb2.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24),
+ GT_Utility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2)).noFluidInputs().noFluidOutputs()
+ .duration(40 * SECONDS).eut(TierEU.RECIPE_IV).addTo(sAssemblerRecipes);
+ // ZPM Capacitor alt recipe
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Energy_Module.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24),
+ GT_Utility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3)).noFluidInputs().noFluidOutputs()
+ .duration(1 * MINUTES + 20 * SECONDS).eut(TierEU.RECIPE_LuV).addTo(sAssemblerRecipes);
+ // UV Capacitor alt recipe
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Energy_Cluster.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24),
+ GT_Utility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4)).noFluidInputs().noFluidOutputs()
+ .duration(2 * MINUTES + 40 * SECONDS).eut(TierEU.RECIPE_ZPM).addTo(sAssemblerRecipes);
+ // UHV Capacitor alt recipe
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ ItemList.ZPM3.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24),
+ GT_Utility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5)).noFluidInputs().noFluidOutputs()
+ .duration(5 * MINUTES + 20 * SECONDS).eut(TierEU.RECIPE_UV).addTo(sAssemblerRecipes);
+ // UEV Capacitor alt recipe
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ ItemList.ZPM4.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Infinity, 24),
+ GT_Utility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8)).noFluidInputs().noFluidOutputs()
+ .duration(10 * MINUTES + 40 * SECONDS).eut(TierEU.RECIPE_UHV).addTo(sAssemblerRecipes);
+ // UIV Capacitor alt recipe
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ ItemList.ZPM5.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TranscendentMetal, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.TranscendentMetal, 24),
+ GT_Utility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9)).noFluidInputs().noFluidOutputs()
+ .duration(10 * MINUTES + 40 * SECONDS).eut(TierEU.RECIPE_UEV).addTo(sAssemblerRecipes);
+ // UMV Capacitor alt recipe
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ ItemList.ZPM6.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.SpaceTime, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.SpaceTime, 24),
+ GT_Utility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 10)).noFluidInputs().noFluidOutputs()
+ .duration(10 * MINUTES + 40 * SECONDS).eut(TierEU.RECIPE_UIV).addTo(sAssemblerRecipes);
+
+ final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
+
+ // YSZ Unit
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_Utility.getIntegratedCircuit(6),
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 4),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Yttrium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1),
+ ItemList.Electric_Motor_HV.get(1L))
+ .itemOutputs(new ItemStack(Blocks.yszUnit, 1)).fluidInputs(Materials.Hydrogen.getGas(4000))
+ .noFluidOutputs().duration(60 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sAssemblerRecipes);
+ // GDC Unit
+
+ GT_Values.RA.stdBuilder().itemInputs(
+ GT_Utility.getIntegratedCircuit(6),
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 8),
+ GT_OreDictUnificator
+ .get(OrePrefixes.frameGt, Materials.Gadolinium, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ GT_OreDictUnificator
+ .get(OrePrefixes.rotor, Materials.Desh, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ ItemList.Electric_Motor_IV.get(1L)).itemOutputs(new ItemStack(Blocks.gdcUnit, 1))
+ .fluidInputs(Materials.Hydrogen.getGas(16000)).noFluidOutputs().duration(2 * MINUTES)
+ .eut(TierEU.RECIPE_EV).addTo(sAssemblerRecipes);
+ // Hex Tiles
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_Utility.getIntegratedCircuit(6),
+ GT_OreDictUnificator.get(OrePrefixes.stone, Materials.Concrete, 1),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1),
+ GT_OreDictUnificator.get(OrePrefixes.foil, Materials.DarkSteel, 2))
+ .itemOutputs(new ItemStack(Blocks.largeHexPlate, 2))
+ .fluidInputs(FluidRegistry.getFluidStack("molten.plastic", 36)).noFluidOutputs().duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_MV).addTo(sAssemblerRecipes);
+
+ }
+}
diff --git a/src/main/java/common/recipeLoaders/AssemblyLine.java b/src/main/java/common/recipeLoaders/AssemblyLine.java
new file mode 100644
index 0000000000..6c56d2ccb4
--- /dev/null
+++ b/src/main/java/common/recipeLoaders/AssemblyLine.java
@@ -0,0 +1,205 @@
+package common.recipeLoaders;
+
+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;
+
+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.enums.TierEU;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+
+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);
+ }
+}
diff --git a/src/main/java/common/recipeLoaders/ChemicalReactor.java b/src/main/java/common/recipeLoaders/ChemicalReactor.java
new file mode 100644
index 0000000000..8d8a4a61b7
--- /dev/null
+++ b/src/main/java/common/recipeLoaders/ChemicalReactor.java
@@ -0,0 +1,28 @@
+package common.recipeLoaders;
+
+import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
+import static gregtech.api.util.GT_RecipeConstants.UniversalChemical;
+
+import kekztech.Items;
+
+import common.items.MetaItem_CraftingComponent;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GT_Utility;
+
+public class ChemicalReactor implements Runnable {
+
+ @Override
+ public void run() {
+ final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
+
+ // Ceria Dust
+ GT_Values.RA.stdBuilder().itemInputs(Materials.Cerium.getDust(2), GT_Utility.getIntegratedCircuit(6))
+ .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 2))
+ .fluidInputs(Materials.Oxygen.getGas(3000)).noFluidOutputs().duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_LV).addTo(UniversalChemical);
+
+ }
+}
diff --git a/src/main/java/common/recipeLoaders/Crafting.java b/src/main/java/common/recipeLoaders/Crafting.java
new file mode 100644
index 0000000000..b481605204
--- /dev/null
+++ b/src/main/java/common/recipeLoaders/Crafting.java
@@ -0,0 +1,75 @@
+package common.recipeLoaders;
+
+import net.minecraft.item.ItemStack;
+
+import util.Util;
+
+import common.Blocks;
+import common.TileEntities;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+
+public class Crafting implements Runnable {
+
+ @Override
+ public void run() {
+ // TFFT Controller
+ GT_ModHandler.addCraftingRecipe(
+ TileEntities.tfft.getStackForm(1),
+ new Object[] { "ESE", "FTF", "CVC", 'E',
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.EnderEye, 1), 'S',
+ ItemList.Cover_Screen.get(1), 'F', ItemList.Field_Generator_LV.get(1), 'T',
+ new ItemStack(Blocks.tfftStorageField, 1), 'C', "circuitData", 'V',
+ GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.VibrantAlloy, 1), });
+
+ // SOFC Controller mk1
+ final Object[] mk1_recipe = { "CCC", "PHP", "FBL", 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P',
+ ItemList.Electric_Pump_HV.get(1L), 'H', ItemList.Hull_HV.get(1L), 'F',
+ GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.StainlessSteel, 1), 'B',
+ GT_OreDictUnificator.get(OrePrefixes.cableGt02, Materials.Gold, 1), 'L',
+ GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel, 1) };
+ GT_ModHandler.addCraftingRecipe(TileEntities.sofc1.getStackForm(1), mk1_recipe);
+
+ // SOFC Controller mk2
+ final Object[] mk2_recipe = { "CCC", "PHP", "FBL", 'C', OrePrefixes.circuit.get(Materials.Master), 'P',
+ ItemList.Electric_Pump_IV.get(1L), 'H', ItemList.Hull_IV.get(1L), 'F',
+ GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.Ultimate, 1), 'B',
+ Util.getStackofAmountFromOreDict("wireGt04SuperconductorEV", 1), 'L',
+ GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 1) };
+ GT_ModHandler.addCraftingRecipe(TileEntities.sofc2.getStackForm(1), mk2_recipe);
+
+ // LSC Controller
+ final Object[] lsc_recipe = { "LPL", "CBC", "LPL", 'L', ItemList.IC2_LapotronCrystal.getWildcard(1L), 'P',
+ ItemList.Circuit_Chip_PIC.get(1L), 'C', OrePrefixes.circuit.get(Materials.Master), 'B',
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 0), };
+ GT_ModHandler.addCraftingRecipe(TileEntities.lsc.getStackForm(1), lsc_recipe);
+
+ // LSC casing
+ final Object[] lcBase_recipe = { "WBW", "RLR", "WBW", 'W', OrePrefixes.plate.get(Materials.Tantalum), 'B',
+ OrePrefixes.frameGt.get(Materials.TungstenSteel), 'R',
+ OrePrefixes.stickLong.get(Materials.TungstenSteel), 'L', OrePrefixes.block.get(Materials.Lapis) };
+ GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 0), lcBase_recipe);
+
+ // Empty Capacitor
+ final Object[] lcEmpty_recipe = { "SLS", "L L", "SLS", 'S', OrePrefixes.screw.get(Materials.Lapis), 'L',
+ OrePrefixes.plate.get(Materials.Lapis) };
+ GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6), lcEmpty_recipe);
+
+ // EV Capacitor
+ final Object[] lcEV_recipe = { "SLS", "LCL", "SLS", 'S', OrePrefixes.screw.get(Materials.Lapis), 'L',
+ OrePrefixes.plate.get(Materials.Lapis), 'C',
+ GT_ModHandler.getIC2Item("lapotronCrystal", 1L, GT_Values.W) };
+ GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 7), lcEV_recipe);
+
+ // IV Capacitor
+ final Object[] lcIV_recipe = { "SLS", "LOL", "SLS", 'S', OrePrefixes.screw.get(Materials.Lapis), 'L',
+ OrePrefixes.plate.get(Materials.Lapis), 'O', ItemList.Energy_LapotronicOrb.get(1L) };
+ GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), lcIV_recipe);
+
+ }
+}
diff --git a/src/main/java/common/recipeLoaders/FormingPress.java b/src/main/java/common/recipeLoaders/FormingPress.java
new file mode 100644
index 0000000000..b53a68da27
--- /dev/null
+++ b/src/main/java/common/recipeLoaders/FormingPress.java
@@ -0,0 +1,28 @@
+package common.recipeLoaders;
+
+import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPressRecipes;
+import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
+
+import kekztech.Items;
+
+import common.items.MetaItem_CraftingComponent;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.TierEU;
+
+public class FormingPress implements Runnable {
+
+ @Override
+ public void run() {
+ final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
+
+ // YSZ Ceramic Plate
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10),
+ ItemList.Shape_Mold_Plate.get(0))
+ .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 1))
+ .noFluidInputs().noFluidOutputs().duration(40 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sPressRecipes);
+ }
+}
diff --git a/src/main/java/common/recipeLoaders/Mixer.java b/src/main/java/common/recipeLoaders/Mixer.java
new file mode 100644
index 0000000000..a3a9d6d3e6
--- /dev/null
+++ b/src/main/java/common/recipeLoaders/Mixer.java
@@ -0,0 +1,44 @@
+package common.recipeLoaders;
+
+import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMixerRecipes;
+import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
+
+import kekztech.Items;
+
+import net.minecraft.item.ItemStack;
+
+import common.items.ErrorItem;
+import common.items.MetaItem_CraftingComponent;
+
+import gregtech.api.enums.GT_Values;
+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;
+
+public class Mixer implements Runnable {
+
+ @Override
+ public void run() {
+ final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
+
+ // YSZ Ceramic Dust
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ Items.YttriaDust.getOreDictedItemStack(1),
+ Items.ZirconiaDust.getOreDictedItemStack(5),
+ GT_Utility.getIntegratedCircuit(6))
+ .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 6))
+ .noFluidInputs().noFluidOutputs().duration(20 * SECONDS).eut(96).addTo(sMixerRecipes);
+
+ // GDC Ceramic Dust
+ GT_Values.RA.stdBuilder().itemInputs(
+ GT_OreDictUnificator
+ .get(OrePrefixes.dust, Materials.Gadolinium, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 9),
+ GT_Utility.getIntegratedCircuit(6))
+ .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10))
+ .noFluidInputs().noFluidOutputs().duration(20 * SECONDS).eut(TierEU.RECIPE_EV).addTo(sMixerRecipes);
+ }
+}
diff --git a/src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java b/src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java
new file mode 100644
index 0000000000..ce8c68fd15
--- /dev/null
+++ b/src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java
@@ -0,0 +1,136 @@
+package common.recipeLoaders;
+
+import static gregtech.api.enums.Mods.GTPlusPlus;
+import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+import com.github.technus.tectech.recipe.TT_recipeAdder;
+import common.Blocks;
+
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+
+public class ResearchableAssemblyLine implements Runnable {
+
+ @Override
+ public void run() {
+ final Fluid solderUEV = FluidRegistry.getFluid("molten.mutatedlivingsolder") != null
+ ? FluidRegistry.getFluid("molten.mutatedlivingsolder")
+ : FluidRegistry.getFluid("molten.solderingalloy");
+
+ // Extremely Ultimate Capacitor (UEV)
+ TT_recipeAdder.addResearchableAssemblylineRecipe(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5),
+ 1200000,
+ 128,
+ 8000000,
+ 16,
+ new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Infinity, 24),
+ GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.InfinityCatalyst, 32L),
+ GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.InfinityCatalyst, 32L),
+ new Object[] { OrePrefixes.circuit.get(Materials.Optical), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Optical), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Optical), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Optical), 1 }, ItemList.ZPM3.get(8L),
+ ItemList.Field_Generator_UEV.get(4), ItemList.Circuit_Wafer_PPIC.get(64),
+ ItemList.Circuit_Wafer_PPIC.get(64), ItemList.Circuit_Wafer_SoC2.get(64),
+ ItemList.Circuit_Parts_DiodeXSMD.get(64),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorUEV, 64) },
+ new FluidStack[] { new FluidStack(solderUEV, 9216), Materials.Quantium.getMolten(18432),
+ Materials.Naquadria.getMolten(18432), Materials.SuperCoolant.getFluid(64000) },
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8),
+ 250 * 20,
+ (int) TierEU.RECIPE_UEV);
+
+ if (GTPlusPlus.isModLoaded()) {
+ // Insanely Ultimate Capacitor (UIV)
+ TT_recipeAdder.addResearchableAssemblylineRecipe(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8),
+ 24_000_000,
+ 1_280,
+ 32_000_000,
+ 32,
+ new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TranscendentMetal, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.TranscendentMetal, 24),
+ GT_ModHandler.getModItem(GTPlusPlus.ID, "itemPlateDoubleHypogen", 32),
+ GT_ModHandler.getModItem(GTPlusPlus.ID, "itemPlateDoubleHypogen", 32),
+ new Object[] { OrePrefixes.circuit.get(Materials.Piko), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Piko), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Piko), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Piko), 1 }, ItemList.ZPM4.get(8L),
+ ItemList.Field_Generator_UIV.get(4), ItemList.Circuit_Wafer_QPIC.get(64),
+ ItemList.Circuit_Wafer_QPIC.get(64),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RawPicoWafer", 64),
+ ItemList.Circuit_Parts_DiodeXSMD.get(64), ItemList.Circuit_Parts_InductorXSMD.get(32),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt08, Materials.SuperconductorUIV, 64) },
+ new FluidStack[] { new FluidStack(solderUEV, 18_432),
+ new FluidStack(FluidRegistry.getFluid("molten.celestialtungsten"), 18432),
+ Materials.Quantium.getMolten(18_432), Materials.SuperCoolant.getFluid(128_000) },
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9),
+ 300 * 20,
+ (int) TierEU.RECIPE_UIV);
+
+ // Mega Ultimate Capacitor (UMV)
+ TT_recipeAdder.addResearchableAssemblylineRecipe(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9),
+ 480_000_000,
+ 12_288,
+ 128_000_000,
+ 64,
+ new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.SpaceTime, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.SpaceTime, 24),
+ GT_ModHandler.getModItem(GTPlusPlus.ID, "itemPlateDoubleDragonblood", 32),
+ GT_ModHandler.getModItem(GTPlusPlus.ID, "itemPlateDoubleDragonblood", 32),
+ new Object[] { OrePrefixes.circuit.get(Materials.Quantum), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Quantum), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Quantum), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Quantum), 1 }, ItemList.ZPM5.get(8L),
+ ItemList.Field_Generator_UMV.get(4), ItemList.Circuit_Wafer_QPIC.get(64),
+ ItemList.Circuit_Wafer_QPIC.get(64),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PicoWafer", 64),
+ ItemList.Circuit_Parts_DiodeXSMD.get(64), ItemList.Circuit_Parts_InductorXSMD.get(64),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUMV, 64) },
+ new FluidStack[] { new FluidStack(solderUEV, 36_864),
+ new FluidStack(FluidRegistry.getFluid("molten.astraltitanium"), 36_864),
+ new FluidStack(FluidRegistry.getFluid("molten.celestialtungsten"), 36_864),
+ Materials.SuperCoolant.getFluid(256_000) },
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 10),
+ 350 * 20,
+ (int) TierEU.RECIPE_UMV);
+ }
+
+ // Ultimate Capacitor (UHV)
+ TT_recipeAdder.addResearchableAssemblylineRecipe(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4),
+ 12000,
+ 16,
+ 300000,
+ 3,
+ new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium, 4),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24),
+ GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium, 32L),
+ GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium, 32L),
+ new Object[] { OrePrefixes.circuit.get(Materials.Bio), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Bio), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Bio), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.Bio), 1 }, ItemList.ZPM2.get(8L),
+ ItemList.Field_Generator_UHV.get(4), ItemList.Circuit_Wafer_UHPIC.get(64),
+ ItemList.Circuit_Wafer_UHPIC.get(64), ItemList.Circuit_Wafer_SoC2.get(32),
+ ItemList.Circuit_Parts_DiodeASMD.get(64),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt02, Materials.SuperconductorUHV, 64) },
+ new FluidStack[] { new FluidStack(solderUEV, 4608), Materials.Naquadria.getMolten(9216),
+ new FluidStack(FluidRegistry.getFluid("ic2coolant"), 32000) },
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5),
+ 4000,
+ 1600000);
+ }
+}
diff --git a/src/main/java/common/recipeLoaders/Unpackager.java b/src/main/java/common/recipeLoaders/Unpackager.java
new file mode 100644
index 0000000000..ed39cd1e01
--- /dev/null
+++ b/src/main/java/common/recipeLoaders/Unpackager.java
@@ -0,0 +1,146 @@
+package common.recipeLoaders;
+
+import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes;
+import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
+
+import net.minecraft.item.ItemStack;
+
+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.enums.TierEU;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+
+public class Unpackager implements Runnable {
+
+ @Override
+ public void run() {
+
+ // TFFT Recycling
+ {
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(Blocks.tfftStorageField, 1, 1),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CrudeSteel, 1))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrudeSteel, 6)).noFluidInputs()
+ .noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 2), ItemList.Casing_Tank_1.get(1))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnergeticSilver, 6))
+ .noFluidInputs().noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV)
+ .addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 3), ItemList.Casing_Tank_3.get(1))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VividAlloy, 6)).noFluidInputs()
+ .noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 4), ItemList.Casing_Tank_5.get(1))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Enderium, 6)).noFluidInputs()
+ .noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV).addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 5), ItemList.Casing_Tank_7.get(1))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrystallineAlloy, 6))
+ .noFluidInputs().noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV)
+ .addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 6), ItemList.Casing_Tank_7.get(4))
+ .itemOutputs(
+ GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.CrystallinePinkSlime, 6))
+ .noFluidInputs().noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV)
+ .addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 7), ItemList.Casing_Tank_10.get(16))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.MelodicAlloy, 6))
+ .noFluidInputs().noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV)
+ .addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 8), ItemList.Quantum_Tank_IV.get(1))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 12))
+ .noFluidInputs().noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV)
+ .addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 9), ItemList.Quantum_Tank_IV.get(4))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.TranscendentMetal, 12))
+ .noFluidInputs().noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV)
+ .addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 10), ItemList.Quantum_Tank_IV.get(16))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.SpaceTime, 12))
+ .noFluidInputs().noFluidOutputs().duration(5 * SECONDS).eut(TierEU.RECIPE_HV)
+ .addTo(sUnboxinatorRecipes);
+
+ }
+
+ // Capacitor recycling
+ {
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 7),
+ GT_ModHandler.getIC2Item("lapotronCrystal", 1L, 26))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6)).noFluidInputs().noFluidOutputs()
+ .duration(60 * SECONDS).eut(TierEU.RECIPE_LV).addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1),
+ ItemList.Energy_LapotronicOrb.get(1L))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6)).noFluidInputs().noFluidOutputs()
+ .duration(60 * SECONDS).eut(TierEU.RECIPE_LV).addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2),
+ ItemList.Energy_LapotronicOrb2.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24)).noFluidInputs()
+ .noFluidOutputs().duration(60 * SECONDS).eut(TierEU.RECIPE_LV).addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3), ItemList.Energy_Module.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24))
+ .noFluidInputs().noFluidOutputs().duration(60 * SECONDS).eut(TierEU.RECIPE_LV)
+ .addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4), ItemList.Energy_Cluster.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24)).noFluidInputs()
+ .noFluidOutputs().duration(60 * SECONDS).eut(TierEU.RECIPE_LV).addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5), ItemList.ZPM3.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24))
+ .noFluidInputs().noFluidOutputs().duration(60 * SECONDS).eut(TierEU.RECIPE_LV)
+ .addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8), ItemList.ZPM4.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Infinity, 24)).noFluidInputs()
+ .noFluidOutputs().duration(60 * SECONDS).eut(TierEU.RECIPE_LV).addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9), ItemList.ZPM5.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.screw, Materials.TranscendentMetal, 24))
+ .noFluidInputs().noFluidOutputs().duration(60 * SECONDS).eut(TierEU.RECIPE_LV)
+ .addTo(sUnboxinatorRecipes);
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 10), ItemList.ZPM6.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.screw, Materials.SpaceTime, 24)).noFluidInputs()
+ .noFluidOutputs().duration(60 * SECONDS).eut(TierEU.RECIPE_LV).addTo(sUnboxinatorRecipes);
+
+ }
+ }
+}