diff options
author | iouter <62897714+iouter@users.noreply.github.com> | 2022-11-24 04:53:13 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-23 21:53:13 +0100 |
commit | 921527ce3cc5f92b067f180295fa55dae718461f (patch) | |
tree | 4bbbdb575ec865046954c46017d3d244554af017 | |
parent | 3357250327185ba468d7afe92bd1271aa3c89ee8 (diff) | |
download | GT5-Unofficial-921527ce3cc5f92b067f180295fa55dae718461f.tar.gz GT5-Unofficial-921527ce3cc5f92b067f180295fa55dae718461f.tar.bz2 GT5-Unofficial-921527ce3cc5f92b067f180295fa55dae718461f.zip |
No Cell for Multiblock Dehydrator and ABS (#446)
9 files changed, 223 insertions, 13 deletions
diff --git a/src/main/java/gregtech/api/util/GTPP_Recipe.java b/src/main/java/gregtech/api/util/GTPP_Recipe.java index 891b5ba0a8..553a774147 100644 --- a/src/main/java/gregtech/api/util/GTPP_Recipe.java +++ b/src/main/java/gregtech/api/util/GTPP_Recipe.java @@ -800,6 +800,23 @@ public class GTPP_Recipe extends GT_Recipe implements IComparableRecipe { "", false, true); + public static final GTPP_Recipe_Map_Internal sMultiblockChemicalDehydratorRecipes = + new GTPP_Recipe_Map_MultiNoCell( + new HashSet<GT_Recipe>(2000), + "gtpp.recipe.multidehydrator", + "Multiblock Dehydrator", + null, + RES_PATH_GUI + "basicmachines/FissionFuel", + 4, + 12, + 0, + 0, + 1, + "", + 0, + "", + false, + true); // Semi-Fluid Fuel Map public static final GT_Recipe_Map_Fuel sSemiFluidLiquidFuels = new GT_Recipe_Map_Fuel( diff --git a/src/main/java/gtPlusPlus/GTplusplus.java b/src/main/java/gtPlusPlus/GTplusplus.java index 7a6d34cf71..f21700cf85 100644 --- a/src/main/java/gtPlusPlus/GTplusplus.java +++ b/src/main/java/gtPlusPlus/GTplusplus.java @@ -282,7 +282,7 @@ public class GTplusplus implements ActionListener { protected void generateGregtechRecipeMaps() { int[] mValidCount = new int[] {0, 0, 0}; - int[] mInvalidCount = new int[] {0, 0, 0, 0}; + int[] mInvalidCount = new int[] {0, 0, 0, 0, 0}; int[] mOriginalCount = new int[] {0, 0, 0}; RecipeGen_BlastSmelterGT_GTNH.generateGTNHBlastSmelterRecipesFromEBFList(); @@ -301,6 +301,9 @@ public class GTplusplus implements ActionListener { GT_Recipe.GT_Recipe_Map.sVacuumRecipes, GTPP_Recipe.GTPP_Recipe_Map.sAdvFreezerRecipes_GT); mInvalidCount[3] = RecipeGen_MultisUsingFluidInsteadOfCells.generateRecipesNotUsingCells( GT_Recipe.GT_Recipe_Map.sMixerRecipes, GTPP_Recipe.GTPP_Recipe_Map.sMultiblockMixerRecipes_GT); + mInvalidCount[4] = RecipeGen_MultisUsingFluidInsteadOfCells.generateRecipesNotUsingCells( + GTPP_Recipe.GTPP_Recipe_Map.sChemicalDehydratorRecipes, + GTPP_Recipe.GTPP_Recipe_Map.sMultiblockChemicalDehydratorRecipes); /* //Large Centrifuge generation diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index b34578973d..357f316e32 100644 --- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -921,14 +921,16 @@ public class RECIPES_GREGTECH { CORE.RA.addBlastSmelterRecipe( new ItemStack[] { ItemUtils.getGregtechCircuit(5), - ELEMENT.getInstance().MERCURY.getCell(1), ELEMENT.getInstance().BARIUM.getDust(2), ELEMENT.getInstance().CALCIUM.getDust(2), ELEMENT.getInstance().COPPER.getDust(3), }, - ELEMENT.getInstance().OXYGEN.getFluidStack(8000), + new FluidStack[] { + ELEMENT.getInstance().OXYGEN.getFluidStack(8000), + ELEMENT.getInstance().MERCURY.getFluidStack(1000), + }, ALLOY.HG1223.getFluidStack(16 * 144), - new ItemStack[] {CI.emptyCells(1)}, + null, new int[] {10000}, // Output Chance 20 * 120, 30720); @@ -1078,7 +1080,7 @@ public class RECIPES_GREGTECH { MISC_MATERIALS.STRONTIUM_OXIDE.getDust(8), ELEMENT.getInstance().ALUMINIUM.getDust(8), }, - null, + (FluidStack) null, ELEMENT.getInstance().OXYGEN.getFluidStack(8000), new ItemStack[] { ELEMENT.getInstance().ALUMINIUM.getIngot(8), diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java index 674ba9e7bb..16e34826e5 100644 --- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java @@ -11,6 +11,7 @@ import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.MaterialUtils; import gtPlusPlus.core.util.reflect.AddGregtechRecipe; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; public class RECIPES_SeleniumProcessing { @@ -46,13 +47,13 @@ public class RECIPES_SeleniumProcessing { CORE.RA.addBlastSmelterRecipe( new ItemStack[] { ItemUtils.getGregtechCircuit(14), - ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricAcid", 8), ELEMENT.getInstance().CARBON.getDust(16), }, - MISC_MATERIALS.SELENIOUS_ACID.getFluidStack(750), + new FluidStack[] { + MISC_MATERIALS.SELENIOUS_ACID.getFluidStack(750), Materials.SulfuricAcid.getFluid(8000), + }, ELEMENT.getInstance().SELENIUM.getFluidStack(144 * 1), new ItemStack[] { - CI.emptyCells(8), ELEMENT.getInstance().SELENIUM.getIngot(1), ELEMENT.getInstance().SELENIUM.getIngot(1), }, diff --git a/src/main/java/gtPlusPlus/nei/NEI_GT_Config.java b/src/main/java/gtPlusPlus/nei/NEI_GT_Config.java index a49f124e84..a5d93ea687 100644 --- a/src/main/java/gtPlusPlus/nei/NEI_GT_Config.java +++ b/src/main/java/gtPlusPlus/nei/NEI_GT_Config.java @@ -33,6 +33,7 @@ public class NEI_GT_Config implements IConfigureNEI { mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sThermalFuels.mUnlocalizedName); mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sSolarTowerRecipes.mUnlocalizedName); mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sTreeSimFakeRecipes.mUnlocalizedName); + mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sMultiblockChemicalDehydratorRecipes.mUnlocalizedName); // Standard GT Recipe Maps Logger.INFO("NEI Registration: " + GTPP_Recipe_Map_Internal.sMappingsEx.size() + " sMappingEx"); @@ -75,6 +76,9 @@ public class NEI_GT_Config implements IConfigureNEI { Logger.INFO( "NEI Registration: Registering NEI handler for " + GTPP_Recipe_Map.sMultiblockMixerRecipes_GT.mNEIName); new GT_NEI_MultiNoCell(GTPP_Recipe_Map.sMultiblockMixerRecipes_GT); + Logger.INFO("NEI Registration: Registering NEI handler for " + + GTPP_Recipe_Map.sMultiblockChemicalDehydratorRecipes.mNEIName); + new GT_NEI_MultiNoCell(GTPP_Recipe_Map.sMultiblockChemicalDehydratorRecipes); Logger.INFO( "NEI Registration: Registering NEI handler for " + GTPP_Recipe_Map.sAlloyBlastSmelterRecipes.mNEIName); new GT_NEI_MultiNoCell(GTPP_Recipe_Map.sAlloyBlastSmelterRecipes); diff --git a/src/main/java/gtPlusPlus/nei/NEI_IMC_Sender.java b/src/main/java/gtPlusPlus/nei/NEI_IMC_Sender.java index 48c62173c0..cbf08e890b 100644 --- a/src/main/java/gtPlusPlus/nei/NEI_IMC_Sender.java +++ b/src/main/java/gtPlusPlus/nei/NEI_IMC_Sender.java @@ -7,10 +7,10 @@ import net.minecraft.nbt.NBTTagCompound; public class NEI_IMC_Sender { public static void IMCSender() { // NEI jar is using some outdated handler names - sendHandler("gtpp.recipe.alloyblastsmelter", "gregtech:gt.blockmachines:810", 1); + sendHandler("gtpp.recipe.alloyblastsmelter", "gregtech:gt.blockmachines:810"); sendHandler("gtpp.recipe.rocketenginefuel", "gregtech:gt.blockmachines:793"); sendHandler("gtpp.recipe.cyclotron", "gregtech:gt.blockmachines:828"); - sendHandler("gtpp.recipe.chemicaldehydrator", "gregtech:gt.blockmachines:911", 1); + sendHandler("gtpp.recipe.chemicaldehydrator", "gregtech:gt.blockmachines:911"); sendHandler("gtpp.recipe.slowfusionreactor", "gregtech:gt.blockmachines:31015"); sendHandler("gtpp.recipe.RTGgenerators", "gregtech:gt.blockmachines:869"); sendHandler("gtpp.recipe.cokeoven", "gregtech:gt.blockmachines:791"); @@ -18,6 +18,8 @@ public class NEI_IMC_Sender { sendHandler("gtpp.recipe.fishpond", "gregtech:gt.blockmachines:829", 1); sendHandler("gtpp.recipe.multimixer", "gregtech:gt.blockmachines:811"); sendHandler("gtpp.recipe.advanced.mixer", "gregtech:gt.blockmachines:811"); + sendHandler("gtpp.recipe.multidehydrator", "gregtech:gt.blockmachines:995"); + sendCatalyst("gtpp.recipe.multidehydrator", "gregtech:gt.blockmachines:995"); sendHandler("gtpp.recipe.cryogenicfreezer", "gregtech:gt.blockmachines:910"); sendHandler("gtpp.recipe.matterfab2", "gregtech:gt.blockmachines:799"); sendHandler("gtpp.recipe.multicentrifuge", "gregtech:gt.blockmachines:790", 1); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java index de736dca7b..a788b15a95 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java @@ -138,6 +138,20 @@ public interface IGregtech_RecipeAdder { ItemStack[] aInput, FluidStack aInputFluid, FluidStack aOutput, int aChance, int aDuration, int aEUt); /** + * Adds a Recipe for the Alloy Blast Smelter. (up to 9 Inputs, More than 1 Fluids) + * + * @param aInput = ItemStack[] (not null, and respects StackSize) + * @param aFluidInput = FluidStack[] (can be null, and respects StackSize) + * @param aFluidOutput = Output of the Molten Metal (not null, and respects StackSize) + * @param aChances = Output Chance (can be == 0) + * @param aDuration = Duration (must be >= 0) + * @param aEUt = EU per tick needed for heating up (must be >= 0) + * @return true if the Recipe got added, otherwise false. + */ + public boolean addBlastSmelterRecipe( + ItemStack[] aInput, FluidStack[] aInputFluid, FluidStack aOutput, int aChance, int aDuration, int aEUt); + + /** * Adds a Recipe for the Alloy Blast Smelter. (up to 9 Inputs) * * @param aInput = ItemStack[] (not null, and respects StackSize) @@ -179,6 +193,47 @@ public interface IGregtech_RecipeAdder { boolean aOptimizeRecipe); /** + * Adds a Recipe for the Alloy Blast Smelter. (up to 9 Inputs, More than 1 fluids) + * + * @param aInput = ItemStack[] (not null, and respects StackSize) + * @param aFluidInput = FluidStack[] (can be null, and respects StackSize) + * @param aFluidOutput = Output of the Molten Metal (not null, and respects StackSize) + * @param aOutputStack = Item Output (Can be null) + * @param aChances = Output Chance (can be == 0) + * @param aDuration = Duration (must be >= 0) + * @param aEUt = EU per tick needed for heating up (must be >= 0) + * @return true if the Recipe got added, otherwise false. + */ + public boolean addBlastSmelterRecipe( + ItemStack[] aInput, + FluidStack[] aInputFluid, + FluidStack aOutput, + ItemStack[] aOutputStack, + int[] aChance, + int aDuration, + int aEUt); + + public boolean addBlastSmelterRecipe( + ItemStack[] aInput, + FluidStack[] aInputFluid, + FluidStack aOutput, + int aChance, + int aDuration, + int aEUt, + int aSpecialValue); + + public boolean addBlastSmelterRecipe( + ItemStack[] aInput, + FluidStack[] aInputFluid, + FluidStack aOutput, + ItemStack[] aOutputStack, + int[] aChance, + int aDuration, + int aEUt, + int aSpecialValue, + boolean aOptimizeRecipe); + + /** * Adds a Recipe for the LFTRr. (up to 9 Inputs) * * @param aInput = ItemStack[] (not null, and respects StackSize) @@ -201,6 +256,29 @@ public interface IGregtech_RecipeAdder { int aEUt, int aSpecialValue); + /** + * Adds a Recipe for the LFTRr. (up to 9 Inputs, More than 1 fluids) + * + * @param aInput = ItemStack[] (not null, and respects StackSize) + * @param aFluidInput = FluidStack[] (can be null, and respects StackSize) + * @param aFluidOutput = Output of the Molten Salts (not null, and respects StackSize) + * @param aOutputStack = Item Output (Can be null) + * @param aChances = Output Chance (can be == 0) + * @param aDuration = Duration (must be >= 0) + * @param aEUt = EU per tick needed for heating up (must be >= 0) + * @param aSpecialValue = Power produced in EU/t per dynamo + * @return true if the Recipe got added, otherwise false. + */ + public boolean addBlastSmelterRecipe( + ItemStack[] aInput, + FluidStack[] aInputFluid, + FluidStack aOutput, + ItemStack[] aOutputStack, + int[] aChance, + int aDuration, + int aEUt, + int aSpecialValue); + public boolean addLFTRRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt); public boolean addLFTRRecipe( diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java index b600289c95..f6d9de7345 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java @@ -152,7 +152,7 @@ public class GregtechMetaTileEntity_IndustrialDehydrator public GT_Recipe.GT_Recipe_Map getRecipeMap() { return mDehydratorMode - ? GTPP_Recipe.GTPP_Recipe_Map.sChemicalDehydratorRecipes + ? GTPP_Recipe.GTPP_Recipe_Map.sMultiblockChemicalDehydratorRecipes : GTPP_Recipe.GTPP_Recipe_Map.sVacuumFurnaceRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/main/java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java index 260e5a37fd..0a0234a752 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java @@ -487,7 +487,7 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { public boolean addBlastSmelterRecipe( final ItemStack[] aInput, FluidStack aOutput, final int aChance, int aDuration, final int aEUt) { return addBlastSmelterRecipe( - aInput, null, aOutput, new ItemStack[] {}, new int[] {aChance}, aDuration, aEUt, 3700); + aInput, (FluidStack) null, aOutput, new ItemStack[] {}, new int[] {aChance}, aDuration, aEUt, 3700); } @Override @@ -505,6 +505,18 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { @Override public boolean addBlastSmelterRecipe( final ItemStack[] aInput, + FluidStack[] aInputFluid, + FluidStack aOutput, + final int aChance, + int aDuration, + final int aEUt) { + return addBlastSmelterRecipe( + aInput, aInputFluid, aOutput, new ItemStack[] {}, new int[] {aChance}, aDuration, aEUt, 3700); + } + + @Override + public boolean addBlastSmelterRecipe( + final ItemStack[] aInput, FluidStack aInputFluid, FluidStack aOutput, ItemStack[] aOutputStack, @@ -516,6 +528,18 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { @Override public boolean addBlastSmelterRecipe( + final ItemStack[] aInput, + FluidStack[] aInputFluid, + FluidStack aOutput, + ItemStack[] aOutputStack, + final int aChance[], + int aDuration, + final int aEUt) { + return addBlastSmelterRecipe(aInput, aInputFluid, aOutput, aOutputStack, aChance, aDuration, aEUt, 3700); + } + + @Override + public boolean addBlastSmelterRecipe( ItemStack[] aInput, FluidStack aInputFluid, FluidStack aOutput, @@ -530,6 +554,19 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { @Override public boolean addBlastSmelterRecipe( ItemStack[] aInput, + FluidStack[] aInputFluid, + FluidStack aOutput, + int aChance, + int aDuration, + int aEUt, + int aSpecialValue) { + return addBlastSmelterRecipe( + aInput, aInputFluid, aOutput, new ItemStack[] {}, new int[] {aChance}, aDuration, aEUt, aSpecialValue); + } + + @Override + public boolean addBlastSmelterRecipe( + ItemStack[] aInput, FluidStack aInputFluid, FluidStack aOutput, ItemStack[] aOutputStack, @@ -541,6 +578,21 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { aInput, aInputFluid, aOutput, aOutputStack, aChance, aDuration, aEUt, aSpecialValue, true); } + @Override + public boolean addBlastSmelterRecipe( + ItemStack[] aInput, + FluidStack[] aInputFluid, + FluidStack aOutput, + ItemStack[] aOutputStack, + int[] aChance, + int aDuration, + int aEUt, + int aSpecialValue) { + return addBlastSmelterRecipe( + aInput, aInputFluid, aOutput, aOutputStack, aChance, aDuration, aEUt, aSpecialValue, true); + } + + @Override public boolean addBlastSmelterRecipe( ItemStack[] aInput, FluidStack aInputFluid, @@ -551,6 +603,28 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { int aEUt, int aSpecialValue, boolean aOptimizeRecipe) { + return addBlastSmelterRecipe( + aInput, + new FluidStack[] {aInputFluid}, + aOutput, + aOutputStack, + aChance, + aDuration, + aEUt, + aSpecialValue, + aOptimizeRecipe); + } + + public boolean addBlastSmelterRecipe( + ItemStack[] aInput, + FluidStack[] aInputFluid, + FluidStack aOutput, + ItemStack[] aOutputStack, + int[] aChance, + int aDuration, + int aEUt, + int aSpecialValue, + boolean aOptimizeRecipe) { if ((aInput == null) || (aOutput == null)) { Logger.WARNING("Fail - Input or Output was null."); return false; @@ -589,7 +663,7 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { aOutputStack, null, aChance, - new FluidStack[] {aInputFluid}, + aInputFluid, new FluidStack[] {aOutput}, Math.max(1, aDuration), Math.max(1, aEUt), @@ -954,6 +1028,35 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { return true; } + public boolean addMultiblockChemicalDehydratorRecipe( + ItemStack[] aInputs, + FluidStack[] aFluidInputs, + FluidStack[] aFluidOutputs, + ItemStack[] aOutputs, + int[] aChances, + int aDuration, + int aEUtick, + int aSpecial) { + if (areItemsAndFluidsBothNull(aInputs, aFluidInputs) + || areItemsAndFluidsBothNull(aOutputs, aFluidOutputs) + || aEUtick <= 0) { + return false; + } + if (!ItemUtils.checkForInvalidItems(aInputs, aOutputs)) { + Logger.INFO("[Recipe] Error generating Large Chemical Dehydrator recipe."); + Logger.INFO("Inputs: " + ItemUtils.getArrayStackNames(aInputs)); + Logger.INFO("Fluid Inputs: " + ItemUtils.getArrayStackNames(aFluidInputs)); + Logger.INFO("Outputs: " + ItemUtils.getArrayStackNames(aOutputs)); + Logger.INFO("Fluid Outputs: " + ItemUtils.getArrayStackNames(aFluidOutputs)); + return false; + } + + GTPP_Recipe aRecipe = new GTPP_Recipe( + false, aInputs, aOutputs, null, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUtick, aSpecial); + GTPP_Recipe.GTPP_Recipe_Map.sMultiblockChemicalDehydratorRecipes.addRecipe(aRecipe); + return true; + } + public boolean addAssemblerRecipeWithOreDict( Object aInput1, int aAmount1, Object aInput2, int aAmount2, ItemStack aOutput, int a1, int a2) { if (aInput1 instanceof String || aInput2 instanceof String) { |