aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kekztech/common/recipeLoaders
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/kekztech/common/recipeLoaders
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
The Great Renaming (#3014)
* move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names
Diffstat (limited to 'src/main/java/kekztech/common/recipeLoaders')
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/AlloySmelter.java28
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/Assembler.java294
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/AssemblyLine.java226
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/ChemicalReactor.java29
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/Crafting.java71
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/FormingPress.java28
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/Mixer.java47
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/ResearchableAssemblyLine.java133
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/Unpackager.java199
9 files changed, 1055 insertions, 0 deletions
diff --git a/src/main/java/kekztech/common/recipeLoaders/AlloySmelter.java b/src/main/java/kekztech/common/recipeLoaders/AlloySmelter.java
new file mode 100644
index 0000000000..86c03cc43f
--- /dev/null
+++ b/src/main/java/kekztech/common/recipeLoaders/AlloySmelter.java
@@ -0,0 +1,28 @@
+package kekztech.common.recipeLoaders;
+
+import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.TierEU;
+import kekztech.Items;
+import kekztech.common.items.MetaItemCraftingComponent;
+
+public class AlloySmelter implements Runnable {
+
+ @Override
+ public void run() {
+ final MetaItemCraftingComponent craftingItem = MetaItemCraftingComponent.getInstance();
+
+ // YSZ Cermic Plate
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 3),
+ ItemList.Shape_Mold_Plate.get(0))
+ .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 1))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(alloySmelterRecipes);
+ }
+}
diff --git a/src/main/java/kekztech/common/recipeLoaders/Assembler.java b/src/main/java/kekztech/common/recipeLoaders/Assembler.java
new file mode 100644
index 0000000000..07e1fdac1c
--- /dev/null
+++ b/src/main/java/kekztech/common/recipeLoaders/Assembler.java
@@ -0,0 +1,294 @@
+package kekztech.common.recipeLoaders;
+
+import static gregtech.api.recipe.RecipeMaps.assemblerRecipes;
+import static gregtech.api.util.GTRecipeBuilder.MINUTES;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidRegistry;
+
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.MaterialsUEVplus;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTOreDictUnificator;
+import gregtech.api.util.GTUtility;
+import kekztech.Items;
+import kekztech.common.Blocks;
+import kekztech.common.TileEntities;
+import kekztech.common.items.ErrorItem;
+import kekztech.common.items.MetaItemCraftingComponent;
+
+public class Assembler implements Runnable {
+
+ @Override
+ public void run() {
+ // TFFT Casing
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(6),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.StainlessSteel, 1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.DarkSteel, 3),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.EnderPearl, 3))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1))
+ .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(144))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+ // TFFT Multi Hatch
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Hull_HV.get(1),
+ ItemList.Cover_FluidStorageMonitor.get(1),
+ ItemList.Field_Generator_LV.get(4),
+ GTOreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Polytetrafluoroethylene, 25))
+ .itemOutputs(TileEntities.tfftHatch.getStackForm(1))
+ .fluidInputs(Materials.Plastic.getMolten(432))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+ // TFFTStorageField1
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(6),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.CrudeSteel, 1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.CrudeSteel, 6),
+ GTOreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Steel, 3),
+ ItemList.FluidRegulator_LV.get(1))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 1))
+ .fluidInputs(Materials.Glass.getMolten(144))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+ // TFFTStorageField2
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(6),
+ ItemList.Casing_Tank_1.get(1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.EnergeticSilver, 6),
+ GTOreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Plastic, 3),
+ ItemList.FluidRegulator_MV.get(1))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 2))
+ .fluidInputs(Materials.Plastic.getMolten(288))
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+ // TFFTStorageField3
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(6),
+ ItemList.Casing_Tank_3.get(1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.VividAlloy, 6),
+ GTOreDictUnificator.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))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+ // TFFTStorageField4
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(6),
+ ItemList.Casing_Tank_5.get(1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Enderium, 6),
+ GTOreDictUnificator.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))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(assemblerRecipes);
+ // TFFTStorageField5
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(6),
+ ItemList.Casing_Tank_7.get(1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.CrystallineAlloy, 6),
+ GTOreDictUnificator.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))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(assemblerRecipes);
+ // LSC Casing
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Tantalum, 4),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 2),
+ GTOreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenSteel, 2),
+ GTOreDictUnificator.get(OrePrefixes.block, Materials.Lapis, 1))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 0))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+ // EV Capacitor alt recipe
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6),
+ GTModHandler.getIC2Item("lapotronCrystal", 1L, GTValues.W),
+ GTUtility.getIntegratedCircuit(7))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 7))
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+ // IV Capacitor alt recipe
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6),
+ ItemList.Energy_LapotronicOrb.get(1L),
+ GTUtility.getIntegratedCircuit(1))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(assemblerRecipes);
+ // LuV Capacitor alt recipe
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Energy_LapotronicOrb2.get(1),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24),
+ GTUtility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(assemblerRecipes);
+ // ZPM Capacitor alt recipe
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Energy_Module.get(1),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24),
+ GTUtility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3))
+ .duration(1 * MINUTES + 20 * SECONDS)
+ .eut(TierEU.RECIPE_LuV)
+ .addTo(assemblerRecipes);
+ // UV Capacitor alt recipe
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Energy_Cluster.get(1),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24),
+ GTUtility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4))
+ .duration(2 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_ZPM)
+ .addTo(assemblerRecipes);
+ // UHV Capacitor alt recipe
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.ZPM3.get(1),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24),
+ GTUtility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5))
+ .duration(5 * MINUTES + 20 * SECONDS)
+ .eut(TierEU.RECIPE_UV)
+ .addTo(assemblerRecipes);
+ // UEV Capacitor alt recipe
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.ZPM4.get(1),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Infinity, 24),
+ GTUtility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8))
+ .duration(10 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_UHV)
+ .addTo(assemblerRecipes);
+ // UIV Capacitor alt recipe
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.ZPM5.get(1),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.TranscendentMetal, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.TranscendentMetal, 24),
+ GTUtility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9))
+ .duration(10 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_UEV)
+ .addTo(assemblerRecipes);
+ // UMV Capacitor alt recipe
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.ZPM6.get(1),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.SpaceTime, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.SpaceTime, 24),
+ GTUtility.getIntegratedCircuit(6))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 10))
+ .duration(10 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_UIV)
+ .addTo(assemblerRecipes);
+
+ final MetaItemCraftingComponent craftingItem = MetaItemCraftingComponent.getInstance();
+
+ // YSZ Unit
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(6),
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 4),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Yttrium, 1),
+ GTOreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1),
+ ItemList.Electric_Motor_HV.get(1L))
+ .itemOutputs(new ItemStack(Blocks.yszUnit, 1))
+ .fluidInputs(Materials.Hydrogen.getGas(4000))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+ // GDC Unit
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(6),
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 8),
+ GTOreDictUnificator
+ .get(OrePrefixes.frameGt, Materials.Gadolinium, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ GTOreDictUnificator
+ .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))
+ .duration(2 * MINUTES)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(assemblerRecipes);
+ // Hex Tiles
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(6),
+ GTOreDictUnificator.get(OrePrefixes.stone, Materials.Concrete, 1),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1),
+ GTOreDictUnificator.get(OrePrefixes.foil, Materials.DarkSteel, 2))
+ .itemOutputs(new ItemStack(Blocks.largeHexPlate, 2))
+ .fluidInputs(FluidRegistry.getFluidStack("molten.plastic", 36))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(assemblerRecipes);
+
+ }
+}
diff --git a/src/main/java/kekztech/common/recipeLoaders/AssemblyLine.java b/src/main/java/kekztech/common/recipeLoaders/AssemblyLine.java
new file mode 100644
index 0000000000..b24863d14e
--- /dev/null
+++ b/src/main/java/kekztech/common/recipeLoaders/AssemblyLine.java
@@ -0,0 +1,226 @@
+package kekztech.common.recipeLoaders;
+
+import static goodgenerator.loader.Loaders.huiCircuit;
+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.NewHorizonsCoreMod;
+import static gregtech.api.enums.Mods.UniversalSingularities;
+import static gregtech.api.util.GTRecipeBuilder.HOURS;
+import static gregtech.api.util.GTRecipeBuilder.MINUTES;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeConstants.AssemblyLine;
+import static gregtech.api.util.GTRecipeConstants.RESEARCH_ITEM;
+import static gregtech.api.util.GTRecipeConstants.RESEARCH_TIME;
+import static gtPlusPlus.core.material.MaterialsElements.STANDALONE.HYPOGEN;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.MaterialsUEVplus;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTOreDictUnificator;
+import kekztech.common.Blocks;
+
+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
+ GTValues.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),
+ GTOreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.CrystallinePinkSlime, 6),
+ GTOreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Naquadah, 3),
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.ChromeBars", 6),
+ GTOreDictUnificator.get(OrePrefixes.rotor, Materials.Quantium, 6),
+ ItemList.Field_Generator_EV.get(8),
+ ItemList.FluidRegulator_LuV.get(1),
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EngineeringProcessorFluidEmeraldCore", 4))
+ .fluidInputs(Materials.Enderium.getMolten(1440), Materials.Polybenzimidazole.getMolten(1584))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 6))
+ .eut(TierEU.RECIPE_LuV)
+ .duration(30 * SECONDS)
+ .addTo(AssemblyLine);
+
+ // TFFTStorageField7
+ GTValues.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),
+ GTOreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.MelodicAlloy, 6),
+ GTOreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.NetherStar, 3),
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.OsmiumBars", 6),
+ GTOreDictUnificator.get(OrePrefixes.rotor, Materials.MysteriousCrystal, 6),
+ ItemList.Field_Generator_IV.get(16),
+ ItemList.Field_Generator_LuV.get(4),
+ ItemList.FluidRegulator_UV.get(1),
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EngineeringProcessorFluidEmeraldCore", 16))
+ .fluidInputs(Materials.CrystallineAlloy.getMolten(2880), Materials.Polybenzimidazole.getMolten(2016))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 7))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_UV)
+ .addTo(AssemblyLine);
+
+ // TFFTStorageField8
+ GTValues.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),
+ GTModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 1),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 6),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 6),
+ GTOreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.DraconiumAwakened, 3),
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.NeutroniumBars", 6),
+ GTOreDictUnificator.get(OrePrefixes.rotor, Materials.InfinityCatalyst, 6),
+ ItemList.Field_Generator_ZPM.get(16),
+ ItemList.Field_Generator_UV.get(4),
+ new ItemStack(huiCircuit, 4, 2),
+ GTModHandler.getModItem(UniversalSingularities.ID, "universal.tinkersConstruct.singularity", 1, 4))
+ .fluidInputs(Materials.CrystallinePinkSlime.getMolten(4320), new FluidStack(radoxPoly, 2880))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 8))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_UEV)
+ .addTo(AssemblyLine);
+
+ GTValues.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),
+ GTModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 2),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.TranscendentMetal, 6),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.TranscendentMetal, 6),
+ GTOreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Infinity, 3),
+ ItemList.EnergisedTesseract.get(1),
+ HYPOGEN.getRotor(6),
+ ItemList.Field_Generator_UHV.get(16),
+ ItemList.Field_Generator_UEV.get(4),
+ new ItemStack(huiCircuit, 4, 3),
+ GTModHandler.getModItem(UniversalSingularities.ID, "universal.tinkersConstruct.singularity", 1, 4))
+ .fluidInputs(Materials.MelodicAlloy.getMolten(5760), new FluidStack(radoxPoly, 3456))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 9))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_UMV)
+ .addTo(AssemblyLine);
+
+ // TFFTStorageField10
+ GTValues.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),
+ GTModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 4),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SpaceTime, 6),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SpaceTime, 6),
+ GTOreDictUnificator.get(OrePrefixes.pipeNonuple, MaterialsUEVplus.SpaceTime, 3),
+ ItemList.EnergisedTesseract.get(6),
+ GTOreDictUnificator.get(OrePrefixes.rotor, MaterialsUEVplus.SpaceTime, 6),
+ ItemList.Field_Generator_UEV.get(16),
+ ItemList.Field_Generator_UIV.get(4),
+ new ItemStack(huiCircuit, 4, 4),
+ new ItemStack(huiCircuit, 4, 4),
+ GTModHandler.getModItem(EnderIO.ID, "itemBasicCapacitor", 64, 6),
+ GTModHandler.getModItem(EternalSingularity.ID, "eternal_singularity", 1))
+ .fluidInputs(Materials.StellarAlloy.getMolten(7200), new FluidStack(radoxPoly, 4608))
+ .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 10))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_UXV)
+ .addTo(AssemblyLine);
+
+ // LuV Capacitor
+ GTValues.RA.stdBuilder()
+ .metadata(RESEARCH_ITEM, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1))
+ .metadata(RESEARCH_TIME, 4 * HOURS)
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24),
+ ItemList.Circuit_Board_Elite.get(1),
+ GTOreDictUnificator.get(OrePrefixes.foil, Materials.NaquadahAlloy, 64),
+ new Object[] { OrePrefixes.circuit.get(Materials.LuV), 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),
+ GTOreDictUnificator.get(OrePrefixes.wireFine, Materials.Platinum, 64))
+ .fluidInputs(new FluidStack(solderIndalloy, 720))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2))
+ .duration(50 * SECONDS)
+ .eut(80_000)
+ .addTo(AssemblyLine);
+
+ // ZPM Capacitor
+ GTValues.RA.stdBuilder()
+ .metadata(RESEARCH_ITEM, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2))
+ .metadata(RESEARCH_TIME, 4 * HOURS)
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 16L),
+ new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 },
+ ItemList.Energy_LapotronicOrb2.get(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),
+ GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 32))
+ .fluidInputs(
+ new FluidStack(solderIndalloy, 2880),
+ new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3))
+ .duration(1 * MINUTES + 40 * SECONDS)
+ .eut(100_000)
+ .addTo(AssemblyLine);
+
+ // UV Capacitor
+ GTValues.RA.stdBuilder()
+ .metadata(RESEARCH_ITEM, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3))
+ .metadata(RESEARCH_TIME, 4 * HOURS)
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 32L),
+ new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 },
+ ItemList.Energy_Module.get(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),
+ GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy, 32))
+ .fluidInputs(
+ new FluidStack(solderIndalloy, 2880),
+ new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000))
+ .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4))
+ .eut(200_000)
+ .duration(1 * MINUTES + 40 * SECONDS)
+ .addTo(AssemblyLine);
+ }
+}
diff --git a/src/main/java/kekztech/common/recipeLoaders/ChemicalReactor.java b/src/main/java/kekztech/common/recipeLoaders/ChemicalReactor.java
new file mode 100644
index 0000000000..ff35caa483
--- /dev/null
+++ b/src/main/java/kekztech/common/recipeLoaders/ChemicalReactor.java
@@ -0,0 +1,29 @@
+package kekztech.common.recipeLoaders;
+
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeConstants.UniversalChemical;
+
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTUtility;
+import kekztech.Items;
+import kekztech.common.items.MetaItemCraftingComponent;
+
+public class ChemicalReactor implements Runnable {
+
+ @Override
+ public void run() {
+ final MetaItemCraftingComponent craftingItem = MetaItemCraftingComponent.getInstance();
+
+ // Ceria Dust
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Cerium.getDust(1), GTUtility.getIntegratedCircuit(6))
+ .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 3))
+ .fluidInputs(Materials.Oxygen.getGas(2000))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(UniversalChemical);
+
+ }
+}
diff --git a/src/main/java/kekztech/common/recipeLoaders/Crafting.java b/src/main/java/kekztech/common/recipeLoaders/Crafting.java
new file mode 100644
index 0000000000..8ef42ef3e4
--- /dev/null
+++ b/src/main/java/kekztech/common/recipeLoaders/Crafting.java
@@ -0,0 +1,71 @@
+package kekztech.common.recipeLoaders;
+
+import net.minecraft.item.ItemStack;
+
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTOreDictUnificator;
+import kekztech.common.Blocks;
+import kekztech.common.TileEntities;
+import kekztech.util.Util;
+
+public class Crafting implements Runnable {
+
+ @Override
+ public void run() {
+ // TFFT Controller
+ GTModHandler.addCraftingRecipe(
+ TileEntities.tfft.getStackForm(1),
+ new Object[] { "ESE", "FTF", "CVC", 'E', GTOreDictUnificator.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',
+ GTOreDictUnificator.get(OrePrefixes.rotor, Materials.VibrantAlloy, 1), });
+
+ // SOFC Controller mk1
+ final Object[] mk1_recipe = { "CCC", "PHP", "FBL", 'C', OrePrefixes.circuit.get(Materials.HV), 'P',
+ ItemList.Electric_Pump_HV.get(1L), 'H', ItemList.Hull_HV.get(1L), 'F',
+ GTOreDictUnificator.get(OrePrefixes.pipeSmall, Materials.StainlessSteel, 1), 'B',
+ GTOreDictUnificator.get(OrePrefixes.cableGt02, Materials.Gold, 1), 'L',
+ GTOreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel, 1) };
+ GTModHandler.addCraftingRecipe(TileEntities.sofc1.getStackForm(1), mk1_recipe);
+
+ // SOFC Controller mk2
+ final Object[] mk2_recipe = { "CCC", "PHP", "FBL", 'C', OrePrefixes.circuit.get(Materials.LuV), 'P',
+ ItemList.Electric_Pump_IV.get(1L), 'H', ItemList.Hull_IV.get(1L), 'F',
+ GTOreDictUnificator.get(OrePrefixes.pipeSmall, Materials.Ultimate, 1), 'B',
+ Util.getStackofAmountFromOreDict("wireGt04SuperconductorEV", 1), 'L',
+ GTOreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 1) };
+ GTModHandler.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.LuV), 'B',
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 0), };
+ GTModHandler.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) };
+ GTModHandler.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) };
+ GTModHandler.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', GTModHandler.getIC2Item("lapotronCrystal", 1L, GTValues.W) };
+ GTModHandler.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) };
+ GTModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), lcIV_recipe);
+
+ }
+}
diff --git a/src/main/java/kekztech/common/recipeLoaders/FormingPress.java b/src/main/java/kekztech/common/recipeLoaders/FormingPress.java
new file mode 100644
index 0000000000..fee4c44fc1
--- /dev/null
+++ b/src/main/java/kekztech/common/recipeLoaders/FormingPress.java
@@ -0,0 +1,28 @@
+package kekztech.common.recipeLoaders;
+
+import static gregtech.api.recipe.RecipeMaps.formingPressRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.TierEU;
+import kekztech.Items;
+import kekztech.common.items.MetaItemCraftingComponent;
+
+public class FormingPress implements Runnable {
+
+ @Override
+ public void run() {
+ final MetaItemCraftingComponent craftingItem = MetaItemCraftingComponent.getInstance();
+
+ // YSZ Ceramic Plate
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10),
+ ItemList.Shape_Mold_Plate.get(0))
+ .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 1))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(formingPressRecipes);
+ }
+}
diff --git a/src/main/java/kekztech/common/recipeLoaders/Mixer.java b/src/main/java/kekztech/common/recipeLoaders/Mixer.java
new file mode 100644
index 0000000000..99d7001113
--- /dev/null
+++ b/src/main/java/kekztech/common/recipeLoaders/Mixer.java
@@ -0,0 +1,47 @@
+package kekztech.common.recipeLoaders;
+
+import static gregtech.api.recipe.RecipeMaps.mixerRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import net.minecraft.item.ItemStack;
+
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTOreDictUnificator;
+import gregtech.api.util.GTUtility;
+import kekztech.Items;
+import kekztech.common.items.ErrorItem;
+import kekztech.common.items.MetaItemCraftingComponent;
+
+public class Mixer implements Runnable {
+
+ @Override
+ public void run() {
+ final MetaItemCraftingComponent craftingItem = MetaItemCraftingComponent.getInstance();
+
+ // YSZ Ceramic Dust
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ Items.YttriaDust.getOreDictedItemStack(1),
+ Items.ZirconiaDust.getOreDictedItemStack(5),
+ GTUtility.getIntegratedCircuit(6))
+ .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 6))
+ .duration(20 * SECONDS)
+ .eut(96)
+ .addTo(mixerRecipes);
+
+ // GDC Ceramic Dust
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTOreDictUnificator
+ .get(OrePrefixes.dust, Materials.Gadolinium, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 9),
+ GTUtility.getIntegratedCircuit(6))
+ .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(mixerRecipes);
+ }
+}
diff --git a/src/main/java/kekztech/common/recipeLoaders/ResearchableAssemblyLine.java b/src/main/java/kekztech/common/recipeLoaders/ResearchableAssemblyLine.java
new file mode 100644
index 0000000000..c3fd1740b8
--- /dev/null
+++ b/src/main/java/kekztech/common/recipeLoaders/ResearchableAssemblyLine.java
@@ -0,0 +1,133 @@
+package kekztech.common.recipeLoaders;
+
+import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
+import static gtPlusPlus.core.material.MaterialsElements.STANDALONE.DRAGON_METAL;
+import static gtPlusPlus.core.material.MaterialsElements.STANDALONE.HYPOGEN;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.MaterialsUEVplus;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTOreDictUnificator;
+import kekztech.common.Blocks;
+import tectech.recipe.TTRecipeAdder;
+
+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)
+ TTRecipeAdder.addResearchableAssemblylineRecipe(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5),
+ 1200000,
+ 128,
+ (int) TierEU.RECIPE_UEV,
+ 16,
+ new Object[] { GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Infinity, 24),
+ GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.InfinityCatalyst, 32L),
+ GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.InfinityCatalyst, 32L),
+ new Object[] { OrePrefixes.circuit.get(Materials.UIV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UIV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UIV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UIV), 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),
+ GTOreDictUnificator.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);
+
+ // Insanely Ultimate Capacitor (UIV)
+ TTRecipeAdder.addResearchableAssemblylineRecipe(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8),
+ 24_000_000,
+ 1_280,
+ (int) TierEU.RECIPE_UIV,
+ 32,
+ new Object[] { GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.TranscendentMetal, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.TranscendentMetal, 24),
+ HYPOGEN.getPlateDouble(32), HYPOGEN.getPlateDouble(32),
+ new Object[] { OrePrefixes.circuit.get(Materials.UMV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UMV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UMV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UMV), 1 }, ItemList.ZPM4.get(8L),
+ ItemList.Field_Generator_UIV.get(4), ItemList.Circuit_Wafer_QPIC.get(64),
+ ItemList.Circuit_Wafer_QPIC.get(64),
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RawPicoWafer", 64),
+ ItemList.Circuit_Parts_DiodeXSMD.get(64), ItemList.Circuit_Parts_InductorXSMD.get(32),
+ GTOreDictUnificator.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)
+ TTRecipeAdder.addResearchableAssemblylineRecipe(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9),
+ 480_000_000,
+ 12_288,
+ (int) TierEU.RECIPE_UMV,
+ 64,
+ new Object[] { GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.SpaceTime, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.SpaceTime, 24),
+ DRAGON_METAL.getPlateDouble(32), DRAGON_METAL.getPlateDouble(32),
+ new Object[] { OrePrefixes.circuit.get(Materials.UXV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UXV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UXV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UXV), 1 }, ItemList.ZPM5.get(8L),
+ ItemList.Field_Generator_UMV.get(4), ItemList.Circuit_Wafer_QPIC.get(64),
+ ItemList.Circuit_Wafer_QPIC.get(64),
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PicoWafer", 64),
+ ItemList.Circuit_Parts_DiodeXSMD.get(64), ItemList.Circuit_Parts_InductorXSMD.get(64),
+ GTOreDictUnificator.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)
+ TTRecipeAdder.addResearchableAssemblylineRecipe(
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4),
+ 12000,
+ 16,
+ 300000,
+ 3,
+ new Object[] { GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium, 4),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24),
+ GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium, 32L),
+ GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium, 32L),
+ new Object[] { OrePrefixes.circuit.get(Materials.UEV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UEV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UEV), 1 },
+ new Object[] { OrePrefixes.circuit.get(Materials.UEV), 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),
+ GTOreDictUnificator.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/kekztech/common/recipeLoaders/Unpackager.java b/src/main/java/kekztech/common/recipeLoaders/Unpackager.java
new file mode 100644
index 0000000000..3d7385ff22
--- /dev/null
+++ b/src/main/java/kekztech/common/recipeLoaders/Unpackager.java
@@ -0,0 +1,199 @@
+package kekztech.common.recipeLoaders;
+
+import static gregtech.api.recipe.RecipeMaps.unpackagerRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import net.minecraft.item.ItemStack;
+
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.MaterialsUEVplus;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTOreDictUnificator;
+import kekztech.common.Blocks;
+
+public class Unpackager implements Runnable {
+
+ @Override
+ public void run() {
+
+ // TFFT Recycling
+ {
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 1))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.CrudeSteel, 1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.CrudeSteel, 6))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 2))
+ .itemOutputs(
+ ItemList.Casing_Tank_1.get(1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.EnergeticSilver, 6))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 3))
+ .itemOutputs(
+ ItemList.Casing_Tank_3.get(1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.VividAlloy, 6))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 4))
+ .itemOutputs(
+ ItemList.Casing_Tank_5.get(1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Enderium, 6))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 5))
+ .itemOutputs(
+ ItemList.Casing_Tank_7.get(1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.CrystallineAlloy, 6))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 6))
+ .itemOutputs(
+ ItemList.Casing_Tank_7.get(4),
+ GTOreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.CrystallinePinkSlime, 6))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 7))
+ .itemOutputs(
+ ItemList.Casing_Tank_10.get(16),
+ GTOreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.MelodicAlloy, 6))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 8))
+ .itemOutputs(
+ ItemList.Quantum_Tank_IV.get(1),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 12))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 9))
+ .itemOutputs(
+ ItemList.Quantum_Tank_IV.get(4),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.TranscendentMetal, 12))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 10))
+ .itemOutputs(
+ ItemList.Quantum_Tank_IV.get(16),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SpaceTime, 12))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(unpackagerRecipes);
+
+ }
+
+ // Capacitor recycling
+ {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 7))
+ .itemOutputs(
+ GTModHandler.getIC2Item("lapotronCrystal", 1L, 26),
+ new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1))
+ .itemOutputs(ItemList.Energy_LapotronicOrb.get(1L), new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2))
+ .itemOutputs(
+ ItemList.Energy_LapotronicOrb2.get(1L),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3))
+ .itemOutputs(
+ ItemList.Energy_Module.get(1L),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4))
+ .itemOutputs(
+ ItemList.Energy_Cluster.get(1L),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5))
+ .itemOutputs(
+ ItemList.ZPM3.get(1L),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8))
+ .itemOutputs(ItemList.ZPM4.get(1L), GTOreDictUnificator.get(OrePrefixes.screw, Materials.Infinity, 24))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9))
+ .itemOutputs(
+ ItemList.ZPM5.get(1L),
+ GTOreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.TranscendentMetal, 24))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(unpackagerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 10))
+ .itemOutputs(
+ ItemList.ZPM6.get(1L),
+ GTOreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.SpaceTime, 24))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(unpackagerRecipes);
+
+ }
+ }
+}