aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtnhlanth/loader
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gtnhlanth/loader')
-rw-r--r--src/main/java/gtnhlanth/loader/BotRecipes.java262
-rw-r--r--src/main/java/gtnhlanth/loader/MTELoader.java4
-rw-r--r--src/main/java/gtnhlanth/loader/RecipeLoader.java4503
-rw-r--r--src/main/java/gtnhlanth/loader/ZPMRubberChanges.java408
4 files changed, 5177 insertions, 0 deletions
diff --git a/src/main/java/gtnhlanth/loader/BotRecipes.java b/src/main/java/gtnhlanth/loader/BotRecipes.java
new file mode 100644
index 0000000000..fd0d4c4df7
--- /dev/null
+++ b/src/main/java/gtnhlanth/loader/BotRecipes.java
@@ -0,0 +1,262 @@
+package gtnhlanth.loader;
+
+import static gregtech.api.enums.OrePrefixes.*;
+import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes;
+import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes;
+import static gregtech.api.recipe.RecipeMaps.chemicalReactorRecipes;
+import static gregtech.api.recipe.RecipeMaps.crackingRecipes;
+import static gregtech.api.recipe.RecipeMaps.distilleryRecipes;
+import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes;
+import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes;
+import static gregtech.api.util.GTRecipeBuilder.MINUTES;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeBuilder.TICKS;
+import static gregtech.api.util.GTRecipeConstants.COIL_HEAT;
+import static gregtech.api.util.GTRecipeConstants.UniversalChemical;
+import static gtnhlanth.common.register.BotWerkstoffMaterialPool.*;
+
+import java.util.HashSet;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
+
+import bartworks.system.material.WerkstoffLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTOreDictUnificator;
+import gregtech.api.util.GTRecipe;
+import gregtech.api.util.GTUtility;
+import gtnhlanth.common.register.BotWerkstoffMaterialPool;
+import ic2.core.Ic2Items;
+
+/*
+ * Originally authored by botn365 under the MIT License. See BotdustriesLICENSE
+ */
+
+public class BotRecipes {
+
+ public static void addGTRecipe() {
+ ItemStack C1 = GTUtility.getIntegratedCircuit(1);
+ ItemStack C2 = GTUtility.getIntegratedCircuit(2);
+ ItemStack C24 = GTUtility.getIntegratedCircuit(24);
+
+ // CaCO3 + 2HCl = H2O + CO2 + CaCl2
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(1))
+ .itemOutputs(Materials.CarbonDioxide.getCells(1), WerkstoffLoader.CalciumChloride.get(dust, 3))
+ .fluidInputs(Materials.HydrochloricAcid.getFluid(2000))
+ .fluidOutputs(Materials.Water.getFluid(1000))
+ .duration(4 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(UniversalChemical);
+
+ // tungsten chain
+ FluidStack sodiumTungsten = SodiumTungstate.getFluidOrGas(1000);
+ ItemStack scheelite = Materials.Scheelite.getDust(6);
+
+ // Li2WO4 + 2Na = Na2WO4 + 2Li
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Tungstate.getDust(7), Materials.Sodium.getDust(2))
+ .itemOutputs(Materials.Lithium.getDust(2))
+ .fluidInputs(Materials.Water.getFluid(4000))
+ .fluidOutputs(sodiumTungsten)
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(autoclaveRecipes);
+
+ // MnWO4 + 2Na = Na2WO4 + Mn
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.Huebnerit.get(dust, 6), Materials.Sodium.getDust(2))
+ .itemOutputs(Materials.Manganese.getDust(1))
+ .fluidInputs(Materials.Water.getFluid(4000))
+ .fluidOutputs(sodiumTungsten)
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(autoclaveRecipes);
+
+ // FeWO4 + 2Na = Na2WO4 + Fe
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.Ferberite.get(dust, 6), Materials.Sodium.getDust(2))
+ .itemOutputs(Materials.Iron.getDust(1))
+ .fluidInputs(Materials.Water.getFluid(4000))
+ .fluidOutputs(sodiumTungsten)
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(autoclaveRecipes);
+
+ // CaCl2 + Na2WO4 = 2NaCl + CaWO4
+ ItemStack Ca2Cl = WerkstoffLoader.CalciumChloride.get(dust, 3);
+ GTValues.RA.stdBuilder()
+ .itemInputs(Ca2Cl)
+ .itemOutputs(scheelite, Materials.Salt.getDust(4))
+ .fluidInputs(sodiumTungsten)
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ ItemStack H2WO4 = TungsticAcid.get(dust, 7);
+ // CaWO4 + 2HCl = H2WO4 + CaCl2
+ GTValues.RA.stdBuilder()
+ .itemInputs(scheelite)
+ .itemOutputs(H2WO4, Ca2Cl)
+ .fluidInputs(Materials.HydrochloricAcid.getFluid(2000))
+ .duration(2 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(UniversalChemical);
+
+ ItemStack WO3 = TungstenTrioxide.get(dust, 4);
+ // H2WO4 = WO3 + H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(H2WO4)
+ .itemOutputs(WO3)
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .metadata(COIL_HEAT, 1200)
+ .addTo(blastFurnaceRecipes);
+
+ // WO3 + 6H = W + 3H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(WO3, C2)
+ .itemOutputs(Materials.Tungsten.getDust(1))
+ .fluidInputs(Materials.Hydrogen.getGas(6000))
+ .fluidOutputs(GTModHandler.getSteam(3000))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .metadata(COIL_HEAT, 1000)
+ .addTo(blastFurnaceRecipes);
+
+ WO3.stackSize = 8;
+ // 2WO3 + 3C = 2W + 3CO2
+ GTValues.RA.stdBuilder()
+ .itemInputs(WO3, Materials.Carbon.getDust(3))
+ .itemOutputs(GTOreDictUnificator.get(ingotHot, Materials.Tungsten, 2L))
+ .fluidOutputs(Materials.CarbonDioxide.getGas(3000))
+ .duration(6 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .metadata(COIL_HEAT, 3000)
+ .addTo(blastFurnaceRecipes);
+
+ // rocket fuels
+ // LMP103S
+ // 2Cl + CO = COCl2
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.CarbonMonoxide.getCells(1), GTUtility.getIntegratedCircuit(12))
+ .itemOutputs(Phosgene.get(cell, 1))
+ .fluidInputs(Materials.Chlorine.getGas(2000))
+ .duration(2 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(chemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Chlorine.getCells(2), GTUtility.getIntegratedCircuit(12))
+ .itemOutputs(Phosgene.get(cell, 1), Materials.Empty.getCells(1))
+ .fluidInputs(Materials.CarbonMonoxide.getGas(1000))
+ .duration(2 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(chemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.CarbonMonoxide.getCells(1), Materials.Chlorine.getCells(2))
+ .itemOutputs(Phosgene.get(cell, 1), Materials.Empty.getCells(2))
+ .duration(2 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(chemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Chlorine.getCells(2), GTUtility.getIntegratedCircuit(2))
+ .itemOutputs(Materials.Empty.getCells(2))
+ .fluidInputs(Materials.CarbonMonoxide.getGas(1000))
+ .fluidOutputs(BotWerkstoffMaterialPool.Phosgene.getFluidOrGas(1000))
+ .duration(2 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ // H3PO4 = P + H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(C2)
+ .itemOutputs(Materials.Phosphorus.getDust(1))
+ .fluidInputs(Materials.PhosphoricAcid.getFluid(1000))
+ .fluidOutputs(Materials.Water.getFluid(500))
+ .eut(TierEU.RECIPE_HV)
+ .duration(1 * SECONDS)
+ .addTo(distilleryRecipes);
+
+ ItemStack cells = Ic2Items.cell.copy();
+ cells.stackSize = 1;
+ // NH4Cl = HCl + NH3
+ GTValues.RA.stdBuilder()
+ .itemInputs(cells)
+ .itemOutputs(Materials.Ammonia.getCells(1))
+ .fluidInputs(WerkstoffLoader.AmmoniumChloride.getFluidOrGas(1000))
+ .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000))
+ .eut(TierEU.RECIPE_MV)
+ .duration(2 * SECONDS + 10 * TICKS)
+ .addTo(distilleryRecipes);
+
+ // N2H4O3 + NaOH = NaNO3 + NH3 + H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(AmmoniumNitrate.get(dust, 9), Materials.SodiumHydroxide.getDust(3))
+ .itemOutputs(WerkstoffLoader.SodiumNitrate.get(dust, 5))
+ .fluidOutputs(Materials.Ammonia.getGas(1000))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(chemicalReactorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(AmmoniumNitrate.get(dust, 9), Materials.SodiumHydroxide.getDust(3), C2)
+ .itemOutputs(WerkstoffLoader.SodiumNitrate.get(dust, 5))
+ .fluidOutputs(Materials.Ammonia.getGas(1000), Materials.Water.getFluid(1000))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // N2H4O3 + NaOH + H =H2SO4= NH3 + HNO3 + Na + H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(C24, AmmoniumNitrate.get(dust, 9), Materials.SodiumHydroxide.getDust(3))
+ .itemOutputs(Materials.Sodium.getDust(1))
+ .fluidInputs(Materials.SulfuricAcid.getFluid(1000), Materials.Hydrogen.getGas(1000))
+ .fluidOutputs(
+ Materials.Ammonia.getGas(1000),
+ Materials.NitricAcid.getFluid(1000),
+ Materials.DilutedSulfuricAcid.getFluid(1000))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // 2HNO3 + C3H8 = 2CH3NO2 + 2H2O + C
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(2))
+ .fluidInputs(Materials.Propane.getGas(1000), Materials.NitricAcid.getFluid(2000))
+ .fluidOutputs(Nitromethane.getFluidOrGas(2000))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(crackingRecipes);
+ }
+
+ public static void removeRecipes() {
+ BotRecipes.removeTungstenElectro();
+ }
+
+ public static void removeTungstenElectro() {
+ HashSet<GTRecipe> toDel = new HashSet<>();
+ ItemStack[] toRemove = { Materials.Scheelite.getDust(1), Materials.Tungstate.getDust(1),
+ WerkstoffLoader.Ferberite.get(dust, 1), WerkstoffLoader.Huebnerit.get(dust, 1) };
+ for (GTRecipe tRecipe : electrolyzerRecipes.getAllRecipes()) {
+ if (tRecipe.mFakeRecipe) continue;
+ for (int i = 0; i < tRecipe.mInputs.length; i++) {
+ ItemStack tItem = tRecipe.mInputs[i];
+ if (item == null || !GTUtility.isStackValid(tItem)) continue;
+ for (ItemStack tStack : toRemove) {
+ if (GTUtility.areStacksEqual(tItem, tStack)) {
+ toDel.add(tRecipe);
+ continue;
+ }
+ }
+ }
+ }
+ electrolyzerRecipes.getBackend()
+ .removeRecipes(toDel);
+ electrolyzerRecipes.getBackend()
+ .reInit();
+ }
+}
diff --git a/src/main/java/gtnhlanth/loader/MTELoader.java b/src/main/java/gtnhlanth/loader/MTELoader.java
new file mode 100644
index 0000000000..9a2a4e944d
--- /dev/null
+++ b/src/main/java/gtnhlanth/loader/MTELoader.java
@@ -0,0 +1,4 @@
+package gtnhlanth.loader;
+
+public class MTELoader {
+}
diff --git a/src/main/java/gtnhlanth/loader/RecipeLoader.java b/src/main/java/gtnhlanth/loader/RecipeLoader.java
new file mode 100644
index 0000000000..534c4ca2f8
--- /dev/null
+++ b/src/main/java/gtnhlanth/loader/RecipeLoader.java
@@ -0,0 +1,4503 @@
+package gtnhlanth.loader;
+
+import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
+import static gregtech.api.enums.Mods.PamsHarvestCraft;
+import static gregtech.api.enums.OrePrefixes.blockCasingAdvanced;
+import static gregtech.api.recipe.RecipeMaps.assemblerRecipes;
+import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes;
+import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes;
+import static gregtech.api.recipe.RecipeMaps.centrifugeNonCellRecipes;
+import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes;
+import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes;
+import static gregtech.api.recipe.RecipeMaps.chemicalReactorRecipes;
+import static gregtech.api.recipe.RecipeMaps.crackingRecipes;
+import static gregtech.api.recipe.RecipeMaps.distillationTowerRecipes;
+import static gregtech.api.recipe.RecipeMaps.electroMagneticSeparatorRecipes;
+import static gregtech.api.recipe.RecipeMaps.electrolyzerNonCellRecipes;
+import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes;
+import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes;
+import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes;
+import static gregtech.api.recipe.RecipeMaps.hammerRecipes;
+import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes;
+import static gregtech.api.recipe.RecipeMaps.maceratorRecipes;
+import static gregtech.api.recipe.RecipeMaps.mixerNonCellRecipes;
+import static gregtech.api.recipe.RecipeMaps.mixerRecipes;
+import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes;
+import static gregtech.api.recipe.RecipeMaps.oreWasherRecipes;
+import static gregtech.api.recipe.RecipeMaps.sifterRecipes;
+import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes;
+import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes;
+import static gregtech.api.util.GTRecipeBuilder.MINUTES;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeBuilder.TICKS;
+import static gregtech.api.util.GTRecipeConstants.AssemblyLine;
+import static gregtech.api.util.GTRecipeConstants.COIL_HEAT;
+import static gregtech.api.util.GTRecipeConstants.DISSOLUTION_TANK_RATIO;
+import static gregtech.api.util.GTRecipeConstants.UniversalChemical;
+import static gregtech.api.util.GTRecipeConstants.WaferEngravingRecipes;
+import static gregtech.common.items.MetaGeneratedItem01.registerCauldronCleaningFor;
+import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes;
+import static gtPlusPlus.api.recipe.GTPPRecipeMaps.simpleWasherRecipes;
+import static gtPlusPlus.api.recipe.GTPPRecipeMaps.vacuumFurnaceRecipes;
+import static gtnhlanth.api.recipe.LanthanidesRecipeMaps.digesterRecipes;
+import static gtnhlanth.api.recipe.LanthanidesRecipeMaps.dissolutionTankRecipes;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.CeriumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.CeriumDioxide;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.CeriumDopedLutetiumAluminiumGarnet;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.CeriumDopedLutetiumAluminiumOxygenBlend;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.CeriumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.CeriumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ChlorinatedRareEarthConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ChlorinatedRareEarthDilutedSolution;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ChlorinatedRareEarthEnrichedSolution;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.DephosphatedSamariumConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.DilutedSamariumRareEarthSolution;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.DysprosiumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.DysprosiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.DysprosiumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ErbiumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ErbiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ErbiumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.EuropiumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.EuropiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.EuropiumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledCeriumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledDysprosiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledErbiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledEuropiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledGadoliniumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledHolmiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledLanthanumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledLutetiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledNeodymiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledPraseodymiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledPromethiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledSamariumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledTerbiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledThuliumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.FilledYtterbiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.GadoliniumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.GadoliniumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.GadoliniumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.Gangue;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.HolmiumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.HolmiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.HolmiumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ImpureLanthanumChloride;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.LanthaniumChloride;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.LanthanumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.LanthanumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.LanthanumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.LutetiumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.LutetiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.LutetiumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.MuddySamariumRareEarthSolution;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.NeodymicRareEarthConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.NeodymiumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.NeodymiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.NeodymiumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.PraseodymiumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.PraseodymiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.PraseodymiumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.PromethiumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.PromethiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.PromethiumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.RarestEarthResidue;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.SamariumChloride;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.SamariumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.SamariumChlorideSodiumChlorideBlend;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.SamariumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.SamariumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.SamariumOxalate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.SamariumOxide;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.SamariumRareEarthMud;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.TerbiumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.TerbiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.TerbiumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ThoriumPhosphateConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ThuliumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ThuliumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.ThuliumOreConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.YtterbiumChlorideConcentrate;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.YtterbiumExtractingNanoResin;
+import static gtnhlanth.common.register.WerkstoffMaterialPool.YtterbiumOreConcentrate;
+
+import java.util.HashSet;
+
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.crafting.CraftingManager;
+import net.minecraft.item.crafting.IRecipe;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+import bartworks.system.material.BWGTMaterialReference;
+import bartworks.system.material.WerkstoffLoader;
+import bartworks.system.material.gtenhancement.PlatinumSludgeOverHaul;
+import cpw.mods.fml.common.registry.GameRegistry;
+import goodgenerator.items.GGMaterial;
+import gregtech.api.enums.Dyes;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.interfaces.IRecipeMutableAccess;
+import gregtech.api.util.GTLog;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTOreDictUnificator;
+import gregtech.api.util.GTRecipe;
+import gregtech.api.util.GTRecipeBuilder;
+import gregtech.api.util.GTRecipeConstants;
+import gregtech.api.util.GTUtility;
+import gtnhlanth.Tags;
+import gtnhlanth.common.item.MaskList;
+import gtnhlanth.common.register.BotWerkstoffMaterialPool;
+import gtnhlanth.common.register.LanthItemList;
+import gtnhlanth.common.register.WerkstoffMaterialPool;
+import ic2.core.Ic2Items;
+
+public class RecipeLoader {
+
+ public static void loadAccelerator() {
+
+ /* Actual Beamline Multiblocks */
+
+ // SC
+ GTValues.RA.stdBuilder()
+ .fluidInputs(Materials.SolderingAlloy.getMolten(288))
+ .itemInputs(
+ ItemList.Hull_LuV.get(1),
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 8),
+ GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 4),
+ ItemList.Conveyor_Module_LuV.get(4),
+ GTUtility.copyAmount(2, LanthItemList.BEAMLINE_PIPE),
+ GTOreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 2),
+ GTUtility.getIntegratedCircuit(16)
+
+ )
+ .itemOutputs(LanthItemList.SOURCE_CHAMBER)
+ .duration(30 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(assemblerRecipes);
+
+ // LINAC
+ GTValues.RA.stdBuilder()
+ .fluidInputs(Materials.SolderingAlloy.getMolten(288))
+ .itemInputs(
+ ItemList.Hull_LuV.get(1),
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 8),
+ ItemList.Casing_Coil_Superconductor.get(2),
+ GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 8),
+ ItemList.Electric_Pump_LuV.get(2),
+ GTUtility.copyAmount(2, LanthItemList.BEAMLINE_PIPE),
+ GTOreDictUnificator.get(OrePrefixes.cableGt08, Materials.VanadiumGallium, 2),
+ GTUtility.getIntegratedCircuit(16)
+
+ )
+ .itemOutputs(LanthItemList.LINAC)
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(assemblerRecipes);
+
+ // TC
+ GTValues.RA.stdBuilder()
+ .fluidInputs(Materials.SolderingAlloy.getMolten(288))
+ .itemInputs(
+ ItemList.Hull_LuV.get(1),
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 8),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Lead, 4),
+ GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 4),
+ GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UV, 2),
+ GTUtility.copyAmount(2, LanthItemList.BEAMLINE_PIPE),
+ GTOreDictUnificator.get(OrePrefixes.cableGt02, Materials.VanadiumGallium, 1),
+ GTUtility.getIntegratedCircuit(16)
+
+ )
+ .itemOutputs(LanthItemList.TARGET_CHAMBER)
+ .duration(30 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(assemblerRecipes);
+
+ // Synchrotron
+ GTValues.RA.stdBuilder()
+ .fluidInputs(Materials.SolderingAlloy.getMolten(6000))
+ .itemInputs(
+ ItemList.Hull_LuV.get(1),
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 8),
+ ItemList.Casing_Coil_Superconductor.get(12),
+ GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 8),
+ GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UV, 8),
+ GTUtility.copyAmount(8, LanthItemList.BEAMLINE_PIPE),
+ GTOreDictUnificator.get(OrePrefixes.cableGt08, Materials.NiobiumTitanium, 8),
+ GTUtility.getIntegratedCircuit(16))
+ .itemOutputs(LanthItemList.SYNCHROTRON)
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(assemblerRecipes);
+
+ /*
+ * //Permalloy GT_Values.RA.addMixerRecipe( GT_Utility.getIntegratedCircuit(4), Materials.Nickel.getDust(4),
+ * Materials.Iron.getDust(1), Materials.Molybdenum.getDust(1), null, null,
+ * WerkstoffMaterialPool.Permalloy.get(OrePrefixes.dust, 6), 1920, 200 );
+ */
+ // Mu-metal
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(2),
+ WerkstoffMaterialPool.Permalloy.get(OrePrefixes.dust, 9),
+ Materials.Copper.getDust(1),
+ Materials.Chrome.getDust(1))
+ .itemOutputs(WerkstoffMaterialPool.MuMetal.get(OrePrefixes.ingot, 11))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .specialValue(4500)
+ .addTo(blastFurnaceRecipes);
+
+ // Shielded Accelerator Casing -- Maybe assline recipe
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Casing_RadiationProof.get(1L),
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 6),
+ GTUtility.getIntegratedCircuit(6))
+ .fluidInputs(Materials.SolderingAlloy.getMolten(144))
+ .itemOutputs(new ItemStack(LanthItemList.SHIELDED_ACCELERATOR_CASING, 1))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(assemblerRecipes);
+
+ // Accelerator Electrode Casing
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ BWGTMaterialReference.Silver.get(blockCasingAdvanced, 1),
+ GTOreDictUnificator.get(OrePrefixes.wireGt02, Materials.Silver, 12),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Gold, 6),
+ GTUtility.getIntegratedCircuit(6))
+ .fluidInputs(Materials.SolderingAlloy.getMolten(288))
+ .itemOutputs(new ItemStack(LanthItemList.ELECTRODE_CASING, 1))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(assemblerRecipes);
+
+ ItemStack insulator = GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MicaInsulatorSheet", 1);
+
+ // Coolant Delivery Casing
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Aluminium, 1),
+ Materials.Copper.getPlates(6),
+ GTOreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Naquadah, 2),
+ ItemList.Electric_Pump_LuV.get(3L),
+ new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 1),
+ new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 1),
+ new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 1),
+ GTUtility.copyAmount(2, insulator),
+ GTUtility.copyAmount(2, insulator),
+ GTUtility.copyAmount(2, insulator),
+ GTOreDictUnificator.get(OrePrefixes.wireGt01, Materials.Tungsten, 1))
+ .fluidInputs(Materials.SolderingAlloy.getMolten(288), Materials.Lubricant.getFluid(1152))
+ .itemOutputs(new ItemStack(LanthItemList.COOLANT_DELIVERY_CASING))
+ .metadata(GTRecipeConstants.RESEARCH_ITEM, ItemList.Casing_Pipe_TungstenSteel.get(1L))
+ .metadata(GTRecipeConstants.RESEARCH_TIME, 72000)
+ .duration(50 * SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(AssemblyLine);
+
+ // T1 Antenna Casing
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ Materials.SolderingAlloy.getMolten(6000),
+ Materials.Gold.getMolten(4000),
+ WerkstoffLoader.Xenon.getFluidOrGas(2000))
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Tungsten, 1),
+ Materials.Copper.getPlates(4),
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plate, 5),
+ GTOreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorLuV, 4),
+ new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 4 },
+ ItemList.Emitter_LuV.get(6),
+ GTOreDictUnificator.get(OrePrefixes.wireFine, Materials.Gold, 32),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Electrum, 6))
+ .itemOutputs(new ItemStack(LanthItemList.ANTENNA_CASING_T1))
+
+ .metadata(GTRecipeConstants.RESEARCH_ITEM, Materials.Niobium.getBlocks(1))
+ .metadata(GTRecipeConstants.RESEARCH_TIME, 30 * GTRecipeBuilder.MINUTES)
+
+ .duration(30 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(AssemblyLine);
+
+ // T2 Antenna Casing
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ Materials.SolderingAlloy.getMolten(12000),
+ Materials.Gold.getMolten(6000),
+ WerkstoffLoader.Xenon.getFluidOrGas(2000))
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenCarbide, 1),
+ Materials.Copper.getPlates(4),
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plate, 5),
+ GTOreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorZPM, 4),
+ new Object[] { OrePrefixes.circuit.get(Materials.UV), 4 },
+ ItemList.Emitter_ZPM.get(6),
+ GTOreDictUnificator.get(OrePrefixes.wireFine, Materials.Gold, 64),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Electrum, 6))
+ .itemOutputs(new ItemStack(LanthItemList.ANTENNA_CASING_T2))
+ .metadata(GTRecipeConstants.RESEARCH_ITEM, new ItemStack(LanthItemList.ANTENNA_CASING_T1))
+ .metadata(GTRecipeConstants.RESEARCH_TIME, 40 * GTRecipeBuilder.MINUTES)
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(AssemblyLine);
+
+ // Niobium Cavity Casing
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Niobium, 1),
+ Materials.Niobium.getPlates(6))
+ .fluidInputs(Materials.Helium.getGas(2000))
+ .itemOutputs(new ItemStack(LanthItemList.NIOBIUM_CAVITY_CASING, 1))
+ .duration(12 * GTRecipeBuilder.SECONDS)
+ .eut(7680)
+ .addTo(assemblerRecipes);
+
+ // Focus Manipulator
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ Materials.SolderingAlloy.getMolten(8000),
+ Materials.Gold.getMolten(2000),
+ Materials.Argon.getGas(1000))
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Aluminium, 1),
+
+ new Object[] { OrePrefixes.circuit.get(Materials.IV), 4 },
+ ItemList.Robot_Arm_LuV.get(2),
+ ItemList.Robot_Arm_LuV.get(2),
+ ItemList.Conveyor_Module_LuV.get(2),
+ GTOreDictUnificator.get(OrePrefixes.wireFine, Materials.Gold, 16),
+ GTOreDictUnificator.get(OrePrefixes.wireFine, Materials.Gold, 16),
+ GTOreDictUnificator.get(OrePrefixes.wireGt01, Materials.Tungsten, 2))
+ .itemOutputs(new ItemStack(LanthItemList.FOCUS_MANIPULATION_CASING))
+ .metadata(GTRecipeConstants.RESEARCH_ITEM, new ItemStack(LanthItemList.maskMap.get(MaskList.BLANK1)))
+ .metadata(GTRecipeConstants.RESEARCH_TIME, 20 * GTRecipeBuilder.MINUTES)
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(AssemblyLine);
+
+ // Target Holder
+ GameRegistry.addShapedRecipe(
+ new ItemStack(LanthItemList.TARGET_HOLDER),
+ new Object[] { "MCM", "MHM", "MCM", 'M', WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 1), 'H',
+ ItemList.Hull_LuV.get(1), 'C', ItemList.Conveyor_Module_LuV.get(1) });
+
+ GameRegistry.addShapedRecipe(
+
+ new ItemStack(LanthItemList.FOCUS_HOLDER),
+ new Object[] { "MCM", "R R", "MHM", 'M', WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 1), 'C',
+ ItemList.Conveyor_Module_LuV.get(1), 'R', ItemList.Robot_Arm_LuV.get(1), 'H',
+ ItemList.Hull_LuV.get(1) });
+
+ // Focus Input Bus
+ GameRegistry.addShapedRecipe(
+ LanthItemList.BEAMLINE_FOCUS_INPUT_BUS,
+ "MCM",
+ "McM",
+ "RCR",
+ 'M',
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 1),
+ 'C',
+ ItemList.Conveyor_Module_HV.get(1),
+ 'R',
+ ItemList.Robot_Arm_HV.get(1),
+ 'c',
+ new ItemStack(Blocks.chest, 1, 32767));
+
+ // Target Receptacle, same thing as Focus Manipulator basically
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ Materials.SolderingAlloy.getMolten(8000),
+ Materials.Gold.getMolten(2000),
+ Materials.Argon.getGas(1000))
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Aluminium, 1),
+ new Object[] { OrePrefixes.circuit.get(Materials.IV), 4 },
+ ItemList.Robot_Arm_LuV.get(2),
+ ItemList.Robot_Arm_LuV.get(2),
+ GTOreDictUnificator.get(OrePrefixes.wireFine, Materials.Gold, 16),
+ GTOreDictUnificator.get(OrePrefixes.wireGt01, Materials.Tungsten, 2))
+ .itemOutputs(new ItemStack(LanthItemList.TARGET_RECEPTACLE_CASING))
+ .metadata(GTRecipeConstants.RESEARCH_ITEM, ItemList.Circuit_Silicon_Wafer.get(1))
+ .metadata(GTRecipeConstants.RESEARCH_TIME, 20 * GTRecipeBuilder.MINUTES)
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(AssemblyLine);
+
+ // Capillary Exchange
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 8),
+ GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.Copper, 2),
+ Materials.Titanium.getPlates(6),
+ GTUtility.copyAmount(4, insulator),
+ ItemList.Electric_Pump_LuV.get(1),
+ Materials.Silver.getDust(2))
+ .fluidInputs(Materials.Silicone.getMolten(288L))
+ .itemOutputs(new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 1))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(assemblerRecipes);
+
+ // Mu-metal lattice
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.wireFine, 12),
+ GTOreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 4))
+ .fluidInputs(Materials.SolderingAlloy.getMolten(144))
+ .itemOutputs(new ItemStack(LanthItemList.MM_LATTICE, 1))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(assemblerRecipes);
+
+ // Shielded Accelerator Glass
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(LanthItemList.MM_LATTICE, 4))
+ .fluidInputs(Materials.BorosilicateGlass.getMolten(144))
+ .itemOutputs(new ItemStack(LanthItemList.SHIELDED_ACCELERATOR_GLASS, 1))
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(fluidSolidifierRecipes);
+
+ // Beamline Pipe
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plate, 4),
+ GTOreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenCarbide, 4),
+ GTOreDictUnificator.get(OrePrefixes.stick, Materials.TungstenCarbide, 8),
+ GTOreDictUnificator.get(OrePrefixes.foil, Materials.Osmiridium, 4),
+ GTUtility.getIntegratedCircuit(7))
+ .fluidInputs(Materials.SolderingAlloy.getMolten(144))
+ .itemOutputs(LanthItemList.BEAMLINE_PIPE)
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(assemblerRecipes);
+
+ // Beamline Input Hatch
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ Materials.SolderingAlloy.getMolten(6000),
+ Materials.Argon.getGas(1000),
+ Materials.Helium.getGas(2000)
+
+ )
+ .itemInputs(
+ ItemList.Hull_LuV.get(1),
+ new Object[] { OrePrefixes.circuit.get(Materials.LuV), 2 },
+ new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 2),
+ ItemList.Electric_Pump_LuV.get(1),
+ LanthItemList.BEAMLINE_PIPE,
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plate, 4)
+
+ )
+ .itemOutputs(LanthItemList.LUV_BEAMLINE_INPUT_HATCH)
+ .metadata(GTRecipeConstants.RESEARCH_ITEM, ItemList.Hatch_Input_LuV.get(1))
+ .metadata(GTRecipeConstants.RESEARCH_TIME, 30 * GTRecipeBuilder.MINUTES)
+ .duration(2 * GTRecipeBuilder.MINUTES)
+ .eut(TierEU.RECIPE_LuV)
+ .addTo(AssemblyLine);
+
+ // Beamline Output Hatch
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ Materials.SolderingAlloy.getMolten(8000),
+ Materials.Argon.getGas(1000),
+ Materials.Helium.getGas(6000)
+
+ )
+ .itemInputs(
+ ItemList.Hull_LuV.get(1),
+ new Object[] { OrePrefixes.circuit.get(Materials.LuV), 6 },
+ new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 4),
+ ItemList.Electric_Pump_LuV.get(2),
+ ItemList.Electric_Motor_LuV.get(4),
+ GTOreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 8),
+ LanthItemList.BEAMLINE_PIPE,
+ WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plate, 8)
+
+ )
+ .itemOutputs(LanthItemList.LUV_BEAMLINE_OUTPUT_HATCH)
+ .metadata(GTRecipeConstants.RESEARCH_ITEM, ItemList.Hatch_Output_LuV.get(1))
+ .metadata(GTRecipeConstants.RESEARCH_TIME, 40 * GTRecipeBuilder.MINUTES)
+ .duration(4 * GTRecipeBuilder.MINUTES)
+ .eut(TierEU.RECIPE_LuV)
+ .addTo(AssemblyLine);
+
+ GTValues.RA.stdBuilder()
+ .fluidInputs(Materials.Chloroform.getFluid(1000), Materials.HydrofluoricAcid.getFluid(3000))
+ .fluidOutputs(
+ WerkstoffMaterialPool.Fluoroform.getFluidOrGas(1000),
+ Materials.HydrochloricAcid.getFluid(3000))
+ .duration(15 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ /*
+ * GT_Values.RA.stdBuilder()
+ * .fluidInputs(Materials.Nitrogen.getPlasma(4000), Materials.Silane.getFluid(2000))
+ * .fluidOutputs(WerkstoffMaterialPool.NitrogenPlasmaSilaneMix.getFluidOrGas(6000))
+ * .duration(20 * GTRecipeBuilder.SECONDS)
+ * .eut(7680)
+ * .addTo(mixerNonCellRecipes);
+ */
+
+ GTValues.RA.stdBuilder()
+ .fluidInputs(Materials.Nitrogen.getPlasma(4000))
+ .itemInputs(Materials.Silane.getCells(2))
+ .fluidOutputs(WerkstoffMaterialPool.NitrogenPlasmaSilaneMix.getFluidOrGas(6000))
+ .duration(20 * GTRecipeBuilder.SECONDS)
+ .eut(7680)
+ .noOptimize()
+ .addTo(mixerRecipes);
+
+ // NB: http://www.smfl.rit.edu/pdf/process/process_nitride_etch_paper.pdf
+ // Reactive Ion Etchant
+ GTValues.RA.stdBuilder()
+ .fluidInputs(WerkstoffMaterialPool.Fluoroform.getFluidOrGas(3000))
+ .itemInputs(Materials.Oxygen.getCells(4))
+ .fluidOutputs(WerkstoffMaterialPool.FluoroformOxygenMix.getFluidOrGas(5000))
+ .itemOutputs(Materials.Empty.getCells(4))
+ .duration(15 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(mixerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Iron.getDust(2), Materials.NetherQuartz.getPlates(1))
+ .itemOutputs(new ItemStack(LanthItemList.IRON_COATED_QUARTZ))
+ .duration(10 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ // Masks
+ // Quartz + Fe2O3 T1
+ // " + Cr T2
+ //
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(LanthItemList.IRON_COATED_QUARTZ))
+ .fluidInputs(Materials.Oxygen.getGas(1000))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.BLANK1)))
+ .outputChances(10000)
+ .requiresCleanRoom()
+ .duration(144 * SECONDS)
+ .eut(TierEU.RECIPE_LuV)
+ .addTo(autoclaveRecipes);
+
+ /*
+ * Unsure what was intended with this recipe?
+ * GT_Values.RA.stdBuilder()
+ * .itemInputs(new ItemStack(LanthItemList.IRON_COATED_QUARTZ), Materials.Chrome.getDust(1))
+ * .fluidInputs(Materials.Oxygen.getGas(1000))
+ * .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.BLANK2)))
+ * .outputChances(10000).requiresCleanRoom().duration(12 * SECONDS).eut(7980).addTo(autoclaveRecipes);
+ */
+
+ // Grow the first silicon
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Glass.getPlates(1))
+ .fluidInputs(Materials.Silane.getGas(4000))
+ .itemOutputs(new ItemStack(LanthItemList.SUBSTRATE_PRECURSOR))
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_LuV)
+ .requiresCleanRoom()
+ .addTo(autoclaveRecipes);
+
+ // Now to deposit nitride
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(LanthItemList.SUBSTRATE_PRECURSOR))
+ .fluidInputs(WerkstoffMaterialPool.NitrogenPlasmaSilaneMix.getFluidOrGas(4000))
+ .fluidOutputs(Materials.Nitrogen.getGas(3000))
+ .itemOutputs(new ItemStack(LanthItemList.MASK_SUBSTRATE), Materials.Empty.getCells(2))
+ .duration(30 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_LuV)
+ .specialValue(3200)
+ .requiresCleanRoom()
+ .addTo(blastFurnaceRecipes);
+
+ /*
+ * GT_Values.RA.stdBuilder().itemInputs(GTOreDictUnificator.get(OrePrefixes.foil, Materials.Silicon, 1))
+ * .fluidInputs(Materials.SiliconTetrachloride.getFluid(3000), Materials.Ammonia.getFluid(4000))
+ * .fluidOutputs(Materials.HydrochloricAcid.getFluid(12000))
+ * .itemOutputs(WerkstoffMaterialPool.SiliconNitride.get(OrePrefixes.plate)) .duration(GTRecipeBuilder.SECONDS
+ * * 30) .eut(TierEU.EV) .addTo(GTRecipe.GTRecipe_Map.sPlasmaArcFurnaceRecipes);
+ */
+
+ for (ItemStack lens : OreDictionary.getOres("craftingLensYellow")) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.copyAmount(0, lens), new ItemStack(LanthItemList.MASK_SUBSTRATE))
+ .itemOutputs(new ItemStack(LanthItemList.MASKED_MASK))
+ .duration(30 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .requiresCleanRoom()
+ .addTo(WaferEngravingRecipes);
+
+ }
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(LanthItemList.MASKED_MASK))
+ .fluidInputs(WerkstoffMaterialPool.FluoroformOxygenMix.getFluidOrGas(4000))
+ .itemOutputs(new ItemStack(LanthItemList.ETCHED_MASK_1))
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_LuV)
+ .requiresCleanRoom()
+ .addTo(autoclaveRecipes);
+
+ // Etch pt. 2 with LiCl
+ GTValues.RA.stdBuilder()
+ .fluidInputs(Materials.Argon.getGas(1000))
+ .itemInputs(
+ new ItemStack(LanthItemList.MASKED_MASK),
+ GGMaterial.lithiumChloride.get(OrePrefixes.dust, 2),
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PotassiumHydroxideDust", 4))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.BLANK2)))
+ .duration(80 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_ZPM)
+ .specialValue(2400)
+ .addTo(blastFurnaceRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(LanthItemList.ETCHED_MASK_1),
+ Materials.Sodium.getDust(1),
+ Materials.Chrome.getPlates(1),
+ Materials.Gold.getPlates(2))
+ .fluidInputs(Materials.Hydrogen.getGas(1000))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.BLANK3)))
+ .duration(2 * GTRecipeBuilder.MINUTES)
+ .eut(TierEU.RECIPE_ZPM)
+ .specialValue(3600)
+ .addTo(blastFurnaceRecipes);
+
+ for (MaskList mask : MaskList.values()) {
+
+ MaskList maskIngredient = mask.getPrecursor();
+ Dyes lensColour = mask.getLensColour();
+
+ if (maskIngredient == null) continue;
+
+ if (mask.getLensColour() == null) { // CR Recipe
+
+ if (mask == MaskList.PPIC) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(LanthItemList.maskMap.get(MaskList.NPIC)),
+ Materials.IndiumGalliumPhosphide.getDust(64))
+ .fluidInputs(Materials.Sunnarium.getMolten(1440L))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.PPIC)))
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(mask.getEngraverEUt())
+ .requiresCleanRoom()
+ .addTo(UniversalChemical); // This is incredibly boring and doesn't make much sense, fix at some
+ // point. Maybe engrave again from precursor?
+
+ } else if (mask == MaskList.HPIC) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(LanthItemList.maskMap.get(MaskList.PIC)),
+ Materials.IndiumGalliumPhosphide.getDust(2))
+ .fluidInputs(Materials.VanadiumGallium.getMolten(288L))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.HPIC)))
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(mask.getEngraverEUt())
+ .requiresCleanRoom()
+ .addTo(UniversalChemical);
+
+ } else if (mask == MaskList.UHPIC) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(LanthItemList.maskMap.get(MaskList.HPIC)),
+ Materials.IndiumGalliumPhosphide.getDust(8))
+ .fluidInputs(Materials.Naquadah.getMolten(576L))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.UHPIC)))
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(mask.getEngraverEUt())
+ .requiresCleanRoom()
+ .addTo(UniversalChemical);
+
+ } else if (mask == MaskList.NCPU) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(LanthItemList.maskMap.get(MaskList.CPU)),
+ GTUtility.copyAmount(16, Ic2Items.carbonFiber))
+ .fluidInputs(Materials.Glowstone.getMolten(576L))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.NCPU)))
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(mask.getEngraverEUt())
+ .requiresCleanRoom()
+ .addTo(UniversalChemical);
+
+ } else if (mask == MaskList.QBIT) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(LanthItemList.maskMap.get(MaskList.NCPU)),
+ Materials.IndiumGalliumPhosphide.getDust(1))
+ .fluidInputs(Materials.Radon.getGas(50L))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.QBIT)))
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(mask.getEngraverEUt())
+ .requiresCleanRoom()
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(LanthItemList.maskMap.get(MaskList.NCPU)), ItemList.QuantumEye.get(2))
+ .fluidInputs(Materials.GalliumArsenide.getMolten(288L))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.QBIT)))
+ .duration(45 * GTRecipeBuilder.SECONDS)
+ .eut(mask.getEngraverEUt())
+ .requiresCleanRoom()
+ .addTo(UniversalChemical);
+
+ }
+
+ continue;
+
+ }
+
+ if (mask == MaskList.NAND) {
+
+ // Very copy-paste heavy, could possibly offload most of this into one case and just assign an
+ // otherIngredient variable or something, wouldn't save much space though. Plus: lazy
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(LanthItemList.maskMap.get(maskIngredient)),
+ GTUtility.copyAmount(0, GTOreDictUnificator.get(OrePrefixes.lens, Materials.EnderPearl, 1)))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(mask)))
+ .requiresCleanRoom()
+ .duration(120 * SECONDS)
+ .eut(mask.getEngraverEUt())
+ .addTo(WaferEngravingRecipes);
+
+ } else if (mask == MaskList.NOR) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(LanthItemList.maskMap.get(maskIngredient)),
+ GTUtility.copyAmount(0, GTOreDictUnificator.get(OrePrefixes.lens, Materials.EnderEye, 1)))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(mask)))
+ .requiresCleanRoom()
+ .duration(120 * SECONDS)
+ .eut(mask.getEngraverEUt())
+ .addTo(WaferEngravingRecipes);
+
+ }
+
+ else {
+
+ for (ItemStack lens : OreDictionary.getOres("craftingLens" + lensColour.mName.replace(" ", ""))) {
+
+ if (lens == null) continue;
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(LanthItemList.maskMap.get(maskIngredient)),
+ GTUtility.copyAmount(0, lens))
+ .itemOutputs(new ItemStack(LanthItemList.maskMap.get(mask)))
+ .requiresCleanRoom()
+ .duration(120 * SECONDS)
+ .eut(mask.getEngraverEUt())
+ .addTo(WaferEngravingRecipes);
+
+ }
+ }
+ }
+
+ }
+
+ public static void loadGeneral() {
+
+ /* ZIRCONIUM */
+ // ZrCl4
+ // ZrO2 + 4HCl = ZrCl4 + 2H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(1), WerkstoffMaterialPool.Zirconia.get(OrePrefixes.dust, 3))
+ .itemOutputs(WerkstoffMaterialPool.ZirconiumTetrachloride.get(OrePrefixes.dust, 5))
+ .fluidInputs(Materials.HydrochloricAcid.getFluid(4000))
+ .fluidOutputs(Materials.Water.getFluid(2000))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(UniversalChemical);
+
+ // ZrCl4-H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(1),
+ WerkstoffMaterialPool.ZirconiumTetrachloride.get(OrePrefixes.dust, 5))
+ .fluidInputs(Materials.Water.getFluid(1000))
+ .fluidOutputs(WerkstoffMaterialPool.ZirconiumTetrachlorideSolution.getFluidOrGas(1000))
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(UniversalChemical);
+
+ // Zr
+ // ZrCl4·H2O + 2Mg = Zr + 2MgCl2
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(2),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2))
+ .itemOutputs(
+ WerkstoffMaterialPool.Zirconium.get(OrePrefixes.ingotHot, 1),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Magnesiumchloride, 6))
+ .fluidInputs(WerkstoffMaterialPool.ZirconiumTetrachlorideSolution.getFluidOrGas(1000))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .metadata(COIL_HEAT, 4500)
+ .addTo(blastFurnaceRecipes);
+
+ /* HAFNIUM */
+ // HfCl4
+ // HfO2 + 4HCl = HfCl4 + 2H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(1), WerkstoffMaterialPool.Hafnia.get(OrePrefixes.dust, 3))
+ .itemOutputs(WerkstoffMaterialPool.HafniumTetrachloride.get(OrePrefixes.dust, 5))
+ .fluidInputs(Materials.HydrochloricAcid.getFluid(4000))
+ .fluidOutputs(Materials.Water.getFluid(2000))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(UniversalChemical);
+
+ // HfCl4-H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(1),
+ WerkstoffMaterialPool.HafniumTetrachloride.get(OrePrefixes.dust, 5))
+ .fluidInputs(Materials.Water.getFluid(1000))
+ .fluidOutputs(WerkstoffMaterialPool.HafniumTetrachlorideSolution.getFluidOrGas(1000))
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(UniversalChemical);
+
+ // LP-Hf
+ // HfCl4 + 2Mg = ??Hf?? + 2MgCl2
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(2),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2))
+ .itemOutputs(
+ WerkstoffMaterialPool.LowPurityHafnium.get(OrePrefixes.dust, 1),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Magnesiumchloride, 6))
+ .fluidInputs(WerkstoffMaterialPool.HafniumTetrachlorideSolution.getFluidOrGas(1000))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .metadata(COIL_HEAT, 2700)
+ .addTo(blastFurnaceRecipes);
+
+ // HfI4
+ // ??Hf?? + 4I = HfI4
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(1),
+ WerkstoffMaterialPool.LowPurityHafnium.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.HafniumIodide.get(OrePrefixes.dust, 5))
+ .fluidInputs(WerkstoffMaterialPool.Iodine.getFluidOrGas(4000))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.LowPurityHafnium.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.Iodine.get(OrePrefixes.dust, 4))
+ .itemOutputs(WerkstoffMaterialPool.HafniumIodide.get(OrePrefixes.dust, 5))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(UniversalChemical);
+
+ // Hf
+ // HfI4 = Hf + 4I
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(12),
+ WerkstoffMaterialPool.HafniumIodide.get(OrePrefixes.dust, 5))
+ .itemOutputs(
+ WerkstoffMaterialPool.Hafnium.get(OrePrefixes.ingotHot, 1),
+ WerkstoffMaterialPool.HafniumRunoff.get(OrePrefixes.dustTiny, 1))
+ .fluidOutputs(WerkstoffMaterialPool.Iodine.getFluidOrGas(4000))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .metadata(COIL_HEAT, 3400)
+ .addTo(blastFurnaceRecipes);
+
+ // Hf * 9
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(13),
+ WerkstoffMaterialPool.HafniumIodide.get(OrePrefixes.dust, 45))
+ .itemOutputs(
+ WerkstoffMaterialPool.Hafnium.get(OrePrefixes.ingotHot, 9),
+ WerkstoffMaterialPool.HafniumRunoff.get(OrePrefixes.dust, 1))
+ .fluidOutputs(WerkstoffMaterialPool.Iodine.getFluidOrGas(36000))
+ .duration(4 * MINUTES + 30 * TICKS)
+ .eut(TierEU.RECIPE_HV)
+ .metadata(COIL_HEAT, 3400)
+ .addTo(blastFurnaceRecipes);
+
+ // Zirconia-Hafnia
+ // ??HfZr?? = HfO2 + ZrO2
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.HafniaZirconiaBlend.get(OrePrefixes.dust, 1))
+ .itemOutputs(
+ WerkstoffMaterialPool.Hafnia.get(OrePrefixes.dust, 3),
+ WerkstoffMaterialPool.Zirconia.get(OrePrefixes.dust, 3))
+ .eut(TierEU.RECIPE_EV)
+ .duration(30 * SECONDS)
+ .addTo(centrifugeRecipes);
+
+ // Ammonium Nitrate
+ // HNO3 + NH3 = NH4NO3
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(12), Materials.NitricAcid.getCells(1))
+ .itemOutputs(Materials.Empty.getCells(1))
+ .fluidInputs(Materials.Ammonia.getGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(1000))
+ .duration(1 * SECONDS + 10 * TICKS)
+ .eut(400)
+ .addTo(chemicalReactorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(12))
+ .fluidInputs(Materials.NitricAcid.getFluid(1000), Materials.Ammonia.getGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(1000))
+ .duration(1 * SECONDS + 10 * TICKS)
+ .eut(400)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // IODINE-START
+ // SeaweedAsh
+ GTModHandler.addSmeltingRecipe(
+ GTModHandler.getModItem(PamsHarvestCraft.ID, "seaweedItem", 1),
+ WerkstoffMaterialPool.SeaweedAsh.get(OrePrefixes.dustSmall, 1));
+
+ // SeaweedConcentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.SeaweedAsh.get(OrePrefixes.dust, 2))
+ .itemOutputs(Materials.Calcite.getDust(1))
+ .fluidInputs(Materials.DilutedSulfuricAcid.getFluid(1200))
+ .fluidOutputs(WerkstoffMaterialPool.SeaweedConcentrate.getFluidOrGas(1200))
+ .duration(30 * SECONDS)
+ .eut(240)
+ .addTo(mixerRecipes);
+ // SeaweedConcentrate * 4
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.SeaweedAsh.get(OrePrefixes.dust, 4))
+ .itemOutputs(Materials.Calcite.getDust(2))
+ .fluidInputs(Materials.DilutedSulfuricAcid.getFluid(2400))
+ .fluidOutputs(WerkstoffMaterialPool.SeaweedConcentrate.getFluidOrGas(2400))
+ .duration(60 * SECONDS)
+ .eut(240)
+ .addTo(mixerRecipes);
+
+ // Iodine
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Benzene.getCells(1))
+ .fluidInputs(WerkstoffMaterialPool.SeaweedConcentrate.getFluidOrGas(2000))
+ .fluidOutputs(WerkstoffMaterialPool.SeaweedByproducts.getFluidOrGas(200))
+ .eut(TierEU.RECIPE_HV)
+ .duration(38 * SECONDS)
+ .addTo(centrifugeRecipes);
+
+ // IODINE-END
+
+ // 2MnO2 + 2KOH + KClO3 = 2KMnO4 + H2O + KCl
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ Materials.Pyrolusite.getDust(6),
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PotassiumHydroxideDust", 6),
+ WerkstoffMaterialPool.PotassiumChlorate.get(OrePrefixes.dust, 5))
+ .itemOutputs(
+ WerkstoffMaterialPool.PotassiumPermanganate.get(OrePrefixes.dust, 12),
+ Materials.RockSalt.getDust(2))
+ .fluidOutputs(Materials.Water.getFluid(1000))
+ .duration(7 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_HV)
+ .metadata(COIL_HEAT, 1200)
+ .addTo(blastFurnaceRecipes);
+
+ // Mn + 2O = MnO2
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Manganese.getDust(1), GTUtility.getIntegratedCircuit(1))
+ .itemOutputs(Materials.Pyrolusite.getDust(3))
+ .fluidInputs(Materials.Oxygen.getGas(2000))
+ .duration(2 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(UniversalChemical);
+
+ // 6KOH + 6Cl = KClO3 + 5KCl + 3H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PotassiumHydroxideDust", 18),
+ GTUtility.getIntegratedCircuit(3))
+ .itemOutputs(
+ Materials.RockSalt.getDust(10),
+ WerkstoffMaterialPool.PotassiumChlorate.get(OrePrefixes.dust, 5))
+ .fluidInputs(Materials.Chlorine.getGas(6000))
+ .fluidOutputs(Materials.Water.getFluid(3000))
+ .duration(2 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(UniversalChemical);
+
+ // Sodium Fluorosilicate
+ // 2NaCl + H2SiF6 = 2HCl + Na2SiF6
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2), Materials.Salt.getDust(4))
+ .itemOutputs(Materials.HydrochloricAcid.getCells(2))
+ .fluidInputs(WerkstoffLoader.HexafluorosilicicAcid.getFluidOrGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.SodiumFluorosilicate.getFluidOrGas(1000))
+ .duration(30 * SECONDS)
+ .eut(450)
+ .addTo(UniversalChemical);
+
+ // La + 6HCl = LaCl3 + 3H
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Lanthanum.getDust(1), GTUtility.getIntegratedCircuit(1))
+ .fluidInputs(Materials.HydrochloricAcid.getFluid(3000))
+ .itemOutputs(WerkstoffMaterialPool.LanthaniumChloride.get(OrePrefixes.dust, 4))
+ .fluidOutputs(Materials.Hydrogen.getGas(3000))
+ .duration(10 * SECONDS)
+ .eut(480)
+ .addTo(UniversalChemical);
+
+ // Lanthanum Oxide
+ GTValues.RA.stdBuilder()
+ .fluidInputs(Materials.Water.getFluid(3000))
+ .fluidOutputs(Materials.HydrochloricAcid.getFluid(6000))
+ .itemInputs(WerkstoffMaterialPool.LanthaniumChloride.get(OrePrefixes.dust, 4))
+ .itemOutputs(WerkstoffMaterialPool.LanthanumOxide.get(OrePrefixes.dust, 1))
+ .duration(10 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ // Boron Trioxide
+ GTValues.RA.stdBuilder()
+ .fluidInputs(FluidRegistry.getFluidStack("boricacid", 2000))
+ .fluidOutputs(new FluidStack(FluidRegistry.WATER, 3000))
+ .itemOutputs(WerkstoffMaterialPool.BoronTrioxide.get(OrePrefixes.dust, 1))
+ .duration(15 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(UniversalChemical);
+
+ // Boron Trichloride
+ GTValues.RA.stdBuilder()
+ .fluidInputs(BotWerkstoffMaterialPool.Phosgene.getFluidOrGas(3000))
+ .fluidOutputs(WerkstoffMaterialPool.BoronTrichloride.getFluidOrGas(2000))
+ .itemInputs(WerkstoffMaterialPool.BoronTrioxide.get(OrePrefixes.dust, 1), Materials.Empty.getCells(3))
+ .itemOutputs(Materials.CarbonMonoxide.getCells(3))
+ .duration(10 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ // Lanthanum Hexaboride
+ GTValues.RA.stdBuilder()
+ .fluidInputs(WerkstoffMaterialPool.BoronTrichloride.getFluidOrGas(8000))
+ .fluidOutputs(FluidRegistry.getFluidStack("boricacid", 1000))
+ .itemInputs(WerkstoffMaterialPool.LanthanumOxide.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.LanthanumHexaboride.get(OrePrefixes.gemFlawless))
+ .duration(60 * GTRecipeBuilder.SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(autoclaveRecipes);
+ }
+
+ public static void loadLanthanideRecipes() {
+ // Methanol
+ // CH4O + CO + 3O =V2O5= H2C2O4 + H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(GGMaterial.vanadiumPentoxide.get(OrePrefixes.dustTiny, 1))
+ .fluidInputs(
+ Materials.Methanol.getFluid(1000),
+ Materials.CarbonMonoxide.getGas(1000),
+ Materials.Oxygen.getGas(3000))
+ .fluidOutputs(GGMaterial.oxalate.getFluidOrGas(1000), Materials.Water.getFluid(1000))
+ .duration(22 * SECONDS + 10 * TICKS)
+ .eut(240)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(9), GGMaterial.vanadiumPentoxide.get(OrePrefixes.dust, 1))
+ .fluidInputs(
+ Materials.Methanol.getFluid(9000),
+ Materials.CarbonMonoxide.getGas(9000),
+ Materials.Oxygen.getGas(27000))
+ .fluidOutputs(GGMaterial.oxalate.getFluidOrGas(9000), Materials.Water.getFluid(9000))
+ .duration(3 * MINUTES + 22 * SECONDS + 10 * TICKS)
+ .eut(240)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Ethanol
+ // C2H6O + 5O =V2O5= H2C2O4 + 2H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(GGMaterial.vanadiumPentoxide.get(OrePrefixes.dustTiny, 1))
+ .itemOutputs()
+ .fluidInputs(Materials.Ethanol.getFluid(1000), Materials.Oxygen.getGas(5000))
+ .fluidOutputs(GGMaterial.oxalate.getFluidOrGas(1000), Materials.Water.getFluid(2000))
+ .duration(22 * SECONDS + 10 * TICKS)
+ .eut(240)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(9), GGMaterial.vanadiumPentoxide.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.Ethanol.getFluid(9000), Materials.Oxygen.getGas(45000))
+ .fluidOutputs(GGMaterial.oxalate.getFluidOrGas(9000), Materials.Water.getFluid(18000))
+ .duration(3 * MINUTES + 22 * SECONDS + 10 * TICKS)
+ .eut(240)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Cerium Oxalate
+ // 2CeCl3 + 3H2C2O4 = 6HCl + Ce2(C2O4)3
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(1),
+ WerkstoffMaterialPool.CeriumChloride.get(OrePrefixes.dust, 8))
+ .itemOutputs(WerkstoffMaterialPool.CeriumOxalate.get(OrePrefixes.dust, 5))
+ .fluidInputs(GGMaterial.oxalate.getFluidOrGas(3000))
+ .fluidOutputs(Materials.HydrochloricAcid.getFluid(6000))
+ .duration(15 * SECONDS)
+ .eut(450)
+ .addTo(UniversalChemical);
+
+ // Cerium
+ // Ce2O3 = 2Ce + 3O
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.CeriumIIIOxide.get(OrePrefixes.dust, 5))
+ .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Cerium, 2))
+ .fluidOutputs(Materials.Oxygen.getGas(3000))
+ .duration(7 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(electrolyzerRecipes);
+
+ // CHAIN BEGIN
+ // MONAZITE
+ GTValues.RA.stdBuilder()
+ .fluidInputs(Materials.NitricAcid.getFluid(700))
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Monazite, 2))
+ .fluidOutputs(WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(400))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .eut(1920)
+ .duration(400)
+ .metadata(COIL_HEAT, 800)
+ .addTo(digesterRecipes);
+
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ Materials.Water.getFluid(10000),
+ WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(1000))
+ .itemInputs(GTUtility.getIntegratedCircuit(1), Materials.Saltpeter.getDust(1))
+ .fluidOutputs(WerkstoffMaterialPool.DilutedRareEarthMonaziteMud.getFluidOrGas(11000))
+ .itemOutputs(
+ WerkstoffMaterialPool.HafniaZirconiaBlend.get(OrePrefixes.dustTiny, 4),
+ WerkstoffLoader.Thorianit.get(OrePrefixes.dust, 1),
+ Materials.Monazite.getDustTiny(2))
+ .eut(TierEU.RECIPE_HV)
+ .duration(900)
+ .metadata(DISSOLUTION_TANK_RATIO, 10)
+ .noOptimize()
+ .addTo(dissolutionTankRecipes);
+
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ Materials.Water.getFluid(90000),
+ WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(9000))
+ .itemInputs(GTUtility.getIntegratedCircuit(9), Materials.Saltpeter.getDust(9))
+ .fluidOutputs(WerkstoffMaterialPool.DilutedRareEarthMonaziteMud.getFluidOrGas(99000))
+ .itemOutputs(
+ WerkstoffMaterialPool.HafniaZirconiaBlend.get(OrePrefixes.dust, 4),
+ WerkstoffLoader.Thorianit.get(OrePrefixes.dust, 9),
+ Materials.Monazite.getDust(2))
+ .eut(TierEU.RECIPE_HV)
+ .duration(8100)
+ .metadata(DISSOLUTION_TANK_RATIO, 10)
+ .noOptimize()
+ .addTo(dissolutionTankRecipes);
+
+ GTValues.RA.stdBuilder()
+ .fluidInputs(WerkstoffMaterialPool.DilutedRareEarthMonaziteMud.getFluidOrGas(1000))
+ .itemOutputs(
+ WerkstoffMaterialPool.MonaziteSulfate.get(OrePrefixes.dust, 1),
+ Materials.SiliconDioxide.getDust(1),
+ Materials.Rutile.getDust(1),
+ WerkstoffLoader.RedZircon.get(OrePrefixes.dust, 1),
+ Materials.Ilmenite.getDust(1))
+ .outputChances(90_00, 75_00, 20_00, 5_00, 20_00)
+ .duration(20 * SECONDS)
+ .eut(240)
+ .noOptimize()
+ .addTo(sifterRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.MonaziteSulfate.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.Water.getFluid(6000))
+ .fluidOutputs(WerkstoffMaterialPool.DilutedMonaziteSulfate.getFluidOrGas(7000))
+ .duration(24 * SECONDS)
+ .eut(400)
+ .addTo(mixerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(13))
+ .itemOutputs(WerkstoffMaterialPool.AcidicMonazitePowder.get(OrePrefixes.dustTiny, 3))
+ .fluidInputs(
+ WerkstoffMaterialPool.DilutedMonaziteSulfate.getFluidOrGas(1000),
+ WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(200))
+ .duration(24 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(14))
+ .itemOutputs(WerkstoffMaterialPool.AcidicMonazitePowder.get(OrePrefixes.dust, 3))
+ .fluidInputs(
+ WerkstoffMaterialPool.DilutedMonaziteSulfate.getFluidOrGas(9000),
+ WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(1800))
+ .duration(3 * MINUTES + 36 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.AcidicMonazitePowder.get(OrePrefixes.dust, 1))
+ .itemOutputs(
+ WerkstoffMaterialPool.MonaziteRareEarthFiltrate.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.ThoriumPhosphateCake.get(OrePrefixes.dust, 1))
+ .outputChances(9000, 7000)
+ .duration(30 * SECONDS)
+ .eut(256)
+ .addTo(sifterRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.ThoriumPhosphateCake.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.ThoriumPhosphateConcentrate.get(OrePrefixes.dust, 1))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .metadata(COIL_HEAT, 1500)
+ .addTo(blastFurnaceRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.ThoriumPhosphateConcentrate.get(OrePrefixes.dust))
+ .itemOutputs(Materials.Thorium.getDust(1), Materials.Phosphate.getDust(1))
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(thermalCentrifugeRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.MonaziteRareEarthFiltrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.NeutralizedMonaziteRareEarthFiltrate.get(OrePrefixes.dust, 1))
+ .fluidInputs(WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(320))
+ .duration(6 * SECONDS)
+ .eut(240)
+ .addTo(chemicalBathRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.NeutralizedMonaziteRareEarthFiltrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(
+ WerkstoffMaterialPool.MonaziteRareEarthHydroxideConcentrate.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.UraniumFiltrate.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.UraniumFiltrate.get(OrePrefixes.dust, 1))
+ .outputChances(9000, 5000, 4000)
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(sifterRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.UraniumFiltrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.NeutralizedUraniumFiltrate.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.HydrofluoricAcid.getFluid(100))
+ .duration(18 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(chemicalBathRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.NeutralizedUraniumFiltrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(
+ Materials.Uranium.getDust(1),
+ Materials.Uranium.getDust(1),
+ Materials.Uranium.getDust(1),
+ Materials.Uranium235.getDust(1),
+ Materials.Uranium235.getDust(1))
+ .outputChances(4500, 4000, 3000, 3000, 2000)
+ .duration(50 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(sifterRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.MonaziteRareEarthHydroxideConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.DriedMonaziteRareEarthConcentrate.get(OrePrefixes.dust, 1))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .metadata(COIL_HEAT, 1200)
+ .addTo(blastFurnaceRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.DriedMonaziteRareEarthConcentrate.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.NitricAcid.getFluid(500))
+ .fluidOutputs(WerkstoffMaterialPool.NitratedRareEarthMonaziteConcentrate.getFluidOrGas(1000))
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Water.getCells(1))
+ .itemOutputs(Materials.Empty.getCells(1))
+ .fluidInputs(WerkstoffMaterialPool.NitratedRareEarthMonaziteConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.NitricLeachedMonaziteMixture.getFluidOrGas(1000))
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(mixerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 3))
+ .fluidInputs(WerkstoffMaterialPool.NitratedRareEarthMonaziteConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.NitricLeachedMonaziteMixture.getFluidOrGas(2000))
+ .duration(11 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(mixerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .fluidInputs(WerkstoffMaterialPool.NitricLeachedMonaziteMixture.getFluidOrGas(1000))
+ .itemOutputs(WerkstoffMaterialPool.CeriumDioxide.get(OrePrefixes.dust, 1))
+ .outputChances(11_11)
+ .fluidOutputs(WerkstoffMaterialPool.NitricMonaziteLeachedConcentrate.getFluidOrGas(1000))
+ .duration(20 * SECONDS)
+ .eut(240)
+ .noOptimize()
+ .addTo(sifterRecipes);
+
+ // BEGIN Cerium
+ // Cerium-rich mixture + 3HCl = CeCl3 + Monazite (to allow cerium processing without bastnazite/monazite)
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 15))
+ .itemOutputs(WerkstoffMaterialPool.CeriumChloride.get(OrePrefixes.dust, 1), Materials.Monazite.getDust(1))
+ .fluidInputs(Materials.HydrochloricAcid.getFluid(750))
+ .fluidOutputs(Materials.Water.getFluid(750))
+ .duration(25 * SECONDS)
+ .eut(450)
+ .addTo(UniversalChemical);
+
+ // CeO2 + 3NH4Cl + H = 3NH3 + CeCl3 + 2H2O
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.CeriumDioxide.get(OrePrefixes.dust, 3),
+ WerkstoffLoader.AmmoniumChloride.get(OrePrefixes.cell, 3))
+ .itemOutputs(WerkstoffMaterialPool.CeriumChloride.get(OrePrefixes.dust, 4), Materials.Ammonia.getCells(3))
+ .fluidInputs(Materials.Hydrogen.getGas(1000))
+ .fluidOutputs(Materials.Water.getGas(2000))
+ .duration(15 * SECONDS)
+ .eut(450)
+ .addTo(UniversalChemical);
+
+ // Ce2(C2O4)3 + 3C = Ce2O3 + 9CO
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.CeriumOxalate.get(OrePrefixes.dust, 5), Materials.Carbon.getDust(3))
+ .itemOutputs(WerkstoffMaterialPool.CeriumIIIOxide.get(OrePrefixes.dust, 5))
+ .fluidOutputs(Materials.CarbonMonoxide.getGas(9000))
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .metadata(COIL_HEAT, 800)
+ .addTo(blastFurnaceRecipes);
+
+ // END Cerium (NMLC)
+
+ GTValues.RA.stdBuilder()
+ .itemOutputs(WerkstoffMaterialPool.CooledMonaziteRareEarthConcentrate.get(OrePrefixes.dust, 1))
+ .fluidInputs(WerkstoffMaterialPool.NitricMonaziteLeachedConcentrate.getFluidOrGas(1000))
+ .duration(5 * SECONDS)
+ .eut(240)
+ .noOptimize()
+ .addTo(vacuumFreezerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.CooledMonaziteRareEarthConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(
+ WerkstoffMaterialPool.MonaziteRarerEarthSediment.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.EuropiumIIIOxide.get(OrePrefixes.dust, 5))
+ .outputChances(9000, 500)
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(electroMagneticSeparatorRecipes);
+
+ // 5Eu2O3 + Eu = 4EuO
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.EuropiumIIIOxide.get(OrePrefixes.dust, 5), Materials.Europium.getDust(1))
+ .itemOutputs(WerkstoffMaterialPool.EuropiumOxide.get(OrePrefixes.dust, 6))
+ .duration(15 * SECONDS)
+ .eut(8400)
+ .addTo(UniversalChemical);
+
+ // 4 EuO = 2 Eu + 2O2
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.EuropiumOxide.get(OrePrefixes.dust, 2))
+ .itemOutputs(Materials.Europium.getDust(1))
+ .fluidOutputs(Materials.Oxygen.getGas(1000L))
+ .duration(15 * SECONDS)
+ .eut(33_000)
+ .addTo(electrolyzerRecipes);
+
+ // EuS = Eu + S
+ // TODO old recipe. for compat only. remove material and recipe half a year later, i.e. after September 2023.
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.EuropiumSulfide.get(OrePrefixes.dust, 2))
+ .itemOutputs(Materials.Europium.getDust(1), Materials.Sulfur.getDust(1))
+ .duration(30 * SECONDS)
+ .eut(33_000)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.MonaziteRarerEarthSediment.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.MonaziteHeterogenousHalogenicRareEarthMixture.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.Chlorine.getGas(1000))
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .metadata(COIL_HEAT, 1200)
+ .addTo(blastFurnaceRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ Materials.Salt.getDust(1),
+ WerkstoffMaterialPool.MonaziteHeterogenousHalogenicRareEarthMixture.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.SaturatedMonaziteRareEarthMixture.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.Acetone.getFluid(1000))
+ .duration(10 * SECONDS)
+ .eut(240)
+ .addTo(mixerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.MonaziteHeterogenousHalogenicRareEarthMixture.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 2))
+ .itemOutputs(WerkstoffMaterialPool.SaturatedMonaziteRareEarthMixture.get(OrePrefixes.dust, 3))
+ .fluidInputs(Materials.Acetone.getFluid(1000))
+ .duration(20 * SECONDS)
+ .eut(240)
+ .addTo(mixerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(4),
+ WerkstoffMaterialPool.SaturatedMonaziteRareEarthMixture.get(OrePrefixes.dust, 8))
+ .itemOutputs(WerkstoffMaterialPool.SamaricResidue.get(OrePrefixes.dust, 6))
+ .fluidOutputs(Materials.Chloromethane.getGas(800))
+ .eut(TierEU.RECIPE_EV)
+ .duration(5 * MINUTES + 15 * SECONDS)
+ .addTo(centrifugeRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.SamaricResidue.get(OrePrefixes.dust, 9))
+ .itemOutputs(Materials.Samarium.getDust(6), Materials.Gadolinium.getDust(3))
+ .outputChances(10000, 10000)
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(sifterRecipes);
+
+ // BASTNASITE (god help me)
+ GTValues.RA.stdBuilder()
+ .fluidInputs(Materials.NitricAcid.getFluid(700))
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Bastnasite, 2))
+ .fluidOutputs(WerkstoffMaterialPool.MuddyRareEarthBastnasiteSolution.getFluidOrGas(400))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .eut(TierEU.RECIPE_EV)
+ .duration(400)
+ .metadata(COIL_HEAT, 800)
+ .addTo(digesterRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(1))
+ .fluidInputs(
+ WerkstoffMaterialPool.MuddyRareEarthBastnasiteSolution.getFluidOrGas(1000),
+ GTModHandler.getSteam(1000))
+ .fluidOutputs(WerkstoffMaterialPool.SteamCrackedBasnasiteSolution.getFluidOrGas(2000))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(crackingRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(6),
+ WerkstoffMaterialPool.SteamCrackedBasnasiteSolution.get(OrePrefixes.cell, 1))
+ .itemOutputs(Materials.Empty.getCells(1))
+ .fluidInputs(WerkstoffMaterialPool.SodiumFluorosilicate.getFluidOrGas(320))
+ .fluidOutputs(WerkstoffMaterialPool.ConditionedBastnasiteMud.getFluidOrGas(1320))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(mixerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ Materials.Water.getFluid(10000),
+ WerkstoffMaterialPool.ConditionedBastnasiteMud.getFluidOrGas(1000))
+ .itemInputs(Materials.Saltpeter.getDust(1))
+ .fluidOutputs(WerkstoffMaterialPool.DiltedRareEarthBastnasiteMud.getFluidOrGas(11000))
+ .itemOutputs(Gangue.get(OrePrefixes.dust, 1))
+ .eut(TierEU.RECIPE_EV)
+ .duration(1000)
+ .metadata(DISSOLUTION_TANK_RATIO, 10)
+ .noOptimize()
+ .addTo(dissolutionTankRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemOutputs(
+ Materials.SiliconDioxide.getDust(1),
+ Materials.Rutile.getDust(1),
+ WerkstoffLoader.RedZircon.get(OrePrefixes.dust, 1),
+ Materials.Ilmenite.getDust(1))
+ .outputChances(90_00, 75_00, 10_00, 5_00)
+ .fluidInputs(WerkstoffMaterialPool.DiltedRareEarthBastnasiteMud.getFluidOrGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.FilteredBastnasiteMud.getFluidOrGas(400))
+ .eut(240)
+ .duration(20 * SECONDS)
+ .noOptimize()
+ .addTo(sifterRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(1))
+ .itemOutputs(WerkstoffMaterialPool.BastnasiteRareEarthOxidePowder.get(OrePrefixes.dust, 1))
+ .fluidInputs(WerkstoffMaterialPool.FilteredBastnasiteMud.getFluidOrGas(1000))
+ .duration(25 * SECONDS)
+ .eut(600)
+ .metadata(COIL_HEAT, 1400)
+ .addTo(blastFurnaceRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.BastnasiteRareEarthOxidePowder.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.LeachedBastnasiteRareEarthOxides.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.HydrochloricAcid.getFluid(500))
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(chemicalBathRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(1),
+ WerkstoffMaterialPool.LeachedBastnasiteRareEarthOxides.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.RoastedRareEarthOxides.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.Oxygen.getGas(1000))
+ .fluidOutputs(Materials.Fluorine.getGas(13))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .metadata(COIL_HEAT, 1200)
+ .addTo(blastFurnaceRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(7),
+ WerkstoffMaterialPool.RoastedRareEarthOxides.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.WetRareEarthOxides.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.Water.getFluid(200))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(mixerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.WetRareEarthOxides.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.CeriumOxidisedRareEarthOxides.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.Fluorine.getGas(4000))
+ .fluidOutputs(Materials.HydrofluoricAcid.getFluid(4000))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.CeriumOxidisedRareEarthOxides.get(OrePrefixes.dust, 1))
+ .itemOutputs(
+ WerkstoffMaterialPool.BastnasiteRarerEarthOxides.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.CeriumDioxide.get(OrePrefixes.dust, 1))
+ .outputChances(100_00, 90_00)
+ .eut(TierEU.RECIPE_HV)
+ .duration(30 * SECONDS)
+ .addTo(centrifugeRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.BastnasiteRarerEarthOxides.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.NitricAcid.getFluid(400))
+ .fluidOutputs(WerkstoffMaterialPool.NitratedBastnasiteRarerEarthOxides.getFluidOrGas(1000))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(mixerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.NitratedBastnasiteRarerEarthOxides.get(OrePrefixes.cell, 1))
+ .itemOutputs(Materials.Empty.getCells(1))
+ .fluidInputs(Materials.Acetone.getFluid(1000))
+ .fluidOutputs(WerkstoffMaterialPool.SaturatedBastnasiteRarerEarthOxides.getFluidOrGas(1000))
+ .duration(35 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemOutputs(
+ WerkstoffMaterialPool.NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.SamaricRareEarthConcentrate.get(OrePrefixes.dust, 1))
+ .outputChances(80_00, 50_00)
+ .fluidInputs(WerkstoffMaterialPool.SaturatedBastnasiteRarerEarthOxides.getFluidOrGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.DilutedAcetone.getFluidOrGas(750))
+ .eut(TierEU.RECIPE_HV)
+ .duration(45 * SECONDS)
+ .addTo(centrifugeRecipes);
+
+ // Nd RE
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 2))
+ .itemOutputs(
+ WerkstoffMaterialPool.LanthaniumChloride.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.NeodymiumOxide.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.HydrochloricAcid.getFluid(2000))
+ .duration(45 * SECONDS)
+ .eut(800)
+ .addTo(UniversalChemical);
+
+ // Sm RE
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.SamaricRareEarthConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.FluorinatedSamaricConcentrate.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.HydrofluoricAcid.getFluid(2000))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.SamaricRareEarthConcentrate.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.FluorinatedSamaricConcentrate.get(OrePrefixes.dust, 2))
+ .fluidInputs(Materials.HydrofluoricAcid.getFluid(2000))
+ .duration(17 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.FluorinatedSamaricConcentrate.get(OrePrefixes.dust, 8),
+ Materials.Calcium.getDust(4))
+ .itemOutputs(
+ Materials.Holmium.getDust(1),
+ WerkstoffMaterialPool.SamariumTerbiumMixture.get(OrePrefixes.dust, 4))
+ .fluidOutputs(WerkstoffMaterialPool.CalciumFluoride.getFluidOrGas(12000))
+ .duration(1 * MINUTES + 20 * TICKS)
+ .eut(TierEU.RECIPE_EV)
+ .metadata(COIL_HEAT, 1200)
+ .addTo(blastFurnaceRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.SamariumTerbiumMixture.get(OrePrefixes.dust, 1),
+ BotWerkstoffMaterialPool.AmmoniumNitrate.get(OrePrefixes.dust, 9))
+ .itemOutputs(WerkstoffMaterialPool.NitratedSamariumTerbiumMixture.get(OrePrefixes.dust, 1))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.NitratedSamariumTerbiumMixture.get(OrePrefixes.dust, 4),
+ Materials.Copper.getDust(1))
+ .itemOutputs(
+ WerkstoffMaterialPool.TerbiumNitrate.get(OrePrefixes.dust, 2),
+ WerkstoffMaterialPool.SamaricResidue.get(OrePrefixes.dust, 2) // Potentially make only Samarium
+ )
+ .duration(2 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 2),
+ Materials.Calcium.getDust(3))
+ .itemOutputs(
+ WerkstoffMaterialPool.DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 1),
+ Materials.TricalciumPhosphate.getDust(5))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 6))
+ .itemOutputs(Materials.Samarium.getDust(1), WerkstoffLoader.Thorianit.get(OrePrefixes.dust, 2))
+ .outputChances(90_00, 80_00)
+ .eut(TierEU.RECIPE_EV)
+ .duration(10 * SECONDS)
+ .addTo(centrifugeRecipes);
+
+ // TODO UV Tier Ion Extracting Method
+
+ // Lanthanum Part
+ // Digester to produce Lanthanum Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Lanthanum, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(LanthanumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(LanthanumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(LanthanumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ LanthanumExtractingNanoResin.getFluidOrGas(1000),
+ LanthanumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledLanthanumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Praseodymium Part
+ // Digester to produce Praseodymium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Praseodymium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(PraseodymiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(PraseodymiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(PraseodymiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ PraseodymiumExtractingNanoResin.getFluidOrGas(1000),
+ PraseodymiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Cerium Part
+ // Digester to produce Cerium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Cerium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(CeriumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(CeriumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(CeriumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(CeriumExtractingNanoResin.getFluidOrGas(1000), CeriumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledCeriumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Neodymium Part
+ // Digester to produce Neodymium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Neodymium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(NeodymiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ NeodymiumExtractingNanoResin.getFluidOrGas(1000),
+ NeodymiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Neodymium Part
+ // Digester to produce Neodymium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Neodymium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(NeodymiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ NeodymiumExtractingNanoResin.getFluidOrGas(1000),
+ NeodymiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Promethium Part
+ // Digester to produce Neodymium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Promethium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(PromethiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ PromethiumExtractingNanoResin.getFluidOrGas(1000),
+ PromethiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledPromethiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Promethium Part
+ // Digester to produce Promethium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Promethium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(PromethiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ PromethiumExtractingNanoResin.getFluidOrGas(1000),
+ PromethiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledPromethiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Samarium Part
+ // Digester to produce Samarium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Samarium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(SamariumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(SamariumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(SamariumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ SamariumExtractingNanoResin.getFluidOrGas(1000),
+ SamariumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledSamariumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Europium Part
+ // Digester to produce Europium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Europium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(EuropiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(EuropiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(EuropiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ EuropiumExtractingNanoResin.getFluidOrGas(1000),
+ EuropiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledEuropiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Gadolinium Part
+ // Digester to produce Gadolinium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Gadolinium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(GadoliniumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(GadoliniumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(GadoliniumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ GadoliniumExtractingNanoResin.getFluidOrGas(1000),
+ GadoliniumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Terbium Part
+ // Digester to produce Terbium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Terbium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(TerbiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(TerbiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(TerbiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(TerbiumExtractingNanoResin.getFluidOrGas(1000), TerbiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledTerbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Dysprosium Part
+ // Digester to produce Dysprosium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Dysprosium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(DysprosiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(DysprosiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(DysprosiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ DysprosiumExtractingNanoResin.getFluidOrGas(1000),
+ DysprosiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Holmium Part
+ // Digester to produce Holmium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Holmium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(HolmiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(HolmiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(HolmiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(HolmiumExtractingNanoResin.getFluidOrGas(1000), HolmiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledHolmiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Erbium Part
+ // Digester to produce Erbium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Erbium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(ErbiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(ErbiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(ErbiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(ErbiumExtractingNanoResin.getFluidOrGas(1000), ErbiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledErbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Thulium Part
+ // Digester to produce Thulium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Thulium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(ThuliumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(ThuliumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(ThuliumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(ThuliumExtractingNanoResin.getFluidOrGas(1000), ThuliumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledThuliumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Ytterbium Part
+ // Digester to produce Ytterbium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Ytterbium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(YtterbiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(YtterbiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(YtterbiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ YtterbiumExtractingNanoResin.getFluidOrGas(1000),
+ YtterbiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Lutetium Part
+ // Digester to produce Lutetium Chloride Concentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Lutetium, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(3))
+ .fluidInputs(Materials.Chlorine.getGas(36000))
+ .fluidOutputs(LutetiumChlorideConcentrate.getFluidOrGas(3000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(LutetiumOreConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(Materials.SiliconDioxide.getDust(1))
+ .fluidInputs(Materials.Chlorine.getGas(12000))
+ .fluidOutputs(LutetiumChlorideConcentrate.getFluidOrGas(1000))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(2 * SECONDS)
+ .addTo(digesterRecipes);
+ // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ LutetiumExtractingNanoResin.getFluidOrGas(1000),
+ LutetiumChlorideConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledLutetiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Ion Extracting Process to produce Rare Earth Element (example Samarium) by Nano Resin
+ // Get Extracting Nano Resin
+
+ // Lanthanum
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Lanthanum.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(LanthanumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Praseodymium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Praseodymium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(PraseodymiumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Cerium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Cerium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(CeriumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Neodymium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Neodymium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(NeodymiumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Promethium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Promethium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(PromethiumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Sm
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Samarium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(SamariumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Europium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Europium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(EuropiumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Gadolinium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Gadolinium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(GadoliniumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Terbium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Terbium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(TerbiumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Dysprosium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Dysprosium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(DysprosiumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Holmium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Holmium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(HolmiumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Erbium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Erbium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(ErbiumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Thulium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Thulium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(ThuliumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Ytterbium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Ytterbium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(YtterbiumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // Lutetium
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0),
+ Materials.Lutetium.getDust(1),
+ Materials.Carbon.getNanite(1))
+ .fluidInputs(GGMaterial.P507.getFluidOrGas(4000))
+ .fluidOutputs(LutetiumExtractingNanoResin.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(10 * SECONDS)
+ .addTo(laserEngraverRecipes);
+
+ // TODO Electrolyzer recycle Nano Resin and produce molten rare earth metal,
+
+ // La
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledLanthanumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ LanthanumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Lanthanum, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Pr
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ PraseodymiumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Praseodymium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Ce
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledCeriumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ CeriumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Cerium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Nd
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ NeodymiumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Neodymium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Po
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledPromethiumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ PromethiumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Promethium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Sm
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledSamariumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ SamariumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Samarium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Eu
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledEuropiumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ EuropiumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Europium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Ga
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ GadoliniumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Gadolinium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Tb
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledTerbiumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ TerbiumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Terbium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Dy
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ DysprosiumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Dysprosium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Ho
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledHolmiumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ HolmiumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Holmium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Er
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledErbiumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ ErbiumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Erbium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Tm
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledThuliumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ ThuliumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Thulium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Yb
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ YtterbiumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Ytterbium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // Lu
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Empty.getCells(2))
+ .fluidInputs(FilledLutetiumExtractingNanoResin.getFluidOrGas(1000))
+ .itemOutputs(
+ LutetiumExtractingNanoResin.get(OrePrefixes.cell, 1),
+ GTOreDictUnificator.get(OrePrefixes.cellMolten, Materials.Lutetium, 1))
+ .fluidOutputs(Materials.Chlorine.getGas(3000))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(electrolyzerRecipes);
+
+ // TODO ChlorinitedRareEarthConcentrate process with every 15 Rare Earth Extracting Nano Resin
+
+ // La
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ LanthanumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledLanthanumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ LanthanumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledLanthanumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ LanthanumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledLanthanumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Pr
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ PraseodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ PraseodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ PraseodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Ce
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ CeriumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledCeriumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ CeriumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledCeriumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ CeriumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledCeriumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Nd
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ NeodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ NeodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ NeodymiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Pm
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ PromethiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledPromethiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ PromethiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledPromethiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ PromethiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledPromethiumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Sm
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ SamariumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledSamariumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ SamariumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledSamariumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ SamariumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledSamariumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Eu
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ EuropiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledEuropiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ EuropiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledEuropiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ EuropiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledEuropiumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Ga
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ GadoliniumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ GadoliniumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ GadoliniumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Tb
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ TerbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledTerbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ TerbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledTerbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ TerbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledTerbiumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Dy
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ DysprosiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ DysprosiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ DysprosiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Ho
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ HolmiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledHolmiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ HolmiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledHolmiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ HolmiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledHolmiumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Er
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ ErbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledErbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ ErbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledErbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ ErbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledErbiumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Tm
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ ThuliumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledThuliumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ ThuliumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledThuliumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ ThuliumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledThuliumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Yb
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ YtterbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ YtterbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ YtterbiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Lu
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ LutetiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthConcentrate.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledLutetiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ LutetiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledLutetiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+ GTValues.RA.stdBuilder()
+ .fluidInputs(
+ LutetiumExtractingNanoResin.getFluidOrGas(1000),
+ ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000))
+ .fluidOutputs(
+ FilledLutetiumExtractingNanoResin.getFluidOrGas(1000),
+ GGMaterial.wasteLiquid.getFluidOrGas(1000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // TODO Samarium Ore Concentrate Dust Processing Line Start
+
+ // 16 SmOreDust + 200L NitricAcid =EV@10s= 800L MuddySamariumRareEarthSolution + 1 ?ThP?ConcentrateDust
+ GTValues.RA.stdBuilder()
+ .itemInputs(SamariumOreConcentrate.get(OrePrefixes.dust, 16))
+ .fluidInputs(Materials.NitricAcid.getFluid(200))
+ .itemOutputs(ThoriumPhosphateConcentrate.get(OrePrefixes.dust, 1))
+ .fluidOutputs(MuddySamariumRareEarthSolution.getFluidOrGas(800))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_EV)
+ .duration(10 * SECONDS)
+ .addTo(digesterRecipes);
+
+ // 1 CrushedSamariumOre = 3 SamariumOreConcentrate in process
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.crushed, Materials.Samarium, 8))
+ .fluidInputs(Materials.NitricAcid.getFluid(300))
+ .itemOutputs(ThoriumPhosphateConcentrate.get(OrePrefixes.dust, 3))
+ .fluidOutputs(MuddySamariumRareEarthSolution.getFluidOrGas(1200))
+ .metadata(COIL_HEAT, 800)
+ .eut(TierEU.RECIPE_EV)
+ .duration(10 * SECONDS)
+ .addTo(digesterRecipes);
+
+ // 1B MuddySmSolution + 1B NitricAcid =EV@10s= 2B SamariumRareEarthMud + 0.8 CeriumDioxide + 0.6
+ // CeriumRichMixture(CeriumOreConcentrate)
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(1))
+ .fluidInputs(Materials.NitricAcid.getFluid(1000), MuddySamariumRareEarthSolution.getFluidOrGas(1000))
+ .itemOutputs(CeriumDioxide.get(OrePrefixes.dust, 1), CeriumOreConcentrate.get(OrePrefixes.dust, 1))
+ .fluidOutputs(SamariumRareEarthMud.getFluidOrGas(2000))
+ .metadata(DISSOLUTION_TANK_RATIO, 1)
+ .outputChances(8000, 6000)
+ .noOptimize()
+ .eut(TierEU.RECIPE_EV)
+ .duration(10 * SECONDS)
+ .addTo(dissolutionTankRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(9))
+ .fluidInputs(Materials.NitricAcid.getFluid(9000), MuddySamariumRareEarthSolution.getFluidOrGas(9000))
+ .itemOutputs(CeriumDioxide.get(OrePrefixes.dust, 9), CeriumOreConcentrate.get(OrePrefixes.dust, 9))
+ .fluidOutputs(SamariumRareEarthMud.getFluidOrGas(18000))
+ .metadata(DISSOLUTION_TANK_RATIO, 1)
+ .outputChances(8000, 6000)
+ .noOptimize()
+ .eut(TierEU.RECIPE_IV)
+ .duration(300)
+ .addTo(dissolutionTankRecipes);
+ // Low Efficiency method in LCR
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(1))
+ .fluidInputs(Materials.NitricAcid.getFluid(1000), MuddySamariumRareEarthSolution.getFluidOrGas(1000))
+ .itemOutputs(CeriumDioxide.get(OrePrefixes.dust, 1))
+ .fluidOutputs(SamariumRareEarthMud.getFluidOrGas(1000))
+ .outputChances(5000)
+ .eut(TierEU.RECIPE_EV)
+ .duration(300)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // 1B SamariumRareEarthMud + 9B water =EV@30s= 10B DilutedSamariumRareEarthSolution
+ // + (90% + 60%) NeodymiumREConcentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(1))
+ .fluidInputs(Materials.Water.getFluid(9000), SamariumRareEarthMud.getFluidOrGas(1000))
+ .itemOutputs(
+ NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 1),
+ NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 1))
+ .fluidOutputs(DilutedSamariumRareEarthSolution.getFluidOrGas(10000))
+ .metadata(DISSOLUTION_TANK_RATIO, 9)
+ .outputChances(9000, 6000)
+ .noOptimize()
+ .eut(TierEU.RECIPE_EV)
+ .duration(600)
+ .addTo(dissolutionTankRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(9))
+ .fluidInputs(Materials.Water.getFluid(81000), SamariumRareEarthMud.getFluidOrGas(9000))
+ .itemOutputs(
+ NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 9),
+ NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 9))
+ .fluidOutputs(DilutedSamariumRareEarthSolution.getFluidOrGas(90000))
+ .metadata(DISSOLUTION_TANK_RATIO, 9)
+ .outputChances(9000, 6000)
+ .noOptimize()
+ .eut(TierEU.RECIPE_IV)
+ .duration(900)
+ .addTo(dissolutionTankRecipes);
+ // Low Efficiency method in LCR
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(1))
+ .fluidInputs(SamariumRareEarthMud.getFluidOrGas(1000), Materials.Water.getFluid(16000))
+ .fluidOutputs(DilutedSamariumRareEarthSolution.getFluidOrGas(8000))
+ .eut(TierEU.RECIPE_EV)
+ .duration(1200)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // 2B DilutedSamariumRareEarthSolution + 3B Oxalate
+ // =EV@10s=
+ // 5 ImpureSamariumOxalate + 50L MuddySamariumRareEarthSolution + 0.1*2 LepersonniteDust
+ // LepersonniteDust -> DephosphatedSamariumConcentrate
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(13))
+ .fluidInputs(DilutedSamariumRareEarthSolution.getFluidOrGas(2000), GGMaterial.oxalate.getFluidOrGas(3000))
+ .itemOutputs(
+ SamariumOxalate.get(OrePrefixes.dust, 5),
+ DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 3))
+ .fluidOutputs(MuddySamariumRareEarthSolution.getFluidOrGas(50))
+ .outputChances(10000, 1000)
+ .eut(TierEU.RECIPE_EV)
+ .duration(10 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // 5 ImpureSamariumOxalate + 6B HCL = 8 ImpureSamariumChloride + 6B CO
+ GTValues.RA.stdBuilder()
+ .itemInputs(SamariumOxalate.get(OrePrefixes.dust, 5))
+ .fluidInputs(Materials.HydrochloricAcid.getFluid(6000))
+ .itemOutputs(SamariumChloride.get(OrePrefixes.dust, 8))
+ .fluidOutputs(Materials.CarbonMonoxide.getGas(6000))
+ .eut(960)
+ .duration(10 * SECONDS)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ /**
+ * ImpureSamariumChloride has 2 method to process 1. In IV-LuV, fix with NcCL then use electrolyzer to process
+ * the mixture, get Samarium dust & Chlorine & Sodium. 2. In ZPM, put molten ImpureSamariumChloride and
+ * LanthanumDust in Distillation Tower to get molten Samarium and impure Lanthanum Chloride.
+ */
+
+ // 2 ImpureSamariumChloride + 1 NaCl =LV@5s= 3 SamariumChlorideSodiumChlorideBlend
+ GTValues.RA.stdBuilder()
+ .itemInputs(SamariumChloride.get(OrePrefixes.dust, 2), Materials.Salt.getDust(1))
+ .itemOutputs(SamariumChlorideSodiumChlorideBlend.get(OrePrefixes.dust, 3))
+ .eut(TierEU.RECIPE_LV)
+ .duration(5 * SECONDS)
+ .addTo(mixerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(SamariumChloride.get(OrePrefixes.dust, 2), Materials.Sodium.getDust(1))
+ .itemOutputs(SamariumChlorideSodiumChlorideBlend.get(OrePrefixes.dust, 3))
+ .eut(TierEU.RECIPE_LV)
+ .duration(5 * SECONDS)
+ .addTo(mixerNonCellRecipes);
+
+ // 6 SamariumChlorideSodiumChlorideBlend =IV@1s= 1 SamariumDust + 1 SodiumDust + 2/9 RarestEarthResidue + 4B
+ // Chlorine
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(1), SamariumChlorideSodiumChlorideBlend.get(OrePrefixes.dust, 6))
+ .itemOutputs(
+ Materials.Samarium.getDust(1),
+ Materials.Sodium.getDust(1),
+ RarestEarthResidue.get(OrePrefixes.dustTiny, 2))
+ .fluidOutputs(Materials.Chlorine.getGas(4000))
+ .eut(TierEU.RECIPE_IV)
+ .duration(1 * SECONDS)
+ .addTo(electrolyzerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(9),
+ SamariumChlorideSodiumChlorideBlend.get(OrePrefixes.dust, 54))
+ .itemOutputs(
+ Materials.Samarium.getDust(9),
+ Materials.Sodium.getDust(9),
+ RarestEarthResidue.get(OrePrefixes.dust, 2))
+ .fluidOutputs(Materials.Chlorine.getGas(36000))
+ .eut(TierEU.RECIPE_LuV)
+ .duration(2 * SECONDS)
+ .addTo(electrolyzerRecipes);
+
+ // ZPM molten distilling method
+
+ // melt ImpureSamariumChloride
+ GTValues.RA.stdBuilder()
+ .itemInputs(SamariumChloride.get(OrePrefixes.dust, 1))
+ .fluidOutputs(SamariumChloride.getMolten(144))
+ .eut(TierEU.RECIPE_EV)
+ .duration(24)
+ .addTo(fluidExtractionRecipes);
+
+ // distill with LanthanumDust 36*144L moltenSmCl3 = 16*144L moltenSm + 27B Cl
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Lanthanum.getDust(9))
+ .itemOutputs(ImpureLanthanumChloride.get(OrePrefixes.dust, 36))
+ .fluidInputs(SamariumChloride.getMolten(5184))
+ .fluidOutputs(Materials.Samarium.getMolten(2304))
+ .eut(TierEU.RECIPE_ZPM)
+ .duration(5 * SECONDS)
+ .noOptimize()
+ .addTo(distillationTowerRecipes);
+
+ // Centrifuge ImpureLanthanumChlorideDust
+ GTValues.RA.stdBuilder()
+ .itemInputs(ImpureLanthanumChloride.get(OrePrefixes.dust, 36))
+ .itemOutputs(LanthaniumChloride.get(OrePrefixes.dust, 36), RarestEarthResidue.get(OrePrefixes.dust, 5))
+ .eut(TierEU.RECIPE_EV)
+ .duration(5 * SECONDS)
+ .addTo(centrifugeRecipes);
+
+ /**
+ * DephosphatedSamariumConcentrate has a simple and not shit process. Just burn in furnace, then use
+ * electolyzer.
+ */
+ GameRegistry.addSmelting(
+ DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 1),
+ SamariumOxide.get(OrePrefixes.dustTiny, 2),
+ 114);
+ GTValues.RA.stdBuilder()
+ .itemInputs(DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 1))
+ .itemOutputs(SamariumOxide.get(OrePrefixes.dust, 1))
+ .metadata(COIL_HEAT, 1200)
+ .eut(514)
+ .duration(2 * SECONDS)
+ .addTo(blastFurnaceRecipes);
+
+ }
+
+ public static void addRandomChemCrafting() {
+
+ // PTMEG Elastomer
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.Butanediol.get(OrePrefixes.cell, 1))
+ .itemOutputs(Materials.Empty.getCells(1))
+ .fluidInputs(WerkstoffMaterialPool.TolueneTetramethylDiisocyanate.getFluidOrGas(4000))
+ .fluidOutputs(WerkstoffMaterialPool.PTMEGElastomer.getMolten(4000))
+ .duration(1 * MINUTES + 15 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ // Toluene Tetramethyl Diisocyanate
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.TolueneDiisocyanate.get(OrePrefixes.cell, 3),
+ Materials.Hydrogen.getCells(2))
+ .itemOutputs(Materials.Empty.getCells(5))
+ .fluidInputs(WerkstoffMaterialPool.Polytetrahydrofuran.getFluidOrGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.TolueneTetramethylDiisocyanate.getFluidOrGas(2000))
+ .duration(1 * MINUTES)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ // PTHF
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.TungstophosphoricAcid.get(OrePrefixes.cell, 1),
+ Materials.Oxygen.getCells(1))
+ .itemOutputs(Materials.Empty.getCells(2))
+ .fluidInputs(WerkstoffMaterialPool.Tetrahydrofuran.getFluidOrGas(144))
+ .fluidOutputs(WerkstoffMaterialPool.Polytetrahydrofuran.getFluidOrGas(432))
+ .duration(50 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(UniversalChemical);
+
+ // THF
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.AcidicButanediol.get(OrePrefixes.cell, 1))
+ .itemOutputs(Materials.Empty.getCells(1))
+ .fluidInputs(Materials.Ethanol.getFluid(1000))
+ .fluidOutputs(WerkstoffMaterialPool.Tetrahydrofuran.getFluidOrGas(1000))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ // Acidicised Butanediol
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.SulfuricAcid.getCells(1))
+ .itemOutputs(Materials.Water.getCells(1))
+ .fluidInputs(WerkstoffMaterialPool.Butanediol.getFluidOrGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.AcidicButanediol.getFluidOrGas(1000))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(mixerRecipes);
+
+ // Butanediol
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.MoTeOCatalyst.get(OrePrefixes.dustTiny, 1))
+ .fluidInputs(Materials.Butane.getGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.Butanediol.getFluidOrGas(1000))
+ .duration(45 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(UniversalChemical);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(9), WerkstoffMaterialPool.MoTeOCatalyst.get(OrePrefixes.dust, 1))
+ .fluidInputs(Materials.Butane.getGas(9000))
+ .fluidOutputs(WerkstoffMaterialPool.Butanediol.getFluidOrGas(9000))
+ .duration(6 * MINUTES + 45 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(multiblockChemicalReactorRecipes);
+
+ // Moly-Te-Oxide Catalyst
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffMaterialPool.MolybdenumIVOxide.get(OrePrefixes.dust, 1),
+ WerkstoffMaterialPool.TelluriumIVOxide.get(OrePrefixes.dust, 1))
+ .itemOutputs(WerkstoffMaterialPool.MoTeOCatalyst.get(OrePrefixes.dust, 2))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(mixerRecipes);
+
+ // Tungstophosphoric Acid
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.PhosphoricAcid.getCells(1), Materials.HydrochloricAcid.getCells(24))
+ .itemOutputs(Materials.Salt.getDust(24), Materials.Empty.getCells(25))
+ .fluidInputs(BotWerkstoffMaterialPool.SodiumTungstate.getFluidOrGas(12000))
+ .fluidOutputs(WerkstoffMaterialPool.TungstophosphoricAcid.getFluidOrGas(1000))
+ .duration(25 * SECONDS)
+ .eut(1024)
+ .addTo(UniversalChemical);
+
+ // Toluene Diisocyanate
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffMaterialPool.Diaminotoluene.get(OrePrefixes.cell, 1), Materials.Empty.getCells(3))
+ .itemOutputs()
+ .fluidInputs(BotWerkstoffMaterialPool.Phosgene.getFluidOrGas(2000))
+ .fluidOutputs(WerkstoffMaterialPool.TolueneDiisocyanate.getFluidOrGas(1000))
+ .duration(45 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ // Diaminotoluene
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Hydrogen.getCells(4))
+ .itemOutputs()
+ .fluidInputs(WerkstoffMaterialPool.Dinitrotoluene.getFluidOrGas(1000))
+ .fluidOutputs(WerkstoffMaterialPool.Diaminotoluene.getFluidOrGas(1000))
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ // Dinitrotoluene
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.NitricAcid.getCells(2))
+ .itemOutputs(Materials.Empty.getCells(2))
+ .fluidInputs(Materials.Toluene.getFluid(1000))
+ .fluidOutputs(WerkstoffMaterialPool.Dinitrotoluene.getFluidOrGas(1000))
+ .duration(45 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(UniversalChemical);
+
+ // Digester Control Block
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Hull_IV.get(1L),
+ ItemList.Super_Tank_EV.get(2L),
+ ItemList.Electric_Motor_IV.get(4L),
+ ItemList.Electric_Pump_IV.get(4L),
+ GTOreDictUnificator.get(OrePrefixes.rotor, Materials.Desh, 4L),
+ GTOreDictUnificator.get(OrePrefixes.circuit, Materials.LuV, 4L),
+ GTUtility.getIntegratedCircuit(1))
+ .itemOutputs(LanthItemList.DIGESTER)
+ .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1440))
+ .duration(30 * SECONDS)
+ .eut(4096)
+ .addTo(assemblerRecipes);
+ // Dissolution Tank
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Hull_EV.get(1L),
+ ItemList.Super_Tank_HV.get(2L),
+ ItemList.Electric_Motor_EV.get(4L),
+ ItemList.Electric_Pump_EV.get(2L),
+ GTOreDictUnificator.get(OrePrefixes.rotor, Materials.VibrantAlloy, 4L),
+ GTOreDictUnificator.get(OrePrefixes.circuit, Materials.EV, 4L),
+ GTUtility.getIntegratedCircuit(2))
+ .itemOutputs(LanthItemList.DISSOLUTION_TANK)
+ .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(720))
+ .duration(20 * SECONDS)
+ .eut(960)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .fluidInputs(WerkstoffMaterialPool.DilutedAcetone.getFluidOrGas(250))
+ .fluidOutputs(Materials.Acetone.getFluid(150))
+ .duration(6 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(vacuumFreezerRecipes);
+
+ // PTMEG Manipulation
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.Shape_Mold_Ingot.get(0L))
+ .itemOutputs(WerkstoffMaterialPool.PTMEGElastomer.get(OrePrefixes.ingot, 1))
+ .fluidInputs(WerkstoffMaterialPool.PTMEGElastomer.getMolten(144))
+ .duration(2 * SECONDS)
+ .eut(64)
+ .addTo(fluidSolidifierRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.Shape_Mold_Plate.get(0L))
+ .itemOutputs(WerkstoffMaterialPool.PTMEGElastomer.get(OrePrefixes.plate, 1))
+ .fluidInputs(WerkstoffMaterialPool.PTMEGElastomer.getMolten(144))
+ .duration(2 * SECONDS)
+ .eut(64)
+ .addTo(fluidSolidifierRecipes);
+
+ // TODO Cerium-doped Lutetium Aluminium Garnet (Ce:LuAG)
+ /**
+ * 1/9 Ce + 3 Lu + 5 Sapphire = 8 LuAG Blend 1/9 Ce + 3 Lu + 10 Green Sapphire = 8 LuAG Blend 2/9 Ce + 6 Lu + 25
+ * Alumina + 9 Oxygen = 12 LuAG Blend
+ *
+ * 1 Ce + 60 Lu + 100 Sapphire = 160 LuAG Blend 1 Ce + 60 Lu +200 Green Sapphire = 160 LuAG Blend
+ *
+ */
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(4),
+ Materials.Cerium.getDustTiny(1),
+ Materials.Lutetium.getDust(3),
+ Materials.Sapphire.getDust(5))
+ .itemOutputs(CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 8))
+ .eut(TierEU.RECIPE_UV)
+ .duration(5 * SECONDS)
+ .addTo(mixerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(4),
+ Materials.Cerium.getDustTiny(1),
+ Materials.Lutetium.getDust(3),
+ Materials.GreenSapphire.getDust(10))
+ .itemOutputs(CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 8))
+ .eut(TierEU.RECIPE_UV)
+ .duration(5 * SECONDS)
+ .addTo(mixerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(4),
+ Materials.Cerium.getDustTiny(2),
+ Materials.Lutetium.getDust(6),
+ Materials.Aluminiumoxide.getDust(25))
+ .itemOutputs(CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 12))
+ .fluidInputs(Materials.Oxygen.getGas(9000))
+ .eut(TierEU.RECIPE_UV)
+ .duration(400)
+ .addTo(mixerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(5),
+ Materials.Cerium.getDust(1),
+ Materials.Lutetium.getDust(60),
+ Materials.Sapphire.getDust(64),
+ Materials.Sapphire.getDust(36))
+ .itemOutputs(
+ CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 64),
+ CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 64),
+ CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 32))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1800)
+ .addTo(mixerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(5),
+ Materials.Cerium.getDust(1),
+ Materials.Lutetium.getDust(60),
+ Materials.GreenSapphire.getDust(64),
+ Materials.GreenSapphire.getDust(64),
+ Materials.GreenSapphire.getDust(64),
+ Materials.GreenSapphire.getDust(8))
+ .itemOutputs(
+ CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 64),
+ CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 64),
+ CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 32))
+ .eut(TierEU.RECIPE_UV)
+ .duration(1800)
+ .addTo(mixerRecipes);
+
+ // Get LuAG Crystal seed
+ GTValues.RA.stdBuilder()
+ .itemInputs(CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1))
+ .itemOutputs(CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gem, 1))
+ .fluidInputs(Materials.Lutetium.getMolten(144 * 8))
+ .outputChances(514)
+ .eut(TierEU.RECIPE_UV)
+ .duration(500)
+ .addTo(autoclaveRecipes);
+
+ // 1 LuAG Blend = 1.1(Og) 1.0(Xe) 0.99(Kr) LuAG in Autoclave
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1),
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gem, 1))
+ .itemOutputs(
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1),
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1))
+ .fluidInputs(WerkstoffLoader.Krypton.getFluidOrGas(40))
+ .outputChances(8000, 1900)
+ .eut(TierEU.RECIPE_UHV)
+ .duration(512)
+ .addTo(autoclaveRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1),
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gem, 1))
+ .itemOutputs(
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1),
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1))
+ .fluidInputs(WerkstoffLoader.Xenon.getFluidOrGas(25))
+ .outputChances(9000, 1000)
+ .eut(TierEU.RECIPE_UHV)
+ .duration(256)
+ .addTo(autoclaveRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(1),
+ CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1))
+ .itemOutputs(
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1),
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1))
+ .fluidInputs(WerkstoffLoader.Oganesson.getFluidOrGas(10))
+ .outputChances(10000, 100)
+ .eut(TierEU.RECIPE_UHV)
+ .duration(128)
+ .addTo(autoclaveRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1),
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gem, 1))
+ .itemOutputs(
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1),
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 2))
+ .fluidInputs(WerkstoffLoader.Oganesson.getFluidOrGas(10))
+ .outputChances(10000, 2000)
+ .eut(TierEU.RECIPE_UHV)
+ .duration(128)
+ .addTo(autoclaveRecipes);
+
+ // 1 LuAG Blend = 1 LuAG in Vacuum Furnace
+ GTValues.RA.stdBuilder()
+ .itemInputs(CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.dust, 1))
+ .itemOutputs(CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1))
+ .fluidInputs(CeriumDopedLutetiumAluminiumOxygenBlend.getMolten(108))
+ .metadata(COIL_HEAT, 9100)
+ .eut(TierEU.RECIPE_UHV)
+ .duration(5 * SECONDS)
+ .addTo(vacuumFurnaceRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1))
+ .fluidOutputs(CeriumDopedLutetiumAluminiumOxygenBlend.getMolten(144))
+ .eut(TierEU.RECIPE_LuV)
+ .duration(1 * SECONDS)
+ .addTo(fluidExtractionRecipes);
+
+ // 16 Adv Crystal SoC
+ for (ItemStack itemStack : OreDictionary.getOres("craftingLensBlue")) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.copyAmount(0, itemStack),
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1))
+ .itemOutputs(ItemList.Circuit_Chip_CrystalSoC2.get(16))
+ .requiresCleanRoom()
+ .eut(160000)
+ .duration(40 * SECONDS)
+ .addTo(laserEngraverRecipes);
+ }
+
+ // 16 Crystal SoC
+ for (ItemStack itemStack : OreDictionary.getOres("craftingLensGreen")) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.copyAmount(0, itemStack),
+ CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1))
+ .itemOutputs(ItemList.Circuit_Chip_CrystalSoC.get(16))
+ .requiresCleanRoom()
+ .eut(160000)
+ .duration(40 * SECONDS)
+ .addTo(laserEngraverRecipes);
+ }
+
+ }
+
+ public static void removeCeriumMacerator() {
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+
+ GTLog.out.print(Tags.MODID + ": processing macerator recipes");
+ for (GTRecipe recipe : maceratorRecipes.getAllRecipes()) {
+ ItemStack input = recipe.mInputs[0];
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ final String oreName = OreDictionary.getOreName(oreDictID);
+ if (!(oreName.startsWith("ore") || oreName.startsWith("rawOre") || oreName.startsWith("crushed"))) {
+ continue;
+ }
+
+ GTRecipe tRecipe = recipe.copy();
+ boolean modified = false;
+ for (int i = 0; i < tRecipe.mOutputs.length; i++) {
+ if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
+
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1));
+ modified = true;
+ GTLog.out.println(
+ "in the recipe of '" + recipe.mInputs[0].getDisplayName()
+ + "', replacing Cerium dust by Cerium Rich Mixture dust");
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1));
+ modified = true;
+ GTLog.out.println(
+ "in the recipe of '" + recipe.mInputs[0].getDisplayName()
+ + "', replacing Samarium dust by Samarium Ore Concentrate dust");
+ }
+ }
+ if (modified) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+
+ }
+
+ }
+ maceratorRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(maceratorRecipes::add);
+ maceratorRecipes.getBackend()
+ .reInit();
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.print(Tags.MODID + ": macerator recipes done!");
+ }
+
+ public static void removeCeriumWasher() {
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+
+ GTLog.out.println(Tags.MODID + ": processing orewasher recipes");
+ for (GTRecipe recipe : oreWasherRecipes.getAllRecipes()) {
+ ItemStack input = recipe.mInputs[0];
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ if (!OreDictionary.getOreName(oreDictID)
+ .startsWith("crushed")) {
+ continue;
+ }
+
+ GTRecipe tRecipe = recipe.copy();
+ boolean modified = false;
+ for (int i = 0; i < tRecipe.mOutputs.length; i++) {
+ if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input: "
+ + input.getDisplayName()
+ + " get Cerium dust turned into Cerium Rich Mixture dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input: "
+ + input.getDisplayName()
+ + " get Samarium dust turned into Samarium Ore Concentrate dust.");
+ modified = true;
+ }
+ }
+ if (modified) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+
+ GTLog.out.println(Tags.MODID + ": regenerating ore washer recipes");
+ oreWasherRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(oreWasherRecipes::add);
+ oreWasherRecipes.getBackend()
+ .reInit();
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.println(Tags.MODID + ": ore washer recipes done!");
+ }
+
+ public static void removeCeriumThermalCentrifuge() {
+
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+
+ GTLog.out.println(Tags.MODID + ": processing thermal centrifuge recipes");
+ for (GTRecipe recipe : thermalCentrifugeRecipes.getAllRecipes()) {
+ ItemStack input = recipe.mInputs[0];
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ if (!(OreDictionary.getOreName(oreDictID)
+ .startsWith("crushed")
+ || OreDictionary.getOreName(oreDictID)
+ .startsWith("purified"))) {
+ continue;
+ }
+
+ GTRecipe tRecipe = recipe.copy();
+ boolean modified = false;
+ for (int i = 0; i < tRecipe.mOutputs.length; i++) {
+ if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input "
+ + input.getDisplayName()
+ + " get Cerium dust turned into Cerium Rich Mixture dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input "
+ + input.getDisplayName()
+ + " get Samarium dust turned into Samarium Ore Concentrate dust.");
+ modified = true;
+ }
+ }
+ if (modified) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+
+ GTLog.out.println(Tags.MODID + ": regenerating thermal centrifuge recipes");
+ thermalCentrifugeRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(thermalCentrifugeRecipes::add);
+ thermalCentrifugeRecipes.getBackend()
+ .reInit();
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.println(Tags.MODID + ": thermal centrifuge recipes done!");
+ }
+
+ public static void removeCeriumCentrifuge() {
+
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+ GTLog.out.println(Tags.MODID + ": processing centrifuge recipes");
+ for (GTRecipe recipe : centrifugeRecipes.getAllRecipes()) {
+ ItemStack input = null;
+ if (recipe.mInputs.length > 0) input = recipe.mInputs[0];
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ final String oreName = OreDictionary.getOreName(oreDictID);
+ if (!(oreName.startsWith("dust") && (!oreName.contains("Dephosphated")))) {
+ continue;
+ }
+ GTRecipe tRecipe = recipe.copy();
+ boolean modified = false;
+ for (int i = 0; i < tRecipe.mOutputs.length; i++) {
+ if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dustTiny, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium tiny dust turned into Cerium Rich Mixture tiny dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium dust turned into Cerium Rich Mixture dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDustSmall(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dustSmall, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium small dust turned into Cerium Rich Mixture small dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dustTiny, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Samarium dust turned into Samarium Ore Concentrate tiny dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Samarium dust turned into Samarium Ore Concentrate dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDustSmall(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dustSmall, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Samarium dust turned into Samarium Ore Concentrate small dust.");
+ modified = true;
+ }
+ }
+ if (modified) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+
+ GTLog.out.println(Tags.MODID + ": regenerating centrifuge recipes");
+ centrifugeRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(centrifugeRecipes::add);
+ centrifugeRecipes.getBackend()
+ .reInit();
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.println(Tags.MODID + ": centrifuge recipes done!");
+ }
+
+ public static void removeCeriumCentrifugeNonCell() {
+
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+ GTLog.out.println(Tags.MODID + ": processing centrifuge non cell recipes");
+
+ for (GTRecipe recipe : centrifugeNonCellRecipes.getAllRecipes()) {
+ ItemStack input = null;
+ if (recipe.mInputs.length > 0) input = recipe.mInputs[0];
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ final String oreName = OreDictionary.getOreName(oreDictID);
+ if (!((oreName.startsWith("dust") && (!oreName.contains("Dephosphated"))))) {
+ continue;
+ }
+ GTRecipe tRecipe = recipe.copy();
+ boolean modified = false;
+ for (int i = 0; i < tRecipe.mOutputs.length; i++) {
+ if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dustTiny, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium tiny dust turned into Cerium Rich Mixture tiny dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium dust turned into Cerium Rich Mixture dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDustSmall(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dustSmall, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium small dust turned into Cerium Rich Mixture small dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dustTiny, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Samarium tiny dust turned into Samarium Ore Concentrate tiny dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Samarium dust turned into Samarium Ore Concentrate dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDustSmall(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dustSmall, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Samarium small dust turned into Samarium Ore Concentrate small dust.");
+ modified = true;
+ }
+ }
+ if (modified) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+
+ GTLog.out.println(Tags.MODID + ": regenerating centrifuge non cell recipes");
+ centrifugeNonCellRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(centrifugeNonCellRecipes::add);
+ centrifugeNonCellRecipes.getBackend()
+ .reInit();
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.println(Tags.MODID + ": centrifuge non cell recipes done!");
+ }
+
+ public static void removeCeriumHammer() {
+
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+
+ GTLog.out.println(Tags.MODID + ": processing forge hammer recipes");
+
+ for (GTRecipe recipe : hammerRecipes.getAllRecipes()) {
+ ItemStack input = recipe.mInputs[0];
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ final String oreName = OreDictionary.getOreName(oreDictID);
+ if (!oreName.startsWith("crushed")) {
+ continue;
+ }
+
+ GTRecipe tRecipe = recipe.copy();
+ boolean modified = false;
+ for (int i = 0; i < tRecipe.mOutputs.length; i++) {
+ if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium dust turned into Cerium Rich Mixture dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize * 2,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Samarium dust turned into Samarium Ore Concentrate dust.");
+ modified = true;
+ }
+ }
+ if (modified) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+
+ GTLog.out.println(Tags.MODID + ": regenerating forge hammer recipes");
+ hammerRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(hammerRecipes::add);
+ hammerRecipes.getBackend()
+ .reInit();
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.println(Tags.MODID + ": forge hammer recipes done!");
+ }
+
+ public static void removeCeriumElectrolyzer() {
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+ GTLog.out.println(Tags.MODID + ": Processing electrolyzer recipes");
+ for (GTRecipe recipe : electrolyzerRecipes.getAllRecipes()) {
+ for (ItemStack input : recipe.mInputs) {
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ final String oreName = OreDictionary.getOreName(oreDictID);
+ if (!(oreName.startsWith("dust")
+ && (oreName.equals("dustHibonite") || oreName.equals("dustLanthaniteCe")
+ || oreName.equals("dustZirconolite")
+ || oreName.equals("dustYttrocerite")
+ || oreName.equals("dustXenotime")
+ || oreName.equals("dustBastnasite")
+ || oreName.equals("dustFlorencite")))) {
+ continue;
+ }
+
+ GTRecipe tRecipe = recipe.copy();
+ boolean modified = false;
+ for (int i = 0; i < tRecipe.mOutputs.length; i++) {
+ if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium dust turned into Cerium Rich Mixture dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Samarium dust turned into Samarium Ore Concentrate dust.");
+ modified = true;
+ }
+ }
+ if (modified) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+ }
+
+ GTLog.out.println(Tags.MODID + ": regenerating electrolyzer recipes");
+ electrolyzerRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(electrolyzerRecipes::add);
+ electrolyzerRecipes.getBackend()
+ .reInit();
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.println(Tags.MODID + ": Electrolyzer recipe done!");
+ }
+
+ public static void removeCeriumElectrolyzerNonCell() {
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+ GTLog.out.println(Tags.MODID + ": processing electrolyzer non cell recipes");
+ for (GTRecipe recipe : electrolyzerNonCellRecipes.getAllRecipes()) {
+ for (ItemStack input : recipe.mInputs) {
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ final String oreName = OreDictionary.getOreName(oreDictID);
+ if (!(oreName.startsWith("dust")
+ && (oreName.equals("dustHibonite") || oreName.equals("dustLanthaniteCe")
+ || oreName.equals("dustZirconolite")
+ || oreName.equals("dustYttrocerite")
+ || oreName.equals("dustXenotime")
+ || oreName.equals("dustBastnasite")
+ || oreName.equals("dustFlorencite")))) {
+ continue;
+ }
+
+ GTRecipe tRecipe = recipe.copy();
+ boolean modified = false;
+ for (int i = 0; i < tRecipe.mOutputs.length; i++) {
+ if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium dust turned into Cerium Rich Mixture dust.");
+ modified = true;
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Samarium dust turned into Samarium Ore Concentrate dust.");
+ modified = true;
+ }
+ }
+ if (modified) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+ }
+
+ GTLog.out.println(Tags.MODID + ": regenerating electrolyzer non cell recipes");
+ electrolyzerNonCellRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(electrolyzerNonCellRecipes::add);
+ electrolyzerNonCellRecipes.getBackend()
+ .reInit();
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.println(Tags.MODID + ": Electrolyzer non cell recipes done!");
+ }
+
+ public static void removeCeriumSimpleWasher() {
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+ GTLog.out.println(Tags.MODID + ": processing simple washer recipes.");
+ for (GTRecipe recipe : simpleWasherRecipes.getAllRecipes()) {
+ ItemStack input = recipe.mInputs[0];
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ final String oreName = OreDictionary.getOreName(oreDictID);
+
+ if (!(oreName.startsWith("dustImpureCerium") || oreName.startsWith("dustImpureSamarium")
+ || oreName.startsWith("dustPureSamarium")
+ || oreName.startsWith("dustPureCerium"))) {
+ continue;
+ }
+
+ GTRecipe tRecipe = recipe.copy();
+ for (int i = 0; i < tRecipe.mOutputs.length; i++) {
+ if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize,
+ WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium dust turned into Cerium Rich Mixture dust.");
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize,
+ WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Samarium dust turned into Samarium Ore Concentrate dust.");
+ }
+ }
+ if (!tRecipe.equals(recipe)) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+
+ GTLog.out.println(Tags.MODID + ": regenerating simple washer recipes");
+ simpleWasherRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(simpleWasherRecipes::add);
+ simpleWasherRecipes.getBackend()
+ .reInit();
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.println(Tags.MODID + ": Simple washer recipes done!");
+ }
+
+ public static void removeCeriumDehydrator() {
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+ GTLog.out.println(Tags.MODID + ": processing chemical dehydrator recipes.");
+
+ for (GTRecipe recipe : chemicalDehydratorRecipes.getAllRecipes()) {
+ if (recipe.mInputs.length == 0) {
+ continue;
+ }
+ ItemStack input = recipe.mInputs[0];
+
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ final String oreName = OreDictionary.getOreName(oreDictID);
+ if (!oreName.startsWith("dust")) {
+ continue;
+ }
+ if (!(oreName.equals("dustCerite") || oreName.equals("dustFluorcaphite")
+ || oreName.equals("dustZirkelite")
+ || oreName.equals("dustGadoliniteCe")
+ || oreName.equals("dustGadoliniteY")
+ || oreName.equals("dustPolycrase")
+ || oreName.equals("dustBastnasite"))) {
+ continue;
+ }
+
+ GTRecipe tRecipe = recipe.copy();
+ for (int i = 0; i < tRecipe.mOutputs.length; i++) {
+ if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
+
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) {
+ tRecipe.mOutputs[i] = GTUtility.copyAmount(
+ tRecipe.mOutputs[i].stackSize,
+ WerkstoffMaterialPool.CeriumRichMixture
+ .get(OrePrefixes.dust, tRecipe.mOutputs[i].stackSize));
+ GTLog.out.println(
+ Tags.MODID + ": recipe with input oredict: "
+ + oreName
+ + " get Cerium dust turned into Cerium Rich Mixture dust.");
+ }
+ }
+ if (!tRecipe.equals(recipe)) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+
+ }
+
+ }
+
+ GTLog.out.println(Tags.MODID + ": regenerating chemical dehydrator recipes");
+ chemicalDehydratorRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(chemicalDehydratorRecipes::add);
+ chemicalDehydratorRecipes.getBackend()
+ .reInit();
+
+ GTLog.out.print(Tags.MODID + ": Replace " + remove.size() + "! ");
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.println(Tags.MODID + ": chemical dehydrator recipes done!");
+
+ }
+
+ public static void removeCeriumChemicalBath() {
+ HashSet<GTRecipe> remove = new HashSet<>(5000);
+ HashSet<GTRecipe> reAdd = new HashSet<>(5000);
+
+ GTLog.out.println(Tags.MODID + ": marking recipes in chem bath for removal!");
+ for (GTRecipe recipe : chemicalBathRecipes.getAllRecipes()) {
+ for (ItemStack input : recipe.mInputs) {
+ if (!GTUtility.isStackValid(input)) {
+ continue;
+ }
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ String oreName = OreDictionary.getOreName(oreDictID);
+ if (oreName.equals("dustTin")) {
+ GTLog.out.println(Tags.MODID + ": chem bath recipe with tin dust detected, removing it.");
+ remove.add(recipe);
+ break;
+ }
+ if (oreName.equals("dustRutile")) {
+ GTLog.out.println(Tags.MODID + ": chem bath recipe with rutile dust detected, removing it.");
+ remove.add(recipe);
+ break;
+ }
+ }
+ }
+ }
+
+ GTLog.out.println(Tags.MODID + ": regenerating chem bath recipes");
+ chemicalBathRecipes.getBackend()
+ .removeRecipes(remove);
+ reAdd.forEach(chemicalBathRecipes::add);
+ chemicalBathRecipes.getBackend()
+ .reInit();
+
+ remove.clear();
+ reAdd.clear();
+
+ GTLog.out.println("Chemical Bath done!");
+ }
+
+ public static void removeCeriumSources() {
+
+ removeCeriumMacerator();
+ removeCeriumWasher();
+ removeCeriumThermalCentrifuge();
+ removeCeriumCentrifuge();
+ removeCeriumCentrifugeNonCell();
+ removeCeriumHammer();
+ removeCeriumElectrolyzer();
+ removeCeriumElectrolyzerNonCell();
+ removeCeriumSimpleWasher();
+ removeCeriumDehydrator();
+ removeCeriumChemicalBath();
+
+ // For Cauldron Wash
+ GTLog.out.println(Tags.MODID + ": processing cauldron washing recipes to replace cerium sources");
+ registerCauldronCleaningFor(Materials.Cerium, WerkstoffMaterialPool.CeriumRichMixture.getBridgeMaterial());
+ registerCauldronCleaningFor(
+ Materials.Samarium,
+ WerkstoffMaterialPool.SamariumOreConcentrate.getBridgeMaterial());
+ GTLog.out.println(Tags.MODID + ": processing cauldron washing recipes done!");
+
+ // For Crafting Table
+ GTLog.out.println(Tags.MODID + ": processing crafting recipes to replace cerium sources");
+ CraftingManager.getInstance()
+ .getRecipeList()
+ .forEach(RecipeLoader::replaceInCraftTable);
+ GTLog.out.println(Tags.MODID + ": processing crafting recipes done!");
+ }
+
+ public static void replaceInCraftTable(Object obj) {
+ IRecipe recipe = (IRecipe) obj;
+ ItemStack result = recipe.getRecipeOutput();
+ if (!(recipe instanceof IRecipeMutableAccess mutableRecipe)) {
+ return;
+ }
+
+ Object input = mutableRecipe.gt5u$getRecipeInputs();
+
+ if (GTUtility.areStacksEqual(result, Materials.Cerium.getDust(1), true)) {
+ if (PlatinumSludgeOverHaul.checkRecipe(input, Materials.Cerium)) {
+ return;
+ }
+ GTLog.out.println("replacing crafting recipe of Cerium dust by Cerium Rich Mixture");
+ mutableRecipe.gt5u$setRecipeOutputItem(WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 2));
+ } else if (GTUtility.areStacksEqual(result, Materials.Samarium.getDust(1), true)) {
+ if (PlatinumSludgeOverHaul.checkRecipe(input, Materials.Samarium)) {
+ return;
+ }
+ mutableRecipe
+ .gt5u$setRecipeOutputItem(WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 2));
+ GTLog.out.println("replacing crafting recipe of Samarium dust by Samarium Ore Concentrate");
+ }
+ }
+
+}
diff --git a/src/main/java/gtnhlanth/loader/ZPMRubberChanges.java b/src/main/java/gtnhlanth/loader/ZPMRubberChanges.java
new file mode 100644
index 0000000000..a5cba15f63
--- /dev/null
+++ b/src/main/java/gtnhlanth/loader/ZPMRubberChanges.java
@@ -0,0 +1,408 @@
+package gtnhlanth.loader;
+
+import static gregtech.api.enums.OrePrefixes.*;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.crafting.CraftingManager;
+import net.minecraft.item.crafting.IRecipe;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+
+import org.apache.commons.lang3.reflect.FieldUtils;
+import org.apache.commons.lang3.reflect.MethodUtils;
+
+import bartworks.system.material.Werkstoff;
+import bartworks.util.BWUtil;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.Mods;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.objects.ItemData;
+import gregtech.api.recipe.RecipeMap;
+import gregtech.api.util.GTLog;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTOreDictUnificator;
+import gregtech.api.util.GTRecipe;
+import gregtech.api.util.GTRecipe.RecipeAssemblyLine;
+import gregtech.api.util.GTShapedRecipe;
+import gregtech.api.util.GTUtility;
+import gtnhlanth.common.register.WerkstoffMaterialPool;
+
+public class ZPMRubberChanges implements Runnable {
+
+ @SuppressWarnings("unchecked")
+ public void run() {
+
+ List<IRecipe> bufferedRecipeList = null;
+
+ try {
+ bufferedRecipeList = (List<IRecipe>) FieldUtils
+ .getDeclaredField(GTModHandler.class, "sBufferRecipeList", true)
+ .get(null);
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+
+ HashSet<ItemStack> ZPMPlusComponents = new HashSet<>();
+ OrePrefixes[] RubberGenerated = { plate };
+
+ Arrays.stream(ItemList.values())
+ .filter(
+ item -> (item.toString()
+ .contains("ZPM")
+ || item.toString()
+ .contains("UV")
+ || item.toString()
+ .contains("UHV")
+ || item.toString()
+ .contains("UEV"))
+ && item.hasBeenSet())
+ .forEach(item -> ZPMPlusComponents.add(item.get(1)));
+
+ if (Mods.NewHorizonsCoreMod.isModLoaded()) {
+ addDreamcraftItemListItems(ZPMPlusComponents);
+ }
+
+ for (ItemStack component : ZPMPlusComponents) {
+ GTLog.out.print(component.getDisplayName() + " ");
+ }
+
+ replaceAllRecipes(ZPMPlusComponents, RubberGenerated, bufferedRecipeList);
+ }
+
+ private static void replaceAllRecipes(Collection<ItemStack> ZPMPlusComponents, OrePrefixes[] RubberGenerated,
+ List<IRecipe> bufferedRecipeList) {
+
+ for (RecipeAssemblyLine sAssemblylineRecipe : RecipeAssemblyLine.sAssemblylineRecipes) {
+ for (ItemStack stack : ZPMPlusComponents) {
+ rewriteAsslineRecipes(stack, RubberGenerated, sAssemblylineRecipe);
+ }
+ }
+
+ for (RecipeMap<?> map : RecipeMap.ALL_RECIPE_MAPS.values()) {
+ for (GTRecipe recipe : map.getAllRecipes()) {
+ for (ItemStack stack : ZPMPlusComponents) {
+ rewriteMachineRecipes(stack, RubberGenerated, recipe);
+ }
+ }
+ }
+
+ for (ItemStack stack : ZPMPlusComponents) {
+ Predicate recipeFilter = obj -> obj instanceof GTShapedRecipe
+ && GTUtility.areStacksEqual(((GTShapedRecipe) obj).getRecipeOutput(), stack, true);
+ rewriteCraftingRecipes(bufferedRecipeList, RubberGenerated, recipeFilter);
+ }
+ /*
+ * for (ItemStack stack : LuVMachines) { Predicate recipeFilter = obj -> obj instanceof GT_Shaped_Recipe &&
+ * GT_Utility.areStacksEqual(((GT_Shaped_Recipe) obj).getRecipeOutput(), stack, true);
+ * rewriteCraftingRecipes(bufferedRecipeList, LuVMaterialsGenerated, recipeFilter); }
+ */
+ }
+
+ private static void addDreamcraftItemListItems(Collection ZPMPlusComponents) {
+ try {
+ Class customItemListClass = Class.forName("com.dreammaster.gthandler.CustomItemList");
+ Method hasnotBeenSet = MethodUtils.getAccessibleMethod(customItemListClass, "hasBeenSet");
+ Method get = MethodUtils.getAccessibleMethod(customItemListClass, "get", long.class, Object[].class);
+ for (Enum customItemList : (Enum[]) FieldUtils.getField(customItemListClass, "$VALUES", true)
+ .get(null)) {
+ if ((customItemList.toString()
+ .contains("ZPM")
+ || customItemList.toString()
+ .contains("UV")
+ || customItemList.toString()
+ .contains("UHV")
+ || customItemList.toString()
+ .contains("UEV"))
+ && (boolean) hasnotBeenSet.invoke(customItemList))
+ ZPMPlusComponents.add((ItemStack) get.invoke(customItemList, 1, new Object[0]));
+ }
+ } catch (IllegalAccessException | ClassNotFoundException | InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static void rewriteCraftingRecipes(List<IRecipe> bufferedRecipeList, OrePrefixes[] RubberGenerated,
+ Predicate recipeFilter) {
+ for (OrePrefixes prefixes : RubberGenerated) {
+
+ Consumer recipeAction = (obj) -> {
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ ((GTShapedRecipe) obj).getInput(),
+ GTOreDictUnificator.get(prefixes, Materials.Silicone, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ ((GTShapedRecipe) obj).getInput(),
+ GTOreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ };
+
+ /*
+ * || ZPMRubberChanges.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(),
+ * GTOreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), true,
+ * WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ */
+
+ CraftingManager.getInstance()
+ .getRecipeList()
+ .stream()
+ .filter(recipeFilter)
+ .forEach(recipeAction);
+ bufferedRecipeList.stream()
+ .filter(recipeFilter)
+ .forEach(recipeAction);
+ }
+ }
+
+ private static void rewriteMachineRecipes(ItemStack stack, OrePrefixes[] RubberGenerated, GTRecipe recipe) {
+ if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
+ for (OrePrefixes prefixes : RubberGenerated) {
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mInputs,
+ GTOreDictUnificator.get(prefixes, Materials.Silicone, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mOutputs,
+ GTOreDictUnificator.get(prefixes, Materials.Silicon, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mInputs,
+ GTOreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mOutputs,
+ GTOreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ }
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidInputs,
+ Materials.Silicone.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidOutputs,
+ Materials.Silicone.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidInputs,
+ Materials.StyreneButadieneRubber.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidOutputs,
+ Materials.StyreneButadieneRubber.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+ }
+ if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mOutputs, stack, false)) {
+ for (OrePrefixes prefixes : RubberGenerated) {
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mInputs,
+ GTOreDictUnificator.get(prefixes, Materials.Silicone, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mOutputs,
+ GTOreDictUnificator.get(prefixes, Materials.Silicone, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mInputs,
+ GTOreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mOutputs,
+ GTOreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ }
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidInputs,
+ Materials.Silicone.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidOutputs,
+ Materials.Silicone.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidInputs,
+ Materials.StyreneButadieneRubber.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidOutputs,
+ Materials.StyreneButadieneRubber.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+ }
+ }
+
+ private static void rewriteAsslineRecipes(ItemStack stack, OrePrefixes[] RubberGenerated,
+ RecipeAssemblyLine recipe) {
+ for (OrePrefixes prefixes : RubberGenerated) {
+ if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
+
+ GTLog.out.print(Arrays.toString(recipe.mInputs));
+
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mInputs,
+ GTOreDictUnificator.get(prefixes, Materials.Silicone, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ new Object[] { recipe.mOutput },
+ GTOreDictUnificator.get(prefixes, Materials.Silicone, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mInputs,
+ GTOreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ new Object[] { recipe.mOutput },
+ GTOreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ }
+ if (ZPMRubberChanges.doStacksCointainAndReplace(new Object[] { recipe.mOutput }, stack, false)) {
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mInputs,
+ GTOreDictUnificator.get(prefixes, Materials.Silicone, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ new Object[] { recipe.mOutput },
+ GTOreDictUnificator.get(prefixes, Materials.Silicone, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mInputs,
+ GTOreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ new Object[] { recipe.mOutput },
+ GTOreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
+ }
+ }
+ if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidInputs,
+ Materials.Silicone.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidInputs,
+ Materials.StyreneButadieneRubber.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+ }
+ if (ZPMRubberChanges.doStacksCointainAndReplace(new Object[] { recipe.mOutput }, stack, false)) {
+ ZPMRubberChanges.doStacksCointainAndReplace(
+ recipe.mFluidInputs,
+ Materials.StyreneButadieneRubber.getMolten(1),
+ true,
+ WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
+ .getFluid());
+ }
+ }
+
+ private static ItemStack[] replaceArrayWith(ItemStack[] stackArray, Materials source, Werkstoff target) {
+ for (int i = 0; i < stackArray.length; i++) {
+ ItemStack stack = stackArray[i];
+ if (!BWUtil.checkStackAndPrefix(stack)) continue;
+ stackArray[i] = replaceStackWith(stack, source, target);
+ }
+ return stackArray;
+ }
+
+ private static ItemStack replaceStackWith(ItemStack stack, Materials source, Werkstoff target) {
+ ItemData ass = GTOreDictUnificator.getAssociation(stack);
+ if (ass.mMaterial.mMaterial.equals(source))
+ if (target.hasItemType(ass.mPrefix)) stack = target.get(ass.mPrefix, stack.stackSize);
+ return stack;
+ }
+
+ private static boolean doStacksCointainAndReplace(FluidStack[] stacks, FluidStack stack, boolean replace,
+ Fluid... replacement) {
+ boolean replaced = false;
+ for (int i = 0; i < stacks.length; i++) {
+ if (GTUtility.areFluidsEqual(stack, stacks[i])) if (!replace) return true;
+ else {
+ int amount = stacks[i].amount;
+ stacks[i] = new FluidStack(replacement[0], amount);
+ replaced = true;
+ }
+ }
+ return replaced;
+ }
+
+ private static boolean doStacksCointainAndReplace(Object[] stacks, ItemStack stack, boolean replace,
+ ItemStack... replacement) {
+ // GTLog.out.print("In doStacksCointainAndReplace!\n");
+ boolean replaced = false;
+ for (int i = 0; i < stacks.length; i++) {
+ if (!GTUtility.isStackValid(stacks[i])) {
+ if (stacks[i] instanceof ArrayList && ((ArrayList) stacks[i]).size() > 0) {
+ if (GTUtility.areStacksEqual(stack, (ItemStack) ((ArrayList) stacks[i]).get(0), true))
+ if (!replace) return true;
+ else {
+ int amount = ((ItemStack) ((ArrayList) stacks[i]).get(0)).stackSize;
+ stacks[i] = new ArrayList<>();
+ ((ArrayList) stacks[i]).add(BWUtil.setStackSize(replacement[0], amount));
+ replaced = true;
+
+ GTLog.out.print("Replaced recipe!: " + stack.getDisplayName() + " ");
+ }
+
+ } else continue;
+ } else if (GTUtility.areStacksEqual(stack, (ItemStack) stacks[i], true)) if (!replace) return true;
+ else {
+ int amount = ((ItemStack) stacks[i]).stackSize;
+ stacks[i] = BWUtil.setStackSize(replacement[0], amount);
+ replaced = true;
+ }
+ }
+ return replaced;
+ }
+}