From 44c774ebbd67fd674565797796d53af48480032a Mon Sep 17 00:00:00 2001 From: miozune Date: Mon, 4 Dec 2023 08:26:47 +0900 Subject: Migrate to new RecipeMap (#73) * Migrate Lanth recipemaps * Migrate the rest * Don't requires NHCore * Cleanup recipemaps * Update GT to adapt to MaceratorBackend removal * updade gradle+bs+deps * Update dependencies.gradle --------- Co-authored-by: Martin Robertz --- .../java/com/elisis/gtnhlanth/GTNHLanthanides.java | 3 +- .../api/recipe/LanthanidesRecipeMaps.java | 19 + .../gtnhlanth/common/tileentity/Digester.java | 11 +- .../common/tileentity/DissolutionTank.java | 10 +- .../com/elisis/gtnhlanth/loader/BotRecipes.java | 17 +- .../com/elisis/gtnhlanth/loader/RecipeAdder.java | 132 ---- .../com/elisis/gtnhlanth/loader/RecipeLoader.java | 804 ++++++++++----------- .../elisis/gtnhlanth/loader/ZPMRubberChanges.java | 6 +- 8 files changed, 420 insertions(+), 582 deletions(-) create mode 100644 src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java delete mode 100644 src/main/java/com/elisis/gtnhlanth/loader/RecipeAdder.java (limited to 'src/main/java/com') diff --git a/src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java b/src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java index 94c9e29cf8..36a34f172a 100644 --- a/src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java +++ b/src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java @@ -32,8 +32,7 @@ import gregtech.api.util.GT_Log; dependencies = "required-after:IC2; " + "required-after:gregtech; " + "required-after:bartworks; " + "required-after:GoodGenerator; " - + "before:miscutils; " - + "required-after:dreamcraft; ") + + "before:miscutils; ") public class GTNHLanthanides { public static Logger LOG = Logger.getLogger("GTNH:Lanthanides"); diff --git a/src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java b/src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java new file mode 100644 index 0000000000..9792dcad10 --- /dev/null +++ b/src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java @@ -0,0 +1,19 @@ +package com.elisis.gtnhlanth.api.recipe; + +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBuilder; +import gregtech.nei.formatter.HeatingCoilSpecialValueFormatter; +import gregtech.nei.formatter.SimpleSpecialValueFormatter; + +public class LanthanidesRecipeMaps { + + public static final RecipeMap digesterRecipes = RecipeMapBuilder.of("gtnhlanth.recipe.digester") + .maxIO(1, 1, 1, 1).minInputs(1, 1).progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .neiSpecialInfoFormatter(HeatingCoilSpecialValueFormatter.INSTANCE).build(); + public static final RecipeMap dissolutionTankRecipes = RecipeMapBuilder + .of("gtnhlanth.recipe.disstank").maxIO(2, 3, 2, 1).minInputs(1, 1) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("value.disstank")).build(); +} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java index 5e2b03e945..9afc808779 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java +++ b/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java @@ -18,7 +18,7 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; -import com.elisis.gtnhlanth.loader.RecipeAdder; +import com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps; import com.elisis.gtnhlanth.util.DescTextLocalization; import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; @@ -30,6 +30,7 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; +import gregtech.api.recipe.RecipeMap; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; @@ -90,6 +91,11 @@ public class Digester extends GT_MetaTileEntity_EnhancedMultiBlockBase this.heatLevel = level; } + @Override + public RecipeMap getRecipeMap() { + return LanthanidesRecipeMaps.digesterRecipes; + } + @Override public boolean checkRecipe(ItemStack itemStack) { // GT_Log.out.print("Digester: in checkRecipe\n"); @@ -101,8 +107,7 @@ public class Digester extends GT_MetaTileEntity_EnhancedMultiBlockBase // GT_Log.out.print("Digester: " + Arrays.toString(mInventory)); - // Collection tRecipes = RecipeAdder.instance.DigesterRecipes.mRecipeList; - GT_Recipe tRecipe = RecipeAdder.instance.DigesterRecipes + GT_Recipe tRecipe = LanthanidesRecipeMaps.digesterRecipes .findRecipe(getBaseMetaTileEntity(), false, tVoltage, tFluidInputArray, tItems); if (tRecipe == null || !tRecipe.isRecipeInputEqual(true, tFluidInputArray, tItems)) return false; diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java index 96dd57389d..992cdf5d2d 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java +++ b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java @@ -19,7 +19,7 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; -import com.elisis.gtnhlanth.loader.RecipeAdder; +import com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps; import com.elisis.gtnhlanth.util.DescTextLocalization; import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; @@ -32,6 +32,7 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; +import gregtech.api.recipe.RecipeMap; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; @@ -87,6 +88,11 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase getRecipeMap() { + return LanthanidesRecipeMaps.dissolutionTankRecipes; + } + @Override public boolean checkRecipe(ItemStack itemStack) { // GT_Log.out.print("in checkRecipe"); @@ -96,7 +102,7 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase electroRecipeMap = GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.mRecipeList; HashSet toDel = new HashSet<>(); ItemStack[] toRemove = { Materials.Scheelite.getDust(1), Materials.Tungstate.getDust(1), WerkstoffLoader.Ferberite.get(dust, 1), WerkstoffLoader.Huebnerit.get(dust, 1) }; - for (GT_Recipe tRecipe : electroRecipeMap) { + for (GT_Recipe tRecipe : electrolyzerRecipes.getAllRecipes()) { if (tRecipe.mFakeRecipe) continue; for (int i = 0; i < tRecipe.mInputs.length; i++) { ItemStack tItem = tRecipe.mInputs[i]; @@ -272,7 +271,7 @@ public class BotRecipes { } } } - electroRecipeMap.removeAll(toDel); - GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.reInit(); + electrolyzerRecipes.getBackend().removeRecipes(toDel); + electrolyzerRecipes.getBackend().reInit(); } } diff --git a/src/main/java/com/elisis/gtnhlanth/loader/RecipeAdder.java b/src/main/java/com/elisis/gtnhlanth/loader/RecipeAdder.java deleted file mode 100644 index d8f3e7ff29..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/loader/RecipeAdder.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.elisis.gtnhlanth.loader; - -import java.util.Collection; -import java.util.HashSet; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; -import net.minecraftforge.fluids.FluidStack; - -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.util.GT_Recipe; -import gregtech.nei.HeatingCoilSpecialValueFormatter; - -public class RecipeAdder { - - public static final RecipeAdder instance = new RecipeAdder(); - - public final DigestMap DigesterRecipes = (DigestMap) new DigestMap( - new HashSet<>(100), - "gtnhlanth.recipe.digester", - StatCollector.translateToLocal("tile.recipe.digester"), - null, - "gtnhlanth:textures/gui/Digester", - 1, - 1, - 1, - 1, - 1, - StatCollector.translateToLocal("value.digester") + ": ", // Heat Capacity - 1, - "K", - false, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) - .setNEISpecialInfoFormatter(HeatingCoilSpecialValueFormatter.INSTANCE); - - public final DissolutionTankMap DissolutionTankRecipes = (DissolutionTankMap) new DissolutionTankMap( - new HashSet<>(100), - "gtnhlanth.recipe.disstank", - StatCollector.translateToLocal("tile.recipe.disstank"), - null, - "gtnhlanth:textures/gui/Disstank", - 2, - 3, - 1, - 1, - 1, - StatCollector.translateToLocal("value.disstank") + ": ", // Ratio - 1, - ":1", - false, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE).setUsualFluidInputCount(2); - - public class DigestMap extends GT_Recipe.GT_Recipe_Map { - - public DigestMap(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, - String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - public void addDigesterRecipe(FluidStack[] fluidInputs, ItemStack[] itemInputs, FluidStack fluidOutput, - ItemStack[] itemOutputs, int EUt, int ticks, int heat) { - super.addRecipe( - false, - itemInputs, - itemOutputs, - null, - fluidInputs, - new FluidStack[] { fluidOutput }, - ticks, - EUt, - heat); - } - } - - public class DissolutionTankMap extends GT_Recipe.GT_Recipe_Map { - - public DissolutionTankMap(Collection aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, - int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, - int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, - boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - /** Higher part input fluid first, always **/ - public void addDissolutionTankRecipe(FluidStack[] fluidInputs, ItemStack[] itemInputs, FluidStack fluidOutput, - ItemStack[] itemOutputs, int EUt, int ticks, int ratio) { - super.addRecipe( - false, - itemInputs, - itemOutputs, - null, - fluidInputs, - new FluidStack[] { fluidOutput }, - ticks, - EUt, - ratio); - } - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java b/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java index 950c274475..3b5ebf6f4e 100644 --- a/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java +++ b/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java @@ -1,8 +1,32 @@ package com.elisis.gtnhlanth.loader; +import static com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps.digesterRecipes; +import static com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps.dissolutionTankRecipes; import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.*; +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.distillationTowerRecipes; +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.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.GT_RecipeBuilder.SECONDS; import static gregtech.common.items.GT_MetaGenerated_Item_01.registerCauldronCleaningFor; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.simpleWasherRecipes; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.vacuumFurnaceRecipes; import java.lang.reflect.Constructor; import java.lang.reflect.Field; @@ -38,7 +62,6 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; -import gregtech.api.util.GTPP_Recipe; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -376,38 +399,37 @@ public class RecipeLoader { // CHAIN BEGIN // MONAZITE - RecipeAdder.instance.DigesterRecipes.addDigesterRecipe( - new FluidStack[] { Materials.NitricAcid.getFluid(700) }, - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Monazite, 2) }, - WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(400), - new ItemStack[] { Materials.SiliconDioxide.getDust(1) }, - 1920, - 400, - 800); + GT_Values.RA.stdBuilder().fluidInputs(Materials.NitricAcid.getFluid(700)) + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Monazite, 2)) + .fluidOutputs(WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(400)) + .itemOutputs(Materials.SiliconDioxide.getDust(1)).eut(1920).duration(400).specialValue(800) + .addTo(digesterRecipes); - RecipeAdder.instance.DissolutionTankRecipes.addDissolutionTankRecipe( - new FluidStack[] { Materials.Water.getFluid(10000), - WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(1000) }, - new ItemStack[] { GT_Utility.getIntegratedCircuit(1), Materials.Saltpeter.getDust(1) }, - WerkstoffMaterialPool.DilutedRareEarthMonaziteMud.getFluidOrGas(11000), - new ItemStack[] { WerkstoffMaterialPool.HafniaZirconiaBlend.get(OrePrefixes.dustTiny, 4), - WerkstoffLoader.Thorianit.get(OrePrefixes.dust, 1), Materials.Monazite.getDustTiny(2) }, - 480, - 900, - 10); - - RecipeAdder.instance.DissolutionTankRecipes.addDissolutionTankRecipe( - new FluidStack[] { Materials.Water.getFluid(90000), - WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(9000) }, - new ItemStack[] { GT_Utility.getIntegratedCircuit(9), Materials.Saltpeter.getDust(9) }, - WerkstoffMaterialPool.DilutedRareEarthMonaziteMud.getFluidOrGas(99000), - new ItemStack[] { WerkstoffMaterialPool.HafniaZirconiaBlend.get(OrePrefixes.dust, 4), - WerkstoffLoader.Thorianit.get(OrePrefixes.dust, 9), Materials.Monazite.getDust(2) }, - 480, - 8100, - 10); + GT_Values.RA.stdBuilder() + .fluidInputs( + Materials.Water.getFluid(10000), + WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(1000)) + .itemInputs(GT_Utility.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(480).duration(900).specialValue(10).noOptimize().addTo(dissolutionTankRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs( + Materials.Water.getFluid(90000), + WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(9000)) + .itemInputs(GT_Utility.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(480).duration(8100).specialValue(10).noOptimize().addTo(dissolutionTankRecipes); - GT_Recipe.GT_Recipe_Map.sSifterRecipes.addRecipe( + sifterRecipes.addRecipe( false, null, new ItemStack[] { WerkstoffMaterialPool.MonaziteSulfate.get(OrePrefixes.dust, 1), @@ -560,7 +582,7 @@ public class RecipeLoader { 220, 120); - GT_Recipe.GT_Recipe_Map.sSifterRecipes.addRecipe( + sifterRecipes.addRecipe( false, null, new ItemStack[] { WerkstoffMaterialPool.CeriumDioxide.get(OrePrefixes.dust, 1) }, @@ -608,7 +630,7 @@ public class RecipeLoader { // END Cerium (NMLC) - GT_Recipe.GT_Recipe_Map.sVacuumRecipes.addRecipe( // Uses fluid, outputs item. Yet another hacky recipe + vacuumFreezerRecipes.addRecipe( // Uses fluid, outputs item. Yet another hacky recipe false, null, new ItemStack[] { WerkstoffMaterialPool.CooledMonaziteRareEarthConcentrate.get(OrePrefixes.dust, 1), // TODO: @@ -740,14 +762,11 @@ public class RecipeLoader { 1920); // BASTNASITE (god help me) - RecipeAdder.instance.DigesterRecipes.addDigesterRecipe( - new FluidStack[] { Materials.NitricAcid.getFluid(700) }, - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Bastnasite, 2) }, - WerkstoffMaterialPool.MuddyRareEarthBastnasiteSolution.getFluidOrGas(400), - new ItemStack[] { Materials.SiliconDioxide.getDust(1) }, - 1920, - 400, - 800); + GT_Values.RA.stdBuilder().fluidInputs(Materials.NitricAcid.getFluid(700)) + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Bastnasite, 2)) + .fluidOutputs(WerkstoffMaterialPool.MuddyRareEarthBastnasiteSolution.getFluidOrGas(400)) + .itemOutputs(Materials.SiliconDioxide.getDust(1)).eut(1920).duration(400).specialValue(800) + .addTo(digesterRecipes); GT_Values.RA.addCrackingRecipe( 1, @@ -768,17 +787,16 @@ public class RecipeLoader { 800, 120); - RecipeAdder.instance.DissolutionTankRecipes.addDissolutionTankRecipe( - new FluidStack[] { Materials.Water.getFluid(10000), - WerkstoffMaterialPool.ConditionedBastnasiteMud.getFluidOrGas(1000) }, - new ItemStack[] { Materials.Saltpeter.getDust(1) }, - WerkstoffMaterialPool.DiltedRareEarthBastnasiteMud.getFluidOrGas(11000), - new ItemStack[] { WerkstoffMaterialPool.Gangue.get(OrePrefixes.dust, 1) }, - 1920, - 1000, - 10); - - GT_Recipe.GT_Recipe_Map.sSifterRecipes.addRecipe( + GT_Values.RA.stdBuilder() + .fluidInputs( + Materials.Water.getFluid(10000), + WerkstoffMaterialPool.ConditionedBastnasiteMud.getFluidOrGas(1000)) + .itemInputs(Materials.Saltpeter.getDust(1)) + .fluidOutputs(WerkstoffMaterialPool.DiltedRareEarthBastnasiteMud.getFluidOrGas(11000)) + .itemOutputs(WerkstoffMaterialPool.Gangue.get(OrePrefixes.dust, 1)).eut(1920).duration(1000) + .specialValue(10).noOptimize().addTo(dissolutionTankRecipes); + + sifterRecipes.addRecipe( false, null, new ItemStack[] { Materials.SiliconDioxide.getDust(1), Materials.Rutile.getDust(1), @@ -990,357 +1008,340 @@ public class RecipeLoader { GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Lanthanum, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(LanthanumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(LanthanumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(LanthanumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( LanthanumExtractingNanoResin.getFluidOrGas(1000), LanthanumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledLanthanumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Praseodymium Part // Digester to produce Praseodymium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Praseodymium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(PraseodymiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800) - .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(PraseodymiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(PraseodymiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800) - .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( PraseodymiumExtractingNanoResin.getFluidOrGas(1000), PraseodymiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Cerium Part // Digester to produce Cerium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Cerium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(CeriumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(CeriumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(CeriumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( CeriumExtractingNanoResin.getFluidOrGas(1000), CeriumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledCeriumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Neodymium Part // Digester to produce Neodymium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Neodymium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(NeodymiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( NeodymiumExtractingNanoResin.getFluidOrGas(1000), NeodymiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Neodymium Part // Digester to produce Neodymium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Neodymium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(NeodymiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( NeodymiumExtractingNanoResin.getFluidOrGas(1000), NeodymiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Promethium Part // Digester to produce Neodymium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Promethium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800) - .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(PromethiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800) - .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( PromethiumExtractingNanoResin.getFluidOrGas(1000), PromethiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledPromethiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Promethium Part // Digester to produce Promethium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Promethium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800) - .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(PromethiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800) - .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( PromethiumExtractingNanoResin.getFluidOrGas(1000), PromethiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledPromethiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Samarium Part // Digester to produce Samarium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Samarium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(SamariumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(SamariumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(SamariumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( SamariumExtractingNanoResin.getFluidOrGas(1000), SamariumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledSamariumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Europium Part // Digester to produce Europium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Europium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(EuropiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(EuropiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(EuropiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( EuropiumExtractingNanoResin.getFluidOrGas(1000), EuropiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledEuropiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Gadolinium Part // Digester to produce Gadolinium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Gadolinium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(GadoliniumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800) - .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(GadoliniumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(GadoliniumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800) - .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( GadoliniumExtractingNanoResin.getFluidOrGas(1000), GadoliniumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Terbium Part // Digester to produce Terbium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Terbium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(TerbiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(TerbiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(TerbiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( TerbiumExtractingNanoResin.getFluidOrGas(1000), TerbiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledTerbiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Dysprosium Part // Digester to produce Dysprosium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Dysprosium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(DysprosiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800) - .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(DysprosiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(DysprosiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800) - .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .eut(TierEU.RECIPE_ZPM).duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( DysprosiumExtractingNanoResin.getFluidOrGas(1000), DysprosiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Holmium Part // Digester to produce Holmium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Holmium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(HolmiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(HolmiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(HolmiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( HolmiumExtractingNanoResin.getFluidOrGas(1000), HolmiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledHolmiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Erbium Part // Digester to produce Erbium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Erbium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(ErbiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(ErbiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(ErbiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( ErbiumExtractingNanoResin.getFluidOrGas(1000), ErbiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledErbiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Thulium Part // Digester to produce Thulium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Thulium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(ThuliumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(ThuliumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(ThuliumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( ThuliumExtractingNanoResin.getFluidOrGas(1000), ThuliumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledThuliumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Ytterbium Part // Digester to produce Ytterbium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Ytterbium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(YtterbiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(YtterbiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(YtterbiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( YtterbiumExtractingNanoResin.getFluidOrGas(1000), YtterbiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(multiblockChemicalReactorRecipes); // Lutetium Part // Digester to produce Lutetium Chloride Concentrate GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Lutetium, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(3)).fluidInputs(Materials.Chlorine.getGas(36000)) .fluidOutputs(LutetiumChlorideConcentrate.getFluidOrGas(3000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); GT_Values.RA.stdBuilder().itemInputs(LutetiumOreConcentrate.get(OrePrefixes.dust, 1)) .itemOutputs(Materials.SiliconDioxide.getDust(1)).fluidInputs(Materials.Chlorine.getGas(12000)) .fluidOutputs(LutetiumChlorideConcentrate.getFluidOrGas(1000)).specialValue(800).eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS).addTo(RecipeAdder.instance.DigesterRecipes); + .duration(2 * SECONDS).addTo(digesterRecipes); // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder().noItemInputs() + GT_Values.RA.stdBuilder() .fluidInputs( LutetiumExtractingNanoResin.getFluidOrGas(1000), LutetiumChlorideConcentrate.getFluidOrGas(1000)) - .noItemOutputs() .fluidOutputs( FilledLutetiumExtractingNanoResin.getFluidOrGas(1000), ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV).duration(1 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes); + .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 @@ -1351,9 +1352,9 @@ public class RecipeLoader { GT_ModHandler.getModItem("dreamcraft", "item.MysteriousCrystalLens", 0), Materials.Lanthanum.getDust(1), Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)).noItemOutputs() + .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) .fluidOutputs(LanthanumExtractingNanoResin.getFluidOrGas(1000)).eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes); + .duration(10 * SECONDS).addTo(laserEngraverRecipes); // Praseodymium GT_Values.RA.stdBuilder() @@ -1361,9 +1362,9 @@ public class RecipeLoader { GT_ModHandler.getModItem("dreamcraft", "item.MysteriousCrystalLens", 0), Materials.Praseodymium.getDust(1), Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)).noItemOutputs() + .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) .fluidOutputs(PraseodymiumExtractingNanoResin.getFluidOrGas(1000)).eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes); + .duration(10 * SECONDS).addTo(laserEngraverRecipes); // Cerium GT_Values.RA.stdBuilder() @@ -1371,9 +1372,9 @@ public class RecipeLoader { GT_ModHandler.getModItem("dreamcraft", "item.MysteriousCrystalLens", 0), Materials.Cerium.getDust(1), Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)).noItemOutputs() + .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) .fluidOutputs(CeriumExtractingNanoResin.getFluidOrGas(1000)).eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes); + .duration(10 * SECONDS).addTo(laserEngraverRecipes); // Neodymium GT_Values.RA.stdBuilder() @@ -1381,9 +1382,9 @@ public class RecipeLoader { GT_ModHandler.getModItem("dreamcraft", "item.MysteriousCrystalLens", 0), Materials.Neodymium.getDust(1), Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)).noItemOutputs() + .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) .fluidOutputs(NeodymiumExtractingNanoResin.getFluidOrGas(1000)).eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes); + .duration(10 * SECONDS).addTo(laserEngraverRecipes); // Promethium GT_Values.RA.stdBuilder() @@ -1391,9 +1392,9 @@ public class RecipeLoader { GT_ModHandler.getModItem("dreamcraft", "item.MysteriousCrystalLens", 0), Materials.Promethium.getDust(1), Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)).noItemOutputs() + .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) .fluidOutputs(PromethiumExtractingNanoResin.getFluidOrGas(1000)).eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes); + .duration(10 * SECONDS).addTo(laserEngraverRecipes); // Sm GT_Values.RA.stdBuilder() @@ -1401,9 +1402,9 @@ public class RecipeLoader { GT_ModHandler.getModItem("dreamcraft", "item.MysteriousCrystalLens", 0), Materials.Samarium.getDust(1), Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)).noItemOutputs() + .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) .fluidOutputs(SamariumExtractingNanoResin.getFluidOrGas(1000)).eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes); + .duration(10 * SECONDS).addTo(laserEngraverRecipes); // Europium GT_Values.RA.stdBuilder() @@ -1411,9 +1412,9 @@ public class RecipeLoader { GT_ModHandler.getModItem("dreamcraft", "item.MysteriousCrystalLens", 0), Materials.Europium.getDust(1), Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)).noItemOutputs() + .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) .fluidOutputs(EuropiumExtractingNanoResin.getFluidOrGas(1000)).eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS).addTo(GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes); + .duration(10 * SECONDS).addTo(laserEngraverRecipes); // Gadolinium GT_Values.RA.stdBuilder() @@ -1421,9 +1422,9 @@ public class RecipeLoader { GT_ModHandler.getModItem("dreamcraft", "item.MysteriousCrystalLens", 0), Materials.Gadolinium.getDust(1), Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)).noItemOutputs() + .fluidInputs(MyMaterial.P507.g