diff options
| author | boubou19 <miisterunknown@gmail.com> | 2024-07-21 16:36:34 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-21 21:36:34 +0700 |
| commit | a8b46c11f5a02608101ef33ed39f103736ba5920 (patch) | |
| tree | 6daf492e524dcae9f2f5a8cb1d87c057c21a6760 /src/main/java/gtPlusPlus/xmod/gregtech/loaders | |
| parent | 8b077c28bea7bcc046be1e4b8485d69b4c245a43 (diff) | |
| download | GT5-Unofficial-a8b46c11f5a02608101ef33ed39f103736ba5920.tar.gz GT5-Unofficial-a8b46c11f5a02608101ef33ed39f103736ba5920.tar.bz2 GT5-Unofficial-a8b46c11f5a02608101ef33ed39f103736ba5920.zip | |
full RA1 removal (#2713)
* remove addExtractionRecipes
* remove addPulverisationRecipe
* remove thermalcraft fake compat
* deprecate addAlloySmelterRecipe
* remove fake compat
* remove RA1 fusion recipe usage
* remove RA1 centrifuge recipe usage
* remove RA1 compressor recipe usage
* remove RA1 electrolyzer recipe usage
* remove RA1 chemical reactor recipe usage
* deprecate GT based recipes adders
* obliterate RA1 entries in interfaces (1/?)
* remove RA1 blast furnace recipe usage
* remove RA1 canner recipe usage
* remove RA1 alloy smelter recipe usage
* remove RA1 circuit assembler recipe usage
* obliterate RA1 entries in interfaces (2/?)
* remove RA1 bender recipe usage
* clean class
* remove RA1 cutter recipe usage
* remove RA1 fuels recipe usage
* remove RA1 implosion compressor recipe usage
* remove RA1 thermal centrifuge recipe usage
* clean GT_ModHandler
* obliterate RA1 entries in interfaces (3/?)
* remove RA1 packager recipe usage
* remove RA1 lathe recipe usage
* remove RA1 vacuum freezer recipe usage
* remove RA1 fluid heater recipe usage
* remove RA1 nano forge recipe usage
* remove RA1 autoclave recipe usage
* obliterate RA1 entries in interfaces (4/?)
* remove RA1 cracker recipe usage
* remove RA1 pyrolyse recipe usage
* remove RA1 pulveriser recipe usage
* remove RA1 fluid extractor recipe usage
* remove RA1 assembly line recipe usage
* remove RA1 alloy blast smelter recipe usage
* remove RA1 coke oven recipe usage
* obliterate RA1 entries in interfaces (5/?)
* remove RA1 dehydrator recipe usage
* remove deprecated usages
* obliterate RA1 entries in interfaces (6/?)
* remove RA1 assembler recipe usage
* obliterate RA1 entries in interfaces (7/?)
* remove RA1 mixer recipe usage
* remove RA1 forge hammer recipe usage
* remove RA1 wiremill recipe usage
* remove RA1 extruder recipe usage
* remove RA1 fluid soldifier recipe usage
* remove RA1 chemical bath recipe usage
* remove RA1 electromagnetic separator recipe usage
* remove RA1 sifter recipe usage
* remove distillery recipe usage
* remove distillation tower usage
* remove extractor usage
* obliterate RA1 entries in interfaces (8/?)
* remove QFT usage
* cleaning
* remove packager usage
* remove fluid heater usage
* remove vacuum freezer usage
* remove distillery usage
* fix QFT chances arrays
* remove fission fuel usage
* remove cyclotron usage
* remove molecular transformer usage
* remove chemplant usage
* remove coldtrap and reactor processing unit usage
* obliterate RA1 entries in interfaces (9/?)
* spotlessApply
* fixes
* remove addRecipe calls
* migrate forge of gods recipes
* yeet special value calls (1 / 2)
* yeet special value calls (2 / 2)
* migrate GG Fuel recipes
* migrate all GG maps except EHE
* CORE.RA is no more
* clear GT_RecipeAdder
* remove dead code
* clean RecipeMap a bit
* spotless apply
* fix output chances
* Update RecipeLoader.java
* fix
* remove buggy recipe
* migrate to enum for IDs
* sort enum
* move to enum
* fix recipes
* spotless apply
* fix recipe
* remove useless recipes
* spotless apply
* remove unused blocks
* fix GT++ recipe
* Update RecipeLoader.java
* Update RecipeLoader.java
* fix imports
* Spotless apply for branch remove_RA1_calls for #2713 (#2742)
spotlessApply
Co-authored-by: GitHub GTNH Actions <>
* fix recipe
(cherry picked from commit a25d3b62997f080e064369e940eaf53a96a300e6)
* fix
(cherry picked from commit d9af01140f3ee77de2be18be70f04f8fbe4b547f)
* temporarily remove panic mode
* fix recipes
* Revert "temporarily remove panic mode"
This reverts commit 483cfcf74371b91e7d545f058f9d25ff4fcec95a.
* fix recipes
---------
Co-authored-by: Dream Master <dream-master@gmx.net>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/loaders')
21 files changed, 2964 insertions, 2741 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java index d455697330..b56a480c0c 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java @@ -1,5 +1,7 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; + import java.util.HashSet; import java.util.Set; @@ -30,34 +32,38 @@ public class RecipeGen_AlloySmelter extends RecipeGen_Base { private void generateRecipes(final Material material) { final int tVoltageMultiplier = material.vVoltageMultiplier; - + final long duration = Math.max(material.getMass() * 2L, 1L); // Nuggets if (ItemUtils.checkForInvalidItems(material.getIngot(1)) - && ItemUtils.checkForInvalidItems(material.getNugget(1))) - GT_Values.RA.addAlloySmelterRecipe( - material.getIngot(1), - ItemList.Shape_Mold_Nugget.get(0), - material.getNugget(9), - (int) Math.max(material.getMass() * 2L, 1L), - tVoltageMultiplier); + && ItemUtils.checkForInvalidItems(material.getNugget(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(material.getIngot(1), ItemList.Shape_Mold_Nugget.get(0)) + .itemOutputs(material.getNugget(9)) + .duration(duration) + .eut(tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } // Gears - if (ItemUtils.checkForInvalidItems(material.getIngot(1)) && ItemUtils.checkForInvalidItems(material.getGear(1))) - GT_Values.RA.addAlloySmelterRecipe( - material.getIngot(8), - ItemList.Shape_Mold_Gear.get(0), - material.getGear(1), - (int) Math.max(material.getMass() * 2L, 1L), - tVoltageMultiplier); + if (ItemUtils.checkForInvalidItems(material.getIngot(1)) + && ItemUtils.checkForInvalidItems(material.getGear(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(material.getIngot(8), ItemList.Shape_Mold_Gear.get(0)) + .itemOutputs(material.getGear(1)) + .duration(duration) + .eut(tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } // Ingot if (ItemUtils.checkForInvalidItems(material.getIngot(1)) - && ItemUtils.checkForInvalidItems(material.getNugget(1))) - GT_Values.RA.addAlloySmelterRecipe( - material.getNugget(9), - ItemList.Shape_Mold_Ingot.get(0), - material.getIngot(1), - (int) Math.max(material.getMass() * 2L, 1L), - tVoltageMultiplier); + && ItemUtils.checkForInvalidItems(material.getNugget(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(material.getNugget(9), ItemList.Shape_Mold_Ingot.get(0)) + .itemOutputs(material.getIngot(1)) + .duration(duration) + .eut(tVoltageMultiplier) + .addTo(alloySmelterRecipes); + } } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Assembler.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Assembler.java index 1594568d23..8256b73a44 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Assembler.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Assembler.java @@ -1,11 +1,15 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + import java.util.HashSet; import java.util.Set; import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_Utility; import gtPlusPlus.api.interfaces.RunnableWithInfo; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialGenerator; @@ -33,13 +37,14 @@ public class RecipeGen_Assembler extends RecipeGen_Base { private void generateRecipes(final Material material) { // Frame Box - if (ItemUtils.checkForInvalidItems(new ItemStack[] { material.getRod(1), material.getFrameBox(1) })) - GT_Values.RA.addAssemblerRecipe( - material.getRod(4), - ItemUtils.getGregtechCircuit(4), - material.getFrameBox(1), - 60, - material.vVoltageMultiplier); + if (ItemUtils.checkForInvalidItems(new ItemStack[] { material.getRod(1), material.getFrameBox(1) })) { + GT_Values.RA.stdBuilder() + .itemInputs(material.getRod(4), GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(material.getFrameBox(1)) + .duration(3 * SECONDS) + .eut(material.vVoltageMultiplier) + .addTo(assemblerRecipes); + } // Rotor if (ItemUtils @@ -52,18 +57,29 @@ public class RecipeGen_Assembler extends RecipeGen_Base { material.vVoltageMultiplier); } + @Deprecated private static void addAssemblerRecipe(final ItemStack input1, final ItemStack input2, final ItemStack output1, final int seconds, final int euCost) { - GT_Values.RA.addAssemblerRecipe( - input1, - input2, - FluidUtils.getFluidStack("molten.solderingalloy", 16), - output1, - seconds, - euCost); - GT_Values.RA - .addAssemblerRecipe(input1, input2, FluidUtils.getFluidStack("molten.tin", 32), output1, seconds, euCost); - GT_Values.RA - .addAssemblerRecipe(input1, input2, FluidUtils.getFluidStack("molten.lead", 48), output1, seconds, euCost); + GT_Values.RA.stdBuilder() + .itemInputs(input1, input2) + .itemOutputs(output1) + .fluidInputs(FluidUtils.getFluidStack("molten.solderingalloy", 16)) + .duration(seconds) + .eut(euCost) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(input1, input2) + .itemOutputs(output1) + .fluidInputs(FluidUtils.getFluidStack("molten.tin", 32)) + .duration(seconds) + .eut(euCost) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(input1, input2) + .itemOutputs(output1) + .fluidInputs(FluidUtils.getFluidStack("molten.lead", 48)) + .duration(seconds) + .eut(euCost) + .addTo(assemblerRecipes); } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java index 2d573c9fb7..8213aee95e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java @@ -1,7 +1,13 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.alloyBlastSmelterRecipes; + import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; +import java.util.List; +import java.util.Objects; import java.util.Set; import net.minecraft.item.ItemStack; @@ -9,11 +15,11 @@ import net.minecraftforge.fluids.FluidStack; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_Utility; import gtPlusPlus.api.interfaces.RunnableWithInfo; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.recipe.GTPPRecipeCategories; -import gtPlusPlus.api.recipe.GTPPRecipeMaps; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.ALLOY; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialGenerator; @@ -46,276 +52,260 @@ public class RecipeGen_BlastSmelter extends RecipeGen_Base { private void generateARecipe(final Material M) { // Add a Blast Smelting Recipe, Let's go! - ItemStack tStack; - if (null != (tStack = M.getDust(1))) { - - final Material[] badMaterials = { FLUORIDES.THORIUM_HEXAFLUORIDE, FLUORIDES.THORIUM_TETRAFLUORIDE, - ALLOY.BLOODSTEEL, NUCLIDE.LiFBeF2ThF4UF4, NUCLIDE.LiFBeF2ZrF4UF4, NUCLIDE.LiFBeF2ZrF4U235 }; - for (final Material R : badMaterials) { - if (M == R) { - return; - } + ItemStack tStack = M.getDust(1); + if (tStack == null) { + return; + } + + final Material[] badMaterials = { FLUORIDES.THORIUM_HEXAFLUORIDE, FLUORIDES.THORIUM_TETRAFLUORIDE, + ALLOY.BLOODSTEEL, NUCLIDE.LiFBeF2ThF4UF4, NUCLIDE.LiFBeF2ZrF4UF4, NUCLIDE.LiFBeF2ZrF4U235 }; + for (final Material R : badMaterials) { + if (M == R) { + return; } + } - // Prepare some Variables - ItemStack[] components; - ArrayList<MaterialStack> tMaterial = new ArrayList<>(); - int inputStackCount = 0; - int fluidAmount = 0; - final boolean doTest = true; - tMaterial = M.getComposites(); + // Prepare some Variables + ItemStack[] components; + ArrayList<MaterialStack> tMaterial = new ArrayList<>(); + int inputStackCount = 0; + int fluidAmount = 0; + final boolean doTest = true; + tMaterial = M.getComposites(); - // This Bad boy here is what dictates unique recipes. - ItemStack circuitGT; + // This Bad boy here is what dictates unique recipes. + ItemStack circuitGT; - // Set a duration - OLD - /* - * int duration = 0; if (M.getMeltingPointK() > 150){ duration = (int) Math.max(M.getMass() / 50L, 1L) * - * M.getMeltingPointK(); } else { duration = (int) Math.max(M.getMass() / 50L, 1L) * 150; } - */ + long aVoltage = MaterialUtils.getVoltageForTier(M.vTier); - long aVoltage = MaterialUtils.getVoltageForTier(M.vTier); + // Set a duration + int duration = 120 * M.vTier * 10; - // Set a duration - NEW - int duration = 120 * M.vTier * 10; + if (M.vTier <= 4) { + duration = 20 * M.vTier * 10; + } + + int mMaterialListSize = 0; + + int mTotalPartsCounter = M.smallestStackSizeWhenProcessing; - if (M.vTier <= 4) { - duration = 20 * M.vTier * 10; + if (M.getComposites() != null) { + for (final gtPlusPlus.core.material.MaterialStack ternkfsdf : M.getComposites()) { + if (ternkfsdf != null) { + mMaterialListSize++; + } } + } else { + mMaterialListSize = 1; + } - int mMaterialListSize = 0; + if (duration <= 0) { + final int second = 20; + duration = 14 * second * mMaterialListSize * 8; + } - int mTotalPartsCounter = M.smallestStackSizeWhenProcessing; + Logger.WARNING("[BAS] Size: " + mMaterialListSize); + + // Make a simple one Material MaterialStack[] and log it for validity. + circuitGT = GT_Utility.getIntegratedCircuit(1); + final ItemStack[] tItemStackTest = new ItemStack[] { circuitGT, tStack }; + inputStackCount = 1; + fluidAmount = 144 * inputStackCount; + Logger.WARNING( + "[BAS] Adding an Alloy Blast Smelter Recipe for " + M.getLocalizedName() + + ". Gives " + + fluidAmount + + "L of molten metal."); + for (int das = 0; das < tItemStackTest.length; das++) { + if (tItemStackTest[das] != null) { + Logger.WARNING( + "[BAS] tMaterial[" + das + + "]: " + + tItemStackTest[das].getDisplayName() + + " Meta: " + + tItemStackTest[das].getItemDamage() + + ", Amount: " + + tItemStackTest[das].stackSize); + } + } - if (M.getComposites() != null) { - for (final gtPlusPlus.core.material.MaterialStack ternkfsdf : M.getComposites()) { - if (ternkfsdf != null) { - mMaterialListSize++; - // mTotalPartsCounter += ternkfsdf.getSmallestStackSizes()[0]; - } - } + final boolean hasMoreInputThanACircuit = (tItemStackTest.length > 1); + + // Generate Recipes for all singular materials that can be made molten. + if (hasMoreInputThanACircuit) { + if (M.requiresBlastFurnace()) { + GT_Values.RA.stdBuilder() + .itemInputs(tItemStackTest) + .fluidOutputs(M.getFluidStack(fluidAmount)) + .duration(duration / (mTotalPartsCounter > 0 ? mTotalPartsCounter : 1)) + .eut(aVoltage) + .recipeCategory(GTPPRecipeCategories.absNonAlloyRecipes) + .addTo(alloyBlastSmelterRecipes); } else { - mMaterialListSize = 1; + Logger.WARNING("[BAS] Failed."); } + } else { + GT_Values.RA.stdBuilder() + .itemInputs(tItemStackTest) + .fluidOutputs(M.getFluidStack(fluidAmount)) + .eut(aVoltage) + .duration(duration / (mTotalPartsCounter > 0 ? mTotalPartsCounter : 1) / 2) + .addTo(alloyBlastSmelterRecipes); + + Logger.WARNING("[BAS] Success."); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ingot.get(0)) + .itemOutputs(M.getIngot(1)) + .fluidInputs(M.getFluidStack(144)) + .duration(duration / 2) + .eut(60) + .addTo(fluidSolidifierRecipes); + + Logger.WARNING("[BAS] Success, Also added a Fluid solidifier recipe."); + + } + + if (tMaterial == null) { + Logger.WARNING("[BAS] doTest: " + doTest + " | tMaterial == null: true"); + return; + } + + // Reset the Variables for compounds if last recipe was a success. + inputStackCount = 0; + + if (mMaterialListSize <= 1) { + return; + } + // If this Material has some kind of compound list, proceed + + final gtPlusPlus.core.material.MaterialStack[] tempStack = new gtPlusPlus.core.material.MaterialStack[mMaterialListSize]; + circuitGT = GT_Utility.getIntegratedCircuit(mMaterialListSize); - if (duration <= 0) { - final int second = 20; - duration = 14 * second * mMaterialListSize * 8; + // Builds me a MaterialStack[] from the MaterialList of M. + int ooo = 0; + for (final gtPlusPlus.core.material.MaterialStack xMaterial : M.getComposites()) { + if (xMaterial == null) { + ooo++; + continue; } - Logger.WARNING("[BAS] Size: " + mMaterialListSize); + if (xMaterial.getStackMaterial() == null) { + tempStack[ooo] = xMaterial; + ooo++; + continue; + } - // Make a simple one Material MaterialStack[] and log it for validity. - circuitGT = ItemUtils.getGregtechCircuit(1); - final ItemStack[] tItemStackTest = new ItemStack[] { circuitGT, tStack }; - inputStackCount = 1; - fluidAmount = 144 * inputStackCount; Logger.WARNING( - "[BAS] Adding an Alloy Blast Smelter Recipe for " + M.getLocalizedName() - + ". Gives " - + fluidAmount - + "L of molten metal."); - for (int das = 0; das < tItemStackTest.length; das++) { - if (tItemStackTest[das] != null) { - Logger.WARNING( - "[BAS] tMaterial[" + das - + "]: " - + tItemStackTest[das].getDisplayName() - + " Meta: " - + tItemStackTest[das].getItemDamage() - + ", Amount: " - + tItemStackTest[das].stackSize); - } + "[BAS] FOUND: " + xMaterial.getStackMaterial() + .getLocalizedName()); + Logger.WARNING( + "[BAS] ADDING: " + xMaterial.getStackMaterial() + .getLocalizedName()); + tempStack[ooo] = xMaterial; + ooo++; + } + + // Builds me an ItemStack[] of the materials. - Without a circuit - this gets a good count for + // the 144L fluid multiplier + components = new ItemStack[9]; + inputStackCount = 0; + FluidStack componentsFluid = null; + for (int irc = 0; irc < M.getComposites() + .size(); irc++) { + if (M.getComposites() + .get(irc) == null) { + continue; } - final boolean hasMoreInputThanACircuit = (tItemStackTest.length > 1); - - // Generate Recipes for all singular materials that can be made molten. - if (hasMoreInputThanACircuit) { - if (M.requiresBlastFurnace()) { - GT_Values.RA.stdBuilder() - .itemInputs(tItemStackTest) - .fluidOutputs(M.getFluidStack(fluidAmount)) - .duration(duration / (mTotalPartsCounter > 0 ? mTotalPartsCounter : 1)) - .eut(aVoltage) - .recipeCategory(GTPPRecipeCategories.absNonAlloyRecipes) - .addTo(GTPPRecipeMaps.alloyBlastSmelterRecipes); - } else { - Logger.WARNING("[BAS] Failed."); + final int r = (int) M.vSmallestRatio[irc]; + inputStackCount = inputStackCount + r; + if ((M.getComposites() + .get(irc) + .getStackMaterial() + .getState() != MaterialState.SOLID) || !ItemUtils.checkForInvalidItems( + M.getComposites() + .get(irc) + .getDustStack(r))) { + final int xr = r; + if ((xr > 0) && (xr <= 100)) { + final int mathmatics = (r * 1000); + componentsFluid = FluidUtils.getFluidStack( + M.getComposites() + .get(irc) + .getStackMaterial() + .getFluidStack(mathmatics), + mathmatics); } } else { - if (CORE.RA.addBlastSmelterRecipe( - tItemStackTest, - M.getFluidStack(fluidAmount), - 100, - duration / (mTotalPartsCounter > 0 ? mTotalPartsCounter : 1) / 2, - (int) aVoltage)) { - Logger.WARNING("[BAS] Success."); - if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Ingot.get(0), - M.getFluidStack(144), - M.getIngot(1), - duration / 2, - 60)) { - Logger.WARNING("[BAS] Success, Also added a Fluid solidifier recipe."); - /* - * if (GT_Values.RA.addFluidExtractionRecipe(M.getIngot(1), null, M.getFluidStack(144), 100, - * duration/2, 60)){ Logger.WARNING("[BAS] Success, Also added a Fluid Extractor recipe."); } if - * (GT_Values.RA.addFluidExtractionRecipe(M.getNugget(1), null, M.getFluidStack(16), 100, - * duration/2/9, 60)){ Logger.WARNING("[BAS] Success, Also added a Fluid Extractor recipe."); } - */ - /* - * if (GT_Values.RA.addFluidExtractionRecipe(M.getSmallDust(1), null, M.getFluid(36), 100, - * duration/2/4, 60)){ Logger.WARNING("[BAS] Success, Also added a Fluid Extractor recipe."); } - * if (GT_Values.RA.addFluidExtractionRecipe(M.getTinyDust(1), null, M.getFluid(16), 100, - * duration/2/9, 60)){ Logger.WARNING("[BAS] Success, Also added a Fluid Extractor recipe."); } - */ - } + components[irc] = M.getComposites() + .get(irc) + .getUnificatedDustStack(r); + } + } + + // Adds a circuit + if ((mMaterialListSize < 9) && (mMaterialListSize != 0)) { + final ItemStack[] components_NoCircuit = components; + // Builds me an ItemStack[] of the materials. - With a circuit + components = new ItemStack[components_NoCircuit.length + 1]; + for (int fr = 0; fr < components.length; fr++) { + if (fr == 0) { + components[0] = circuitGT; } else { - Logger.WARNING("[BAS] Failed."); + components[fr] = components_NoCircuit[fr - 1]; } } + Logger.WARNING( + "[BAS] Should have added a circuit. mMaterialListSize: " + mMaterialListSize + + " | circuit: " + + components[0].getDisplayName()); + } else { + Logger.WARNING("[BAS] Did not add a circuit. mMaterialListSize: " + mMaterialListSize); + } - if (tMaterial != null) { - // Reset the Variables for compounds if last recipe was a success. - inputStackCount = 0; - - // If this Material has some kind of compound list, proceed - if (mMaterialListSize > 1) { - final gtPlusPlus.core.material.MaterialStack[] tempStack = new gtPlusPlus.core.material.MaterialStack[mMaterialListSize]; - circuitGT = ItemUtils.getGregtechCircuit(mMaterialListSize); - // Just double checking - if (tempStack.length > 1) { - - // Builds me a MaterialStack[] from the MaterialList of M. - int ooo = 0; - for (final gtPlusPlus.core.material.MaterialStack xMaterial : M.getComposites()) { - if (xMaterial != null) { - if (xMaterial.getStackMaterial() != null) { - Logger.WARNING( - "[BAS] FOUND: " + xMaterial.getStackMaterial() - .getLocalizedName()); - Logger.WARNING( - "[BAS] ADDING: " + xMaterial.getStackMaterial() - .getLocalizedName()); - } - tempStack[ooo] = xMaterial; - } - ooo++; - } - - // Builds me an ItemStack[] of the materials. - Without a circuit - this gets a good count for - // the 144L fluid multiplier - components = new ItemStack[9]; - inputStackCount = 0; - FluidStack componentsFluid = null; - for (int irc = 0; irc < M.getComposites() - .size(); irc++) { - if (M.getComposites() - .get(irc) != null) { - final int r = (int) M.vSmallestRatio[irc]; - inputStackCount = inputStackCount + r; - if ((M.getComposites() - .get(irc) - .getStackMaterial() - .getState() != MaterialState.SOLID) - || !ItemUtils.checkForInvalidItems( - M.getComposites() - .get(irc) - .getDustStack(r))) { - final int xr = r; - if ((xr > 0) && (xr <= 100)) { - final int mathmatics = (r * 1000); - componentsFluid = FluidUtils.getFluidStack( - M.getComposites() - .get(irc) - .getStackMaterial() - .getFluidStack(mathmatics), - mathmatics); - } - } else { - components[irc] = M.getComposites() - .get(irc) - .getUnificatedDustStack(r); - } - } - } - - // Adds a circuit - if ((mMaterialListSize < 9) && (mMaterialListSize != 0)) { - final ItemStack[] components_NoCircuit = components; - // Builds me an ItemStack[] of the materials. - With a circuit - components = new ItemStack[components_NoCircuit.length + 1]; - for (int fr = 0; fr < components.length; fr++) { - if (fr == 0) { - components[0] = circuitGT; - } else { - components[fr] = components_NoCircuit[fr - 1]; - } - } - Logger.WARNING( - "[BAS] Should have added a circuit. mMaterialListSize: " + mMaterialListSize - + " | circuit: " - + components[0].getDisplayName()); - } else { - Logger.WARNING("[BAS] Did not add a circuit. mMaterialListSize: " + mMaterialListSize); - } - - // Set Fluid output - fluidAmount = 144 * inputStackCount; - - Logger.WARNING( - "[BAS] Adding an Alloy Blast Smelter Recipe for " + M.getLocalizedName() - + " using it's compound dusts. This material has " - + inputStackCount - + " parts. Gives " - + fluidAmount - + "L of molten metal."); - Logger.WARNING("[BAS] tMaterial.length: " + components.length + "."); - for (int das = 0; das < components.length; das++) { - if (components[das] != null) { - Logger.WARNING( - "[BAS] tMaterial[" + das - + "]: " - + components[das].getDisplayName() - + " Meta: " - + components[das].getItemDamage() - + ", Amount: " - + components[das].stackSize); - } - } - - // Adds Recipe - if (M.requiresBlastFurnace()) { - if (CORE.RA.addBlastSmelterRecipe( - components, - componentsFluid, - M.getFluidStack(fluidAmount), - 100, - duration, - (int) aVoltage)) { - Logger.WARNING("[BAS] Success."); - } else { - Logger.WARNING("[BAS] Failed."); - } - } else { - if (CORE.RA.addBlastSmelterRecipe( - components, - componentsFluid, - M.getFluidStack(fluidAmount), - 100, - duration, - (int) aVoltage / 2)) { - Logger.WARNING("[BAS] Success."); - } else { - Logger.WARNING("[BAS] Failed."); - } - } - } - } - } else { - Logger.WARNING("[BAS] doTest: " + doTest + " | tMaterial != null: " + (tMaterial != null)); + // Set Fluid output + fluidAmount = 144 * inputStackCount; + + Logger.WARNING( + "[BAS] Adding an Alloy Blast Smelter Recipe for " + M.getLocalizedName() + + " using it's compound dusts. This material has " + + inputStackCount + + " parts. Gives " + + fluidAmount + + "L of molten metal."); + Logger.WARNING("[BAS] tMaterial.length: " + components.length + "."); + for (int das = 0; das < components.length; das++) { + if (components[das] != null) { + Logger.WARNING( + "[BAS] tMaterial[" + das + + "]: " + + components[das].getDisplayName() + + " Meta: " + + components[das].getItemDamage() + + ", Amount: " + + components[das].stackSize); } } + + // Adds Recipe + GT_RecipeBuilder builder = GT_Values.RA.stdBuilder(); + List<ItemStack> inputs = Arrays.asList(components); + inputs.removeIf(Objects::isNull); + components = inputs.toArray(new ItemStack[0]); + + builder = builder.itemInputs(components); + if (componentsFluid != null) { + builder.fluidInputs(componentsFluid); + } + builder.fluidOutputs(M.getFluidStack(fluidAmount)); + + if (M.requiresBlastFurnace()) { + builder.eut(aVoltage); + } else { + builder.eut(aVoltage / 2); + } + builder.duration(duration) + .addTo(alloyBlastSmelterRecipes); + Logger.WARNING("[BAS] Success."); } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelterGT_GTNH.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelterGT_GTNH.java index 5398a6a0b5..0ac39d39bc 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelterGT_GTNH.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelterGT_GTNH.java @@ -13,11 +13,11 @@ import org.apache.commons.lang3.ArrayUtils; import gregtech.api.enums.GT_Values; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.minecraft.ItemStackData; import gtPlusPlus.api.recipe.GTPPRecipeCategories; import gtPlusPlus.api.recipe.GTPPRecipeMaps; -import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; @@ -201,7 +201,7 @@ public class RecipeGen_BlastSmelterGT_GTNH { // If no circuit was found, add a circuit here if (!circuitFound) { l = 1; - newInput[0] = CI.getNumberedCircuit(inputs.length); + newInput[0] = GT_Utility.getIntegratedCircuit(inputs.length); } for (ItemStack y : inputs) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java index 1499ea3cad..84e910c9b1 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java @@ -1,6 +1,17 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.enums.GT_Values.RA; +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.recipe.RecipeMaps.packagerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; + +import java.util.Arrays; import java.util.HashSet; +import java.util.List; +import java.util.Objects; import java.util.Set; import net.minecraft.item.ItemStack; @@ -12,13 +23,10 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.interfaces.RunnableWithInfo; import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.api.objects.data.AutoMap; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialGenerator; import gtPlusPlus.core.material.MaterialStack; import gtPlusPlus.core.material.state.MaterialState; -import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.RecipeUtils; @@ -113,11 +121,21 @@ public class RecipeGen_DustGeneration extends RecipeGen_Base { final ItemStack materialFrameBox = material.getFrameBox(1); if (ItemUtils.checkForInvalidItems(materialBlock)) { - GT_ModHandler.addPulverisationRecipe(materialBlock, material.getDust(9)); + RA.stdBuilder() + .itemInputs(materialBlock) + .itemOutputs(material.getDust(9)) + .eut(2) + .duration(20 * SECONDS) + .addTo(maceratorRecipes); } if (ItemUtils.checkForInvalidItems(materialFrameBox)) { - GT_ModHandler.addPulverisationRecipe(materialFrameBox, material.getDust(2)); + RA.stdBuilder() + .itemInputs(materialFrameBox) + .itemOutputs(material.getDust(2)) + .eut(2) + .duration(20 * SECONDS) + .addTo(maceratorRecipes); } if (ItemUtils.checkForInvalidItems(smallDust) && ItemUtils.checkForInvalidItems(tinyDust)) { @@ -131,253 +149,270 @@ public class RecipeGen_DustGeneration extends RecipeGen_Base { } // Is this a composite? - if ((inputStacks != null) && !disableOptional) { - // Is this a composite? - Logger.WARNING("mixer length: " + inputStacks.length); - if ((inputStacks.length != 0) && (inputStacks.length <= 4)) { - // Log Input items - Logger.WARNING(ItemUtils.getArrayStackNames(inputStacks)); - final long[] inputStackSize = material.vSmallestRatio; - Logger.WARNING("mixer is stacksizeVar null? " + (inputStackSize != null)); - // Is smallest ratio invalid? - if (inputStackSize != null) { - // set stack sizes on an input ItemStack[] - for (short x = 0; x < inputStacks.length; x++) { - if ((inputStacks[x] != null) && (inputStackSize[x] != 0)) { - inputStacks[x].stackSize = (int) inputStackSize[x]; - } - } - // Relog input values, with stack sizes - Logger.WARNING(ItemUtils.getArrayStackNames(inputStacks)); - - // Get us four ItemStacks to input into the mixer - ItemStack[] input = new ItemStack[4]; - - input[0] = (inputStacks.length >= 1) ? ((inputStacks[0] == null) ? null : inputStacks[0]) : null; - input[1] = (inputStacks.length >= 2) ? ((inputStacks[1] == null) ? null : inputStacks[1]) : null; - input[2] = (inputStacks.length >= 3) ? ((inputStacks[2] == null) ? null : inputStacks[2]) : null; - input[3] = (inputStacks.length >= 4) ? ((inputStacks[3] == null) ? null : inputStacks[3]) : null; - - if (inputStacks.length == 1) { - input[1] = input[0]; - input[0] = CI.getNumberedCircuit(inputStacks.length + 10); - } else if (inputStacks.length == 2) { - input[2] = input[1]; - input[1] = input[0]; - input[0] = CI.getNumberedCircuit(inputStacks.length + 10); - - } else if (inputStacks.length == 3) { - input[3] = input[2]; - input[2] = input[1]; - input[1] = input[0]; - input[0] = CI.getNumberedCircuit(inputStacks.length + 10); - } + if ((inputStacks == null) || disableOptional) { + return; + } - /* - * for (int g = 0; g<4; g++) { if(inputStacks.length > g) { input[g] = inputStacks[g] != null ? - * inputStacks[g] : null; } else { input[g] = CI.getNumberedCircuit(g+10); break; } } - */ - - // Add mixer Recipe - FluidStack oxygen = GT_Values.NF; - if (material.getComposites() != null) { - for (final MaterialStack x : material.getComposites()) { - if (!material.getComposites() - .isEmpty()) { - if (x != null) { - if (x.getStackMaterial() != null) { - if (x.getStackMaterial() - .getDust(1) == null) { - if (x.getStackMaterial() - .getState() != MaterialState.SOLID - && x.getStackMaterial() - .getState() != MaterialState.ORE - && x.getStackMaterial() - .getState() != MaterialState.PLASMA) { - oxygen = x.getStackMaterial() - .getFluidStack(1000); - break; - } - } - } - } - } - } - } + // Is this a composite? + Logger.WARNING("mixer length: " + inputStacks.length); + if (!((inputStacks.length != 0) && (inputStacks.length <= 4))) { + return; + } + // Log Input items + Logger.WARNING(ItemUtils.getArrayStackNames(inputStacks)); + final long[] inputStackSize = material.vSmallestRatio; + Logger.WARNING("mixer is stacksizeVar null? " + (inputStackSize != null)); + // Is smallest ratio invalid? + if (inputStackSize == null) { + return; + } + // set stack sizes on an input ItemStack[] + for (short x = 0; x < inputStacks.length; x++) { + if ((inputStacks[x] != null) && (inputStackSize[x] != 0)) { + inputStacks[x].stackSize = (int) inputStackSize[x]; + } + } + // Relog input values, with stack sizes + Logger.WARNING(ItemUtils.getArrayStackNames(inputStacks)); + + // Get us four ItemStacks to input into the mixer + ItemStack[] input = new ItemStack[4]; + + input[0] = (inputStacks.length >= 1) ? ((inputStacks[0] == null) ? null : inputStacks[0]) : null; + input[1] = (inputStacks.length >= 2) ? ((inputStacks[1] == null) ? null : inputStacks[1]) : null; + input[2] = (inputStacks.length >= 3) ? ((inputStacks[2] == null) ? null : inputStacks[2]) : null; + input[3] = (inputStacks.length >= 4) ? ((inputStacks[3] == null) ? null : inputStacks[3]) : null; + + if (inputStacks.length == 1) { + input[1] = input[0]; + input[0] = GT_Utility.getIntegratedCircuit(inputStacks.length + 10); + } else if (inputStacks.length == 2) { + input[2] = input[1]; + input[1] = input[0]; + input[0] = GT_Utility.getIntegratedCircuit(inputStacks.length + 10); + + } else if (inputStacks.length == 3) { + input[3] = input[2]; + input[2] = input[1]; + input[1] = input[0]; + input[0] = GT_Utility.getIntegratedCircuit(inputStacks.length + 10); + } - input = ItemUtils.cleanItemStackArray(input); - - // Add mixer Recipe - if (GT_Values.RA.addMixerRecipe( - input[0], - input[1], - input[2], - input[3], - oxygen, - null, - outputStacks, - (int) Math.max(material.getMass() * 2L * 1, 1), - material.vVoltageMultiplier)) // Was 6, but let's try 2. This makes Potin LV, for example. - { - Logger.WARNING("Dust Mixer Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Dust Mixer Recipe: " + material.getLocalizedName() + " - Failed"); - } + // Add mixer Recipe + FluidStack oxygen = GT_Values.NF; + if (material.getComposites() != null) { + for (final MaterialStack x : material.getComposites()) { + if (material.getComposites() + .isEmpty()) { + continue; + } + if (x == null) { + continue; + } + if (x.getStackMaterial() == null) { + continue; + } - // Add Shapeless recipe for low tier alloys. - /* - * if (tVoltageMultiplier <= 30){ if (RecipeUtils.addShapedGregtechRecipe(inputStacks, - * outputStacks)){ - * Logger.WARNING("Dust Shapeless Recipe: "+material.getLocalizedName()+" - Success"); } else { - * Logger.WARNING("Dust Shapeless Recipe: "+material.getLocalizedName()+" - Failed"); } } - */ + if (x.getStackMaterial() + .getDust(1) != null) { + continue; + } + + if (x.getStackMaterial() + .getState() != MaterialState.SOLID + && x.getStackMaterial() + .getState() != MaterialState.ORE + && x.getStackMaterial() + .getState() != MaterialState.PLASMA) { + oxygen = x.getStackMaterial() + .getFluidStack(1000); + break; } } } + + input = ItemUtils.cleanItemStackArray(input); + + // Add mixer Recipe + List<ItemStack> inputs = Arrays.asList(input); + inputs.removeIf(Objects::isNull); + + if (oxygen == null) { + GT_Values.RA.stdBuilder() + .itemInputs(inputs.toArray(new ItemStack[0])) + .itemOutputs(outputStacks) + .duration((int) Math.max(material.getMass() * 2L * 1, 1)) + .eut(material.vVoltageMultiplier) + .addTo(mixerRecipes); + } else { + GT_Values.RA.stdBuilder() + .itemInputs(inputs.toArray(new ItemStack[0])) + .itemOutputs(outputStacks) + .fluidInputs(oxygen) + .duration((int) Math.max(material.getMass() * 2L * 1, 1)) + .eut(material.vVoltageMultiplier) + .addTo(mixerRecipes); + } + + Logger.WARNING("Dust Mixer Recipe: " + material.getLocalizedName() + " - Success"); } public static boolean addMixerRecipe_Standalone(final Material material) { final ItemStack[] inputStacks = material.getMaterialComposites(); final ItemStack outputStacks = material.getDust(material.smallestStackSizeWhenProcessing); // Is this a composite? - if ((inputStacks != null)) { - // Is this a composite? - Logger.WARNING("mixer length: " + inputStacks.length); - if ((inputStacks.length >= 1) && (inputStacks.length <= 4)) { - // Log Input items - Logger.WARNING(ItemUtils.getArrayStackNames(inputStacks)); - final long[] inputStackSize = material.vSmallestRatio; - Logger.WARNING("mixer is stacksizeVar not null? " + (inputStackSize != null)); - // Is smallest ratio invalid? - if (inputStackSize != null) { - // set stack sizes on an input ItemStack[] - for (short x = 0; x < inputStacks.length; x++) { - if ((inputStacks[x] != null) && (inputStackSize[x] != 0)) { - inputStacks[x].stackSize = (int) inputStackSize[x]; - } - } - // Relog input values, with stack sizes - Logger.WARNING(ItemUtils.getArrayStackNames(inputStacks)); - - // Get us four ItemStacks to input into the mixer - ItemStack input1, input2, input3, input4; - input1 = inputStacks[0]; - input2 = (inputStacks.length >= 2) ? (input2 = (inputStacks[1] == null) ? null : inputStacks[1]) - : null; - input3 = (inputStacks.length >= 3) ? (input3 = (inputStacks[2] == null) ? null : inputStacks[2]) - : null; - input4 = (inputStacks.length >= 4) ? (input4 = (inputStacks[3] == null) ? null : inputStacks[3]) - : null; - - if (inputStacks.length == 1) { - input2 = input1; - input1 = CI.getNumberedCircuit(20); - } else if (inputStacks.length == 2) { - input3 = input2; - input2 = input1; - input1 = CI.getNumberedCircuit(20); - - } else if (inputStacks.length == 3) { - input4 = input3; - input3 = input2; - input2 = input1; - input1 = CI.getNumberedCircuit(20); - } + if (inputStacks == null) { + Logger.WARNING("InputStacks == NUll - " + material.getLocalizedName()); + return false; + } - // Add mixer Recipe - FluidStack oxygen = GT_Values.NF; - if (material.getComposites() != null) { - int compSlot = 0; - for (final MaterialStack x : material.getComposites()) { - if (!material.getComposites() - .isEmpty()) { - if (x != null) { - if (x.getStackMaterial() != null) { - if (x.getStackMaterial() - .getDust(1) == null) { - MaterialState f = x.getStackMaterial() - .getState(); - if (f == MaterialState.GAS || f == MaterialState.LIQUID - || f == MaterialState.PURE_LIQUID - || f == MaterialState.PURE_GAS) { - oxygen = x.getStackMaterial() - .getFluidStack((int) (material.vSmallestRatio[compSlot] * 1000)); - } - } - } - } - } - compSlot++; - } - } + // Is this a composite? + Logger.WARNING("mixer length: " + inputStacks.length); + if (!((inputStacks.length >= 1) && (inputStacks.length <= 4))) { + Logger.WARNING("InputStacks is out range 1-4 - " + material.getLocalizedName()); + return false; + } + // Log Input items + Logger.WARNING(ItemUtils.getArrayStackNames(inputStacks)); + final long[] inputStackSize = material.vSmallestRatio; + Logger.WARNING("mixer is stacksizeVar not null? " + (inputStackSize != null)); + + // Is smallest ratio invalid? + if (inputStackSize == null) { + Logger.WARNING("inputStackSize == NUll - " + material.getLocalizedName()); + return true; + } - // Add mixer Recipe - try { - if (GT_Values.RA.addMixerRecipe( - input1, - input2, - input3, - input4, - oxygen, - null, - outputStacks, - (int) Math.max(material.getMass() * 2L * 1, 1), - material.vVoltageMultiplier)) // Was 6, but let's try 2. This makes Potin LV, for - // example. - { - Logger.WARNING("Dust Mixer Recipe: " + material.getLocalizedName() + " - Success"); - return true; - } else { - Logger.WARNING("Dust Mixer Recipe: " + material.getLocalizedName() + " - Failed"); - return false; - } - } catch (Throwable t) { - t.printStackTrace(); - } - } else { - Logger.WARNING("inputStackSize == NUll - " + material.getLocalizedName()); + // set stack sizes on an input ItemStack[] + for (short x = 0; x < inputStacks.length; x++) { + if ((inputStacks[x] != null) && (inputStackSize[x] != 0)) { + inputStacks[x].stackSize = (int) inputStackSize[x]; + } + } + + // Relog input values, with stack sizes + Logger.WARNING(ItemUtils.getArrayStackNames(inputStacks)); + + // Get us four ItemStacks to input into the mixer + ItemStack input1, input2, input3, input4; + input1 = inputStacks[0]; + input2 = (inputStacks.length >= 2) ? (input2 = (inputStacks[1] == null) ? null : inputStacks[1]) : null; + input3 = (inputStacks.length >= 3) ? (input3 = (inputStacks[2] == null) ? null : inputStacks[2]) : null; + input4 = (inputStacks.length >= 4) ? (input4 = (inputStacks[3] == null) ? null : inputStacks[3]) : null; + + if (inputStacks.length == 1) { + input2 = input1; + input1 = GT_Utility.getIntegratedCircuit(20); + } else if (inputStacks.length == 2) { + input3 = input2; + input2 = input1; + input1 = GT_Utility.getIntegratedCircuit(20); + + } else if (inputStacks.length == 3) { + input4 = input3; + input3 = input2; + input2 = input1; + input1 = GT_Utility.getIntegratedCircuit(20); + } + + // Add mixer Recipe + FluidStack oxygen = GT_Values.NF; + if (material.getComposites() != null) { + int compSlot = 0; + for (final MaterialStack x : material.getComposites()) { + + if (material.getComposites() + .isEmpty()) { + compSlot++; + continue; + } + if (x == null) { + compSlot++; + continue; } + + if (x.getStackMaterial() == null) { + compSlot++; + continue; + } + + if (x.getStackMaterial() + .getDust(1) == null) { + compSlot++; + continue; + } + + MaterialState f = x.getStackMaterial() + .getState(); + if (f == MaterialState.GAS || f == MaterialState.LIQUID + || f == MaterialState.PURE_LIQUID + || f == MaterialState.PURE_GAS) { + oxygen = x.getStackMaterial() + .getFluidStack((int) (material.vSmallestRatio[compSlot] * 1000)); + } + compSlot++; + } + } + + // Add mixer Recipe + try { + if (oxygen == null) { + GT_Values.RA.stdBuilder() + .itemInputs(input1, input2, input3, input4) + .itemOutputs(outputStacks) + .duration((int) Math.max(material.getMass() * 2L * 1, 1)) + .eut(material.vVoltageMultiplier) + .addTo(mixerRecipes); } else { - Logger.WARNING("InputStacks is out range 1-4 - " + material.getLocalizedName()); + GT_Values.RA.stdBuilder() + .itemInputs(input1, input2, input3, input4) + .itemOutputs(outputStacks) + .fluidInputs(oxygen) + .duration((int) Math.max(material.getMass() * 2L * 1, 1)) + .eut(material.vVoltageMultiplier) + .addTo(mixerRecipes); } - } else { - Logger.WARNING("InputStacks == NUll - " + material.getLocalizedName()); + + Logger.WARNING("Dust Mixer Recipe: " + material.getLocalizedName() + " - Success"); + + } catch (Throwable t) { + t.printStackTrace(); } - return false; + return true; } public static boolean generatePackagerRecipes(Material aMatInfo) { - AutoMap<Boolean> aResults = new AutoMap<>(); // Small Dust - aResults.put( - GT_Values.RA.addBoxingRecipe( - GT_Utility.copyAmount(4L, new Object[] { aMatInfo.getSmallDust(4) }), - ItemList.Schematic_Dust.get(0L, new Object[0]), - aMatInfo.getDust(1), - 100, - 4)); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aMatInfo.getSmallDust(4)), ItemList.Schematic_Dust.get(0)) + .itemOutputs(aMatInfo.getDust(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(packagerRecipes); + // Tiny Dust - aResults.put( - GT_Values.RA.addBoxingRecipe( - GT_Utility.copyAmount(9L, new Object[] { aMatInfo.getTinyDust(9) }), - ItemList.Schematic_Dust.get(0L, new Object[0]), - aMatInfo.getDust(1), - 100, - 4)); - - for (boolean b : aResults) { - if (!b) { - return false; - } - } + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4, aMatInfo.getTinyDust(9)), ItemList.Schematic_Dust.get(0)) + .itemOutputs(aMatInfo.getDust(1)) + .duration(5 * SECONDS) + .eut(4) + .addTo(packagerRecipes); return true; } private void addMacerationRecipe(Material aMatInfo) { try { Logger.MATERIALS("Adding Maceration recipe for " + aMatInfo.getLocalizedName() + " Ingot -> Dusts"); - final int chance = (aMatInfo.vTier * 10) / MathUtils.randInt(10, 20); - GT_ModHandler.addPulverisationRecipe(aMatInfo.getIngot(1), aMatInfo.getDust(1), null, chance); + int chance = (aMatInfo.vTier * 10) / MathUtils.randInt(10, 20); + chance = chance <= 0 ? 1000 : 100 * chance; // comes from RA1 -> RA2 conversion + + RA.stdBuilder() + .itemInputs(aMatInfo.getIngot(1)) + .itemOutputs(aMatInfo.getDust(1)) + .outputChances(chance) + .eut(2) + .duration(20 * SECONDS) + .addTo(maceratorRecipes); } catch (Throwable t) { t.printStackTrace(); } @@ -391,7 +426,7 @@ public class RecipeGen_DustGeneration extends RecipeGen_Base { if (aMatInfo.requiresBlastFurnace()) { aOutput = aMatInfo.getHotIngot(1); if (ItemUtils.checkForInvalidItems(aOutput)) { - if (addBlastFurnaceRecipe(aMatInfo, aDust, null, aOutput, null, aMatInfo.getMeltingPointK())) { + if (addBlastFurnaceRecipe(aMatInfo, aDust, aOutput, aMatInfo.getMeltingPointK())) { Logger .MATERIALS("Successfully added a blast furnace recipe for " + aMatInfo.getLocalizedName()); } else { @@ -403,7 +438,7 @@ public class RecipeGen_DustGeneration extends RecipeGen_Base { } else { aOutput = aMatInfo.getIngot(1); if (ItemUtils.checkForInvalidItems(aOutput)) { - if (CORE.RA.addSmeltingAndAlloySmeltingRecipe(aDust, aOutput)) { + if (GT_ModHandler.addSmeltingAndAlloySmeltingRecipe(aDust, aOutput, false)) { Logger.MATERIALS("Successfully added a furnace recipe for " + aMatInfo.getLocalizedName()); } else { Logger.MATERIALS("Failed to add a furnace recipe for " + aMatInfo.getLocalizedName()); @@ -415,34 +450,26 @@ public class RecipeGen_DustGeneration extends RecipeGen_Base { } } - private boolean addBlastFurnaceRecipe(Material aMatInfo, final ItemStack input1, final ItemStack input2, - final ItemStack output1, final ItemStack output2, final int tempRequired) { - - try { - int timeTaken = 125 * aMatInfo.vTier * 10; + private boolean addBlastFurnaceRecipe(Material aMatInfo, final ItemStack input1, final ItemStack output1, + final int tempRequired) { - if (aMatInfo.vTier <= 4) { - timeTaken = 25 * aMatInfo.vTier * 10; - } - int aSlot = aMatInfo.vTier; - if (aSlot < 2) { - aSlot = 2; - } - long aVoltage = aMatInfo.vVoltageMultiplier; - - return GT_Values.RA.addBlastRecipe( - input1, - input2, - GT_Values.NF, - GT_Values.NF, - output1, - output2, - timeTaken, - (int) aVoltage, - tempRequired); - } catch (Throwable t) { - t.printStackTrace(); - return false; + int timeTaken; + if (aMatInfo.vTier <= 4) { + timeTaken = 25 * aMatInfo.vTier * 10; + } else { + timeTaken = 125 * aMatInfo.vTier * 10; } + + long aVoltage = aMatInfo.vVoltageMultiplier; + + GT_Values.RA.stdBuilder() + .itemInputs(input1) + .itemOutputs(output1) + .duration(timeTaken) + .eut(aVoltage) + .metadata(COIL_HEAT, tempRequired) + .addTo(blastFurnaceRecipes); + return true; + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Extruder.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Extruder.java index a69a96b925..c559a77e23 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Extruder.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Extruder.java @@ -1,5 +1,8 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + import java.util.HashSet; import java.util.Set; @@ -50,110 +53,107 @@ public class RecipeGen_Extruder extends RecipeGen_Base { if (ItemUtils.checkForInvalidItems(material.getIngot(1)) && ItemUtils.checkForInvalidItems(material.getBlock(1))) { // Ingot Recipe - if (GT_Values.RA.addExtruderRecipe( - material.getBlock(1), - shape_Ingot, - material.getIngot(9), - (int) Math.max(material.getMass() * 2L * 1, 1), - material.vVoltageMultiplier)) { - Logger.WARNING("Extruder Ingot Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Extruder Ingot Recipe: " + material.getLocalizedName() + " - Failed"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getBlock(1), shape_Ingot) + .itemOutputs(material.getIngot(9)) + .duration((int) Math.max(material.getMass() * 2L * 1, 1)) + .eut(material.vVoltageMultiplier) + .addTo(extruderRecipes); + + Logger.WARNING("Extruder Ingot Recipe: " + material.getLocalizedName() + " - Success"); // Block Recipe - if (GT_Values.RA.addExtruderRecipe( - material.getIngot(9), - shape_Block, - material.getBlock(1), - (int) Math.max(material.getMass() * 2L * 1, 1), - material.vVoltageMultiplier)) { - Logger.WARNING("Extruder Block Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Extruder Block Recipe: " + material.getLocalizedName() + " - Failed"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getIngot(9), shape_Block) + .itemOutputs(material.getBlock(1)) + .duration((int) Math.max(material.getMass() * 2L * 1, 1)) + .eut(material.vVoltageMultiplier) + .addTo(extruderRecipes); + + Logger.WARNING("Extruder Block Recipe: " + material.getLocalizedName() + " - Success"); } // Plate Recipe if (ItemUtils.checkForInvalidItems(material.getIngot(1)) - && ItemUtils.checkForInvalidItems(material.getPlate(1))) - if (GT_Values.RA.addExtruderRecipe(itemIngot, shape_Plate, itemPlate, 10, material.vVoltageMultiplier)) { - Logger.WARNING("Extruder Plate Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Extruder Plate Recipe: " + material.getLocalizedName() + " - Failed"); - } + && ItemUtils.checkForInvalidItems(material.getPlate(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(itemIngot, shape_Plate) + .itemOutputs(itemPlate) + .duration(10 * TICKS) + .eut(material.vVoltageMultiplier) + .addTo(extruderRecipes); + + Logger.WARNING("Extruder Plate Recipe: " + material.getLocalizedName() + " - Success"); + } // Ring Recipe - if (ItemUtils.checkForInvalidItems(material.getIngot(1)) && ItemUtils.checkForInvalidItems(material.getRing(1))) + if (ItemUtils.checkForInvalidItems(material.getIngot(1)) + && ItemUtils.checkForInvalidItems(material.getRing(1))) { if (!material.isRadioactive) { - if (GT_Values.RA.addExtruderRecipe( - itemIngot, - shape_Ring, - material.getRing(4), - (int) Math.max(material.getMass() * 2L * 1, 1), - material.vVoltageMultiplier)) { - Logger.WARNING("Extruder Ring Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Extruder Ring Recipe: " + material.getLocalizedName() + " - Failed"); - } + GT_Values.RA.stdBuilder() + .itemInputs(itemIngot, shape_Ring) + .itemOutputs(material.getRing(4)) + .duration((int) Math.max(material.getMass() * 2L * 1, 1)) + .eut(material.vVoltageMultiplier) + .addTo(extruderRecipes); + + Logger.WARNING("Extruder Ring Recipe: " + material.getLocalizedName() + " - Success"); } + } // Gear Recipe if (ItemUtils.checkForInvalidItems(material.getIngot(1)) && ItemUtils.checkForInvalidItems(material.getGear(1))) if (!material.isRadioactive) { - if (GT_Values.RA.addExtruderRecipe( - material.getIngot(4), - shape_Gear, - itemGear, - (int) Math.max(material.getMass() * 5L, 1), - material.vVoltageMultiplier)) { - Logger.WARNING("Extruder Gear Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Extruder Gear Recipe: " + material.getLocalizedName() + " - Failed"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getIngot(4), shape_Gear) + .itemOutputs(itemGear) + .duration((int) Math.max(material.getMass() * 5L, 1)) + .eut(material.vVoltageMultiplier) + .addTo(extruderRecipes); + + Logger.WARNING("Extruder Gear Recipe: " + material.getLocalizedName() + " - Success"); } // Rod Recipe - if (ItemUtils.checkForInvalidItems(material.getIngot(1)) && ItemUtils.checkForInvalidItems(material.getRod(1))) - if (GT_Values.RA.addExtruderRecipe( - itemIngot, - shape_Rod, - material.getRod(2), - (int) Math.max(material.getMass() * 2L * 1, 1), - material.vVoltageMultiplier)) { - Logger.WARNING("Extruder Rod Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Extruder Rod Recipe: " + material.getLocalizedName() + " - Failed"); - } + if (ItemUtils.checkForInvalidItems(material.getIngot(1)) + && ItemUtils.checkForInvalidItems(material.getRod(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(itemIngot, shape_Rod) + .itemOutputs(material.getRod(2)) + .duration((int) Math.max(material.getMass() * 2L * 1, 1)) + .eut(material.vVoltageMultiplier) + .addTo(extruderRecipes); + + Logger.WARNING("Extruder Rod Recipe: " + material.getLocalizedName() + " - Success"); + } // Bolt Recipe if (ItemUtils.checkForInvalidItems(material.getIngot(1)) && ItemUtils.checkForInvalidItems(material.getBolt(1))) if (!material.isRadioactive) { - if (GT_Values.RA.addExtruderRecipe( - itemIngot, - shape_Bolt, - material.getBolt(8), - (int) Math.max(material.getMass() * 2L * 1, 1), - material.vVoltageMultiplier)) { - Logger.WARNING("Extruder Bolt Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Extruder Bolt Recipe: " + material.getLocalizedName() + " - Failed"); - } + GT_Values.RA.stdBuilder() + .itemInputs(itemIngot, shape_Bolt) + .itemOutputs(material.getBolt(8)) + .duration((int) Math.max(material.getMass() * 2L * 1, 1)) + .eut(material.vVoltageMultiplier) + .addTo(extruderRecipes); + + Logger.WARNING("Extruder Bolt Recipe: " + material.getLocalizedName() + " - Success"); } // Rotor Recipe // Shape_Extruder_Rotor if (ItemUtils.checkForInvalidItems(material.getIngot(1)) - && ItemUtils.checkForInvalidItems(material.getRotor(1))) - if (GT_Values.RA.addExtruderRecipe( - material.getIngot(5), - ItemList.Shape_Extruder_Rotor.get(0), - material.getRotor(1), - (int) Math.max(material.getMass() * 5L * 1, 1), - material.vVoltageMultiplier)) { - Logger.WARNING("Extruder Rotor Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Extruder Rotor Recipe: " + material.getLocalizedName() + " - Failed"); - } + && ItemUtils.checkForInvalidItems(material.getRotor(1))) { + + GT_Values.RA.stdBuilder() + .itemInputs(material.getIngot(5), ItemList.Shape_Extruder_Rotor.get(0)) + .itemOutputs(material.getRotor(1)) + .duration((int) Math.max(material.getMass() * 5L * 1, 1)) + .eut(material.vVoltageMultiplier) + .addTo(extruderRecipes); + + Logger.WARNING("Extruder Rotor Recipe: " + material.getLocalizedName() + " - Success"); + } + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java index dd0c1b505c..06bb7a48c2 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java @@ -1,5 +1,9 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + import java.util.HashSet; import java.util.Set; @@ -49,163 +53,156 @@ public class RecipeGen_Fluids extends RecipeGen_Base { // Making Shapes from fluid // Ingot - if (ItemUtils.checkForInvalidItems(material.getIngot(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Ingot.get(0), // Item Shape - material.getFluidStack(144), // Fluid Input - material.getIngot(1), // output - 32, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getIngot(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ingot.get(0)) + .itemOutputs(material.getIngot(1)) + .fluidInputs(material.getFluidStack(144)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING("144l fluid molder for 1 ingot Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("144l fluid molder for 1 ingot Recipe: " + material.getLocalizedName() + " - Failed"); } // Plate - if (ItemUtils.checkForInvalidItems(material.getPlate(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Plate.get(0), // Item Shape - material.getFluidStack(144), // Fluid Input - material.getPlate(1), // output - 32, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getPlate(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Plate.get(0)) + .itemOutputs(material.getPlate(1)) + .fluidInputs(material.getFluidStack(144)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING("144l fluid molder for 1 plate Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("144l fluid molder for 1 plate Recipe: " + material.getLocalizedName() + " - Failed"); } // Nugget - if (ItemUtils.checkForInvalidItems(material.getNugget(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Nugget.get(0), // Item Shape - material.getFluidStack(16), // Fluid Input - material.getNugget(1), // output - 16, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getNugget(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Nugget.get(0)) + .itemOutputs(material.getNugget(1)) + .fluidInputs(material.getFluidStack(16)) + .duration(16 * TICKS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING("16l fluid molder for 1 nugget Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("16l fluid molder for 1 nugget Recipe: " + material.getLocalizedName() + " - Failed"); } // Gears - if (ItemUtils.checkForInvalidItems(material.getGear(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Gear.get(0), // Item Shape - material.getFluidStack(576), // Fluid Input - material.getGear(1), // output - 128, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getGear(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Gear.get(0)) + .itemOutputs(material.getGear(1)) + .fluidInputs(material.getFluidStack(576)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING("576l fluid molder for 1 gear Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("576l fluid molder for 1 gear Recipe: " + material.getLocalizedName() + " - Failed"); + } // Blocks - if (ItemUtils.checkForInvalidItems(material.getBlock(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Block.get(0), // Item Shape - material.getFluidStack(144 * 9), // Fluid Input - material.getBlock(1), // output - 288, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getBlock(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0)) + .itemOutputs(material.getBlock(1)) + .fluidInputs(material.getFluidStack(144 * 9)) + .duration(14 * SECONDS + 8 * TICKS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING( (144 * 9) + "l fluid molder from 1 block Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING( - (144 * 9) + "l fluid molder from 1 block Recipe: " + material.getLocalizedName() + " - Failed"); } - // GTNH - // Rod - if (ItemUtils.checkForInvalidItems(material.getRod(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Rod.get(0), // Item Shape - material.getFluidStack(72), // Fluid Input - material.getRod(1), // output - 150, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getRod(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Rod.get(0)) + .itemOutputs(material.getRod(1)) + .fluidInputs(material.getFluidStack(72)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING( (144 * 9) + "l fluid molder from 1 rod Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING( - (144 * 9) + "l fluid molder from 1 rod Recipe: " + material.getLocalizedName() + " - Failed"); } // Rod Long - if (ItemUtils.checkForInvalidItems(material.getLongRod(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Rod_Long.get(0), // Item - // Shape - material.getFluidStack(144), // Fluid Input - material.getLongRod(1), // output - 300, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getLongRod(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Rod_Long.get(0)) + .itemOutputs(material.getLongRod(1)) + .fluidInputs(material.getFluidStack(144)) + .duration(15 * SECONDS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING( (144 * 9) + "l fluid molder from 1 rod long Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING( - (144 * 9) + "l fluid molder from 1 rod long Recipe: " + material.getLocalizedName() + " - Failed"); } // Bolt - if (ItemUtils.checkForInvalidItems(material.getBolt(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Bolt.get(0), // Item Shape - material.getFluidStack(18), // Fluid Input - material.getBolt(1), // output - 50, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getBolt(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Bolt.get(0)) + .itemOutputs(material.getBolt(1)) + .fluidInputs(material.getFluidStack(18)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING( (144 * 9) + "l fluid molder from 1 bolt Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING( - (144 * 9) + "l fluid molder from 1 bolt Recipe: " + material.getLocalizedName() + " - Failed"); } // Screw - if (ItemUtils.checkForInvalidItems(material.getScrew(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Screw.get(0), // Item Shape - material.getFluidStack(18), // Fluid Input - material.getScrew(1), // output - 50, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getScrew(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Screw.get(0)) + .itemOutputs(material.getScrew(1)) + .fluidInputs(material.getFluidStack(18)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING( (144 * 9) + "l fluid molder from 1 screw Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING( - (144 * 9) + "l fluid molder from 1 screw Recipe: " + material.getLocalizedName() + " - Failed"); + } // Ring - if (ItemUtils.checkForInvalidItems(material.getRing(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Ring.get(0), // Item Shape - material.getFluidStack(36), // Fluid Input - material.getRing(1), // output - 100, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getRing(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ring.get(0)) + .itemOutputs(material.getRing(1)) + .fluidInputs(material.getFluidStack(36)) + .duration(5 * SECONDS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING( (144 * 9) + "l fluid molder from 1 ring Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING( - (144 * 9) + "l fluid molder from 1 ring Recipe: " + material.getLocalizedName() + " - Failed"); + } // Rotor - if (ItemUtils.checkForInvalidItems(material.getRotor(1))) if (GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Rotor.get(0), // Item Shape - material.getFluidStack(612), // Fluid Input - material.getRotor(1), // output - 100, // Duration - material.vVoltageMultiplier // Eu Tick - )) { + if (ItemUtils.checkForInvalidItems(material.getRotor(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Rotor.get(0)) + .itemOutputs(material.getRotor(1)) + .fluidInputs(material.getFluidStack(612)) + .duration(5 * SECONDS) + .eut(material.vVoltageMultiplier) + .addTo(fluidSolidifierRecipes); + Logger.WARNING( (144 * 9) + "l fluid molder from 1 rotor Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING( - (144 * 9) + "l fluid molder from 1 rotor Recipe: " + material.getLocalizedName() + " - Failed"); } } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java index a3ba819fb6..8d0ed2ff1d 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java @@ -1,5 +1,15 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes; + import java.util.HashSet; import java.util.Set; @@ -7,10 +17,8 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import gregtech.api.enums.GT_Values; -import gregtech.api.util.GT_ModHandler; import gtPlusPlus.api.interfaces.RunnableWithInfo; import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialGenerator; import gtPlusPlus.core.material.nuclear.FLUORIDES; @@ -142,126 +150,122 @@ public class RecipeGen_Fluorite extends RecipeGen_Base { * Macerate */ // Macerate ore to Crushed - if (GT_Values.RA.addPulveriserRecipe( - material.getOre(1), - new ItemStack[] { material.getCrushed(2) }, - new int[] { 10000 }, - 20 * 20, - tVoltageMultiplier / 2)) { - Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate ore to Crushed ore'"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getOre(1)) + .itemOutputs(material.getCrushed(2)) + .duration(20 * SECONDS) + .eut(tVoltageMultiplier / 2) + .addTo(maceratorRecipes); + + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate ore to Crushed ore'"); + // Macerate raw ore to Crushed - if (GT_Values.RA.addPulveriserRecipe( - material.getRawOre(1), - new ItemStack[] { material.getCrushed(2) }, - new int[] { 10000 }, - 20 * 20, - tVoltageMultiplier / 2)) { - Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate raw ore to Crushed ore'"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getRawOre(1)) + .itemOutputs(material.getCrushed(2)) + .duration(20 * SECONDS) + .eut(tVoltageMultiplier / 2) + .addTo(maceratorRecipes); + + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate raw ore to Crushed ore'"); // Macerate Centrifuged to Pure Dust - if (GT_Values.RA.addPulveriserRecipe( - material.getCrushedCentrifuged(1), - new ItemStack[] { matDust, matDustA }, - new int[] { 10000, 1000 }, - 20 * 20, - tVoltageMultiplier / 2)) { - Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Centrifuged ore to Pure Dust'"); - } - if (GT_ModHandler.addThermalCentrifugeRecipe( - material.getCrushedPurified(1), - (int) Math.min(5000L, Math.abs(material.getMass() * 20L)), - material.getCrushedCentrifuged(1), - tinyDustA, - dustStone)) { - Logger.MATERIALS( - "[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore' | Input: " - + material.getCrushedPurified(1) - .getDisplayName() - + " | Outputs: " - + material.getCrushedCentrifuged(1) - .getDisplayName() - + ", " - + tinyDustA.getDisplayName() - + ", " - + dustStone.getDisplayName() - + "."); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getCrushedCentrifuged(1)) + .itemOutputs(matDust, matDustA) + .outputChances(100_00, 10_00) + .duration(20 * SECONDS) + .eut(tVoltageMultiplier / 2) + .addTo(maceratorRecipes); + + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Centrifuged ore to Pure Dust'"); - GT_Values.RA.addChemicalBathRecipe( - FLUORIDES.FLUORITE.getCrushed(2), - FluidUtils.getFluidStack("hydrogen", 2000), - FLUORIDES.FLUORITE.getCrushedPurified(8), - FLUORIDES.FLUORITE.getDustImpure(4), - FLUORIDES.FLUORITE.getDustPurified(2), - new int[] { 10000, 5000, 1000 }, - 30 * 20, - 240); + GT_Values.RA.stdBuilder() + .itemInputs(material.getCrushedPurified(1)) + .itemOutputs(material.getCrushedCentrifuged(1), tinyDustA, dustStone) + .duration(25 * SECONDS) + .eut(48) + .addTo(thermalCentrifugeRecipes); + + Logger.MATERIALS( + "[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore' | Input: " + + material.getCrushedPurified(1) + .getDisplayName() + + " | Outputs: " + + material.getCrushedCentrifuged(1) + .getDisplayName() + + ", " + + tinyDustA.getDisplayName() + + ", " + + dustStone.getDisplayName() + + "."); + + GT_Values.RA.stdBuilder() + .itemInputs(FLUORIDES.FLUORITE.getCrushed(2)) + .itemOutputs( + FLUORIDES.FLUORITE.getCrushedPurified(8), + FLUORIDES.FLUORITE.getDustImpure(4), + FLUORIDES.FLUORITE.getDustPurified(2)) + .outputChances(100_00, 50_00, 10_00) + .fluidInputs(FluidUtils.getFluidStack("hydrogen", 2000)) + .duration(30 * SECONDS) + .eut(240) + .addTo(chemicalBathRecipes); /** * Forge Hammer */ - if (GT_Values.RA.addForgeHammerRecipe(material.getCrushedCentrifuged(1), matDust, 10, tVoltageMultiplier / 4)) { - Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Crushed Centrifuged to Pure Dust'"); - } + + GT_Values.RA.stdBuilder() + .itemInputs(material.getCrushedCentrifuged(1)) + .itemOutputs(matDust) + .duration(10 * TICKS) + .eut(tVoltageMultiplier / 4) + .addTo(hammerRecipes); + + Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Crushed Centrifuged to Pure Dust'"); /** * Centrifuge */ // Purified Dust to Clean - if (GT_Values.RA.addCentrifugeRecipe( - material.getDustPurified(1), - null, - null, // In Fluid - null, // Out Fluid - matDust, - tinyDustA, - null, - null, - null, - null, - new int[] { 10000, 10000 }, // Chances - (int) Math.max(1L, material.getMass() * 8L), // Time - tVoltageMultiplier / 2)) { // Eu - Logger.MATERIALS("[Centrifuge] Added Recipe: Purified Dust to Clean Dust"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getDustPurified(1)) + .itemOutputs(matDust, tinyDustA) + .eut(tVoltageMultiplier / 2) + .duration((int) Math.max(1L, material.getMass() * 8L)) + .addTo(centrifugeRecipes); + + Logger.MATERIALS("[Centrifuge] Added Recipe: Purified Dust to Clean Dust"); // Impure Dust to Clean - if (GT_Values.RA.addCentrifugeRecipe( - material.getDustImpure(1), - null, - null, // In Fluid - null, // Out Fluid - matDust, - tinyDustB, - null, - null, - null, - null, - new int[] { 10000, 10000 }, // Chances - (int) Math.max(1L, material.getMass() * 8L), // Time - tVoltageMultiplier / 2)) { // Eu - Logger.MATERIALS("[Centrifuge] Added Recipe: Inpure Dust to Clean Dust"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getDustImpure(1)) + .itemOutputs(matDust, tinyDustB) + .eut(tVoltageMultiplier / 2) + .duration((int) Math.max(1L, material.getMass() * 8L)) + .addTo(centrifugeRecipes); + + Logger.MATERIALS("[Centrifuge] Added Recipe: Inpure Dust to Clean Dust"); // CaF2 + H2SO4 → CaSO4(solid) + 2 HF FluidStack aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 16000); if (aGregtechHydro == null) { aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid", 16000); } - - CORE.RA.addDehydratorRecipe( - new ItemStack[] { CI.getNumberedAdvancedCircuit(5), FLUORIDES.FLUORITE.getDust(37), }, - FluidUtils.getFluidStack("sulfuricacid", 8000), - aGregtechHydro, // Fluid output (slot 2) - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumSulfate", 15), + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(5), FLUORIDES.FLUORITE.getDust(37)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumSulfate", 15), ItemUtils.getItemStackOfAmountFromOreDict("dustSilver", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustGold", 2), ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 2) }, - new int[] { 10000, 1000, 1000, 3000, 2000 }, - 10 * 60 * 20, - 240); // EU + ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 2)) + .outputChances(100_00, 10_00, 10_00, 30_00, 20_00) + .fluidInputs(FluidUtils.getFluidStack("sulfuricacid", 8000)) + .fluidOutputs(aGregtechHydro) + .eut(240) + .duration(10 * MINUTES) + .addTo(chemicalDehydratorRecipes); } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java index 83bbe6a6d7..6b96b558f9 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java @@ -1,17 +1,22 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes; + +import java.util.Arrays; import java.util.HashSet; +import java.util.List; +import java.util.Objects; import java.util.Set; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; import gregtech.api.enums.GT_Values; import gtPlusPlus.api.interfaces.RunnableWithInfo; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.data.Pair; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialGenerator; import gtPlusPlus.core.material.MaterialStack; @@ -143,6 +148,7 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base { + " as input."); } else { Logger.MATERIALS("[Centrifuge] Could not find valid input dust, exiting."); + return; } } @@ -156,32 +162,33 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base { } } - try { - if (addCentrifgeRecipe( - mainDust, - emptyCell, // input 2 - null, // Input fluid 1 - null, // Output fluid 1 - mInternalOutputs[0], - mInternalOutputs[1], - mInternalOutputs[2], - mInternalOutputs[3], - mInternalOutputs[4], - mInternalOutputs[5], - mChances, - 20 * 1 * (tVoltageMultiplier / 10), - tVoltageMultiplier)) { - Logger.MATERIALS( - "[Centrifuge] Generated Centrifuge recipe for " + material.getDust(1) - .getDisplayName()); - } else { - Logger.MATERIALS( - "[Centrifuge] Failed to generate Centrifuge recipe for " + material.getDust(1) - .getDisplayName()); - } - } catch (Throwable t) { - t.printStackTrace(); + // i don't understand the mess above, so let's just strip nulls and assume the chances are in correct + // order + List<ItemStack> internalOutputs = Arrays.asList(mInternalOutputs); + internalOutputs.removeIf(Objects::isNull); + int[] chances = new int[internalOutputs.size()]; + for (int i = 0; i < internalOutputs.size(); i++) { + chances[i] = mChances[i]; + } + + ItemStack[] inputs; + if (emptyCell == null) { + inputs = new ItemStack[] { mainDust }; + } else { + inputs = new ItemStack[] { mainDust, emptyCell }; } + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(internalOutputs.toArray(new ItemStack[0])) + .outputChances(chances) + .eut(tVoltageMultiplier) + .duration((tVoltageMultiplier / 10) * SECONDS) + .addTo(centrifugeRecipes); + + Logger.MATERIALS( + "[Centrifuge] Generated Centrifuge recipe for " + material.getDust(1) + .getDisplayName()); + } else if (componentMap.size() > 6 && componentMap.size() <= 9) { Logger.MATERIALS( "[Issue][Electrolyzer] " + material.getLocalizedName() @@ -258,6 +265,7 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base { + " as input."); } else { Logger.MATERIALS("[Dehydrator] Could not find valid input dust, exiting."); + return; } } @@ -270,49 +278,34 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base { "[Dehydrator] Set slot " + j + " to " + mInternalOutputs[j].getDisplayName() + "."); } } + // i don't understand the mess above, so let's just strip nulls and assume the chances are in correct + // order + List<ItemStack> internalOutputs = Arrays.asList(mInternalOutputs); + internalOutputs.removeIf(Objects::isNull); + int[] chances = new int[internalOutputs.size()]; + for (int i = 0; i < internalOutputs.size(); i++) { + chances[i] = mChances[i]; + } - try { - - if (CORE.RA.addDehydratorRecipe( - new ItemStack[] { mainDust, emptyCell }, - null, - null, - mInternalOutputs, - mChances, - 20 * 1 * (tVoltageMultiplier / 10), - tVoltageMultiplier)) { - Logger.MATERIALS( - "[Dehydrator] Generated Dehydrator recipe for " + material.getDust(1) - .getDisplayName()); - } else { - Logger.MATERIALS( - "[Dehydrator] Failed to generate Dehydrator recipe for " + material.getDust(1) - .getDisplayName()); - } - } catch (Throwable t) { - t.printStackTrace(); + ItemStack[] inputs; + if (emptyCell == null) { + inputs = new ItemStack[] { mainDust }; + } else { + inputs = new ItemStack[] { mainDust, emptyCell }; } + + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(internalOutputs.toArray(new ItemStack[0])) + .outputChances(chances) + .eut(tVoltageMultiplier) + .duration(20 * (tVoltageMultiplier / 10)) + .addTo(chemicalDehydratorRecipes); + + Logger.MATERIALS( + "[Dehydrator] Generated Dehydrator recipe for " + material.getDust(1) + .getDisplayName()); } } } - - @Deprecated - public static boolean addCentrifgeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, - FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, - ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) { - return GT_Values.RA.addCentrifugeRecipe( - aInput1, - aInput2, - aFluidInput, - aFluidOutput, - aOutput1, - aOutput2, - aOutput3, - aOutput4, - aOutput5, - aOutput6, - aChances, - aDuration, - aEUt); - } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MetalRecipe.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MetalRecipe.java index f11b97cbda..ce17a8724c 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MetalRecipe.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MetalRecipe.java @@ -1,13 +1,18 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + import java.util.HashSet; import java.util.Set; import gregtech.api.enums.GT_Values; -import gregtech.api.util.GT_ModHandler; import gtPlusPlus.api.interfaces.RunnableWithInfo; import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialGenerator; import gtPlusPlus.core.util.minecraft.ItemUtils; @@ -34,79 +39,83 @@ public class RecipeGen_MetalRecipe extends RecipeGen_Base { Logger.WARNING("Generating Metal recipes for " + material.getLocalizedName()); if (ItemUtils.checkForInvalidItems(material.getIngot(1)) - && ItemUtils.checkForInvalidItems(material.getBlock(1))) - if (GT_ModHandler.addCompressionRecipe(material.getIngot(9), material.getBlock(1))) { - Logger.WARNING("Compress Block Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Compress Block Recipe: " + material.getLocalizedName() + " - Failed"); - } - - if (ItemUtils.checkForInvalidItems(material.getIngot(1)) && ItemUtils.checkForInvalidItems(material.getRod(1))) - if (GT_Values.RA.addLatheRecipe( - material.getIngot(1), - material.getRod(1), - material.getSmallDust(2), - (int) Math.max(material.getMass() / 8L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Lathe Rod Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Lathe Rod Recipe: " + material.getLocalizedName() + " - Failed"); - } - - if (ItemUtils.checkForInvalidItems(material.getRod(1)) && ItemUtils.checkForInvalidItems(material.getBolt(1))) - if (GT_Values.RA.addCutterRecipe( - material.getRod(1), - material.getBolt(4), - null, - (int) Math.max(material.getMass() * 2L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Cut Bolt Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Cut Bolt Recipe: " + material.getLocalizedName() + " - Failed"); - } + && ItemUtils.checkForInvalidItems(material.getBlock(1))) { + + GT_Values.RA.stdBuilder() + .itemInputs(material.getIngot(9)) + .itemOutputs(material.getBlock(1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + Logger.WARNING("Compress Block Recipe: " + material.getLocalizedName() + " - Success"); + + } + + if (ItemUtils.checkForInvalidItems(material.getIngot(1)) + && ItemUtils.checkForInvalidItems(material.getRod(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(material.getIngot(1)) + .itemOutputs(material.getRod(1), material.getSmallDust(2)) + .duration(Math.max(material.getMass() / 8L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(latheRecipes); + + Logger.WARNING("Lathe Rod Recipe: " + material.getLocalizedName() + " - Success"); + } + + if (ItemUtils.checkForInvalidItems(material.getRod(1)) && ItemUtils.checkForInvalidItems(material.getBolt(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(material.getRod(1)) + .itemOutputs(material.getBolt(4)) + .duration(Math.max(material.getMass() * 2L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(cutterRecipes); + + Logger.WARNING("Cut Bolt Recipe: " + material.getLocalizedName() + " - Success"); + } if (ItemUtils.checkForInvalidItems(material.getIngot(1)) - && ItemUtils.checkForInvalidItems(material.getHotIngot(1))) - if (CORE.RA.addVacuumFreezerRecipe( - material.getHotIngot(1), - material.getIngot(1), - (int) Math.max(material.getMass() * 3L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Cool Hot Ingot Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Cool Hot Ingot Recipe: " + material.getLocalizedName() + " - Failed"); - } + && ItemUtils.checkForInvalidItems(material.getHotIngot(1))) { + + GT_Values.RA.stdBuilder() + .itemInputs(material.getHotIngot(1)) + .itemOutputs(material.getIngot(1)) + .duration((int) Math.max(material.getMass() * 3L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(vacuumFreezerRecipes); + Logger.WARNING("Cool Hot Ingot Recipe: " + material.getLocalizedName() + " - Success"); + } if (ItemUtils.checkForInvalidItems(material.getRod(1)) && ItemUtils.checkForInvalidItems(material.getLongRod(1))) { - if (GT_Values.RA.addForgeHammerRecipe( - material.getRod(2), - material.getLongRod(1), - (int) Math.max(material.getMass(), 1L), - 16)) { - Logger.WARNING("Hammer Long Rod Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Hammer Long Rod Recipe: " + material.getLocalizedName() + " - Failed"); - } - - GT_Values.RA.addCutterRecipe( - material.getLongRod(1), - material.getRod(2), - null, - (int) Math.max(material.getMass(), 1L), - 4); + GT_Values.RA.stdBuilder() + .itemInputs(material.getRod(2)) + .itemOutputs(material.getLongRod(1)) + .duration((int) Math.max(material.getMass(), 1L)) + .eut(16) + .addTo(hammerRecipes); + + Logger.WARNING("Hammer Long Rod Recipe: " + material.getLocalizedName() + " - Success"); + + GT_Values.RA.stdBuilder() + .itemInputs(material.getLongRod(1)) + .itemOutputs(material.getRod(2)) + .duration(Math.max(material.getMass(), 1L)) + .eut(4) + .addTo(cutterRecipes); + } - if (ItemUtils.checkForInvalidItems(material.getBolt(1)) && ItemUtils.checkForInvalidItems(material.getScrew(1))) - if (GT_Values.RA.addLatheRecipe( - material.getBolt(1), - material.getScrew(1), - null, - (int) Math.max(material.getMass() / 8L, 1L), - 4)) { - Logger.WARNING("Lathe Screw Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Lathe Screw Recipe: " + material.getLocalizedName() + " - Failed"); - } + if (ItemUtils.checkForInvalidItems(material.getBolt(1)) + && ItemUtils.checkForInvalidItems(material.getScrew(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(material.getBolt(1)) + .itemOutputs(material.getScrew(1)) + .duration(Math.max(material.getMass() / 8L, 1L)) + .eut(4) + .addTo(latheRecipes); + + Logger.WARNING("Lathe Screw Recipe: " + material.getLocalizedName() + " - Success"); + } } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java index 32d6a1066b..eb55f2989c 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java @@ -1,11 +1,22 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes; + import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; +import java.util.List; +import java.util.Objects; import java.util.Set; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; @@ -14,7 +25,6 @@ import gtPlusPlus.api.interfaces.RunnableWithInfo; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.data.Pair; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialGenerator; import gtPlusPlus.core.material.MaterialStack; @@ -195,50 +205,57 @@ public class RecipeGen_Ore extends RecipeGen_Base { * Macerate */ // Macerate ore to Crushed - if (GT_Values.RA.addPulveriserRecipe( - material.getOre(1), - new ItemStack[] { material.getCrushed(2) }, - new int[] { 10000 }, - 20 * 20, - tVoltageMultiplier / 2)) { - Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate ore to Crushed ore'"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getOre(1)) + .itemOutputs(material.getCrushed(2)) + .duration(20 * SECONDS) + .eut(tVoltageMultiplier / 2) + .addTo(maceratorRecipes); + + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate ore to Crushed ore'"); + // Macerate raw ore to Crushed - if (GT_Values.RA.addPulveriserRecipe( - material.getRawOre(1), - new ItemStack[] { material.getCrushed(2) }, - new int[] { 10000 }, - 20 * 20, - tVoltageMultiplier / 2)) { - Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate raw ore to Crushed ore'"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getRawOre(1)) + .itemOutputs(material.getCrushed(2)) + .duration(20 * SECONDS) + .eut(tVoltageMultiplier / 2) + .addTo(maceratorRecipes); + + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate raw ore to Crushed ore'"); + // Macerate Crushed to Impure Dust - if (GT_Values.RA.addPulveriserRecipe( - material.getCrushed(1), - new ItemStack[] { material.getDustImpure(1), matDustA }, - new int[] { 10000, 1000 }, - 20 * 20, - tVoltageMultiplier / 2)) { - Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Crushed ore to Impure Dust'"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getCrushed(1)) + .itemOutputs(material.getDustImpure(1), matDustA) + .outputChances(100_00, 10_00) + .duration(20 * SECONDS) + .eut(tVoltageMultiplier / 2) + .addTo(maceratorRecipes); + + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Crushed ore to Impure Dust'"); + // Macerate Washed to Purified Dust - if (GT_Values.RA.addPulveriserRecipe( - material.getCrushedPurified(1), - new ItemStack[] { material.getDustPurified(1), matDustA }, - new int[] { 10000, 1000 }, - 20 * 20, - tVoltageMultiplier / 2)) { - Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Washed ore to Purified Dust'"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getCrushedPurified(1)) + .itemOutputs(material.getDustPurified(1), matDustA) + .outputChances(100_00, 10_00) + .duration(20 * SECONDS) + .eut(tVoltageMultiplier / 2) + .addTo(maceratorRecipes); + + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Washed ore to Purified Dust'"); + // Macerate Centrifuged to Pure Dust - if (GT_Values.RA.addPulveriserRecipe( - material.getCrushedCentrifuged(1), - new ItemStack[] { matDust, matDustA }, - new int[] { 10000, 1000 }, - 20 * 20, - tVoltageMultiplier / 2)) { - Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Centrifuged ore to Pure Dust'"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getCrushedCentrifuged(1)) + .itemOutputs(matDust, matDustA) + .outputChances(100_00, 10_00) + .duration(20 * SECONDS) + .eut(tVoltageMultiplier / 2) + .addTo(maceratorRecipes); + + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Centrifuged ore to Pure Dust'"); /** * Wash @@ -280,14 +297,16 @@ public class RecipeGen_Ore extends RecipeGen_Base { try { // .08 compat - if (GT_ModHandler.addThermalCentrifugeRecipe( - material.getCrushed(1), - new int[] { 10000, 1111, 10000 }, - (int) Math.min(5000L, Math.abs(material.getMass() * 20L)), - material.getCrushedCentrifuged(1), - matDustB, - dustStone)) { - Logger.MATERIALS( + GT_Values.RA.stdBuilder() + .itemInputs(material.getCrushed(1)) + .itemOutputs(material.getCrushedCentrifuged(1), matDustB, dustStone) + .outputChances(100_00, 11_11, 100_00) + .duration(25 * SECONDS) + .eut(48) + .addTo(thermalCentrifugeRecipes); + + Logger + .MATERIALS( "[ThermalCentrifuge] Added Recipe: 'Crushed ore to Centrifuged Ore' | Input: " + material.getCrushed(1) .getDisplayName() @@ -299,86 +318,85 @@ public class RecipeGen_Ore extends RecipeGen_Base { + ", " + dustStone.getDisplayName() + "."); - } + } catch (Throwable t) {} try { - if (GT_ModHandler.addThermalCentrifugeRecipe( - material.getCrushedPurified(1), - new int[] { 10000, 1111, 10000 }, - (int) Math.min(5000L, Math.abs(material.getMass() * 20L)), - material.getCrushedCentrifuged(1), - matDustA, - dustStone)) { - Logger.MATERIALS( - "[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore' | Input: " - + material.getCrushedPurified(1) - .getDisplayName() - + " | Outputs: " - + material.getCrushedCentrifuged(1) - .getDisplayName() - + ", " - + matDustA.getDisplayName() - + ", " - + dustStone.getDisplayName() - + "."); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getCrushedPurified(1)) + .itemOutputs(material.getCrushedCentrifuged(1), matDustA, dustStone) + .outputChances(100_00, 11_11, 100_00) + .duration(25 * SECONDS) + .eut(48) + .addTo(thermalCentrifugeRecipes); + + Logger.MATERIALS( + "[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore' | Input: " + + material.getCrushedPurified(1) + .getDisplayName() + + " | Outputs: " + + material.getCrushedCentrifuged(1) + .getDisplayName() + + ", " + + matDustA.getDisplayName() + + ", " + + dustStone.getDisplayName() + + "."); + } catch (Throwable t) {} /** * Forge Hammer */ - if (GT_Values.RA.addForgeHammerRecipe(material.getCrushedCentrifuged(1), matDust, 10, tVoltageMultiplier / 4)) { - Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Crushed Centrifuged to Pure Dust'"); - } - if (GT_Values.RA.addForgeHammerRecipe( - material.getCrushedPurified(1), - material.getDustPurified(1), - 10, - tVoltageMultiplier / 4)) { - Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Crushed Purified to Purified Dust'"); - } - if (GT_Values.RA.addForgeHammerRecipe(material.getOre(1), material.getCrushed(1), 10, tVoltageMultiplier / 4)) { - Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Ore to Crushed'"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getCrushedCentrifuged(1)) + .itemOutputs(matDust) + .duration(10 * TICKS) + .eut(tVoltageMultiplier / 4) + .addTo(hammerRecipes); + + Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Crushed Centrifuged to Pure Dust'"); + + GT_Values.RA.stdBuilder() + .itemInputs(material.getCrushedPurified(1)) + .itemOutputs(material.getDustPurified(1)) + .duration(10 * TICKS) + .eut(tVoltageMultiplier / 4) + .addTo(hammerRecipes); + Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Crushed Purified to Purified Dust'"); + + GT_Values.RA.stdBuilder() + .itemInputs(material.getOre(1)) + .itemOutputs(material.getCrushed(1)) + .duration(10 * TICKS) + .eut(tVoltageMultiplier / 4) + .addTo(hammerRecipes); + + Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Ore to Crushed'"); /** * Centrifuge */ // Purified Dust to Clean - if (GT_Values.RA.addCentrifugeRecipe( - material.getDustPurified(1), - null, - null, // In Fluid - null, // Out Fluid - matDust, - matDustA, - null, - null, - null, - null, - new int[] { 10000, 1111 }, // Chances - (int) Math.max(1L, material.getMass() * 8L), // Time - tVoltageMultiplier / 2)) { // Eu - Logger.MATERIALS("[Centrifuge] Added Recipe: Purified Dust to Clean Dust"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getDustPurified(1)) + .itemOutputs(matDust, matDustA) + .outputChances(100_00, 11_11) + .eut(tVoltageMultiplier / 2) + .duration((int) Math.max(1L, material.getMass() * 8L)) + .addTo(centrifugeRecipes); + + Logger.MATERIALS("[Centrifuge] Added Recipe: Purified Dust to Clean Dust"); // Impure Dust to Clean - if (GT_Values.RA.addCentrifugeRecipe( - material.getDustImpure(1), - null, - null, // In Fluid - null, // Out Fluid - matDust, - matDustB, - null, - null, - null, - null, - new int[] { 10000, 1111 }, // Chances - (int) Math.max(1L, material.getMass() * 8L), // Time - tVoltageMultiplier / 2)) { // Eu - Logger.MATERIALS("[Centrifuge] Added Recipe: Inpure Dust to Clean Dust"); - } + GT_Values.RA.stdBuilder() + .itemInputs(material.getDustImpure(1)) + .itemOutputs(matDust, matDustB) + .outputChances(100_00, 11_11) + .eut(tVoltageMultiplier / 2) + .duration((int) Math.max(1L, material.getMass() * 8L)) + .addTo(centrifugeRecipes); + + Logger.MATERIALS("[Centrifuge] Added Recipe: Inpure Dust to Clean Dust"); /** * Electrolyzer @@ -458,6 +476,7 @@ public class RecipeGen_Ore extends RecipeGen_Base { + " as input."); } else { Logger.MATERIALS("[Electrolyzer] Could not find valid input dust, exiting."); + return; } } @@ -471,30 +490,30 @@ public class RecipeGen_Ore extends RecipeGen_Base { } } - try { - if (addElectrolyzerRecipe( - mainDust, - emptyCell, // input 2 - null, // Input fluid 1 - null, // Output fluid 1 - mInternalOutputs[0], - mInternalOutputs[1], - mInternalOutputs[2], - mInternalOutputs[3], - mInternalOutputs[4], - mInternalOutputs[5], - mChances, - (int) Math.max(material.getMass() * 3L * 1, 1), - tVoltageMultiplier)) { - Logger - .MATERIALS("[Electrolyzer] Generated Electrolyzer recipe for " + matDust.getDisplayName()); - } else { - Logger.MATERIALS( - "[Electrolyzer] Failed to generate Electrolyzer recipe for " + matDust.getDisplayName()); - } - } catch (Throwable t) { - t.printStackTrace(); + // i don't understand the mess above, so let's just strip nulls and assume the chances are in correct + // order + List<ItemStack> internalOutputs = Arrays.asList(mInternalOutputs); + internalOutputs.removeIf(Objects::isNull); + int[] chances = new int[internalOutputs.size()]; + for (int i = 0; i < internalOutputs.size(); i++) { + chances[i] = mChances[i]; + } + ItemStack[] inputs; + if (emptyCell == null) { + inputs = new ItemStack[] { mainDust }; + } else { + inputs = new ItemStack[] { mainDust, emptyCell }; } + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(internalOutputs.toArray(new ItemStack[0])) + .outputChances(chances) + .duration(Math.max(material.getMass() * 3L * 1, 1)) + .eut(tVoltageMultiplier) + .addTo(electrolyzerRecipes); + + Logger.MATERIALS("[Electrolyzer] Generated Electrolyzer recipe for " + matDust.getDisplayName()); + } else if (componentMap.size() > 6 && componentMap.size() <= 9) { Logger.MATERIALS( "[Issue][Electrolyzer] " + material.getLocalizedName() @@ -573,6 +592,7 @@ public class RecipeGen_Ore extends RecipeGen_Base { + " as input."); } else { Logger.MATERIALS("[Dehydrator] Could not find valid input dust, exiting."); + return; } } @@ -586,33 +606,42 @@ public class RecipeGen_Ore extends RecipeGen_Base { } } - try { - if (CORE.RA.addDehydratorRecipe( - new ItemStack[] { mainDust, emptyCell }, - null, - null, - mInternalOutputs, - mChances, - (int) Math.max(material.getMass() * 4L * 1, 1), - tVoltageMultiplier)) { - Logger.MATERIALS("[Dehydrator] Generated Dehydrator recipe for " + matDust.getDisplayName()); - Logger.MATERIALS( - "Inputs: " + mainDust.getDisplayName() - + " x" - + mainDust.stackSize - + ", " - + (emptyCell == null ? "No Cells" - : "" + emptyCell.getDisplayName() + " x" + emptyCell.stackSize)); - Logger.MATERIALS("Outputs " + ItemUtils.getArrayStackNames(mInternalOutputs)); - Logger.MATERIALS("Time: " + ((int) Math.max(material.getMass() * 4L * 1, 1))); - Logger.MATERIALS("EU: " + tVoltageMultiplier); - } else { - Logger.MATERIALS( - "[Dehydrator] Failed to generate Dehydrator recipe for " + matDust.getDisplayName()); - } - } catch (Throwable t) { - t.printStackTrace(); + // i don't understand the mess above, so let's just strip nulls and assume the chances are in correct + // order + List<ItemStack> internalOutputs = Arrays.asList(mInternalOutputs); + internalOutputs.removeIf(Objects::isNull); + int[] chances = new int[internalOutputs.size()]; + for (int i = 0; i < internalOutputs.size(); i++) { + chances[i] = mChances[i]; } + + ItemStack[] inputs; + if (emptyCell == null) { + inputs = new ItemStack[] { mainDust }; + } else { + inputs = new ItemStack[] { mainDust, emptyCell }; + } + + GT_Values.RA.stdBuilder() + .itemInputs(inputs) + .itemOutputs(internalOutputs.toArray(new ItemStack[0])) + .outputChances(chances) + .eut(tVoltageMultiplier) + .duration((int) Math.max(material.getMass() * 4L * 1, 1)) + .addTo(chemicalDehydratorRecipes); + + Logger.MATERIALS("[Dehydrator] Generated Dehydrator recipe for " + matDust.getDisplayName()); + Logger.MATERIALS( + "Inputs: " + mainDust.getDisplayName() + + " x" + + mainDust.stackSize + + ", " + + (emptyCell == null ? "No Cells" + : "" + emptyCell.getDisplayName() + " x" + emptyCell.stackSize)); + Logger.MATERIALS("Outputs " + ItemUtils.getArrayStackNames(mInternalOutputs)); + Logger.MATERIALS("Time: " + ((int) Math.max(material.getMass() * 4L * 1, 1))); + Logger.MATERIALS("EU: " + tVoltageMultiplier); + } } @@ -699,39 +728,6 @@ public class RecipeGen_Ore extends RecipeGen_Base { // } } - public static boolean addElectrolyzerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, - FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, - ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) { - if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput1 == null) && (aFluidOutput == null))) { - Logger.MATERIALS("[Electrolyzer] Either both inputs or outputs are null."); - return false; - } - if ((aInput1 != null) && (aDuration <= 0)) { - Logger.MATERIALS("[Electrolyzer] Fail 1."); - return false; - } - if ((aFluidInput != null) && (aDuration <= 0)) { - Logger.MATERIALS("[Electrolyzer] Fail 2."); - return false; - } - GT_Values.RA.addElectrolyzerRecipe( - aInput1, - aInput2, - aFluidInput, - aFluidOutput, - aOutput1, - aOutput2, - aOutput3, - aOutput4, - aOutput5, - aOutput6, - aChances, - aDuration, - aEUt); - Logger.MATERIALS("[Electrolyzer] Recipe added."); - return true; - } - public static ItemStack getTinyDust(Material m) { ItemStack x = m.getTinyDust(1); if (x == null) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plasma.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plasma.java index 01d6f9bb02..2ece69065f 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plasma.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plasma.java @@ -1,11 +1,17 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes; +import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; + import java.util.HashSet; import java.util.Set; import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_RecipeConstants; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.interfaces.RunnableWithInfo; import gtPlusPlus.core.material.Material; @@ -42,20 +48,42 @@ public class RecipeGen_Plasma extends RecipeGen_Base { if (ItemUtils.checkForInvalidItems(new ItemStack[] { aPlasmaCell, aContainerItem })) { switch (material.getUnlocalizedName()) { case "Runite": - GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, aPlasmaCell), aContainerItem, 350_000, 4); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aPlasmaCell)) + .itemOutputs(aContainerItem) + .metadata(FUEL_VALUE, 350_000) + .metadata(FUEL_TYPE, GT_RecipeConstants.FuelType.PlasmaTurbine.ordinal()) + .duration(0) + .eut(0) + .addTo(GT_RecipeConstants.Fuel); case "CelestialTungsten": - GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, aPlasmaCell), aContainerItem, 720_000, 4); - default: - GT_Values.RA.addFuel( - GT_Utility.copyAmount(1L, aPlasmaCell), - aContainerItem, - (int) Math.max(1024L, 1024L * material.getMass()), - 4); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aPlasmaCell)) + .itemOutputs(aContainerItem) + .metadata(FUEL_VALUE, 720_000) + .metadata(FUEL_TYPE, GT_RecipeConstants.FuelType.PlasmaTurbine.ordinal()) + .duration(0) + .eut(0) + .addTo(GT_RecipeConstants.Fuel); + default: + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aPlasmaCell)) + .itemOutputs(aContainerItem) + .metadata(FUEL_VALUE, (int) Math.max(1024L, 1024L * material.getMass())) + .metadata(FUEL_TYPE, GT_RecipeConstants.FuelType.PlasmaTurbine.ordinal()) + .duration(0) + .eut(0) + .addTo(GT_RecipeConstants.Fuel); } } if (ItemUtils.checkForInvalidItems(new ItemStack[] { aCell, aPlasmaCell })) { - GT_Values.RA.addVacuumFreezerRecipe(aPlasmaCell, aCell, (int) Math.max(material.getMass() * 2L, 1L)); + GT_Values.RA.stdBuilder() + .itemInputs(aPlasmaCell) + .itemOutputs(aCell) + .duration(Math.max(material.getMass() * 2L, 1L)) + .eut(TierEU.RECIPE_MV) + .addTo(vacuumFreezerRecipes); } } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java index 7eebc16af7..f126e80834 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java @@ -1,5 +1,10 @@ package gtPlusPlus.xmod.gregtech.loaders; +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; + import java.util.HashSet; import java.util.Set; @@ -9,12 +14,11 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GT_Utility; import gtPlusPlus.api.interfaces.RunnableWithInfo; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialGenerator; -import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.minecraft.ItemUtils; public class RecipeGen_Plates extends RecipeGen_Base { @@ -37,7 +41,6 @@ public class RecipeGen_Plates extends RecipeGen_Base { private void generateRecipes(final Material material) { - final int tVoltageMultiplier = material.getMeltingPointK() >= 2800 ? 60 : 15; final ItemStack ingotStackOne = material.getIngot(1); final ItemStack ingotStackTwo = material.getIngot(2); final ItemStack ingotStackThree = material.getIngot(3); @@ -54,172 +57,124 @@ public class RecipeGen_Plates extends RecipeGen_Base { Logger.WARNING("Generating Plate recipes for " + material.getLocalizedName()); // Forge Hammer - if (ItemUtils.checkForInvalidItems(ingotStackTwo) && ItemUtils.checkForInvalidItems(plate_Single)) - if (addForgeHammerRecipe( - ingotStackThree, - plate_SingleTwo, - (int) Math.max(material.getMass(), 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Forge Hammer Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Forge Hammer Recipe: " + material.getLocalizedName() + " - Failed"); - } + if (ItemUtils.checkForInvalidItems(ingotStackTwo) && ItemUtils.checkForInvalidItems(plate_Single)) { + GT_Values.RA.stdBuilder() + .itemInputs(ingotStackThree) + .itemOutputs(plate_SingleTwo) + .duration(Math.max(material.getMass(), 1L)) + .eut(material.vVoltageMultiplier) + .addTo(hammerRecipes); + + Logger.WARNING("Forge Hammer Recipe: " + material.getLocalizedName() + " - Success"); + } + // Bender - if (ItemUtils.checkForInvalidItems(ingotStackOne) && ItemUtils.checkForInvalidItems(plate_Single)) - if (addBenderRecipe( - ingotStackOne, - plate_Single, - (int) Math.max(material.getMass() * 1L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Failed"); - } - if (ItemUtils.checkForInvalidItems(ingotStackOne) && ItemUtils.checkForInvalidItems(foil_SingleFour)) - if (addBenderRecipe( - ingotStackOne, - CI.getNumberedCircuit(10), - foil_SingleFour, - (int) Math.max(material.getMass() * 2L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Failed"); - } + if (ItemUtils.checkForInvalidItems(ingotStackOne) && ItemUtils.checkForInvalidItems(plate_Single)) { + GT_Values.RA.stdBuilder() + .itemInputs(ingotStackOne, GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(plate_Single) + .duration(Math.max(material.getMass() * 1L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(benderRecipes); + + Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); + } + + if (ItemUtils.checkForInvalidItems(ingotStackOne) && ItemUtils.checkForInvalidItems(foil_SingleFour)) { + GT_Values.RA.stdBuilder() + .itemInputs(ingotStackOne, GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(foil_SingleFour) + .duration(Math.max(material.getMass() * 2L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(benderRecipes); + + Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); + } + // Alloy Smelter - if (ItemUtils.checkForInvalidItems(ingotStackTwo) && ItemUtils.checkForInvalidItems(plate_Single)) - if (GT_Values.RA.addAlloySmelterRecipe( - ingotStackTwo, - shape_Mold, - plate_Single, - (int) Math.max(material.getMass() * 2L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Alloy Smelter Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Alloy Smelter Recipe: " + material.getLocalizedName() + " - Failed"); - } + if (ItemUtils.checkForInvalidItems(ingotStackTwo) && ItemUtils.checkForInvalidItems(plate_Single)) { + GT_Values.RA.stdBuilder() + .itemInputs(ingotStackTwo, shape_Mold) + .itemOutputs(plate_Single) + .duration(Math.max(material.getMass() * 2L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(alloySmelterRecipes); + + Logger.WARNING("Alloy Smelter Recipe: " + material.getLocalizedName() + " - Success"); + } // Cutting Machine - if (ItemUtils.checkForInvalidItems(block) && ItemUtils.checkForInvalidItems(plate_Single)) - if (GT_Values.RA.addCutterRecipe( - block, - plate_SingleNine, - null, - (int) Math.max(material.getMass() * 10L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Cutting Machine Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Cutting Machine Recipe: " + material.getLocalizedName() + " - Failed"); - } + if (ItemUtils.checkForInvalidItems(block) && ItemUtils.checkForInvalidItems(plate_Single)) { + GT_Values.RA.stdBuilder() + .itemInputs(block) + .itemOutputs(plate_SingleNine) + .duration(Math.max(material.getMass() * 10L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(cutterRecipes); + + Logger.WARNING("Cutting Machine Recipe: " + material.getLocalizedName() + " - Success"); + } // Making Double Plates - if (ItemUtils.checkForInvalidItems(ingotStackTwo) && ItemUtils.checkForInvalidItems(plate_Double)) - if (addBenderRecipe( - ingotStackTwo, - plate_Double, - (int) Math.max(material.getMass() * 2L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Failed"); - } - - if (ItemUtils.checkForInvalidItems(plate_SingleTwo) && ItemUtils.checkForInvalidItems(plate_Double)) - if (addBenderRecipe( - plate_SingleTwo, - plate_Double, - (int) Math.max(material.getMass() * 2L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Failed"); - } + if (ItemUtils.checkForInvalidItems(ingotStackTwo) && ItemUtils.checkForInvalidItems(plate_Double)) { + GT_Values.RA.stdBuilder() + .itemInputs(ingotStackTwo, GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(plate_Double) + .duration(Math.max(material.getMass() * 2L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(benderRecipes); + + Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); + } + + if (ItemUtils.checkForInvalidItems(plate_SingleTwo) && ItemUtils.checkForInvalidItems(plate_Double)) { + GT_Values.RA.stdBuilder() + .itemInputs(plate_SingleTwo, GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(plate_Double) + .duration(Math.max(material.getMass() * 2L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(benderRecipes); + Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); + } // Bender - if (ItemUtils.checkForInvalidItems(material.getPlate(1)) && ItemUtils.checkForInvalidItems(material.getFoil(1))) - if (addBenderRecipe( - material.getPlate(1), - material.getFoil(4), - (int) Math.max(material.getMass(), 1L), - material.vVoltageMultiplier)) { - GregTech_API.registerCover( - material.getFoil(1), - new GT_RenderedTexture(material.getTextureSet().mTextures[70], material.getRGBA(), false), - null); - Logger.WARNING("Bender Foil Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Bender Foil Recipe: " + material.getLocalizedName() + " - Failed"); - } + if (ItemUtils.checkForInvalidItems(material.getPlate(1)) + && ItemUtils.checkForInvalidItems(material.getFoil(1))) { + GT_Values.RA.stdBuilder() + .itemInputs(material.getPlate(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(material.getFoil(4)) + .duration(Math.max(material.getMass(), 1L)) + .eut(material.vVoltageMultiplier) + .addTo(benderRecipes); + + GregTech_API.registerCover( + material.getFoil(1), + new GT_RenderedTexture(material.getTextureSet().mTextures[70], material.getRGBA(), false), + null); + Logger.WARNING("Bender Foil Recipe: " + material.getLocalizedName() + " - Success"); + } // Making Dense Plates - if (ItemUtils.checkForInvalidItems(ingotStackNine) && ItemUtils.checkForInvalidItems(plate_Dense)) - if (addBenderRecipe( - ingotStackNine, - plate_Dense, - (int) Math.max(material.getMass() * 2L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Failed"); - } - - if (ItemUtils.checkForInvalidItems(plate_SingleNine) && ItemUtils.checkForInvalidItems(plate_Dense)) - if (addBenderRecipe( - plate_SingleNine, - plate_Dense, - (int) Math.max(material.getMass() * 2L, 1L), - material.vVoltageMultiplier)) { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); - } else { - Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Failed"); - } - } - - public static boolean addBenderRecipe(final ItemStack aInput1, final ItemStack aOutput1, int aDuration, - final int aEUt) { - return GT_Values.RA.addBenderRecipe(aInput1, aOutput1, aDuration, aEUt); - } + if (ItemUtils.checkForInvalidItems(ingotStackNine) && ItemUtils.checkForInvalidItems(plate_Dense)) { + GT_Values.RA.stdBuilder() + .itemInputs(ingotStackNine, GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(plate_Dense) + .duration(Math.max(material.getMass() * 2L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(benderRecipes); + + Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); + } - public static boolean addBenderRecipe(final ItemStack aInput1, final ItemStack aCircuit, final ItemStack aOutput1, - int aDuration, final int aEUt) { - return GT_Values.RA.addBenderRecipe(aInput1, aCircuit, aOutput1, aDuration, aEUt); - } + if (ItemUtils.checkForInvalidItems(plate_SingleNine) && ItemUtils.checkForInvalidItems(plate_Dense)) { + GT_Values.RA.stdBuilder() + .itemInputs(plate_SingleNine, GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(plate_Dense) + .duration(Math.max(material.getMass() * 2L, 1L)) + .eut(material.vVoltageMultiplier) + .addTo(benderRecipes); - public static boolean addExtruderRecipe(final ItemStack aInput, final ItemStack aShape, final ItemStack aOutput, - int aDuration, final int aEUt) { - if ((aInput == null) || (aShape == null) || (aOutput == null)) { - return false; - } - if (aDuration <= 0) { - return false; + Logger.WARNING("Bender Recipe: " + material.getLocalizedName() + " - Success"); } - RecipeMaps.extruderRecipes.addRecipe( - true, - new ItemStack[] { aInput, aShape }, - new ItemStack[] { aOutput }, - null, - null, - null, - aDuration, - aEUt, - 0); - return true; - } - public static boolean addForgeHammerRecipe(final ItemStack aInput1, final ItemStack aOutput1, final int aDuration, - final int aEUt) { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; - } - RecipeMaps.hammerRecipes.addRecipe( - true, - new ItemStack[] { aInput1 }, - new ItemStack[] { aOutput1 }, - null, - null, - null, - aDuration, - aEUt, - 0); - return true; } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java index 044ce58c62..d780e4dcbe 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java @@ -1,26 +1,29 @@ package gtPlusPlus.xmod.gregtech.loaders; -import static gregtech.api.enums.GT_Values.L; import static gregtech.api.enums.GT_Values.M; +import static gregtech.api.enums.GT_Values.RA; +import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import java.util.ArrayList; import java.util.Map; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; import org.apache.commons.lang3.reflect.FieldUtils; +import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.data.Pair; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.state.MaterialState; import gtPlusPlus.core.util.Utils; @@ -83,114 +86,86 @@ public class RecipeGen_Recycling implements Runnable { } } - if (mValidPairs.length > 0) { - int validCounter = 0; - Pair<OrePrefixes, ItemStack>[] temp = mValidPairs; - for (Pair<OrePrefixes, ItemStack> temp2 : mValidPairs) { - if (temp2 != null) { - Logger.WARNING( - "Valid: " + temp2.getValue() - .getDisplayName()); - validCounter++; - } - } - Pair<OrePrefixes, ItemStack> temp3[] = new Pair[validCounter]; - int temp4 = 0; - for (Pair<OrePrefixes, ItemStack> r : mValidPairs) { - if (r != null) { - temp3[temp4++] = r; - } - } - if (temp3.length > 0) { - mValidPairs = temp3.clone(); + int validCounter = 0; + Pair<OrePrefixes, ItemStack>[] temp = mValidPairs; + for (Pair<OrePrefixes, ItemStack> temp2 : mValidPairs) { + if (temp2 == null) { + continue; } + Logger.WARNING( + "Valid: " + temp2.getValue() + .getDisplayName()); + validCounter++; } + Pair<OrePrefixes, ItemStack> temp3[] = new Pair[validCounter]; + int temp4 = 0; + for (Pair<OrePrefixes, ItemStack> r : mValidPairs) { + if (r == null) { + continue; + } - if (mValidPrefixesAsString.length >= 1) { - for (final Pair<OrePrefixes, ItemStack> validPrefix : mValidPairs) { - try { + temp3[temp4++] = r; + } + if (temp3.length > 0) { + mValidPairs = temp3.clone(); + } - if (material == null || validPrefix == null - || (material.getState() != MaterialState.SOLID && material.getState() != MaterialState.LIQUID) - || validPrefix.getKey() == OrePrefixes.ingotHot) { - continue; - } + for (final Pair<OrePrefixes, ItemStack> validPrefix : mValidPairs) { + if (material == null || validPrefix == null + || (material.getState() != MaterialState.SOLID && material.getState() != MaterialState.LIQUID) + || validPrefix.getKey() == OrePrefixes.ingotHot) { + continue; + } - final ItemStack tempStack = validPrefix.getValue(); - final ItemStack mDust = getDust(material, validPrefix.getKey()); - final Pair<OrePrefixes, ItemStack> mData = getDustData(material, validPrefix.getKey()); - int mFluidAmount = (int) GT_Utility - .translateMaterialToFluidAmount(validPrefix.getKey().mMaterialAmount, true); - - // Maceration - if (ItemUtils.checkForInvalidItems(tempStack)) { - // mValidItems[mSlotIndex++] = tempStack; - if ((mDust != null) && GT_ModHandler.addPulverisationRecipe(tempStack, mDust)) { - Logger.WARNING( - "Recycle Recipe: " + material.getLocalizedName() - + " - Success - Recycle " - + tempStack.getDisplayName() - + " and obtain " - + mDust.getDisplayName()); - } else { - Logger.WARNING("Recycle Recipe: " + material.getLocalizedName() + " - Failed"); - if (mDust == null) { - Logger.WARNING("Invalid Dust output."); - } - } - } + final ItemStack tempStack = validPrefix.getValue(); + final ItemStack mDust = getDust(material, validPrefix.getKey()); + + // Maceration + if (ItemUtils.checkForInvalidItems(tempStack) && mDust != null) { + RA.stdBuilder() + .itemInputs(tempStack) + .itemOutputs(mDust) + .eut(2) + .duration(20 * SECONDS) + .addTo(maceratorRecipes); + Logger.WARNING( + "Recycle Recipe: " + material.getLocalizedName() + + " - Success - Recycle " + + tempStack.getDisplayName() + + " and obtain " + + mDust.getDisplayName()); + } - // Arc Furnace - if (ItemUtils.checkForInvalidItems(tempStack)) {} - - // Fluid Extractor - if (ItemUtils.checkForInvalidItems(tempStack)) { - // mValidItems[mSlotIndex++] = tempStack; - - int aFluidAmount = (int) ((L * validPrefix.getKey().mMaterialAmount) - / (M * tempStack.stackSize)); - int aDuration = (int) Math.max(1, (24 * validPrefix.getKey().mMaterialAmount) / M); - boolean aGenFluidExtraction = CORE.RA.addFluidExtractionRecipe( - tempStack, - material.getFluidStack(aFluidAmount), - aDuration, - material.vVoltageMultiplier); - if (aGenFluidExtraction /* - * (mDust != null) && CORE.RA.addFluidExtractionRecipe(tempStack, - * material.getFluidStack(mFluidAmount), 30, - * material.vVoltageMultiplier) - */) { - Logger.WARNING( - "Fluid Recycle Recipe: " + material.getLocalizedName() - + " - Success - Recycle " - + tempStack.getDisplayName() - + " and obtain " - + aFluidAmount - + "mb of " - + material.getFluidStack(1) - .getLocalizedName() - + ". Time: " - + aDuration - + ", Voltage: " - + material.vVoltageMultiplier); - } else { - Logger.WARNING("Fluid Recycle Recipe: " + material.getLocalizedName() + " - Failed"); - if (mDust == null) { - Logger.WARNING("Invalid Dust output."); - } - } - } + // Fluid Extractor + if (ItemUtils.checkForInvalidItems(tempStack)) { + int aFluidAmount = (int) ((144 * validPrefix.getKey().mMaterialAmount) / (M * tempStack.stackSize)); + int aDuration = (int) Math.max(1, (24 * validPrefix.getKey().mMaterialAmount) / M); + FluidStack fluidInput = material.getFluidStack(aFluidAmount); + if (fluidInput != null) { + GT_Values.RA.stdBuilder() + .itemInputs(tempStack) + .fluidOutputs() + .duration(aDuration) + .eut(material.vVoltageMultiplier) + .addTo(fluidExtractionRecipes); - } catch (final Throwable t) { - t.printStackTrace(); - // Utils.LOG_WARNING("Returning Null. Throwable Info: - // "+t.getMessage()); - // Utils.LOG_WARNING("Throwable Info: "+t.toString()); - // Utils.LOG_WARNING("Throwable Info: - // "+t.getCause().toString()); + Logger.WARNING( + "Fluid Recycle Recipe: " + material.getLocalizedName() + + " - Success - Recycle " + + tempStack.getDisplayName() + + " and obtain " + + aFluidAmount + + "mb of " + + material.getFluidStack(1) + .getLocalizedName() + + ". Time: " + + aDuration + + ", Voltage: " + + material.vVoltageMultiplier); } } } + } public static Pair<OrePrefixes, ItemStack> getDustData(final Material aMaterial, final OrePrefixes aPrefix) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_ChemicalSkips.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_ChemicalSkips.java index dfa6d9dea6..07beb07256 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_ChemicalSkips.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_ChemicalSkips.java @@ -6,9 +6,14 @@ import static gregtech.api.enums.Mods.GalaxySpace; import static gregtech.api.enums.Mods.GoodGenerator; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.fusionRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.FUSION_THRESHOLD; +import static gregtech.api.util.GT_RecipeConstants.QFT_FOCUS_TIER; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.quantumForceTransformerRecipes; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; @@ -30,7 +35,6 @@ import gregtech.api.util.GT_Utility; import gregtech.common.items.CombType; import gregtech.loaders.misc.GT_Bees; import gtPlusPlus.core.item.chemistry.GenericChem; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.ALLOY; import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.core.material.MISC_MATERIALS; @@ -65,442 +69,550 @@ public class RecipeLoader_ChemicalSkips { ItemStack stemcells = GT_Utility.copyAmountUnsafe(64 * 32, ItemList.Circuit_Chip_Stemcell.get(1)); ItemStack biocells = GT_Utility.copyAmountUnsafe(64 * 32, ItemList.Circuit_Chip_Biocell.get(1)); // Platline - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { WerkstoffLoader.PTMetallicPowder.get(OrePrefixes.dust, 32), - ItemUtils.getSimpleStack(GenericChem.mPlatinumGroupCatalyst, 0) }, - new FluidStack[] {}, - new FluidStack[] {}, - new ItemStack[] { Materials.Platinum.getDust(64), Materials.Palladium.getDust(64), - Materials.Iridium.getDust(64), Materials.Osmium.getDust(64), + GT_Values.RA.stdBuilder() + .itemInputs( + WerkstoffLoader.PTMetallicPowder.get(OrePrefixes.dust, 32), + ItemUtils.getSimpleStack(GenericChem.mPlatinumGroupCatalyst, 0)) + .itemOutputs( + Materials.Platinum.getDust(64), + Materials.Palladium.getDust(64), + Materials.Iridium.getDust(64), + Materials.Osmium.getDust(64), WerkstoffLoader.Rhodium.get(OrePrefixes.dust, 64), - WerkstoffLoader.Ruthenium.get(OrePrefixes.dust, 64) }, - new int[] { 1667, 1667, 1667, 1667, 1667, 1667 }, - 20 * 20, - (int) TierEU.RECIPE_UV, - 1); - + WerkstoffLoader.Ruthenium.get(OrePrefixes.dust, 64)) + .outputChances(1667, 1667, 1667, 1667, 1667, 1667) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UV) + .metadata(QFT_FOCUS_TIER, 1) + .addTo(quantumForceTransformerRecipes); // Early Plastics - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { Materials.Carbon.getDust(64), - ItemUtils.getSimpleStack(GenericChem.mPlasticPolymerCatalyst, 0) }, - new FluidStack[] { Materials.Oxygen.getGas(1000 * 16), Materials.Hydrogen.getGas(1000 * 16), - Materials.Chlorine.getGas(1000 * 16), Materials.Fluorine.getGas(1000 * 16) }, - new FluidStack[] { Materials.Plastic.getMolten(144 * 256), Materials.PolyvinylChloride.getMolten(144 * 128), - Materials.Polystyrene.getMolten(144 * 64), Materials.Polytetrafluoroethylene.getMolten(144 * 128), - Materials.Epoxid.getMolten(144 * 64), Materials.Polybenzimidazole.getMolten(144 * 64) }, - null, - new int[] { 2000, 2000, 2000, 2000, 2000, 2000 }, - 20 * 20, - (int) TierEU.RECIPE_ZPM, - 1); - + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Carbon.getDust(64), ItemUtils.getSimpleStack(GenericChem.mPlasticPolymerCatalyst, 0)) + .fluidInputs( + Materials.Oxygen.getGas(1000 * 16), + Materials.Hydrogen.getGas(1000 * 16), + Materials.Chlorine.getGas(1000 * 16), + Materials.Fluorine.getGas(1000 * 16)) + .fluidOutputs( + Materials.Plastic.getMolten(144 * 256), + Materials.PolyvinylChloride.getMolten(144 * 128), + Materials.Polystyrene.getMolten(144 * 64), + Materials.Polytetrafluoroethylene.getMolten(144 * 128), + Materials.Epoxid.getMolten(144 * 64), + Materials.Polybenzimidazole.getMolten(144 * 64)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .metadata(QFT_FOCUS_TIER, 1) + .addTo(quantumForceTransformerRecipes); // Early Rubbers/Cable Materials - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { Materials.Carbon.getDust(64), - ItemUtils.getSimpleStack(GenericChem.mRubberPolymerCatalyst, 0) }, - new FluidStack[] { Materials.Oxygen.getGas(1000 * 16), Materials.Hydrogen.getGas(1000 * 16), - Materials.Chlorine.getGas(1000 * 16) }, - new FluidStack[] { Materials.Silicone.getMolten(144 * 64), + GT_Values.RA.stdBuilder() + .itemInputs(Materials.Carbon.getDust(64), ItemUtils.getSimpleStack(GenericChem.mRubberPolymerCatalyst, 0)) + .fluidInputs( + Materials.Oxygen.getGas(1000 * 16), + Materials.Hydrogen.getGas(1000 * 16), + Materials.Chlorine.getGas(1000 * 16)) + .fluidOutputs( + Materials.Silicone.getMolten(144 * 64), Materials.StyreneButadieneRubber.getMolten(144 * 64), - Materials.PolyphenyleneSulfide.getMolten(144 * 128), Materials.Rubber.getMolten(144 * 256) }, - null, - new int[] { 2500, 2500, 2500, 2500 }, - 20 * 20, - (int) TierEU.RECIPE_ZPM, - 1); - + Materials.PolyphenyleneSulfide.getMolten(144 * 128), + Materials.Rubber.getMolten(144 * 256)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .metadata(QFT_FOCUS_TIER, 1) + .addTo(quantumForceTransformerRecipes); // Glues and Solders - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { Materials.Carbon.getDust(32), Materials.Bismuth.getDust(32), - ItemUtils.getSimpleStack(GenericChem.mAdhesionPromoterCatalyst, 0) }, - new FluidStack[] { Materials.Oxygen.getGas(10000), Materials.Hydrogen.getGas(10000) }, - new FluidStack[] { MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(1000 * 32), - Materials.AdvancedGlue.getFluid(1000 * 16), ALLOY.INDALLOY_140.getFluidStack(144 * 64), - Materials.SolderingAlloy.getMolten(144 * 128) }, - new ItemStack[] { ItemList.StableAdhesive.get(1) }, - new int[] { 2000, 2000, 2000, 2000, 2000 }, - 20 * 20, - (int) TierEU.RECIPE_UV, - 1); - + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Carbon.getDust(32), + Materials.Bismuth.getDust(32), + ItemUtils.getSimpleStack(GenericChem.mAdhesionPromoterCatalyst, 0)) + .itemOutputs(ItemList.StableAdhesive.get(1)) + .outputChances(2000) + .fluidInputs(Materials.Oxygen.getGas(10000), Materials.Hydrogen.getGas(10000)) + .fluidOutputs( + MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(1000 * 32), + Materials.AdvancedGlue.getFluid(1000 * 16), + ALLOY.INDALLOY_140.getFluidStack(144 * 64), + Materials.SolderingAlloy.getMolten(144 * 128)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UV) + .metadata(QFT_FOCUS_TIER, 1) + .addTo(quantumForceTransformerRecipes); // Titanium, Tungsten, Indium - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { Materials.Lead.getDust(16), Materials.Bauxite.getDust(32), - Materials.Tungstate.getDust(16), ItemUtils.getSimpleStack(GenericChem.mTitaTungstenIndiumCatalyst, 0) }, - new FluidStack[] {}, - new FluidStack[] {}, - new ItemStack[] { Materials.Titanium.getDust(64), Materials.TungstenSteel.getDust(64), - Materials.TungstenCarbide.getDust(64), Materials.Indium.getDust(64) }, - new int[] { 2500, 2500, 2500, 2500 }, - 20 * 20, - (int) TierEU.RECIPE_UV, - 1); - + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Lead.getDust(16), + Materials.Bauxite.getDust(32), + Materials.Tungstate.getDust(16), + ItemUtils.getSimpleStack(GenericChem.mTitaTungstenIndiumCatalyst, 0)) + .itemOutputs( + Materials.Titanium.getDust(64), + Materials.TungstenSteel.getDust(64), + Materials.TungstenCarbide.getDust(64), + Materials.Indium.getDust(64)) + .outputChances(2500, 2500, 2500, 2500) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UV) + .metadata(QFT_FOCUS_TIER, 1) + .addTo(quantumForceTransformerRecipes); // Thorium, Uranium, Plutonium - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { Materials.Thorium.getDust(32), Materials.Uranium.getDust(32), - ItemUtils.getSimpleStack(GenericChem.mRadioactivityCatalyst, 0) }, - new FluidStack[] {}, - new FluidStack[] {}, - new ItemStack[] { ELEMENT.getInstance().THORIUM232.getDust(64), - ELEMENT.getInstance().URANIUM233.getDust(64), Materials.Uranium235.getDust(64), - ELEMENT.getInstance().PLUTONIUM238.getDust(64), Materials.Plutonium.getDust(64), - Materials.Plutonium241.getDust(64) }, - new int[] { 1667, 1667, 1667, 1667, 1667, 1667 }, - 20 * 20, - (int) TierEU.RECIPE_UV, - 1); - + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Thorium.getDust(32), + Materials.Uranium.getDust(32), + ItemUtils.getSimpleStack(GenericChem.mRadioactivityCatalyst, 0)) + .itemOutputs( + ELEMENT.getInstance().THORIUM232.getDust(64), + ELEMENT.getInstance().URANIUM233.getDust(64), + Materials.Uranium235.getDust(64), + ELEMENT.getInstance().PLUTONIUM238.getDust(64), + Materials.Plutonium.getDust(64), + Materials.Plutonium241.getDust(64)) + .outputChances(1667, 1667, 1667, 1667, 1667, 1667) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UV) + .metadata(QFT_FOCUS_TIER, 1) + .addTo(quantumForceTransformerRecipes); // Monaline - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { Materials.Monazite.getDust(32), - ItemUtils.getSimpleStack(GenericChem.mRareEarthGroupCatalyst, 0) }, - new FluidStack[] {}, - new FluidStack[] {}, - new ItemStack[] { Materials.Cerium.getDust(64), Materials.Gadolinium.getDust(64), - Materials.Samarium.getDust(64), getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 64L, 11002), // Hafnia - getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 64L, 11007), // Zirconium - ItemList.SuperconductorComposite.get(1) }, - new int[] { 1667, 1667, 1667, 1667, 1667, 1667 }, - 20 * 20, - (int) TierEU.RECIPE_UHV, - 2); - + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Monazite.getDust(32), + ItemUtils.getSimpleStack(GenericChem.mRareEarthGroupCatalyst, 0)) + .itemOutputs( + Materials.Cerium.getDust(64), + Materials.Gadolinium.getDust(64), + Materials.Samarium.getDust(64), + getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 64L, 11002), + getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 64L, 11007), + ItemList.SuperconductorComposite.get(1)) + .outputChances(1667, 1667, 1667, 1667, 1667, 1667) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .metadata(QFT_FOCUS_TIER, 2) + .addTo(quantumForceTransformerRecipes); // Bastline - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { Materials.Bastnasite.getDust(32), - ItemUtils.getSimpleStack(GenericChem.mRareEarthGroupCatalyst, 0) }, - null, - null, - new ItemStack[] { Materials.Holmium.getDust(64), Materials.Cerium.getDust(64), - Materials.Samarium.getDust(64), Materials.Gadolinium.getDust(64), Materials.Lanthanum.getDust(64) }, - new int[] { 2000, 2000, 2000, 2000, 2000 }, - 20 * 20, - (int) TierEU.RECIPE_UHV, - 2); - + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Bastnasite.getDust(32), + ItemUtils.getSimpleStack(GenericChem.mRareEarthGroupCatalyst, 0)) + .itemOutputs( + Materials.Holmium.getDust(64), + Materials.Cerium.getDust(64), + Materials.Samarium.getDust(64), + Materials.Gadolinium.getDust(64), + Materials.Lanthanum.getDust(64)) + .outputChances(2000, 2000, 2000, 2000, 2000) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .metadata(QFT_FOCUS_TIER, 2) + .addTo(quantumForceTransformerRecipes); // Early Waterline skip (first 4 tiers) - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { ItemUtils.getSimpleStack(GenericChem.mLimpidWaterCatalyst, 0) }, - new FluidStack[] { Materials.Water.getFluid(40000L) }, - new FluidStack[] { Materials.Grade1PurifiedWater.getFluid(20000L), - Materials.Grade2PurifiedWater.getFluid(10000L), Materials.Grade3PurifiedWater.getFluid(5000L), - Materials.Grade4PurifiedWater.getFluid(1000L) }, - new ItemStack[] {}, - new int[] { 2500, 2500, 2500, 2500 }, - 20 * 20, - (int) TierEU.RECIPE_UHV, - 2); - + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(GenericChem.mLimpidWaterCatalyst, 0)) + .fluidInputs(Materials.Water.getFluid(40000L)) + .fluidOutputs( + Materials.Grade1PurifiedWater.getFluid(20000L), + Materials.Grade2PurifiedWater.getFluid(10000L), + Materials.Grade3PurifiedWater.getFluid(5000L), + Materials.Grade4PurifiedWater.getFluid(1000L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .metadata(QFT_FOCUS_TIER, 2) + .addTo(quantumForceTransformerRecipes); // Stem Cells - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { Materials.Calcium.getDust(32), Materials.MeatRaw.getDust(32), + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Calcium.getDust(32), + Materials.MeatRaw.getDust(32), getModItem(NewHorizonsCoreMod.ID, "GTNHBioItems", 32, 2), - ItemUtils.getSimpleStack(GenericChem.mRawIntelligenceCatalyst, 0) }, - new FluidStack[] {}, - new FluidStack[] { Materials.GrowthMediumRaw.getFluid(1000 * 1024), - Materials.GrowthMediumSterilized.getFluid(1000 * 512) }, - new ItemStack[] { stemcells }, - new int[] { 3333, 3333, 3333 }, - 20 * 20, - (int) TierEU.RECIPE_UEV, - 3); - + ItemUtils.getSimpleStack(GenericChem.mRawIntelligenceCatalyst, 0)) + .itemOutputs(stemcells) + .outputChances(3333) + .fluidOutputs( + Materials.GrowthMediumRaw.getFluid(1000 * 1024), + Materials.GrowthMediumSterilized.getFluid(1000 * 512)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .metadata(QFT_FOCUS_TIER, 3) + .addTo(quantumForceTransformerRecipes); // Unknown Particles - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { ItemUtils.getSimpleStack(GenericChem.mParticleAccelerationCatalyst, 0) }, - new FluidStack[] { Materials.Hydrogen.getGas(10000L), Materials.Deuterium.getGas(1000L) }, - new FluidStack[] { FluidUtils.getFluidStack("plasma.hydrogen", 1000) }, - new ItemStack[] { Particle.getBaseParticle(Particle.UNKNOWN), Particle.getBaseParticle(Particle.GRAVITON), - Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.ELECTRON) }, - new int[] { 2000, 2000, 2000, 2000, 2000 }, - 5 * 20, - (int) TierEU.RECIPE_UEV, - 3); - + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(GenericChem.mParticleAccelerationCatalyst, 0)) + .itemOutputs( + Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.GRAVITON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.ELECTRON)) + .outputChances(2000, 2000, 2000, 2000) + .fluidInputs(Materials.Hydrogen.getGas(10000L), Materials.Deuterium.getGas(1000L)) + .fluidOutputs(FluidUtils.getFluidStack("plasma.hydrogen", 1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .metadata(QFT_FOCUS_TIER, 3) + .addTo(quantumForceTransformerRecipes); // Lategame Plastics (Missing Radox Polymer and Heavy Radox) - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { Materials.Carbon.getDust(64), Materials.Osmium.getDust(24), - ItemUtils.getSimpleStack(GenericChem.mUltimatePlasticCatalyst, 0) }, - new FluidStack[] { Materials.Hydrogen.getGas(1000 * 16), Materials.Nitrogen.getGas(1000 * 16) }, - new FluidStack[] { FluidUtils.getFluidStack("xenoxene", 1000 * 16), + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Carbon.getDust(64), + Materials.Osmium.getDust(24), + ItemUtils.getSimpleStack(GenericChem.mUltimatePlasticCatalyst, 0)) + .fluidInputs(Materials.Hydrogen.getGas(1000 * 16), Materials.Nitrogen.getGas(1000 * 16)) + .fluidOutputs( + FluidUtils.getFluidStack("xenoxene", 1000 * 16), FluidUtils.getFluidStack("molten.radoxpoly", 144 * 64), - FluidUtils.getFluidStack("heavyradox", 1000 * 16), MaterialsKevlar.Kevlar.getMolten(144 * 64) }, - new ItemStack[] {}, - new int[] { 2500, 2500, 2500, 2500 }, - 20 * 20, - (int) TierEU.RECIPE_UIV, - 4); - + FluidUtils.getFluidStack("heavyradox", 1000 * 16), + MaterialsKevlar.Kevlar.getMolten(144 * 64)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .metadata(QFT_FOCUS_TIER, 4) + .addTo(quantumForceTransformerRecipes); // Lategame Kevlar using Kevlar bee comb - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { GT_Bees.combs.getStackForType(CombType.KEVLAR, 24), Materials.Carbon.getDust(64), - ItemUtils.getSimpleStack(GenericChem.mUltimatePlasticCatalyst, 0) }, - new FluidStack[] { Materials.Nitrogen.getGas(1000 * 16), Materials.Hydrogen.getGas(1000 * 16) }, - new FluidStack[] { MaterialsKevlar.PolyurethaneResin.getFluid(1000 * 32), - MaterialsKevlar.LiquidCrystalKevlar.getFluid(144 * 32), MaterialsKevlar.Kevlar.getMolten(144 * 64) }, - new ItemStack[] {}, - new int[] { 2500, 2500, 2500, 2500 }, - 20 * 20, - (int) TierEU.RECIPE_UIV, - 4); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Bees.combs.getStackForType(CombType.KEVLAR, 24), + Materials.Carbon.getDust(64), + ItemUtils.getSimpleStack(GenericChem.mUltimatePlasticCatalyst, 0)) + .fluidInputs(Materials.Nitrogen.getGas(1000 * 16), Materials.Hydrogen.getGas(1000 * 16)) + .fluidOutputs( + MaterialsKevlar.PolyurethaneResin.getFluid(1000 * 32), + MaterialsKevlar.LiquidCrystalKevlar.getFluid(144 * 32), + MaterialsKevlar.Kevlar.getMolten(144 * 64)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .metadata(QFT_FOCUS_TIER, 4) + .addTo(quantumForceTransformerRecipes); // Platline skip using Platline Combs (Palladium, Osmium, Iridium, Platinum) - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { GT_Bees.combs.getStackForType(CombType.PLATINUM, 32), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Bees.combs.getStackForType(CombType.PLATINUM, 32), GT_Bees.combs.getStackForType(CombType.PALLADIUM, 32), - GT_Bees.combs.getStackForType(CombType.OSMIUM, 32), GT_Bees.combs.getStackForType(CombType.IRIDIUM, 32), - ItemUtils.getSimpleStack(GenericChem.mPlatinumGroupCatalyst, 0) }, - new FluidStack[] {}, - new FluidStack[] { Materials.Osmium.getMolten(144 * 256), Materials.Palladium.getMolten(144 * 256), - Materials.Iridium.getMolten(144 * 256), Materials.Platinum.getMolten(144 * 256) }, - new ItemStack[] {}, - new int[] { 2500, 2500, 2500, 2500 }, - 20 * 20, - (int) TierEU.RECIPE_UV, - 1); + GT_Bees.combs.getStackForType(CombType.OSMIUM, 32), + GT_Bees.combs.getStackForType(CombType.IRIDIUM, 32), + ItemUtils.getSimpleStack(GenericChem.mPlatinumGroupCatalyst, 0)) + .fluidOutputs( + Materials.Osmium.getMolten(144 * 256), + Materials.Palladium.getMolten(144 * 256), + Materials.Iridium.getMolten(144 * 256), + Materials.Platinum.getMolten(144 * 256)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UV) + .metadata(QFT_FOCUS_TIER, 1) + .addTo(quantumForceTransformerRecipes); // Bio Cells and Mutated Solder - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { ItemList.Circuit_Chip_Stemcell.get(16), Materials.InfinityCatalyst.getDust(4), - ItemUtils.getSimpleStack(GenericChem.mBiologicalIntelligenceCatalyst, 0) }, - new FluidStack[] {}, - new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(144 * 128), - Materials.BioMediumSterilized.getFluid(1000 * 256), Materials.BioMediumRaw.getFluid(1000 * 512) }, - new ItemStack[] { biocells }, - new int[] { 2500, 2500, 2500, 2500 }, - 20 * 20, - (int) TierEU.RECIPE_UIV, - 4); - + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Circuit_Chip_Stemcell.get(16), + Materials.InfinityCatalyst.getDust(4), + ItemUtils.getSimpleStack(GenericChem.mBiologicalIntelligenceCatalyst, 0)) + .itemOutputs(biocells) + .outputChances(2500) + .fluidOutputs( + MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(144 * 128), + Materials.BioMediumSterilized.getFluid(1000 * 256), + Materials.BioMediumRaw.getFluid(1000 * 512)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .metadata(QFT_FOCUS_TIER, 4) + .addTo(quantumForceTransformerRecipes); // Advanced Waterline skip (last 4 tiers) - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { ItemUtils.getSimpleStack(GenericChem.mFlawlessWaterCatalyst, 0) }, - new FluidStack[] { Materials.Water.getFluid(40000L) }, - new FluidStack[] { Materials.Grade5PurifiedWater.getFluid(20000L), - Materials.Grade6PurifiedWater.getFluid(10000L), Materials.Grade7PurifiedWater.getFluid(5000L), - Materials.Grade8PurifiedWater.getFluid(1000L) }, - new ItemStack[] {}, - new int[] { 2500, 2500, 2500, 2500 }, - 20 * 20, - (int) TierEU.RECIPE_UIV, - 4); - + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getSimpleStack(GenericChem.mFlawlessWaterCatalyst, 0)) + .fluidInputs(Materials.Water.getFluid(40000L)) + .fluidOutputs( + Materials.Grade5PurifiedWater.getFluid(20000L), + Materials.Grade6PurifiedWater.getFluid(10000L), + Materials.Grade7PurifiedWater.getFluid(5000L), + Materials.Grade8PurifiedWater.getFluid(1000L)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .metadata(QFT_FOCUS_TIER, 4) + .addTo(quantumForceTransformerRecipes); // Rare Particles - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { ItemUtils.getSimpleStack(GenericChem.mSynchrotronCapableCatalyst, 0), - GregtechItemList.Laser_Lens_Special.get(1) }, - new FluidStack[] { FluidUtils.getFluidStack("plasma.hydrogen", 30000), Materials.Helium.getPlasma(30000L), + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getSimpleStack(GenericChem.mSynchrotronCapableCatalyst, 0), + GregtechItemList.Laser_Lens_Special.get(1)) + .itemOutputs( + Particle.getBaseParticle(Particle.Z_BOSON), + Particle.getBaseParticle(Particle.W_BOSON), + Particle.getBaseParticle(Particle.LAMBDA), + Particle.getBaseParticle(Particle.OMEGA), + Particle.getBaseParticle(Particle.HIGGS_BOSON)) + .outputChances(2000, 2000, 2000, 2000, 2000) + .fluidInputs( + FluidUtils.getFluidStack("plasma.hydrogen", 30000), + Materials.Helium.getPlasma(30000L), Materials.Americium.getPlasma(30000L), - new FluidStack(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getPlasma(), 30000) }, - new FluidStack[] {}, - new ItemStack[] { Particle.getBaseParticle(Particle.Z_BOSON), Particle.getBaseParticle(Particle.W_BOSON), - Particle.getBaseParticle(Particle.LAMBDA), Particle.getBaseParticle(Particle.OMEGA), - Particle.getBaseParticle(Particle.HIGGS_BOSON) }, - new int[] { 2000, 2000, 2000, 2000, 2000 }, - 200 * 20, - (int) TierEU.RECIPE_UIV, - 4); + new FluidStack(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getPlasma(), 30000)) + .duration(3 * MINUTES + 20 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .metadata(QFT_FOCUS_TIER, 4) + .addTo(quantumForceTransformerRecipes); if (GalaxySpace.isModLoaded()) { // Seaweed ItemStack seaweed = GT_Utility .copyAmountUnsafe(64 * 32, getModItem(GalaxySpace.ID, "tcetiedandelions", 1, 4)); - CORE.RA.addQuantumTransformerRecipe( - new ItemStack[] { GT_OreDictUnificator.get("cropSeaweed", 64), Materials.Mytryl.getDust(16), - ItemUtils.getSimpleStack(GenericChem.mAlgagenicGrowthPromoterCatalyst, 0) }, - new FluidStack[] { FluidUtils.getFluidStack("unknowwater", 25_000) }, - new FluidStack[] { FluidUtils.getFluidStack("seaweedbroth", 50_000), - FluidUtils.getFluidStack("iodine", 64_000) }, - new ItemStack[] { seaweed, getModItem(NewHorizonsCoreMod.ID, "item.TCetiESeaweedExtract", 16) }, - new int[] { 2_500, 2_500, 2_500, 2_500 }, - 20 * SECONDS, - (int) TierEU.RECIPE_UIV, - 4); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get("cropSeaweed", 64), + Materials.Mytryl.getDust(16), + ItemUtils.getSimpleStack(GenericChem.mAlgagenicGrowthPromoterCatalyst, 0)) + .itemOutputs(seaweed, getModItem(NewHorizonsCoreMod.ID, "item.TCetiESeaweedExtract", 16)) + .outputChances(25_00, 25_00) + .fluidInputs(FluidUtils.getFluidStack("unknowwater", 25_000)) + .fluidOutputs( + FluidUtils.getFluidStack("seaweedbroth", 50_000), + FluidUtils.getFluidStack("iodine", 64_000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .metadata(QFT_FOCUS_TIER, 4) + .addTo(quantumForceTransformerRecipes); + } } private static void fusionReactorRecipes() { - GT_Values.RA.addFusionReactorRecipe( - new FluidStack[] { Materials.Radon.getPlasma(100), Materials.Nitrogen.getPlasma(100) }, - new FluidStack[] { new FluidStack(ELEMENT.getInstance().NEPTUNIUM.getPlasma(), 100) }, - 30 * 20, - (int) TierEU.RECIPE_UHV, - 1_000_000_000); + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Radon.getPlasma(100), Materials.Nitrogen.getPlasma(100)) + .fluidOutputs(new FluidStack(ELEMENT.getInstance().NEPTUNIUM.getPlasma(), 100)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .metadata(FUSION_THRESHOLD, 1_000_000_000) + .addTo(fusionRecipes); - GT_Values.RA.addFusionReactorRecipe( - new FluidStack[] { Materials.Americium.getPlasma(100), Materials.Boron.getPlasma(100) }, - new FluidStack[] { new FluidStack(ELEMENT.getInstance().FERMIUM.getPlasma(), 100) }, - 30 * 20, - (int) TierEU.RECIPE_UHV, - 1_000_000_000); + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Americium.getPlasma(100), Materials.Boron.getPlasma(100)) + .fluidOutputs(new FluidStack(ELEMENT.getInstance().FERMIUM.getPlasma(), 100)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .metadata(FUSION_THRESHOLD, 1_000_000_000) + .addTo(fusionRecipes); // MK5 versions - GT_Values.RA.addFusionReactorRecipe( - new FluidStack[] { new FluidStack(ELEMENT.getInstance().XENON.getPlasma(), 288), - Materials.Yttrium.getMolten(288) }, - new FluidStack[] { new FluidStack(ELEMENT.getInstance().NEPTUNIUM.getPlasma(), 288) }, - 1 * SECONDS + 12 * TICKS, - (int) TierEU.RECIPE_UEV, - 1_000_000_000); + GT_Values.RA.stdBuilder() + .fluidInputs(new FluidStack(ELEMENT.getInstance().XENON.getPlasma(), 288), Materials.Yttrium.getMolten(288)) + .fluidOutputs(new FluidStack(ELEMENT.getInstance().NEPTUNIUM.getPlasma(), 288)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_UEV) + .metadata(FUSION_THRESHOLD, 1_000_000_000) + .addTo(fusionRecipes); - GT_Values.RA.addFusionReactorRecipe( - new FluidStack[] { new FluidStack(ELEMENT.STANDALONE.FORCE.getPlasma(), 288), - Materials.Rubidium.getMolten(288) }, - new FluidStack[] { new FluidStack(ELEMENT.getInstance().FERMIUM.getPlasma(), 288) }, - 1 * SECONDS + 12 * TICKS, - (int) TierEU.RECIPE_UEV, - 1_000_000_000); + GT_Values.RA.stdBuilder() + .fluidInputs(new FluidStack(ELEMENT.STANDALONE.FORCE.getPlasma(), 288), Materials.Rubidium.getMolten(288)) + .fluidOutputs(new FluidStack(ELEMENT.getInstance().FERMIUM.getPlasma(), 288)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(TierEU.RECIPE_UEV) + .metadata(FUSION_THRESHOLD, 1_000_000_000) + .addTo(fusionRecipes); } private static void catalystRecipes() { - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), - getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 64L, 88), Materials.Osmiridium.getDust(64), - Materials.Carbon.getNanite(64) }, - ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), - ItemUtils.getSimpleStack(GenericChem.mPlatinumGroupCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UEV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), - Materials.Polybenzimidazole.getDust(64), Materials.Polytetrafluoroethylene.getDust(64), - Materials.Carbon.getNanite(64) }, - ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), - ItemUtils.getSimpleStack(GenericChem.mPlasticPolymerCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UEV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), Materials.Silicone.getDust(64), - Materials.StyreneButadieneRubber.getDust(64), Materials.Carbon.getNanite(64) }, - ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), - ItemUtils.getSimpleStack(GenericChem.mRubberPolymerCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UEV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), ALLOY.INDALLOY_140.getDust(64), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getCell(64), Materials.Carbon.getNanite(64) }, - ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), - ItemUtils.getSimpleStack(GenericChem.mAdhesionPromoterCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UHV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), Materials.TungstenSteel.getDust(64), - Materials.Indium.getDust(64), Materials.Carbon.getNanite(64) }, - ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), - ItemUtils.getSimpleStack(GenericChem.mTitaTungstenIndiumCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UHV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), - ELEMENT.getInstance().URANIUM235.getDust(64), ELEMENT.getInstance().PLUTONIUM241.getDust(64), - Materials.Carbon.getNanite(64) }, - ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), - ItemUtils.getSimpleStack(GenericChem.mRadioactivityCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UHV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), Materials.Samarium.getDust(64), - Materials.Gadolinium.getDust(64), Materials.Silver.getNanite(1) }, - ELEMENT.STANDALONE.HYPOGEN.getFluidStack(9216), - ItemUtils.getSimpleStack(GenericChem.mRareEarthGroupCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UEV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 64L, 88), + Materials.Osmiridium.getDust(64), + Materials.Carbon.getNanite(64)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mPlatinumGroupCatalyst, 1)) + .fluidInputs(ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + Materials.Polybenzimidazole.getDust(64), + Materials.Polytetrafluoroethylene.getDust(64), + Materials.Carbon.getNanite(64)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mPlasticPolymerCatalyst, 1)) + .fluidInputs(ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + Materials.Silicone.getDust(64), + Materials.StyreneButadieneRubber.getDust(64), + Materials.Carbon.getNanite(64)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mRubberPolymerCatalyst, 1)) + .fluidInputs(ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + ALLOY.INDALLOY_140.getDust(64), + MISC_MATERIALS.ETHYL_CYANOACRYLATE.getCell(64), + Materials.Carbon.getNanite(64)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mAdhesionPromoterCatalyst, 1)) + .fluidInputs(ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + Materials.TungstenSteel.getDust(64), + Materials.Indium.getDust(64), + Materials.Carbon.getNanite(64)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mTitaTungstenIndiumCatalyst, 1)) + .fluidInputs(ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + ELEMENT.getInstance().URANIUM235.getDust(64), + ELEMENT.getInstance().PLUTONIUM241.getDust(64), + Materials.Carbon.getNanite(64)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mRadioactivityCatalyst, 1)) + .fluidInputs(ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + Materials.Samarium.getDust(64), + Materials.Gadolinium.getDust(64), + Materials.Silver.getNanite(1)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mRareEarthGroupCatalyst, 1)) + .fluidInputs(ELEMENT.STANDALONE.HYPOGEN.getFluidStack(9216)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), WerkstoffLoader.Hedenbergit.get(OrePrefixes.lens, 1), GT_OreDictUnificator.get(OrePrefixes.nanite, Materials.Silver, 1, false), - ItemList.Circuit_Silicon_Wafer6.get(64) }, - ELEMENT.STANDALONE.HYPOGEN.getFluidStack(9216), - ItemUtils.getSimpleStack(GenericChem.mLimpidWaterCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UEV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), Materials.Naquadah.getDust(64), - Materials.Adamantium.getDust(64), Materials.Silver.getNanite(1) }, - ELEMENT.STANDALONE.HYPOGEN.getFluidStack(9216), - ItemUtils.getSimpleStack(GenericChem.mSimpleNaquadahCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UEV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), Materials.Naquadria.getDust(64), - Materials.Trinium.getDust(64), Materials.Gold.getNanite(1) }, - MaterialsUEVplus.SpaceTime.getMolten(9216L), - ItemUtils.getSimpleStack(GenericChem.mAdvancedNaquadahCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UIV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), ItemList.Circuit_Chip_Stemcell.get(64), - Materials.Gold.getNanite(1) }, - MaterialsUEVplus.SpaceTime.getMolten(9216L), - ItemUtils.getSimpleStack(GenericChem.mRawIntelligenceCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UIV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + ItemList.Circuit_Silicon_Wafer6.get(64)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mLimpidWaterCatalyst, 1)) + .fluidInputs(ELEMENT.STANDALONE.HYPOGEN.getFluidStack(9216)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + Materials.Naquadah.getDust(64), + Materials.Adamantium.getDust(64), + Materials.Silver.getNanite(1)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mSimpleNaquadahCatalyst, 1)) + .fluidInputs(ELEMENT.STANDALONE.HYPOGEN.getFluidStack(9216)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + Materials.Naquadria.getDust(64), + Materials.Trinium.getDust(64), + Materials.Gold.getNanite(1)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mAdvancedNaquadahCatalyst, 1)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(9216L)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + ItemList.Circuit_Chip_Stemcell.get(64), + Materials.Gold.getNanite(1)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mRawIntelligenceCatalyst, 1)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(9216L)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), GregtechItemList.Laser_Lens_Special.get(64), - GT_ModHandler.getModItem(EternalSingularity.ID, "eternal_singularity", 10) }, - MaterialsUEVplus.SpaceTime.getMolten(9216L), - ItemUtils.getSimpleStack(GenericChem.mParticleAccelerationCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UIV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), MaterialsKevlar.Kevlar.getDust(64), - MaterialsUEVplus.TranscendentMetal.getNanite(1) }, - FluidUtils.getFluidStack("molten.shirabon", 92160), - ItemUtils.getSimpleStack(GenericChem.mUltimatePlasticCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UMV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), ItemList.Circuit_Chip_Biocell.get(64), - MaterialsUEVplus.TranscendentMetal.getNanite(1) }, - FluidUtils.getFluidStack("molten.shirabon", 92160), - ItemUtils.getSimpleStack(GenericChem.mBiologicalIntelligenceCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UMV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + GT_ModHandler.getModItem(EternalSingularity.ID, "eternal_singularity", 10)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mParticleAccelerationCatalyst, 1)) + .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(9216L)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + MaterialsKevlar.Kevlar.getDust(64), + MaterialsUEVplus.TranscendentMetal.getNanite(1)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mUltimatePlasticCatalyst, 1)) + .fluidInputs(FluidUtils.getFluidStack("molten.shirabon", 92160)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + ItemList.Circuit_Chip_Biocell.get(64), + MaterialsUEVplus.TranscendentMetal.getNanite(1)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mBiologicalIntelligenceCatalyst, 1)) + .fluidInputs(FluidUtils.getFluidStack("molten.shirabon", 92160)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), WerkstoffLoader.Hedenbergit.get(OrePrefixes.lens, 64), GT_OreDictUnificator.get(OrePrefixes.nanite, Materials.Silver, 64, false), - ItemList.Circuit_Silicon_Wafer6.get(64) }, - FluidUtils.getFluidStack("molten.shirabon", 92160), - ItemUtils.getSimpleStack(GenericChem.mFlawlessWaterCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UMV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), - Particle.getBaseParticle(Particle.HIGGS_BOSON), Particle.getIon("Helium", 0), - Particle.getIon("Hydrogen", 0), MaterialsUEVplus.Eternity.getNanite(16) }, - FluidUtils.getFluidStack("molten.shirabon", 92160), - ItemUtils.getSimpleStack(GenericChem.mSynchrotronCapableCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UMV); - - CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), - GT_OreDictUnificator.get("blockShirabon", 16), MaterialsUEVplus.Universium.getNanite(1), - ItemList.Timepiece.get(1) }, - Materials.DarkIron.getMolten(92160), - ItemUtils.getSimpleStack(GenericChem.TemporalHarmonyCatalyst, 1), - 60 * 20, - (int) TierEU.RECIPE_UXV); + ItemList.Circuit_Silicon_Wafer6.get(64)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mFlawlessWaterCatalyst, 1)) + .fluidInputs(FluidUtils.getFluidStack("molten.shirabon", 92160)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + Particle.getBaseParticle(Particle.HIGGS_BOSON), + Particle.getIon("Helium", 0), + Particle.getIon("Hydrogen", 0), + MaterialsUEVplus.Eternity.getNanite(16)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mSynchrotronCapableCatalyst, 1)) + .fluidInputs(FluidUtils.getFluidStack("molten.shirabon", 92160)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(10), + CI.getEmptyCatalyst(1), + GT_OreDictUnificator.get("blockShirabon", 16), + MaterialsUEVplus.Universium.getNanite(1), + ItemList.Timepiece.get(1)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.TemporalHarmonyCatalyst, 1)) + .fluidInputs(Materials.DarkIron.getMolten(92160)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UXV) + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( - CI.getNumberedCircuit(10), + GT_Utility.getIntegratedCircuit(10), CI.getEmptyCatalyst(1), getModItem(NewHorizonsCoreMod.ID, "item.TCetiESeaweedExtract", 64), GT_OreDictUnificator.get("dustIodine", 64), @@ -650,12 +762,17 @@ public class RecipeLoader_ChemicalSkips { 120 * 20, (int) TierEU.RECIPE_UXV); - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { new ItemStack(QuantumGlassBlock.INSTANCE, 1), ItemList.Field_Generator_ZPM.get(1), - ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getLongRod(6), ELEMENT.STANDALONE.CHRONOMATIC_GLASS.getPlate(6) }, - ALLOY.QUANTUM.getFluidStack(144 * 6), - GregtechItemList.ForceFieldGlass.get(1), - 10 * 20, - (int) TierEU.RECIPE_UEV); + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(QuantumGlassBlock.INSTANCE, 1), + ItemList.Field_Generator_ZPM.get(1), + ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getLongRod(6), + ELEMENT.STANDALONE.CHRONOMATIC_GLASS.getPlate(6)) + .itemOutputs(GregtechItemList.ForceFieldGlass.get(1)) + .fluidInputs(ALLOY.QUANTUM.getFluidStack(144 * 6)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_UEV) + .addTo(assemblerRecipes); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_GTNH.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_GTNH.java index 4aa13a0072..680a4291e8 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_GTNH.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_GTNH.java @@ -1,5 +1,11 @@ package gtPlusPlus.xmod.gregtech.loaders.recipe; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.recipe.RecipeMaps.fusionRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.FUSION_THRESHOLD; + import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; @@ -8,38 +14,43 @@ import net.minecraftforge.fluids.FluidStack; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; +import gregtech.api.enums.TierEU; import gtPlusPlus.core.material.ELEMENT; public class RecipeLoader_GTNH { public static void generate() { - GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Ball.get(0L), - new FluidStack(FluidRegistry.getFluid("ender"), 250), - new ItemStack(Items.ender_pearl, 1, 0), - 100, - 30); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) + .itemOutputs(new ItemStack(Items.ender_pearl, 1, 0)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("ender"), 250)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(fluidSolidifierRecipes); + // MK4 - GT_Values.RA.addFusionReactorRecipe( - Materials.Plutonium241.getMolten(144), - Materials.Helium.getGas(1000), - ELEMENT.getInstance().CURIUM.getFluidStack(144), - 96, - 98304, - 500000000); - GT_Values.RA.addFusionReactorRecipe( - ELEMENT.getInstance().CURIUM.getFluidStack(144), - Materials.Helium.getPlasma(144), - ELEMENT.getInstance().CALIFORNIUM.getFluidStack(144), - 128, - 196608, - 750000000); - GT_Values.RA.addFusionReactorRecipe( - Materials.Plutonium241.getMolten(144), - Materials.Calcium.getPlasma(144), - Materials.Flerovium.getMolten(144), - 160, - 196608, - 1000000000); + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Plutonium241.getMolten(144), Materials.Helium.getGas(1000)) + .fluidOutputs(ELEMENT.getInstance().CURIUM.getFluidStack(144)) + .duration(4 * SECONDS + 16 * TICKS) + .eut(98304) + .metadata(FUSION_THRESHOLD, 500_000_000) + .addTo(fusionRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(ELEMENT.getInstance().CURIUM.getFluidStack(144), Materials.Helium.getPlasma(144)) + .fluidOutputs(ELEMENT.getInstance().CALIFORNIUM.getFluidStack(144)) + .duration(6 * SECONDS + 8 * TICKS) + .eut(196608) + .metadata(FUSION_THRESHOLD, 750_000_000) + .addTo(fusionRecipes); + + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Plutonium241.getMolten(144), Materials.Calcium.getPlasma(144)) + .fluidOutputs(Materials.Flerovium.getMolten(144)) + .duration(8 * SECONDS) + .eut(196608) + .metadata(FUSION_THRESHOLD, 1_000_000_000) + .addTo(fusionRecipes); } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_GlueLine.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_GlueLine.java index 2dae8a3f75..40cf569df6 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_GlueLine.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_GlueLine.java @@ -2,12 +2,22 @@ package gtPlusPlus.xmod.gregtech.loaders.recipe; import static gregtech.api.enums.Mods.GalacticraftCore; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalReactorRecipes; +import static gregtech.api.recipe.RecipeMaps.distillationTowerRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidHeaterRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.CHEMPLANT_CASING_TIER; import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalPlantRecipes; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; @@ -20,12 +30,10 @@ import gregtech.api.util.GT_Utility; import gtPlusPlus.core.item.ModItems; import gtPlusPlus.core.item.chemistry.AgriculturalChem; import gtPlusPlus.core.item.chemistry.GenericChem; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.MISC_MATERIALS; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.minecraft.MaterialUtils; import gtPlusPlus.plugin.agrichem.BioRecipes; public class RecipeLoader_GlueLine { @@ -47,103 +55,122 @@ public class RecipeLoader_GlueLine { private static void chemicalPlantRecipes() { // CO + C3H6O2 = C4H6O3 - CORE.RA.addChemicalPlantRecipe( - new ItemStack[] { CI.getNumberedCircuit(17), ItemUtils.getSimpleStack(GenericChem.mBlueCatalyst, 0) }, - new FluidStack[] { FluidUtils.getFluidStack("carbonmonoxide", 1000), - FluidUtils.getFluidStack("methylacetate", 1000), }, - new ItemStack[] {}, - new FluidStack[] { MISC_MATERIALS.ACETIC_ANHYDRIDE.getFluidStack(1000) }, - 10 * 20, - 500, - 3); - - CORE.RA.addChemicalPlantRecipe( - new ItemStack[] { CI.getNumberedCircuit(18) }, - new FluidStack[] { FluidUtils.getFluidStack("aceticacid", 1000), FluidUtils.getFluidStack("chlorine", 1000), - MISC_MATERIALS.ACETIC_ANHYDRIDE.getFluidStack(1000) }, - new ItemStack[] {}, - new FluidStack[] { MISC_MATERIALS.CHLOROACETIC_MIXTURE.getFluidStack(1000), - MISC_MATERIALS.ACETIC_ANHYDRIDE.getFluidStack(950) }, - 150 * 20, - 1000, - 4); - + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(17), ItemUtils.getSimpleStack(GenericChem.mBlueCatalyst, 0)) + .fluidInputs( + FluidUtils.getFluidStack("carbonmonoxide", 1000), + FluidUtils.getFluidStack("methylacetate", 1000)) + .fluidOutputs(MISC_MATERIALS.ACETIC_ANHYDRIDE.getFluidStack(1000)) + .duration(10 * SECONDS) + .eut(500) + .metadata(CHEMPLANT_CASING_TIER, 3) + .addTo(chemicalPlantRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(18)) + .fluidInputs( + FluidUtils.getFluidStack("aceticacid", 1000), + FluidUtils.getFluidStack("chlorine", 1000), + MISC_MATERIALS.ACETIC_ANHYDRIDE.getFluidStack(1000)) + .fluidOutputs( + MISC_MATERIALS.CHLOROACETIC_MIXTURE.getFluidStack(1000), + MISC_MATERIALS.ACETIC_ANHYDRIDE.getFluidStack(950)) + .duration(2 * MINUTES + 30 * SECONDS) + .eut(1000) + .metadata(CHEMPLANT_CASING_TIER, 4) + .addTo(chemicalPlantRecipes); // Na2CO3 + NaCN + C2H3O2Cl + 2HCl = C3H3NO2 + 3NaCl + CO2 + H2O - CORE.RA.addChemicalPlantRecipe( - new ItemStack[] { CI.getNumberedCircuit(19), ItemUtils.getSimpleStack(AgriculturalChem.mSodiumCarbonate, 6), - MISC_MATERIALS.SODIUM_CYANIDE.getDust(3) }, - new FluidStack[] { MISC_MATERIALS.CHLOROACETIC_ACID.getFluidStack(1000), - FluidUtils.getFluidStack("hydrochloricacid_gt5u", 2000) }, - new ItemStack[] { MISC_MATERIALS.CYANOACETIC_ACID.getDust(9), Materials.Salt.getDust(6) }, - new FluidStack[] { Materials.CarbonDioxide.getGas(1000), GT_ModHandler.getWater(1000) }, - 20 * 20, - 1000, - 4); - + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(19), + ItemUtils.getSimpleStack(AgriculturalChem.mSodiumCarbonate, 6), + MISC_MATERIALS.SODIUM_CYANIDE.getDust(3)) + .itemOutputs(MISC_MATERIALS.CYANOACETIC_ACID.getDust(9), Materials.Salt.getDust(6)) + .fluidInputs( + MISC_MATERIALS.CHLOROACETIC_ACID.getFluidStack(1000), + FluidUtils.getFluidStack("hydrochloricacid_gt5u", 2000)) + .fluidOutputs(Materials.CarbonDioxide.getGas(1000), GT_ModHandler.getWater(1000)) + .duration(20 * SECONDS) + .eut(1000) + .metadata(CHEMPLANT_CASING_TIER, 4) + .addTo(chemicalPlantRecipes); // CuSO4 + 5C3H3NO2 + 5C2H6O = CuSO4·5(H2O) + 5C5H7NO2 - CORE.RA.addChemicalPlantRecipe( - new ItemStack[] { CI.getNumberedCircuit(20), ItemUtils.getSimpleStack(GenericChem.mSolidAcidCatalyst, 0), - MISC_MATERIALS.COPPER_SULFATE.getDust(6), MISC_MATERIALS.CYANOACETIC_ACID.getDust(45) }, - new FluidStack[] { Materials.Ethanol.getFluid(5000) }, - new ItemStack[] { MISC_MATERIALS.COPPER_SULFATE_HYDRATED.getDust(11) }, - new FluidStack[] { MISC_MATERIALS.ETHYL_CYANOACETATE.getFluidStack(5000) }, - 500 * 20, - 6000, - 5); - + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(20), + ItemUtils.getSimpleStack(GenericChem.mSolidAcidCatalyst, 0), + MISC_MATERIALS.COPPER_SULFATE.getDust(6), + MISC_MATERIALS.CYANOACETIC_ACID.getDust(45)) + .itemOutputs(MISC_MATERIALS.COPPER_SULFATE_HYDRATED.getDust(11)) + .fluidInputs(Materials.Ethanol.getFluid(5000)) + .fluidOutputs(MISC_MATERIALS.ETHYL_CYANOACETATE.getFluidStack(5000)) + .duration(8 * MINUTES + 20 * SECONDS) + .eut(6000) + .metadata(CHEMPLANT_CASING_TIER, 5) + .addTo(chemicalPlantRecipes); // C3H3NO2 + C2H6O = C5H7NO2 + H2O - CORE.RA.addChemicalPlantRecipe( - new ItemStack[] { CI.getNumberedCircuit(21), MISC_MATERIALS.CYANOACETIC_ACID.getDust(9) }, - new FluidStack[] { Materials.Ethanol.getFluid(1000) }, - new ItemStack[] {}, - new FluidStack[] { MISC_MATERIALS.ETHYL_CYANOACETATE.getFluidStack(1000) }, - 1000 * 20, - 6000, - 5); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(21), MISC_MATERIALS.CYANOACETIC_ACID.getDust(9)) + .fluidInputs(Materials.Ethanol.getFluid(1000)) + .fluidOutputs(MISC_MATERIALS.ETHYL_CYANOACETATE.getFluidStack(1000)) + .duration(16 * MINUTES + 40 * SECONDS) + .eut(6000) + .metadata(CHEMPLANT_CASING_TIER, 5) + .addTo(chemicalPlantRecipes); BioRecipes.mFormaldehyde = FluidUtils.getFluidStack("fluid.formaldehyde", 1) .getFluid(); - CORE.RA.addChemicalPlantRecipe( - new ItemStack[] { CI.getNumberedCircuit(22), ItemUtils.getSimpleStack(GenericChem.mSolidAcidCatalyst, 0) }, - new FluidStack[] { MISC_MATERIALS.ETHYL_CYANOACETATE.getFluidStack(100), - FluidUtils.getFluidStack(BioRecipes.mFormaldehyde, 100) }, - new ItemStack[] {}, - new FluidStack[] { MISC_MATERIALS.CYANOACRYLATE_POLYMER.getFluidStack(100), FluidUtils.getWater(1000) }, - 10 * 20, - 8000, - 5); - + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(22), + ItemUtils.getSimpleStack(GenericChem.mSolidAcidCatalyst, 0)) + .fluidInputs( + MISC_MATERIALS.ETHYL_CYANOACETATE.getFluidStack(100), + FluidUtils.getFluidStack(BioRecipes.mFormaldehyde, 100)) + .fluidOutputs(MISC_MATERIALS.CYANOACRYLATE_POLYMER.getFluidStack(100), FluidUtils.getWater(1000)) + .duration(10 * SECONDS) + .eut(8000) + .metadata(CHEMPLANT_CASING_TIER, 5) + .addTo(chemicalPlantRecipes); // CH4 + NH3 + 3O = HCN + 3H2O - CORE.RA.addChemicalPlantRecipe( - new ItemStack[] { CI.getNumberedCircuit(23), ItemUtils.getSimpleStack(GenericChem.mPinkCatalyst, 0) }, - new FluidStack[] { FluidUtils.getFluidStack("methane", 2000), FluidUtils.getFluidStack("ammonia", 2000), - FluidUtils.getFluidStack("oxygen", 6000) }, - new ItemStack[] {}, - new FluidStack[] { MISC_MATERIALS.HYDROGEN_CYANIDE.getFluidStack(2000), FluidUtils.getWater(6000) }, - 10 * 20, - 500, - 3); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(23), ItemUtils.getSimpleStack(GenericChem.mPinkCatalyst, 0)) + .fluidInputs( + FluidUtils.getFluidStack("methane", 2000), + FluidUtils.getFluidStack("ammonia", 2000), + FluidUtils.getFluidStack("oxygen", 6000)) + .fluidOutputs(MISC_MATERIALS.HYDROGEN_CYANIDE.getFluidStack(2000), FluidUtils.getWater(6000)) + .duration(10 * SECONDS) + .eut(500) + .metadata(CHEMPLANT_CASING_TIER, 3) + .addTo(chemicalPlantRecipes); + } private static void chemicalReactorRecipes() { // NaOH + HCN = NaCN + H2O - GT_Values.RA.addChemicalRecipe( - CI.getNumberedCircuit(17), - ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumHydroxide", 3), - MISC_MATERIALS.HYDROGEN_CYANIDE.getFluidStack(1000), - FluidUtils.getWater(1000), - MISC_MATERIALS.SODIUM_CYANIDE.getDust(3), - 10 * 20); - // #addChemicalRecipe won't generate LCR recipe if config >= 10 - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[] { CI.getNumberedCircuit(17), - ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumHydroxide", 3) }, - new FluidStack[] { MISC_MATERIALS.HYDROGEN_CYANIDE.getFluidStack(1000) }, - new FluidStack[] { FluidUtils.getWater(1000) }, - new ItemStack[] { MISC_MATERIALS.SODIUM_CYANIDE.getDust(3) }, - 10 * 20, - 30); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(17), + ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumHydroxide", 3)) + .itemOutputs(MISC_MATERIALS.SODIUM_CYANIDE.getDust(3)) + .fluidInputs(MISC_MATERIALS.HYDROGEN_CYANIDE.getFluidStack(1000)) + .fluidOutputs(FluidUtils.getWater(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalReactorRecipes); + + // #UniversalChemical recipemap won't generate LCR recipe if config >= 10 + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(17), + ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumHydroxide", 3)) + .itemOutputs(MISC_MATERIALS.SODIUM_CYANIDE.getDust(3)) + .fluidInputs(MISC_MATERIALS.HYDROGEN_CYANIDE.getFluidStack(1000)) + .fluidOutputs(FluidUtils.getWater(1000)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(multiblockChemicalReactorRecipes); // CaCO3 + 2HCl = CaCl2 + CO2 + H2O GT_Values.RA.stdBuilder() @@ -157,220 +184,243 @@ public class RecipeLoader_GlueLine { // Cu + 2H2SO4 = CuSO4 + SO2 + 2H2O // SO2 + 2H2O -> diluted sulfuric acid - GT_Values.RA.addChemicalRecipe( - CI.getNumberedCircuit(19), - ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 1), - FluidUtils.getFluidStack("sulfuricacid", 2000), - FluidUtils.getFluidStack("dilutedsulfuricacid", 1000), - MISC_MATERIALS.COPPER_SULFATE.getDust(6), - 5 * 20); - // #addChemicalRecipe won't generate LCR recipe if config >= 10 - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[] { CI.getNumberedCircuit(19), ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 1) }, - new FluidStack[] { FluidUtils.getFluidStack("sulfuricacid", 2000) }, - new FluidStack[] { FluidUtils.getFluidStack("dilutedsulfuricacid", 1000) }, - new ItemStack[] { MISC_MATERIALS.COPPER_SULFATE.getDust(6) }, - 5 * 20, - 30); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(19), ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 1)) + .itemOutputs(MISC_MATERIALS.COPPER_SULFATE.getDust(6)) + .fluidInputs(FluidUtils.getFluidStack("sulfuricacid", 2000)) + .fluidOutputs(FluidUtils.getFluidStack("dilutedsulfuricacid", 1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(chemicalReactorRecipes); + + // #UniversalChemical won't generate LCR recipe if config >= 10 + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(19), ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 1)) + .itemOutputs(MISC_MATERIALS.COPPER_SULFATE.getDust(6)) + .fluidInputs(FluidUtils.getFluidStack("sulfuricacid", 2000)) + .fluidOutputs(FluidUtils.getFluidStack("dilutedsulfuricacid", 1000)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(multiblockChemicalReactorRecipes); } private static void dehydratorRecipes() { - CORE.RA.addDehydratorRecipe( - new ItemStack[] { MISC_MATERIALS.COPPER_SULFATE_HYDRATED.getDust(11), }, - null, - GT_ModHandler.getWater(5000), - new ItemStack[] { MISC_MATERIALS.COPPER_SULFATE.getDust(6) }, - new int[] { 10000, 10000, 10000 }, - 300 * 20, - 10); + GT_Values.RA.stdBuilder() + .itemInputs(MISC_MATERIALS.COPPER_SULFATE_HYDRATED.getDust(11)) + .itemOutputs(MISC_MATERIALS.COPPER_SULFATE.getDust(6)) + .fluidOutputs(GT_ModHandler.getWater(5000)) + .eut(10) + .duration(5 * MINUTES) + .addTo(chemicalDehydratorRecipes); } private static void distillationTowerRecipes() { - GT_Values.RA.addDistillationTowerRecipe( - MISC_MATERIALS.CHLOROACETIC_MIXTURE.getFluidStack(1000), - new FluidStack[] { MISC_MATERIALS.CHLOROACETIC_ACID.getFluidStack(100), + GT_Values.RA.stdBuilder() + .fluidInputs(MISC_MATERIALS.CHLOROACETIC_MIXTURE.getFluidStack(1000)) + .fluidOutputs( + MISC_MATERIALS.CHLOROACETIC_ACID.getFluidStack(100), MISC_MATERIALS.DICHLOROACETIC_ACID.getFluidStack(450), - MISC_MATERIALS.TRICHLOROACETIC_ACID.getFluidStack(450) }, - null, - 4 * 20, - MaterialUtils.getVoltageForTier(5)); + MISC_MATERIALS.TRICHLOROACETIC_ACID.getFluidStack(450)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(distillationTowerRecipes); + } private static void fluidHeaterRecipes() { - CORE.RA.addFluidHeaterRecipe( - CI.getNumberedCircuit(16), - MISC_MATERIALS.CYANOACRYLATE_POLYMER.getFluidStack(100), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(100), - 30 * 30, - 500); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(16)) + .fluidInputs(MISC_MATERIALS.CYANOACRYLATE_POLYMER.getFluidStack(100)) + .fluidOutputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(100)) + .duration(45 * SECONDS) + .eut(500) + .addTo(fluidHeaterRecipes); } private static void mixerRecipes() { - GT_Values.RA.addMixerRecipe( - CI.getNumberedCircuit(1), - MISC_MATERIALS.DICHLOROACETIC_ACID.getCell(1), - null, - null, - MISC_MATERIALS.TRICHLOROACETIC_ACID.getFluidStack(1000), - MISC_MATERIALS.CHLOROACETIC_MIXTURE.getFluidStack(2000), - CI.emptyCells(1), - 100, - 100); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(1), MISC_MATERIALS.DICHLOROACETIC_ACID.getCell(1)) + .itemOutputs(CI.emptyCells(1)) + .fluidInputs(MISC_MATERIALS.TRICHLOROACETIC_ACID.getFluidStack(1000)) + .fluidOutputs(MISC_MATERIALS.CHLOROACETIC_MIXTURE.getFluidStack(2000)) + .duration(5 * SECONDS) + .eut(100) + .addTo(mixerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurTrioxide", 1), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(CI.emptyCells(1)) + .fluidInputs(FluidUtils.getFluidStack("sulfuricacid", 1000)) + .fluidOutputs(MISC_MATERIALS.SOLID_ACID_MIXTURE.getFluidStack(1000)) + .duration(5 * SECONDS) + .eut(40) + .addTo(mixerRecipes); - GT_Values.RA.addMixerRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurTrioxide", 1), - CI.getNumberedCircuit(2), - null, - null, - FluidUtils.getFluidStack("sulfuricacid", 1000), - MISC_MATERIALS.SOLID_ACID_MIXTURE.getFluidStack(1000), - CI.emptyCells(1), - 100, - 40); } private static void glueUsageRecipes() { // Braintech Tape recipe, PBI and superglue make 16 tape at once - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Polybenzimidazole, 1L), - GT_ModHandler.getIC2Item("carbonMesh", 1L), CI.getNumberedCircuit(10) }, - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(100), - ItemList.Duct_Tape.get(16L), - 120, - 30); - + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Polybenzimidazole, 1L), + GT_ModHandler.getIC2Item("carbonMesh", 1L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(ItemList.Duct_Tape.get(16L)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(100)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); // Maintenance Hatch recipe, using Braintech Tape - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { ItemList.Hull_LV.get(1), ItemList.Duct_Tape.get(1), CI.getNumberedCircuit(1) }, - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(100), - ItemList.Hatch_Maintenance.get(1), - 120, - 30); - + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Hull_LV.get(1), ItemList.Duct_Tape.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Hatch_Maintenance.get(1)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(100)) + .duration(6 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); // Graphene recipes from later wafer tiers, using superglue instead of the bronze age glue - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustGraphite", 64), - ItemList.Circuit_Silicon_Wafer4.get(2L), CI.getNumberedCircuit(2) }, - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(500), - ItemUtils.getItemStackOfAmountFromOreDict("dustGraphene", 64), - 400, - 30720); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustGraphite", 64), - ItemList.Circuit_Silicon_Wafer5.get(1L), CI.getNumberedCircuit(2) }, - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(250), - ItemUtils.getItemStackOfAmountFromOreDict("dustGraphene", 64), - 80, - 122880); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 4L), - GT_Values.NI, - GT_Values.NI, - GT_Utility.getIntegratedCircuit(1), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(100), - null, - ItemList.SFMixture.get(32), - 1600, - 16); - - GT_Values.RA.addMixerRecipe( - ItemList.GelledToluene.get(1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1L), - GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Polybenzimidazole, 1L), - GT_Values.NI, - GT_Values.NI, - GT_Utility.getIntegratedCircuit(1), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(100), - null, - ItemList.SFMixture.get(64), - 1600, - 16); - - GT_Values.RA.addAssemblerRecipe( - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.PolyvinylChloride, 8), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 32), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(200), - new ItemStack(Items.book, 64, 0), - 32, - 8); - - GT_Values.RA.addAssemblerRecipe( - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedSteel, 18), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(144), - ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32505", 1), - 300, - 7680); - - GT_Values.RA.addAssemblerRecipe( - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy, 2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 6), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(288), - ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32506", 1), - 200, - 30720); - - GT_Values.RA.addAssemblerRecipe( - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.ElectrumFlux, 2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 18), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(576), - ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32507", 1), - 300, - 122880); - - GT_Values.RA.addAssemblerRecipe( - GT_OreDictUnificator.get(OrePrefixes.cableGt02, Materials.ElectrumFlux, 2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Naquadah, 24), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(1152), - ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32561", 1), - 100, - 491520); + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustGraphite", 64), + ItemList.Circuit_Silicon_Wafer4.get(2L), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustGraphene", 64)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(500)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustGraphite", 64), + ItemList.Circuit_Silicon_Wafer5.get(1L), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustGraphene", 64)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(250)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); - GT_Values.RA.addAssemblerRecipe( - GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.ElectrumFlux, 2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NaquadahEnriched, 36), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(2304), - ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32562", 1), - 200, - 1966080); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 4L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.SFMixture.get(32)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(100)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(16) + .addTo(mixerRecipes); - GT_Values.RA.addAssemblerRecipe( - GT_OreDictUnificator.get(OrePrefixes.cableGt08, Materials.ElectrumFlux, 2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NaquadahAlloy, 48), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(4608), - ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32563", 1), - 300, - 1966080); + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.GelledToluene.get(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Polybenzimidazole, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.SFMixture.get(64)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(100)) + .duration(1 * MINUTES + 20 * SECONDS) + .eut(16) + .addTo(mixerRecipes); - GT_Values.RA.addAssemblerRecipe( - GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUHV, 2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 56), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(9216), - ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32564", 1), - 600, - 1966080); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.PolyvinylChloride, 8), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 32)) + .itemOutputs(new ItemStack(Items.book, 64, 0)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(200)) + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedSteel, 18)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32505", 1)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(144)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 6)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32506", 1)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(288)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.ElectrumFlux, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 18)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32507", 1)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(576)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt02, Materials.ElectrumFlux, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Naquadah, 24)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32561", 1)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(1152)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.ElectrumFlux, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NaquadahEnriched, 36)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32562", 1)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(2304)) + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.cableGt08, Materials.ElectrumFlux, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NaquadahAlloy, 48)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32563", 1)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(4608)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUHV, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 56)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32564", 1)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(9216)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUHV, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DraconiumAwakened, 64)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32565", 1)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(18432)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(assemblerRecipes); - GT_Values.RA.addAssemblerRecipe( - GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUHV, 2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DraconiumAwakened, 64), - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(18432), - ItemUtils.getItemStackFromFQRN("gregtech:gt.metaitem.01:32565", 1), - 1200, - 1966080); if (NewHorizonsCoreMod.isModLoaded() && GalacticraftCore.isModLoaded()) { - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { ItemUtils.getItemStackFromFQRN("GalacticraftMars:item.itemBasicAsteroids:7", 1), + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getItemStackFromFQRN("GalacticraftMars:item.itemBasicAsteroids:7", 1), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Titanium, 8), - ItemUtils.getItemStackFromFQRN("dreamcraft:item.TungstenString", 8), CI.getNumberedCircuit(1) }, - MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(576), - ItemUtils.getItemStackFromFQRN("GalaxySpace:item.ThermalClothT2", 1), - 600, - 1024); + ItemUtils.getItemStackFromFQRN("dreamcraft:item.TungstenString", 8), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemUtils.getItemStackFromFQRN("GalaxySpace:item.ThermalClothT2", 1)) + .fluidInputs(MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(576)) + .duration(30 * SECONDS) + .eut(1024) + .addTo(assemblerRecipes); + } } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_LFTR.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_LFTR.java index 81fde457ae..d5a41b8ba2 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_LFTR.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_LFTR.java @@ -1,13 +1,17 @@ package gtPlusPlus.xmod.gregtech.loaders.recipe; -import net.minecraft.item.ItemStack; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeConstants.LFTR_OUTPUT_POWER; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.liquidFluorineThoriumReactorRecipes; + import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; +import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.util.GasSpargingRecipeMap; import gtPlusPlus.api.objects.data.AutoMap; -import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.core.material.nuclear.FLUORIDES; import gtPlusPlus.core.material.nuclear.NUCLIDE; @@ -60,49 +64,45 @@ public class RecipeLoader_LFTR { FluidStack Li2BeF4 = NUCLIDE.Li2BeF4.getFluidStack(200); // LiFBeF2ThF4UF4 - T3 - GTPPRecipeMaps.liquidFluorineThoriumReactorRecipes.addRecipe( - false, - new ItemStack[] {}, - new ItemStack[] {}, - null, - new int[] { 10000, 10000, 5000, 2500 }, - new FluidStack[] { NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(100), Li2BeF4 }, - new FluidStack[] { NUCLIDE.LiFBeF2UF4FP.getFluidStack(100), NUCLIDE.LiFBeF2ThF4.getFluidStack(200), - FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(20), FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(10) }, - 100 * 20, // time - 0, // cost - 32768 * 4 // fuel value - ); + GT_Values.RA.stdBuilder() + .fluidInputs(NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(100), Li2BeF4) + .fluidOutputs( + NUCLIDE.LiFBeF2UF4FP.getFluidStack(100), + NUCLIDE.LiFBeF2ThF4.getFluidStack(200), + FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(20), + FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(10)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(0) + .metadata(LFTR_OUTPUT_POWER, 32768 * 4) + .addTo(liquidFluorineThoriumReactorRecipes); // LiFBeF2ZrF4UF4 - T2 - GTPPRecipeMaps.liquidFluorineThoriumReactorRecipes.addRecipe( - false, - new ItemStack[] {}, - new ItemStack[] {}, - null, - new int[] { 10000, 10000, 2500, 1250 }, - new FluidStack[] { NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(100), Li2BeF4 }, - new FluidStack[] { NUCLIDE.LiFBeF2UF4FP.getFluidStack(50), NUCLIDE.LiFBeF2ThF4.getFluidStack(100), - FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(10), FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(5) }, - 100 * 20, // time - 0, // cost - 8192 * 4 // fuel value - ); + GT_Values.RA.stdBuilder() + .fluidInputs(NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(100), Li2BeF4) + .fluidOutputs( + NUCLIDE.LiFBeF2UF4FP.getFluidStack(50), + NUCLIDE.LiFBeF2ThF4.getFluidStack(100), + FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(10), + FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(5)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(0) + .metadata(LFTR_OUTPUT_POWER, 8192 * 4) + .noOptimize() + .addTo(liquidFluorineThoriumReactorRecipes); // LiFBeF2ZrF4U235 - T1 - GTPPRecipeMaps.liquidFluorineThoriumReactorRecipes.addRecipe( - false, - new ItemStack[] {}, - new ItemStack[] {}, - null, - new int[] { 10000, 10000, 1000, 500 }, - new FluidStack[] { NUCLIDE.LiFBeF2ZrF4U235.getFluidStack(100), Li2BeF4 }, - new FluidStack[] { NUCLIDE.LiFBeF2UF4FP.getFluidStack(25), NUCLIDE.LiFThF4.getFluidStack(50), - FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(4), FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(2) }, - 100 * 20, // time - 0, // cost - 8192 // fuel value - ); + GT_Values.RA.stdBuilder() + .fluidInputs(NUCLIDE.LiFBeF2ZrF4U235.getFluidStack(100), Li2BeF4) + .fluidOutputs( + NUCLIDE.LiFBeF2UF4FP.getFluidStack(25), + NUCLIDE.LiFThF4.getFluidStack(50), + FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(4), + FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(2)) + .duration(1 * MINUTES + 40 * SECONDS) + .eut(0) + .metadata(LFTR_OUTPUT_POWER, 8192) + .noOptimize() + .addTo(liquidFluorineThoriumReactorRecipes); // Sparging NEI Recipes GasSpargingRecipeMap.addRecipe( diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_MolecularTransformer.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_MolecularTransformer.java index cd576dbc8d..df9ef3b1b3 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_MolecularTransformer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_MolecularTransformer.java @@ -3,23 +3,26 @@ package gtPlusPlus.xmod.gregtech.loaders.recipe; import static advsolar.utils.MTRecipeManager.transformerRecipes; import static gregtech.api.enums.Mods.AdvancedSolarPanel; import static gregtech.api.enums.Mods.GalaxySpace; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.molecularTransformerRecipes; import advsolar.utils.MTRecipeRecord; +import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.core.util.minecraft.MaterialUtils; public class RecipeLoader_MolecularTransformer { public static void run() { for (MTRecipeRecord aRecipe : transformerRecipes) { - int aEU = MaterialUtils.getVoltageForTier(5); + int aEU = (int) TierEU.RECIPE_IV; Logger.INFO("======================="); Logger.INFO("Generating GT recipe for Molecular Transformer."); Logger.INFO( @@ -30,49 +33,56 @@ public class RecipeLoader_MolecularTransformer { int aTicksRoundedUp = MathUtils.roundToClosestInt(Math.ceil(aTicks)); Logger.INFO("Ticks: " + aTicksRoundedUp); Logger.INFO("Total EU equal or greater? " + ((aTicksRoundedUp * aEU) >= aRecipe.energyPerOperation)); - CORE.RA.addMolecularTransformerRecipe(aRecipe.inputStack, aRecipe.outputStack, aTicksRoundedUp, aEU, 2); + GT_Values.RA.stdBuilder() + .itemInputs(aRecipe.inputStack) + .itemOutputs(aRecipe.outputStack) + .duration(aTicksRoundedUp) + .eut(aEU) + .addTo(molecularTransformerRecipes); + Logger.INFO("======================="); } transformerRecipes.clear(); if (AdvancedSolarPanel.isModLoaded() && GalaxySpace.isModLoaded()) { - CORE.RA.addMolecularTransformerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), - GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9), - 600, - 1920, - 2); - CORE.RA.addMolecularTransformerRecipe( - GT_ModHandler.getModItem(GalaxySpace.ID, "item.GlowstoneDusts", 1L, 0), - GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9), - 150, - 7680, - 2); - CORE.RA.addMolecularTransformerRecipe( - GT_ModHandler.getModItem(GalaxySpace.ID, "item.GlowstoneDusts", 1L, 1), - GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9), - 38, - 30720, - 2); - CORE.RA.addMolecularTransformerRecipe( - GT_ModHandler.getModItem(GalaxySpace.ID, "item.GlowstoneDusts", 1L, 2), - GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9), - 10, - 122880, - 2); - CORE.RA.addMolecularTransformerRecipe( - GT_ModHandler.getModItem(GalaxySpace.ID, "item.GlowstoneDusts", 1L, 3), - GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9), - 3, - 491520, - 2); - CORE.RA.addMolecularTransformerRecipe( - GT_ModHandler.getModItem(GalaxySpace.ID, "item.GlowstoneDusts", 1L, 4), - GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9), - 1, - 1996080, - 2); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L)) + .itemOutputs(GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(molecularTransformerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getModItem(GalaxySpace.ID, "item.GlowstoneDusts", 1L, 0)) + .itemOutputs(GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_IV) + .addTo(molecularTransformerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getModItem(GalaxySpace.ID, "item.GlowstoneDusts", 1L, 1)) + .itemOutputs(GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9)) + .duration(1 * SECONDS + 18 * TICKS) + .eut(TierEU.RECIPE_LuV) + .addTo(molecularTransformerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getModItem(GalaxySpace.ID, "item.GlowstoneDusts", 1L, 2)) + .itemOutputs(GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9)) + .duration(10 * TICKS) + .eut(TierEU.RECIPE_ZPM) + .addTo(molecularTransformerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getModItem(GalaxySpace.ID, "item.GlowstoneDusts", 1L, 3)) + .itemOutputs(GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9)) + .duration(3 * TICKS) + .eut(TierEU.RECIPE_UV) + .addTo(molecularTransformerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_ModHandler.getModItem(GalaxySpace.ID, "item.GlowstoneDusts", 1L, 4)) + .itemOutputs(GT_ModHandler.getModItem(AdvancedSolarPanel.ID, "asp_crafting_items", 1L, 9)) + .duration(1 * TICKS) + .eut(1996080) + .addTo(molecularTransformerRecipes); + } } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_Nuclear.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_Nuclear.java index 8b30a3e344..c78fc8a9bd 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_Nuclear.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_Nuclear.java @@ -1,11 +1,23 @@ package gtPlusPlus.xmod.gregtech.loaders.recipe; +import static gregtech.api.enums.GT_Values.RA; +import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.electroMagneticSeparatorRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidHeaterRecipes; import static gregtech.api.recipe.RecipeMaps.fusionRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.recipe.RecipeMaps.sifterRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; import static gregtech.api.util.GT_RecipeConstants.FUSION_THRESHOLD; +import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes; import net.minecraft.item.ItemStack; @@ -16,12 +28,10 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; -import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.item.chemistry.GenericChem; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.ALLOY; import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.core.material.MISC_MATERIALS; @@ -56,39 +66,32 @@ public class RecipeLoader_Nuclear { } private static void autoclave() { - - GT_Values.RA.addAutoclaveRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1), - FluidUtils.getFluidStack("chlorine", 4000), - ItemUtils.getItemStackOfAmountFromOreDict("pelletZirconium", 1), - 0, - 15 * 20, - 30); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("pelletZirconium", 1)) + .fluidInputs(FluidUtils.getFluidStack("chlorine", 4_000)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(autoclaveRecipes); } private static void blastFurnace() { - GT_Values.RA.addBlastRecipe( - FLUORIDES.LITHIUM_FLUORIDE.getDust(4), - FLUORIDES.BERYLLIUM_FLUORIDE.getDust(3), - GT_Values.NF, - GT_Values.NF, - NUCLIDE.Li2BeF4.getDust(7), - null, - 140 * 20, - 2000, - 3000); - - GT_Values.RA.addBlastRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustZrCl4", 1), - null, - GT_Values.NF, - GT_Values.NF, - ItemUtils.getItemStackOfAmountFromOreDict("dustCookedZrCl4", 1), - null, - 60 * 20, - 340, - 300); + GT_Values.RA.stdBuilder() + .itemInputs(FLUORIDES.LITHIUM_FLUORIDE.getDust(4), FLUORIDES.BERYLLIUM_FLUORIDE.getDust(3)) + .itemOutputs(NUCLIDE.Li2BeF4.getDust(7)) + .duration(2 * MINUTES + 20 * SECONDS) + .eut(2000) + .metadata(COIL_HEAT, 3000) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("dustZrCl4", 1)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustCookedZrCl4", 1)) + .duration(1 * MINUTES) + .eut(340) + .metadata(COIL_HEAT, 300) + .addTo(blastFurnaceRecipes); } private static void centrifugeRecipes() { @@ -160,36 +163,39 @@ public class RecipeLoader_Nuclear { private static void chemicalBathRecipes() { int[] chances = { 9000, 6000, 3000 }; - GT_Values.RA.addChemicalBathRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 12), - FluidUtils.getFluidStack("chlorine", 2400), - ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 3), - ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 4), - ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 5), - chances, - 30 * 20, - 480); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 12)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 3), + ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 4), + ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 5)) + .outputChances(chances) + .fluidInputs(FluidUtils.getFluidStack("chlorine", 2400)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalBathRecipes); chances = new int[] { 9000, 3000, 1000 }; - GT_Values.RA.addChemicalBathRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustRutile", 5), - FluidUtils.getFluidStack("chlorine", 4000), - ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 3), - ItemUtils.getItemStackOfAmountFromOreDict("dustTitanium", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustHafnium", 1), - chances, - 30 * 20, - 1024); - - GT_Values.RA.addChemicalBathRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumCarbonate", 3), - FluidUtils.getFluidStack("hydrofluoricacid", 500), - ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumFluoride", 2), - null, - null, - new int[] {}, - 9 * 20, - 480); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("dustRutile", 5)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 3), + ItemUtils.getItemStackOfAmountFromOreDict("dustTitanium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustHafnium", 1)) + .outputChances(chances) + .fluidInputs(FluidUtils.getFluidStack("chlorine", 4000)) + .duration(30 * SECONDS) + .eut(1024) + .addTo(chemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumCarbonate", 3)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumFluoride", 2)) + .fluidInputs(FluidUtils.getFluidStack("hydrofluoricacid", 500)) + .duration(9 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(chemicalBathRecipes); + } private static void chemicalReactorRecipes() { @@ -197,100 +203,110 @@ public class RecipeLoader_Nuclear { ItemStack aGtHydrofluoricAcid = ItemUtils .getItemStackOfAmountFromOreDictNoBroken("cellHydrofluoricAcid_GT5U", 2); - GT_Values.RA.addChemicalRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumCarbonate", 6), // Input - ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumHydroxide", 5), // Input - null, // Fluid Input - null, // Fluid Output - ItemUtils.getItemStackOfAmountFromOreDict("dustLi2CO3CaOH2", 11), - 600 * 20); - - GT_Values.RA.addChemicalRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumHydroxide", 3), // Input - null, // Input Stack 2 - FluidUtils.getFluidStack("hydrofluoricacid", 500), - FluidUtils.getFluidStack("water", 1000), // Fluid Output - ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumFluoride", 2), - 120 * 20); - - GT_Values.RA.addChemicalRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 8), - ItemUtils.getItemStackOfAmountFromOreDict("dustLithium7", 16), - FluidUtils.getFluidStack("water", 8000), - FluidUtils.getFluidStack("lithiumhydroxide", 6912), - CI.emptyCells(8), - 300 * 20); + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumCarbonate", 6), + ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumHydroxide", 5)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustLi2CO3CaOH2", 11)) + .duration(10 * MINUTES) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumHydroxide", 3)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumFluoride", 2)) + .fluidInputs(FluidUtils.getFluidStack("hydrofluoricacid", 500)) + .fluidOutputs(FluidUtils.getFluidStack("water", 1000)) + .duration(2 * MINUTES) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 8), + ItemUtils.getItemStackOfAmountFromOreDict("dustLithium7", 16)) + .itemOutputs(CI.emptyCells(8)) + .fluidInputs(FluidUtils.getFluidStack("water", 8000)) + .fluidOutputs(FluidUtils.getFluidStack("lithiumhydroxide", 6912)) + .duration(5 * MINUTES) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); // LFTR Fuel Related Compounds // Hydroxide - GT_Values.RA.addChemicalRecipe( - ItemUtils.getGregtechCircuit(3), - ELEMENT.getInstance().OXYGEN.getCell(1), - ELEMENT.getInstance().HYDROGEN.getFluidStack(1000), - MISC_MATERIALS.HYDROXIDE.getFluidStack(1000), - CI.emptyCells(1), - GT_Values.NI, - 8 * 20, - 30); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3), ELEMENT.getInstance().OXYGEN.getCell(1)) + .itemOutputs(CI.emptyCells(1)) + .fluidInputs(ELEMENT.getInstance().HYDROGEN.getFluidStack(1000)) + .fluidOutputs(MISC_MATERIALS.HYDROXIDE.getFluidStack(1000)) + .duration(8 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + // Beryllium Hydroxide - GT_Values.RA.addChemicalRecipe( - ItemUtils.getGregtechCircuit(3), - ELEMENT.getInstance().BERYLLIUM.getDust(1), - MISC_MATERIALS.HYDROXIDE.getFluidStack(2000), - FLUORIDES.BERYLLIUM_HYDROXIDE.getFluidStack(432), - GT_Values.NI, - 4 * 20, - 30); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3), ELEMENT.getInstance().BERYLLIUM.getDust(1)) + .fluidInputs(MISC_MATERIALS.HYDROXIDE.getFluidStack(2000)) + .fluidOutputs(FLUORIDES.BERYLLIUM_HYDROXIDE.getFluidStack(432)) + .duration(4 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + // Ammonium Bifluoride - GT_Values.RA.addChemicalRecipe( - ItemUtils.getGregtechCircuit(3), - ItemUtils.getItemStackOfAmountFromOreDict("cellHydrofluoricAcid", 1), - MISC_MATERIALS.AMMONIA.getFluidStack(1000), - FLUORIDES.AMMONIUM_BIFLUORIDE.getFluidStack(576), - CI.emptyCells(1), - 20 * 20, - 30); - if (aGtHydrofluoricAcid != null) { - // Ammonium Bifluoride - GT_Values.RA.addChemicalRecipe( - ItemUtils.getGregtechCircuit(3), - aGtHydrofluoricAcid, - MISC_MATERIALS.AMMONIA.getFluidStack(1000), - FLUORIDES.AMMONIUM_BIFLUORIDE.getFluidStack(576), - CI.emptyCells(2), - 40 * 20, - 30); - } + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + ItemUtils.getItemStackOfAmountFromOreDict("cellHydrofluoricAcid", 1)) + .itemOutputs(CI.emptyCells(1)) + .fluidInputs(MISC_MATERIALS.AMMONIA.getFluidStack(1000)) + .fluidOutputs(FLUORIDES.AMMONIUM_BIFLUORIDE.getFluidStack(576)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + // Ammonium Bifluoride + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3), aGtHydrofluoricAcid) + .itemOutputs(CI.emptyCells(2)) + .fluidInputs(MISC_MATERIALS.AMMONIA.getFluidStack(1000)) + .fluidOutputs(FLUORIDES.AMMONIUM_BIFLUORIDE.getFluidStack(576)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + // Ammonium // To be deprecated now that it is no longer needed for ammonium bifluoride - GT_Values.RA.addChemicalRecipe( - ItemUtils.getGregtechCircuit(3), - ELEMENT.getInstance().HYDROGEN.getCell(1), - MISC_MATERIALS.AMMONIA.getFluidStack(1000), - MISC_MATERIALS.AMMONIUM.getFluidStack(2000), - CI.emptyCells(1), - GT_Values.NI, - 20 * 20, - 30); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(3), ELEMENT.getInstance().HYDROGEN.getCell(1)) + .itemOutputs(CI.emptyCells(1)) + .fluidInputs(MISC_MATERIALS.AMMONIA.getFluidStack(1000)) + .fluidOutputs(MISC_MATERIALS.AMMONIUM.getFluidStack(2000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); // Sodium Fluoride - GT_Values.RA.addChemicalRecipe( - CI.getNumberedBioCircuit(15), - ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumHydroxide", 3), - FluidUtils.getFluidStack("hydrofluoricacid", 500), - FluidUtils.getWater(1000), - FLUORIDES.SODIUM_FLUORIDE.getDust(2), - 60 * 20); - - if (FluidUtils.doesFluidExist("hydrofluoricacid_gt5u")) { - GT_Values.RA.addChemicalRecipe( + GT_Values.RA.stdBuilder() + .itemInputs( CI.getNumberedBioCircuit(15), - ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumHydroxide", 3), - FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 1000), - FluidUtils.getWater(1000), - FLUORIDES.SODIUM_FLUORIDE.getDust(2), - 60 * 20); - } + ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumHydroxide", 3)) + .itemOutputs(FLUORIDES.SODIUM_FLUORIDE.getDust(2)) + .fluidInputs(FluidUtils.getFluidStack("hydrofluoricacid", 500)) + .fluidOutputs(FluidUtils.getWater(1000)) + .duration(1 * MINUTES) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); + + GT_Values.RA.stdBuilder() + .itemInputs( + CI.getNumberedBioCircuit(15), + ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumHydroxide", 3)) + .itemOutputs(FLUORIDES.SODIUM_FLUORIDE.getDust(2)) + .fluidInputs(FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 1000)) + .fluidOutputs(FluidUtils.getWater(1000)) + .duration(1 * MINUTES) + .eut(TierEU.RECIPE_LV) + .addTo(UniversalChemical); } private static void dehydratorRecipes() { @@ -310,37 +326,31 @@ public class RecipeLoader_Nuclear { .addTo(chemicalDehydratorRecipes); // Makes Lithium Carbonate - CORE.RA.addDehydratorRecipe( - new ItemStack[] { CI.emptyCells(12), ItemUtils.getItemStackOfAmountFromOreDict("dustLepidolite", 20) }, // Item - // input - // (Array, - // up - // to - // 2) - FluidUtils.getFluidStack("sulfuricacid", 10000), - FluidUtils.getFluidStack("sulfuriclithium", 10000), - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustPotassium", 1), + GT_Values.RA.stdBuilder() + .itemInputs(CI.emptyCells(12), ItemUtils.getItemStackOfAmountFromOreDict("dustLepidolite", 20)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustPotassium", 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 4), ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 10), ItemUtils.getItemStackOfAmountFromOreDict("cellFluorine", 2), - ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumCarbonate", 3), // LithiumCarbonate - }, // Output Array of Items - Upto 9, - new int[] { 10000, 10000, 10000, 10000, 10000 }, - 75 * 20, // Time in ticks - 1000); // EU + ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumCarbonate", 3)) + .fluidInputs(FluidUtils.getFluidStack("sulfuricacid", 10000)) + .fluidOutputs(FluidUtils.getFluidStack("sulfuriclithium", 10000)) + .eut(1_000) + .duration(1 * MINUTES + 15 * SECONDS) + .addTo(chemicalDehydratorRecipes); // Calcium Hydroxide if (ItemUtils.checkForInvalidItems(ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 1))) { // CaO + H2O = Ca(OH)2 - CORE.RA.addDehydratorRecipe( - new ItemStack[] { CI.getNumberedBioCircuit(20), - ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 2) }, - FluidUtils.getFluidStack("water", 1000), - null, // Fluid output (slot 2) - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumHydroxide", 5) }, // Output - new int[] { 10000 }, - 12 * 20, // Time in ticks - 120); // EU + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedBioCircuit(20), ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 2)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumHydroxide", 5)) + .fluidInputs(FluidUtils.getFluidStack("water", 1000)) + .eut(TierEU.RECIPE_MV) + .duration(12 * SECONDS) + .addTo(chemicalDehydratorRecipes); + } else { Logger.INFO("[dustCalciumHydroxide] FAILED TO LOAD RECIPE"); if (!ItemUtils.checkForInvalidItems(ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 1))) { @@ -349,143 +359,164 @@ public class RecipeLoader_Nuclear { } // 2 LiOH + CaCO3 - CORE.RA.addDehydratorRecipe( - new ItemStack[] { CI.getNumberedAdvancedCircuit(20), - ItemUtils.getItemStackOfAmountFromOreDict("dustLi2CO3CaOH2", 11) }, // Item - null, // Fluid input (slot 1) - null, // Fluid output (slot 2) - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumHydroxide", 6), - ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumCarbonate", 5) }, // Output - new int[] { 10000, 10000 }, - 240 * 20, // Time in ticks - 1000); // EU + GT_Values.RA.stdBuilder() + .itemInputs( + CI.getNumberedAdvancedCircuit(20), + ItemUtils.getItemStackOfAmountFromOreDict("dustLi2CO3CaOH2", 11)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumHydroxide", 6), + ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumCarbonate", 5)) + .eut(1_000) + .duration(6 * MINUTES) + .addTo(chemicalDehydratorRecipes); // LiOH Liquid to Dust - CORE.RA.addDehydratorRecipe( - new ItemStack[] { CI.getNumberedAdvancedCircuit(22) }, - FluidUtils.getFluidStack("lithiumhydroxide", 144), - null, - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumHydroxide", 1) }, - new int[] { 10000 }, - 1 * 20, // Time in ticks - 64); // EU + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(22)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumHydroxide", 1)) + .fluidInputs(FluidUtils.getFluidStack("lithiumhydroxide", 144)) + .eut(64) + .duration(1 * SECONDS) + .addTo(chemicalDehydratorRecipes); // Zirconium Chloride -> TetraFluoride FluidStack aHydrogenChloride = new FluidStack(GenericChem.HydrochloricAcid, 800); - CORE.RA.addDehydratorRecipe( - new ItemStack[] { CI.getNumberedAdvancedCircuit(11), - ItemUtils.getItemStackOfAmountFromOreDict("dustCookedZrCl4", 1), }, // Item - FluidUtils.getFluidStack("hydrofluoricacid", 400), - aHydrogenChloride, - new ItemStack[] { FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getDust(1) }, - new int[] { 10000 }, - 15 * 20, // Time in ticks - 500); // EU + GT_Values.RA.stdBuilder() + .itemInputs( + CI.getNumberedAdvancedCircuit(11), + ItemUtils.getItemStackOfAmountFromOreDict("dustCookedZrCl4", 1)) + .itemOutputs() + .fluidInputs(FluidUtils.getFluidStack("hydrofluoricacid", 400)) + .fluidOutputs(aHydrogenChloride) + .eut(500) + .duration(15 * SECONDS) + .addTo(chemicalDehydratorRecipes); // Zirconium Chloride -> TetraFluoride - CORE.RA.addDehydratorRecipe( - new ItemStack[] { CI.getNumberedAdvancedCircuit(10), - ItemUtils.getItemStackOfAmountFromOreDict("dustCookedZrCl4", 1) }, - FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 800), - aHydrogenChloride, - new ItemStack[] { FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getDust(1) }, - new int[] { 10000 }, - 30 * 20, // Time in ticks - 500); // EU + GT_Values.RA.stdBuilder() + .itemInputs( + CI.getNumberedAdvancedCircuit(10), + ItemUtils.getItemStackOfAmountFromOreDict("dustCookedZrCl4", 1)) + .itemOutputs(FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getDust(1)) + .fluidInputs(FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 800)) + .fluidOutputs(aHydrogenChloride) + .eut(500) + .duration(30 * SECONDS) + .addTo(chemicalDehydratorRecipes); // Be(OH)2 + 2 (NH4)HF2 → (NH4)2BeF4 + 2 H2O // Inputs use solid rule because they are molten forms of solids // Outputs use fluid rule because they are not molten forms of solids - CORE.RA.addDehydratorRecipe( - new ItemStack[] { FLUORIDES.BERYLLIUM_HYDROXIDE.getDust(3), CI.emptyCells(2) }, - FLUORIDES.AMMONIUM_BIFLUORIDE.getFluidStack(1152), // Fluid input (slot 1) - FLUORIDES.AMMONIUM_TETRAFLUOROBERYLLATE.getFluidStack(1000), - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 2) }, - new int[] { 10000 }, - 6 * 20, // Time in ticks - 64); // EU + GT_Values.RA.stdBuilder() + .itemInputs(FLUORIDES.BERYLLIUM_HYDROXIDE.getDust(3), CI.emptyCells(2)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 2)) + .fluidInputs(FLUORIDES.AMMONIUM_BIFLUORIDE.getFluidStack(1152)) + .fluidOutputs(FLUORIDES.AMMONIUM_TETRAFLUOROBERYLLATE.getFluidStack(1000)) + .eut(64) + .duration(6 * SECONDS) + .addTo(chemicalDehydratorRecipes); // (NH4)2BeF4 → 2 NH3 + 2 HF + BeF2 // Ammonium tetrafluoroberyllate uses fluid rule because it is not a molten form of a solid // Beryllium fluoride uses solid rule // Industrial strength hydrofluoric acid follows its usual convention where it is twice as dense as regular // hydrofluoric acid - CORE.RA.addDehydratorRecipe( - new ItemStack[] { CI.getNumberedAdvancedCircuit(17), CI.emptyCells(3) }, - FLUORIDES.AMMONIUM_TETRAFLUOROBERYLLATE.getFluidStack(1000), - null, - new ItemStack[] { MISC_MATERIALS.AMMONIA.getCell(2), + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(17), CI.emptyCells(3)) + .itemOutputs( + MISC_MATERIALS.AMMONIA.getCell(2), ItemUtils.getItemStackOfAmountFromOreDict("cellHydrofluoricAcid", 1), - FLUORIDES.BERYLLIUM_FLUORIDE.getDust(3) }, - new int[] { 10000, 10000, 10000 }, - 5 * 60 * 20, - 120); + FLUORIDES.BERYLLIUM_FLUORIDE.getDust(3)) + .fluidInputs(FLUORIDES.AMMONIUM_TETRAFLUOROBERYLLATE.getFluidStack(1000)) + .eut(TierEU.RECIPE_MV) + .duration(5 * MINUTES) + .addTo(chemicalDehydratorRecipes); } private static void electroMagneticSeperator() { // Zirconium - GT_Values.RA.addElectromagneticSeparatorRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedBauxite", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustBauxite", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustSmallRutile", 1), - ItemUtils.getItemStackOfAmountFromOreDict("nuggetZirconium", 1), - new int[] { 10000, 2500, 4000 }, - 20 * 20, - 24); - + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedBauxite", 1)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustBauxite", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallRutile", 1), + ItemUtils.getItemStackOfAmountFromOreDict("nuggetZirconium", 1)) + .outputChances(10000, 2500, 4000) + .duration(20 * SECONDS) + .eut(24) + .addTo(electroMagneticSeparatorRecipes); // Zircon - GT_Values.RA.addElectromagneticSeparatorRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedMagnetite", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustMagnetite", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustSmallZircon", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustTinyZircon", 1), - new int[] { 10000, 1250, 2500 }, - 20 * 20, - 24); - GT_Values.RA.addElectromagneticSeparatorRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedCassiterite", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustCassiterite", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustSmallZircon", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustTinyZircon", 1), - new int[] { 10000, 1250, 2500 }, - 20 * 20, - 24); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedMagnetite", 1)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustMagnetite", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallZircon", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyZircon", 1)) + .outputChances(10000, 1250, 2500) + .duration(20 * SECONDS) + .eut(24) + .addTo(electroMagneticSeparatorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedCassiterite", 1)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustCassiterite", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallZircon", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyZircon", 1)) + .outputChances(10000, 1250, 2500) + .duration(20 * SECONDS) + .eut(24) + .addTo(electroMagneticSeparatorRecipes); + } private static void fluidExtractorRecipes() { // FLiBe fuel - CORE.RA.addFluidExtractionRecipe(NUCLIDE.Li2BeF4.getDust(1), NUCLIDE.Li2BeF4.getFluidStack(144), 100, 500); + GT_Values.RA.stdBuilder() + .itemInputs(NUCLIDE.Li2BeF4.getDust(1)) + .fluidOutputs(NUCLIDE.Li2BeF4.getFluidStack(144)) + .duration(5 * SECONDS) + .eut(500) + .addTo(fluidExtractionRecipes); + // Lithium Fluoride - CORE.RA.addFluidExtractionRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumFluoride", 1), - FLUORIDES.LITHIUM_FLUORIDE.getFluidStack(144), - 100, - 500); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumFluoride", 1)) + .fluidOutputs(FLUORIDES.LITHIUM_FLUORIDE.getFluidStack(144)) + .duration(5 * SECONDS) + .eut(500) + .addTo(fluidExtractionRecipes); + // LFTR Fuel 1 - CORE.RA.addFluidExtractionRecipe( - NUCLIDE.LiFBeF2ZrF4U235.getDust(1), - NUCLIDE.LiFBeF2ZrF4U235.getFluidStack(144), - 250, - 1000); - CORE.RA.addFluidExtractionRecipe( - NUCLIDE.LiFBeF2ZrF4UF4.getDust(1), - NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(144), - 150, - 1500); - CORE.RA.addFluidExtractionRecipe( - NUCLIDE.LiFBeF2ThF4UF4.getDust(1), - NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(144), - 150, - 2000); + GT_Values.RA.stdBuilder() + .itemInputs(NUCLIDE.LiFBeF2ZrF4U235.getDust(1)) + .fluidOutputs(NUCLIDE.LiFBeF2ZrF4U235.getFluidStack(144)) + .duration(12 * SECONDS + 10 * TICKS) + .eut(1000) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(NUCLIDE.LiFBeF2ZrF4UF4.getDust(1)) + .fluidOutputs(NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(144)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(1500) + .addTo(fluidExtractionRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(NUCLIDE.LiFBeF2ThF4UF4.getDust(1)) + .fluidOutputs(NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(144)) + .duration(7 * SECONDS + 10 * TICKS) + .eut(2000) + .addTo(fluidExtractionRecipes); // ZIRCONIUM_TETRAFLUORIDE - CORE.RA.addFluidExtractionRecipe( - FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getDust(1), - FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getFluidStack(144), - 200, - 512 + 256); + GT_Values.RA.stdBuilder() + .itemInputs(FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getDust(1)) + .fluidOutputs(FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getFluidStack(144)) + .duration(10 * SECONDS) + .eut(512 + 256) + .addTo(fluidExtractionRecipes); } private static void fusionChainRecipes() { @@ -495,7 +526,7 @@ public class RecipeLoader_Nuclear { .fluidOutputs(new FluidStack(ELEMENT.getInstance().NEON.getPlasma(), 1000)) .duration(3 * SECONDS + 4 * TICKS) .eut(TierEU.RECIPE_LuV) - .metadata(FUSION_THRESHOLD, 100000000) + .metadata(FUSION_THRESHOLD, 100_000_000) .addTo(fusionRecipes); GT_Values.RA.stdBuilder() @@ -505,7 +536,7 @@ public class RecipeLoader_Nuclear { .fluidOutputs(new FluidStack(ELEMENT.STANDALONE.FORCE.getPlasma(), 1000)) .duration(3 * SECONDS + 4 * TICKS) .eut(TierEU.RECIPE_LuV) - .metadata(FUSION_THRESHOLD, 100000000) + .metadata(FUSION_THRESHOLD, 100_000_000) .addTo(fusionRecipes); // Mk2 @@ -514,7 +545,7 @@ public class RecipeLoader_Nuclear { .fluidOutputs(new FluidStack(ELEMENT.getInstance().KRYPTON.getPlasma(), 144)) .duration(32 * TICKS) .eut(TierEU.RECIPE_ZPM) - .metadata(FUSION_THRESHOLD, 300000000) + .metadata(FUSION_THRESHOLD, 300_000_000) .addTo(fusionRecipes); GT_Values.RA.stdBuilder() @@ -524,7 +555,7 @@ public class RecipeLoader_Nuclear { .fluidOutputs(new FluidStack(ELEMENT.STANDALONE.ASTRAL_TITANIUM.getPlasma(), 1000)) .duration(32 * TICKS) .eut(TierEU.RECIPE_ZPM) - .metadata(FUSION_THRESHOLD, 300000000) + .metadata(FUSION_THRESHOLD, 300_000_000) .addTo(fusionRecipes); GT_Values.RA.stdBuilder() @@ -534,7 +565,7 @@ public class RecipeLoader_Nuclear { .fluidOutputs(new FluidStack(ELEMENT.STANDALONE.RUNITE.getPlasma(), 1000)) .duration(32 * TICKS) .eut(TierEU.RECIPE_ZPM) - .metadata(FUSION_THRESHOLD, 300000000) + .metadata(FUSION_THRESHOLD, 300_000_000) .addTo(fusionRecipes); // Mk3 @@ -543,7 +574,7 @@ public class RecipeLoader_Nuclear { .fluidOutputs(new FluidStack(ELEMENT.getInstance().XENON.getPlasma(), 144)) .duration(16 * TICKS) .eut(TierEU.RECIPE_UV) - .metadata(FUSION_THRESHOLD, 500000000) + .metadata(FUSION_THRESHOLD, 500_000_000) .addTo(fusionRecipes); GT_Values.RA.stdBuilder() @@ -553,7 +584,7 @@ public class RecipeLoader_Nuclear { .fluidOutputs(new FluidStack(ELEMENT.STANDALONE.ADVANCED_NITINOL.getPlasma(), 1000)) .duration(16 * TICKS) .eut(TierEU.RECIPE_UV) - .metadata(FUSION_THRESHOLD, 500000000) + .metadata(FUSION_THRESHOLD, 500_000_000) .addTo(fusionRecipes); GT_Values.RA.stdBuilder() @@ -563,15 +594,17 @@ public class RecipeLoader_Nuclear { .fluidOutputs(new FluidStack(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getPlasma(), 1000)) .duration(16 * TICKS) .eut(TierEU.RECIPE_UV) - .metadata(FUSION_THRESHOLD, 500000000) + .metadata(FUSION_THRESHOLD, 500_000_000) .addTo(fusionRecipes); } private static void macerator() { - - GT_ModHandler.addPulverisationRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("pelletZirconium", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustZrCl4", 5)); + RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("pelletZirconium", 1)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustZrCl4", 5)) + .eut(2) + .duration(20 * SECONDS) + .addTo(maceratorRecipes); } private static void mixerRecipes() { @@ -580,112 +613,121 @@ public class RecipeLoader_Nuclear { // UF4 uses solid rule due to item form even though item form currently is inaccessible because item form may be // accessible in future and must be consistent // UF4 solid rule also assumes 1:144 item:fluid ratio in this case - GT_Values.RA.addMixerRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustUranium233", 4), - ItemUtils.getItemStackOfAmountFromOreDict("dustUranium235", 1), - null, - null, - FluidUtils.getFluidStack("hydrofluoricacid", 10000), - FLUORIDES.URANIUM_TETRAFLUORIDE.getFluidStack(3600), - null, - 3000, - 500); + GT_Values.RA.stdBuilder() + .itemInputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustUranium233", 4), + ItemUtils.getItemStackOfAmountFromOreDict("dustUranium235", 1)) + .fluidInputs(FluidUtils.getFluidStack("hydrofluoricacid", 10000)) + .fluidOutputs(FLUORIDES.URANIUM_TETRAFLUORIDE.getFluidStack(3600)) + .duration(2 * MINUTES + 30 * SECONDS) + .eut(500) + .addTo(mixerRecipes); + } private static void sifter() { - // Zirconium - GT_Values.RA.addSifterRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedIlmenite", 1), - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustIron", 1), + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedIlmenite", 1)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustIron", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustWroughtIron", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustHafnium", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustHafnium", 1) }, - new int[] { 5000, 278, 1000, 1000, 300, 300 }, - 20 * 30, - 500); - GT_Values.RA.addSifterRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedTin", 1), - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustHafnium", 1)) + .outputChances(5000, 278, 1000, 1000, 300, 300) + .duration(30 * SECONDS) + .eut(500) + .addTo(sifterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedTin", 1)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustZinc", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1) }, - new int[] { 10000, 556, 1500, 1000, 500, 500 }, - 20 * 30, - 500); - GT_Values.RA.addSifterRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedCassiterite", 1), - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustCassiterite", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1)) + .outputChances(10000, 556, 1500, 1000, 500, 500) + .duration(30 * SECONDS) + .eut(500) + .addTo(sifterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedCassiterite", 1)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustCassiterite", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1) }, - new int[] { 10000, 556, 1500, 1000, 500, 500 }, - 20 * 30, - 500); - + ItemUtils.getItemStackOfAmountFromOreDict("dustZirconium", 1)) + .outputChances(10000, 556, 1500, 1000, 500, 500) + .duration(30 * SECONDS) + .eut(500) + .addTo(sifterRecipes); // Radium - GT_Values.RA.addSifterRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedThorium", 1), - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustThorium", 1), + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedThorium", 1)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustThorium", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustLead", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1) }, - new int[] { 10000, 500, 300, 200, 100, 100 }, - 20 * 30, - 500); - - GT_Values.RA.addSifterRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedUranium", 1), - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustUranium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1)) + .outputChances(10000, 500, 300, 200, 100, 100) + .duration(30 * SECONDS) + .eut(500) + .addTo(sifterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedUranium", 1)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustUranium", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustLead", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1) }, - new int[] { 10000, 556, 1000, 500, 500, 500 }, - 20 * 30, - 500); - - GT_Values.RA.addSifterRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedUraninite", 1), - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustUraninite", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1)) + .outputChances(10000, 556, 1000, 500, 500, 500) + .duration(30 * SECONDS) + .eut(500) + .addTo(sifterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedUraninite", 1)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustUraninite", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustUranium", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1) }, - new int[] { 10000, 556, 500, 250, 250, 250 }, - 20 * 30, - 500); - - GT_Values.RA.addSifterRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedPitchblende", 1), - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustPitchblende", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1)) + .outputChances(10000, 556, 500, 250, 250, 250) + .duration(30 * SECONDS) + .eut(500) + .addTo(sifterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedPitchblende", 1)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustPitchblende", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustLead", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1) }, - new int[] { 10000, 556, 500, 250, 250, 250 }, - 20 * 30, - 500); + ItemUtils.getItemStackOfAmountFromOreDict("dustRadium226", 1)) + .outputChances(10000, 556, 500, 250, 250, 250) + .duration(30 * SECONDS) + .eut(500) + .addTo(sifterRecipes); + } private static void fluidHeater() { - - CORE.RA.addFluidHeaterRecipe( - FLUORIDES.SODIUM_FLUORIDE.getDust(1), - null, - FLUORIDES.SODIUM_FLUORIDE.getFluidStack(144), - 20 * 30, - 500); + GT_Values.RA.stdBuilder() + .itemInputs(FLUORIDES.SODIUM_FLUORIDE.getDust(1)) + .fluidOutputs(FLUORIDES.SODIUM_FLUORIDE.getFluidStack(144)) + .duration(30 * SECONDS) + .eut(500) + .addTo(fluidHeaterRecipes); } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java index dec6fd426a..30066acf66 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java @@ -2,25 +2,28 @@ package gtPlusPlus.xmod.gregtech.loaders.recipe; import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; import static gregtech.api.recipe.RecipeMaps.distillationTowerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.HOURS; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeConstants.CHEMPLANT_CASING_TIER; import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalPlantRecipes; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.coldTrapRecipes; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.fissionFuelProcessingRecipes; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.reactorProcessingUnitRecipes; -import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.TierEU; import gtPlusPlus.core.item.chemistry.NuclearChem; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.core.material.nuclear.FLUORIDES; import gtPlusPlus.core.material.nuclear.NUCLIDE; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.minecraft.MaterialUtils; public class RecipeLoader_NuclearFuelProcessing { @@ -39,159 +42,170 @@ public class RecipeLoader_NuclearFuelProcessing { final FluidStack aLiFBeF2ThF4UF4 = NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(100); // 7LiF - BeF2 - ZrF4 - U235 - 590C - CORE.RA.addFissionFuel( - FluidUtils.getFluidStack(aLithiumFluoride, 550), - FluidUtils.getFluidStack(aBerylliumFluoride, 150), - FluidUtils.getFluidStack(aZirconiumFluoride, 60), - FluidUtils.getFluidStack(aUranium235, 240), - null, - null, - null, - null, - null, // Extra 5 inputs - FluidUtils.getFluidStack(aLiFBeF2ZrF4U235, 1000), - null, - 30 * 60 * 20, // Duration - MaterialUtils.getVoltageForTier(4)); - + GT_Values.RA.stdBuilder() + .fluidInputs( + FluidUtils.getFluidStack(aLithiumFluoride, 550), + FluidUtils.getFluidStack(aBerylliumFluoride, 150), + FluidUtils.getFluidStack(aZirconiumFluoride, 60), + FluidUtils.getFluidStack(aUranium235, 240)) + .fluidOutputs(FluidUtils.getFluidStack(aLiFBeF2ZrF4U235, 1000)) + .duration(30 * MINUTES) + .eut(TierEU.RECIPE_EV) + .addTo(fissionFuelProcessingRecipes); // 7LiF - BeF2 - ZrF4 - UF4 - 650C - CORE.RA.addFissionFuel( - FluidUtils.getFluidStack(aLithiumFluoride, 600), - FluidUtils.getFluidStack(aBerylliumFluoride, 250), - FluidUtils.getFluidStack(aZirconiumFluoride, 80), - FluidUtils.getFluidStack(aUraniumTetraFluoride, 70), - null, - null, - null, - null, - null, // Extra 5 inputs - FluidUtils.getFluidStack(aLiFBeF2ZrF4UF4, 1000), - null, - 40 * 60 * 20, - MaterialUtils.getVoltageForTier(5)); - + GT_Values.RA.stdBuilder() + .fluidInputs( + FluidUtils.getFluidStack(aLithiumFluoride, 600), + FluidUtils.getFluidStack(aBerylliumFluoride, 250), + FluidUtils.getFluidStack(aZirconiumFluoride, 80), + FluidUtils.getFluidStack(aUraniumTetraFluoride, 70)) + .fluidOutputs(FluidUtils.getFluidStack(aLiFBeF2ZrF4UF4, 1000)) + .duration(40 * MINUTES) + .eut(TierEU.RECIPE_IV) + .addTo(fissionFuelProcessingRecipes); // 7liF - BeF2 - ThF4 - UF4 - 566C - CORE.RA.addFissionFuel( - FluidUtils.getFluidStack(aLithiumFluoride, 580), - FluidUtils.getFluidStack(aBerylliumFluoride, 270), - FluidUtils.getFluidStack(aThoriumFluoride, 80), - FluidUtils.getFluidStack(aUraniumTetraFluoride, 70), - null, - null, - null, - null, - null, // Extra 5 inputs - FluidUtils.getFluidStack(aLiFBeF2ThF4UF4, 1000), - null, - 50 * 60 * 20, // Duration - MaterialUtils.getVoltageForTier(5)); + GT_Values.RA.stdBuilder() + .fluidInputs( + FluidUtils.getFluidStack(aLithiumFluoride, 580), + FluidUtils.getFluidStack(aBerylliumFluoride, 270), + FluidUtils.getFluidStack(aThoriumFluoride, 80), + FluidUtils.getFluidStack(aUraniumTetraFluoride, 70)) + .fluidOutputs(FluidUtils.getFluidStack(aLiFBeF2ThF4UF4, 1000)) + .duration(50 * MINUTES) + .eut(TierEU.RECIPE_IV) + .addTo(fissionFuelProcessingRecipes); // Reprocess Fuels // Reactor Blanket step 1 - Fluorination - CORE.RA.addReactorProcessingUnitRecipe( - CI.getNumberedAdvancedCircuit(17), - ELEMENT.getInstance().FLUORINE.getCell(6), - NUCLIDE.LiFThF4.getFluidStack(10000), - new ItemStack[] { CI.emptyCells(5), FLUORIDES.LITHIUM_FLUORIDE.getCell(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1) }, - new int[] { 10000, 10000, 500, 500, 500, 250, 250, 250 }, - NUCLIDE.UF6F2.getFluidStack(1500), - 20 * 60 * 10, - MaterialUtils.getVoltageForTier(5)); - CORE.RA.addReactorProcessingUnitRecipe( - CI.getNumberedAdvancedCircuit(18), - ELEMENT.getInstance().FLUORINE.getCell(6), - NUCLIDE.LiFBeF2ThF4.getFluidStack(10000), - new ItemStack[] { CI.emptyCells(4), FLUORIDES.LITHIUM_FLUORIDE.getCell(1), - FLUORIDES.BERYLLIUM_FLUORIDE.getCell(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1) }, - new int[] { 10000, 10000, 10000, 1000, 1000, 1000, 500, 500, 500 }, - NUCLIDE.UF6F2.getFluidStack(3000), - 20 * 60 * 10, - MaterialUtils.getVoltageForTier(5)); - + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(17), ELEMENT.getInstance().FLUORINE.getCell(6)) + .itemOutputs( + CI.emptyCells(5), + FLUORIDES.LITHIUM_FLUORIDE.getCell(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1)) + .outputChances(10000, 10000, 500, 500, 500, 250, 250, 250) + .fluidInputs(NUCLIDE.LiFThF4.getFluidStack(10000)) + .fluidOutputs(NUCLIDE.UF6F2.getFluidStack(1500)) + .duration(10 * MINUTES) + .eut(TierEU.RECIPE_IV) + .addTo(reactorProcessingUnitRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(18), ELEMENT.getInstance().FLUORINE.getCell(6)) + .itemOutputs( + CI.emptyCells(4), + FLUORIDES.LITHIUM_FLUORIDE.getCell(1), + FLUORIDES.BERYLLIUM_FLUORIDE.getCell(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1)) + .outputChances(10000, 10000, 10000, 1000, 1000, 1000, 500, 500, 500) + .fluidInputs(NUCLIDE.LiFBeF2ThF4.getFluidStack(10000)) + .fluidOutputs(NUCLIDE.UF6F2.getFluidStack(3000)) + .duration(10 * MINUTES) + .eut(TierEU.RECIPE_IV) + .addTo(reactorProcessingUnitRecipes); // Reactor Blanket step 1 - Fluorination - CORE.RA.addReactorProcessingUnitRecipe( - CI.getNumberedAdvancedCircuit(7), - ELEMENT.getInstance().FLUORINE.getCell(6), - NUCLIDE.Sparged_LiFThF4.getFluidStack(10000), - new ItemStack[] { CI.emptyCells(4), FLUORIDES.LITHIUM_FLUORIDE.getCell(2), - ELEMENT.getInstance().PROTACTINIUM.getDust(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1) }, - new int[] { 10000, 10000, 1000, 1000, 1000, 1000, 1000, 1000 }, - NUCLIDE.UF6F2.getFluidStack(3000), - 20 * 60 * 5, - MaterialUtils.getVoltageForTier(5)); - CORE.RA.addReactorProcessingUnitRecipe( - CI.getNumberedAdvancedCircuit(8), - ELEMENT.getInstance().FLUORINE.getCell(6), - NUCLIDE.Sparged_LiFBeF2ThF4.getFluidStack(10000), - new ItemStack[] { CI.emptyCells(2), FLUORIDES.LITHIUM_FLUORIDE.getCell(2), - FLUORIDES.BERYLLIUM_FLUORIDE.getCell(2), ELEMENT.getInstance().PROTACTINIUM.getDust(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1), ELEMENT.getInstance().PROTACTINIUM.getDust(1), - ELEMENT.getInstance().PROTACTINIUM.getDust(1) }, - new int[] { 10000, 10000, 10000, 2000, 2000, 2000, 2000, 2000, 2000 }, - NUCLIDE.UF6F2.getFluidStack(6000), - 20 * 60 * 5, - MaterialUtils.getVoltageForTier(5)); + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(7), ELEMENT.getInstance().FLUORINE.getCell(6)) + .itemOutputs( + CI.emptyCells(4), + FLUORIDES.LITHIUM_FLUORIDE.getCell(2), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1)) + .outputChances(10000, 10000, 1000, 1000, 1000, 1000, 1000, 1000) + .fluidInputs(NUCLIDE.Sparged_LiFThF4.getFluidStack(10000)) + .fluidOutputs(NUCLIDE.UF6F2.getFluidStack(3000)) + .duration(5 * MINUTES) + .eut(TierEU.RECIPE_IV) + .addTo(reactorProcessingUnitRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(8), ELEMENT.getInstance().FLUORINE.getCell(6)) + .itemOutputs( + CI.emptyCells(2), + FLUORIDES.LITHIUM_FLUORIDE.getCell(2), + FLUORIDES.BERYLLIUM_FLUORIDE.getCell(2), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1), + ELEMENT.getInstance().PROTACTINIUM.getDust(1)) + .outputChances(10000, 10000, 10000, 2000, 2000, 2000, 2000, 2000, 2000) + .fluidInputs(NUCLIDE.Sparged_LiFBeF2ThF4.getFluidStack(10000)) + .fluidOutputs(NUCLIDE.UF6F2.getFluidStack(6000)) + .duration(5 * MINUTES) + .eut(TierEU.RECIPE_IV) + .addTo(reactorProcessingUnitRecipes); // Reactor Blanket step 2 - Sorption + Cold Trap - CORE.RA.addColdTrapRecipe( - 8, - FLUORIDES.SODIUM_FLUORIDE.getCell(4), - NUCLIDE.UF6F2.getFluidStack(3000), - new ItemStack[] { ELEMENT.getInstance().FLUORINE.getCell(2), FLUORIDES.URANIUM_HEXAFLUORIDE.getCell(2), - ELEMENT.getInstance().URANIUM233.getDust(1), ELEMENT.getInstance().URANIUM233.getDust(1), - ELEMENT.getInstance().URANIUM233.getDust(1) }, - new int[] { 10000, 10000, 3000, 2000, 1000 }, - FLUORIDES.SODIUM_FLUORIDE.getFluidStack(2000), - 20 * 60 * 10, - MaterialUtils.getVoltageForTier(3)); + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(8), FLUORIDES.SODIUM_FLUORIDE.getCell(4)) + .itemOutputs( + ELEMENT.getInstance().FLUORINE.getCell(2), + FLUORIDES.URANIUM_HEXAFLUORIDE.getCell(2), + ELEMENT.getInstance().URANIUM233.getDust(1), + ELEMENT.getInstance().URANIUM233.getDust(1), + ELEMENT.getInstance().URANIUM233.getDust(1)) + .outputChances(10000, 10000, 3000, 2000, 1000) + .fluidInputs(NUCLIDE.UF6F2.getFluidStack(3000)) + .fluidOutputs(FLUORIDES.SODIUM_FLUORIDE.getFluidStack(2000)) + .duration(10 * MINUTES) + .eut(TierEU.RECIPE_HV) + .addTo(coldTrapRecipes); // LiBeF2UF4FP + F2 = LiFBeF2 & UF6F2FP // Reactor Core step 1 - Process Burnt Salt - CORE.RA.addReactorProcessingUnitRecipe( - CI.getNumberedAdvancedCircuit(1), - ELEMENT.getInstance().FLUORINE.getCell(1), - NUCLIDE.LiFBeF2UF4FP.getFluidStack(1000), - new ItemStack[] { NUCLIDE.UF6F2FP.getCell(1) }, - new int[] { 10000 }, - FluidUtils.getFluidStack(NuclearChem.Impure_LiFBeF2, 1000), - 20 * 60 * 120, - MaterialUtils.getVoltageForTier(3)); - + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(1), ELEMENT.getInstance().FLUORINE.getCell(1)) + .itemOutputs(NUCLIDE.UF6F2FP.getCell(1)) + .outputChances(10000) + .fluidInputs(NUCLIDE.LiFBeF2UF4FP.getFluidStack(1000)) + .fluidOutputs(FluidUtils.getFluidStack(NuclearChem.Impure_LiFBeF2, 1000)) + .duration(2 * HOURS) + .eut(TierEU.RECIPE_HV) + .addTo(reactorProcessingUnitRecipes); // LiBeF2UF4FP + F2 = LiFBeF2 & UF6F2FP // Reactor Core step 1 - Process Burnt Salt - CORE.RA.addReactorProcessingUnitRecipe( - CI.getNumberedAdvancedCircuit(1), - ELEMENT.getInstance().FLUORINE.getCell(3), - NUCLIDE.Sparged_LiFBeF2UF4FP.getFluidStack(1000), - new ItemStack[] { CI.emptyCells(1), NUCLIDE.UF6F2FP.getCell(2) }, - new int[] { 10000 }, - FluidUtils.getFluidStack(NuclearChem.Impure_LiFBeF2, 2000), - 20 * 60 * 60, - MaterialUtils.getVoltageForTier(3)); + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(1), ELEMENT.getInstance().FLUORINE.getCell(3)) + .itemOutputs(CI.emptyCells(1), NUCLIDE.UF6F2FP.getCell(2)) + .fluidInputs(NUCLIDE.Sparged_LiFBeF2UF4FP.getFluidStack(1000)) + .fluidOutputs(FluidUtils.getFluidStack(NuclearChem.Impure_LiFBeF2, 2000)) + .duration(60 * MINUTES) + .eut(TierEU.RECIPE_HV) + .addTo(reactorProcessingUnitRecipes); // Reactor Core step 2A - Sorption + Cold Trap - CORE.RA.addColdTrapRecipe( - 8, - FLUORIDES.SODIUM_FLUORIDE.getCell(3), - NUCLIDE.UF6F2FP.getFluidStack(2000), - new ItemStack[] { ELEMENT.getInstance().FLUORINE.getCell(1), FLUORIDES.URANIUM_HEXAFLUORIDE.getCell(2), - ELEMENT.getInstance().PHOSPHORUS.getDust(1), ELEMENT.getInstance().PHOSPHORUS.getDust(1), - ELEMENT.getInstance().PHOSPHORUS.getDust(1), ELEMENT.getInstance().PHOSPHORUS.getDust(1), - ELEMENT.getInstance().PHOSPHORUS.getDust(1), ELEMENT.getInstance().PHOSPHORUS.getDust(1) }, - new int[] { 10000, 10000, 5000, 5000, 5000, 5000, 5000, 5000 }, - FLUORIDES.SODIUM_FLUORIDE.getFluidStack(2000), - 20 * 60 * 10, - MaterialUtils.getVoltageForTier(4)); + GT_Values.RA.stdBuilder() + .itemInputs(CI.getNumberedAdvancedCircuit(8), FLUORIDES.SODIUM_FLUORIDE.getCell(3)) + .itemOutputs( + ELEMENT.getInstance().FLUORINE.getCell(1), + FLUORIDES.URANIUM_HEXAFLUORIDE.getCell(2), + ELEMENT.getInstance().PHOSPHORUS.getDust(1), + ELEMENT.getInstance().PHOSPHORUS.getDust(1), + ELEMENT.getInstance().PHOSPHORUS.getDust(1), + ELEMENT.getInstance().PHOSPHORUS.getDust(1), + ELEMENT.getInstance().PHOSPHORUS.getDust(1), + ELEMENT.getInstance().PHOSPHORUS.getDust(1)) + .outputChances(10000, 10000, 5000, 5000, 5000, 5000, 5000, 5000) + .fluidInputs(NUCLIDE.UF6F2FP.getFluidStack(2000)) + .fluidOutputs(FLUORIDES.SODIUM_FLUORIDE.getFluidStack(2000)) + .duration(10 * MINUTES) + .eut(TierEU.RECIPE_EV) + .addTo(coldTrapRecipes); // Reactor Core step 2B - Distillation GT_Values.RA.stdBuilder() @@ -214,45 +228,28 @@ public class RecipeLoader_NuclearFuelProcessing { .addTo(blastFurnaceRecipes); // Alternative recipe to the above, for chemplant, to not use cells - CORE.RA.addChemicalPlantRecipe( - new ItemStack[] {}, - new FluidStack[] { FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(1000), NUCLIDE.LiFBeF2.getFluidStack(1000), - ELEMENT.getInstance().HYDROGEN.getFluidStack(2000) }, - new ItemStack[] {}, - new FluidStack[] { NUCLIDE.LiFBeF2UF4.getFluidStack(3000), - FluidUtils.getFluidStack("hydrofluoricacid", 2000) }, - 300 * 10, - MaterialUtils.getVoltageForTier(5), - 4); - - CORE.RA.addFissionFuel( - FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getFluidStack(100), - NUCLIDE.LiFBeF2UF4.getFluidStack(900), - null, - null, - null, - null, - null, - null, - null, - NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(1000), - null, - 20 * 60 * 12, // Duration - MaterialUtils.getVoltageForTier(5)); + GT_Values.RA.stdBuilder() + .fluidInputs( + FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(1000), + NUCLIDE.LiFBeF2.getFluidStack(1000), + ELEMENT.getInstance().HYDROGEN.getFluidStack(2000)) + .fluidOutputs(NUCLIDE.LiFBeF2UF4.getFluidStack(3000), FluidUtils.getFluidStack("hydrofluoricacid", 2000)) + .duration(2 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .metadata(CHEMPLANT_CASING_TIER, 4) + .addTo(chemicalPlantRecipes); - CORE.RA.addFissionFuel( - FLUORIDES.THORIUM_TETRAFLUORIDE.getFluidStack(100), - NUCLIDE.LiFBeF2UF4.getFluidStack(900), - null, - null, - null, - null, - null, - null, - null, - NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(1000), - null, - 20 * 60 * 15, // Duration - MaterialUtils.getVoltageForTier(5)); + GT_Values.RA.stdBuilder() + .fluidInputs(FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getFluidStack(100), NUCLIDE.LiFBeF2UF4.getFluidStack(900)) + .fluidOutputs(NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(1000)) + .duration(12 * MINUTES) + .eut(TierEU.RECIPE_IV) + .addTo(fissionFuelProcessingRecipes); + GT_Values.RA.stdBuilder() + .fluidInputs(FLUORIDES.THORIUM_TETRAFLUORIDE.getFluidStack(100), NUCLIDE.LiFBeF2UF4.getFluidStack(900)) + .fluidOutputs(NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(1000)) + .duration(15 * MINUTES) + .eut(TierEU.RECIPE_IV) + .addTo(fissionFuelProcessingRecipes); } } |
