aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java2
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java15
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java5
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java2109
4 files changed, 1076 insertions, 1055 deletions
diff --git a/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java b/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
index 8eb9e547e4..c7032ab7c7 100644
--- a/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
+++ b/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
@@ -69,7 +69,7 @@ public final class MISC_MATERIALS {
});
public static final Material SELENIOUS_ACID = new Material(
- "Selecious Acid",
+ "Selenious Acid",
MaterialState.PURE_LIQUID, //State
null, //Material Colour
-1, //Melting Point in C
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java
index 5489827fe2..0cd94efac6 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java
@@ -9,6 +9,7 @@ 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.core.util.reflect.AddGregtechRecipe;
import net.minecraft.item.ItemStack;
public class RECIPES_SeleniumProcessing {
@@ -22,11 +23,10 @@ public class RECIPES_SeleniumProcessing {
processCopperRecipes();
//Liquify the Dried Dioxide
- CORE.RA.addChemicalRecipe(CI.getNumberedCircuit(14), MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), FluidUtils.getSteam(500), FluidUtils.getDistilledWater(2000), null, MISC_MATERIALS.SELENIUM_DIOXIDE.getFluid(1000), 20 * 30 * 2, 1024);
+ AddGregtechRecipe.addCokeAndPyrolyseRecipes(MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), 14, FluidUtils.getSteam(500), null, MISC_MATERIALS.SELENIUM_DIOXIDE.getFluid(1000), 120, 1024);
-
- // Produce Selenious Acid
- CORE.RA.addChemicalRecipe(CI.getNumberedCircuit(14), null, MISC_MATERIALS.SELENIUM_DIOXIDE.getFluid(1000), FluidUtils.getHotWater(4000), null, MISC_MATERIALS.SELENIOUS_ACID.getFluid(1000), 20 * 30 * 2, 2048);
+ // Produce Selenious Acid
+ AddGregtechRecipe.addCokeAndPyrolyseRecipes(MISC_MATERIALS.SELENIUM_DIOXIDE.getCell(1), 14, FluidUtils.getHotWater(4000), CI.emptyCells(1), MISC_MATERIALS.SELENIOUS_ACID.getFluid(1000), 120, 2048);
// Make Selenium
CORE.RA.addBlastSmelterRecipe(
@@ -35,13 +35,14 @@ public class RECIPES_SeleniumProcessing {
ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricAcid", 8),
ELEMENT.getInstance().CARBON.getDust(16),
},
- MISC_MATERIALS.SELENIOUS_ACID.getFluid(500),
+ MISC_MATERIALS.SELENIOUS_ACID.getFluid(750),
ELEMENT.getInstance().SELENIUM.getFluid(144 * 1),
new ItemStack[] {
+ CI.emptyCells(8),
ELEMENT.getInstance().SELENIUM.getIngot(1),
ELEMENT.getInstance().SELENIUM.getIngot(1),
},
- new int[] {2000, 2000, 2000},
+ new int[] {10000, 2000, 2000},
20 * 300,
7200);
@@ -180,7 +181,7 @@ public class RECIPES_SeleniumProcessing {
},
40 * 20, // Time in ticks
1024); // EU
- //Chalco
+ //Malachite
CORE.RA.addDehydratorRecipe(
new ItemStack[]{
ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Malachite, 1), // Item Input
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
index ff3ec2d2ab..e4a15d34ea 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
@@ -252,4 +252,9 @@ public interface IGregtech_RecipeAdder {
* @param aSpecial = EU needed for heating the Reactor up (must be >= 0)
*/
public boolean addFusionReactorRecipe(ItemStack aInputStackA, ItemStack aInputStackB, FluidStack plasma, int aOutputChance, int aFusionDurationInTicks, int aEu, int aSpecial);
+
+
+ boolean addVacuumFurnaceRecipe(ItemStack aInput1, ItemStack aInput2,
+ FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1,
+ ItemStack aOutput2, int aDuration, int aEUt, int aLevel);
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
index ec9af19ff0..7ef3b0b6dd 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
@@ -12,7 +12,6 @@ import gregtech.api.enums.Materials;
import gregtech.api.interfaces.internal.IGT_RecipeAdder;
import gregtech.api.util.CustomRecipeMap;
import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Recipe.GT_Recipe_AssemblyLine;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.Recipe_GT;
import gregtech.api.util.SemiFluidFuelHandler;
@@ -23,7 +22,6 @@ import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.data.ArrayUtils;
-import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.gregtech.api.interfaces.internal.IGregtech_RecipeAdder;
@@ -35,953 +33,953 @@ import net.minecraftforge.oredict.OreDictionary;
public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
- @Override
- public boolean addCokeOvenRecipe(final ItemStack aInput1, final ItemStack aInput2, final FluidStack aFluidInput,
- final FluidStack aFluidOutput, final ItemStack aOutput, int aDuration, final int aEUt) {
- try {
- try {
- // RECIPEHANDLER_CokeOven.debug1();
- if (((aInput1 == null) /* && (aFluidInput == null) */)
- || ((aOutput == null) || (aFluidOutput == null))) {
- // Utils.LOG_WARNING("aInput1:"+aInput1.toString()+"
- // aInput2:"+aInput2.toString()+"
- // aFluidInput:"+aFluidInput.toString()+"
- // aFluidOutput:"+aFluidOutput.toString()+"
- // aOutput:"+aOutput.toString()+" aDuration:"+aDuration+"
- // aEU/t:"+aEUt);
- Logger.WARNING("Something was null, returning false");
- return false;
- }
-
- }
- catch (final NullPointerException e) {
- e.getStackTrace();
- }
- try {
- // RECIPEHANDLER_CokeOven.debug2(aInput1, aInput2, aFluidInput,
- // aFluidOutput, aOutput, aDuration, aEUt);
- if ((aOutput != null)
- && ((aDuration = GregTech_API.sRecipeFile.get("cokeoven", aOutput, aDuration)) <= 0)) {
- // Utils.LOG_WARNING("aInput1:"+aInput1.toString()+"
- // aInput2:"+aInput2.toString()+"
- // aFluidInput:"+aFluidInput.toString()+"
- // aFluidOutput:"+aFluidOutput.toString()+"
- // aOutput:"+aOutput.toString()+" aDuration:"+aDuration+"
- // aEU/t:"+aEUt);
- Logger.WARNING("Something was null, returning false");
- return false;
- }
-
- }
- catch (final NullPointerException e) {
- e.getStackTrace();
- }
- try {
- // RECIPEHANDLER_CokeOven.debug3(aInput1, aInput2, aFluidInput,
- // aFluidOutput, aOutput, aDuration, aEUt);
- if ((aFluidOutput == null) || ((aDuration = GregTech_API.sRecipeFile.get("cokeoven",
- aFluidOutput.getFluid().getName(), aDuration)) <= 0)) {
- // Utils.LOG_WARNING("aInput1:"+aInput1.toString()+"
- // aInput2:"+aInput2.toString()+"
- // aFluidInput:"+aFluidInput.toString()+"
- // aFluidOutput:"+aFluidOutput.toString()+"
- // aOutput:"+aOutput.toString()+" aDuration:"+aDuration+"
- // aEU/t:"+aEUt);
- Logger.WARNING("Something was null, returning false");
- return false;
- }
-
- }
- catch (final NullPointerException e) {
- e.getStackTrace();
- }
- try {
- // RECIPEHANDLER_CokeOven.debug4(aInput1, aInput2, aFluidInput,
- // aFluidOutput, aOutput, aDuration, aEUt);
- if (aFluidInput == null && aInput2 != null) {
- Recipe_GT.Gregtech_Recipe_Map.sCokeOvenRecipes.addRecipe(true, new ItemStack[] { aInput1, aInput2 },
- new ItemStack[] { aOutput }, null, null, null, new FluidStack[] { aFluidOutput }, aDuration,
- aEUt, 0);
- }
- else if (aFluidInput == null && aInput2 == null) {
- Recipe_GT.Gregtech_Recipe_Map.sCokeOvenRecipes.addRecipe(true, new ItemStack[] { aInput1 },
- new ItemStack[] { aOutput }, null, null, null, new FluidStack[] { aFluidOutput }, aDuration,
- aEUt, 0);
- }
- else {
- Recipe_GT.Gregtech_Recipe_Map.sCokeOvenRecipes.addRecipe(true, new ItemStack[] { aInput1, aInput2 },
- new ItemStack[] { aOutput }, null, null, new FluidStack[] { aFluidInput },
- new FluidStack[] { aFluidOutput }, aDuration, aEUt, 0);
- }
- // RECIPEHANDLER_CokeOven.debug5(aInput1, aInput2, aFluidInput,
- // aFluidOutput, aOutput, aDuration, aEUt);
-
- return true;
-
- }
- catch (final NullPointerException e) {
- Logger.WARNING("Something was null, returning false");
- return false;
- }
- }
- catch (final Throwable e) {
- // Logger.WARNING("aInput1:"+aInput1.toString()+"
- // aInput2:"+aInput2.toString()+"
- // aFluidInput:"+aFluidInput.toString()+"
- // aFluidOutput:"+aFluidOutput.toString()+"
- // aOutput:"+aOutput.toString()+" aDuration:"+aDuration+"
- // aEU/t:"+aEUt);
- Logger.WARNING("Failed.");
- e.getStackTrace();
- return false;
- }
- }
-
- @Override
- public boolean addMatterFabricatorRecipe(final FluidStack aFluidInput, final FluidStack aFluidOutput,
- final int aDuration, final int aEUt) {
- try {
- try {
- // RECIPEHANDLER_MatterFabricator.debug1();
- if (aFluidOutput == null) {
- // Utils.LOG_WARNING("aFluidInput:"+aFluidInput.toString()+"
- // aFluidOutput:"+aFluidOutput.toString()+"
- // aDuration:"+aDuration+" aEU/t:"+aEUt);
- Logger.WARNING("Something was null, returning false");
- return false;
- }
-
- }
- catch (final NullPointerException e) {
- e.getStackTrace();
- }
- try {
-
- // RECIPEHANDLER_MatterFabricator.debug4(aFluidInput,
- // aFluidOutput, aDuration, aEUt);
- if (aFluidInput == null) {
- // Recipe_GT.Gregtech_Recipe_Map.sMatterFabRecipes.addRecipe(true,
- // null, new FluidStack[]{aFluidOutput}, aDuration, aEUt,
- // 0);
- Recipe_GT.Gregtech_Recipe_Map.sMatterFab2Recipes.addRecipe(true, null, null, null, null,
- new FluidStack[] { aFluidOutput }, aDuration, aEUt, 0);
- }
- else {
- // Recipe_GT.Gregtech_Recipe_Map.sMatterFabRecipes.addRecipe(true,
- // new FluidStack[]{aFluidInput}, new
- // FluidStack[]{aFluidOutput}, aDuration, aEUt, 0);
- Recipe_GT.Gregtech_Recipe_Map.sMatterFab2Recipes.addRecipe(true, null, null, null,
- new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput }, aDuration, aEUt, 0);
- }
- RECIPEHANDLER_MatterFabricator.debug5(aFluidInput, aFluidOutput, aDuration, aEUt);
-
- return true;
-
- }
- catch (final NullPointerException e) {
- return false;
- }
- }
- catch (final Throwable e) {
- // Utils.LOG_WARNING("aFluidInput:"+aFluidInput.toString()+"
- // aFluidOutput:"+aFluidOutput.toString()+" aDuration:"+aDuration+"
- // aEU/t:"+aEUt);
- Logger.WARNING("Failed.");
- e.getStackTrace();
- return false;
- }
- }
-
- @Override
- public boolean addMatterFabricatorRecipe(final ItemStack aInputStack, final FluidStack aFluidInput,
- final FluidStack aFluidOutput, final int aDuration, final int aEUt) {
- try {
- try {
- if ((aFluidOutput == null) || (aInputStack == null)) {
- return false;
- }
- }
- catch (final NullPointerException e) {
- }
- try {
- if (aFluidInput == null) {
- Recipe_GT.Gregtech_Recipe_Map.sMatterFab2Recipes.addRecipe(true, new ItemStack[] { aInputStack },
- null, null, null, new FluidStack[] { aFluidOutput }, aDuration, aEUt, 0);
- }
- else {
- Recipe_GT.Gregtech_Recipe_Map.sMatterFab2Recipes.addRecipe(true, new ItemStack[] { aInputStack },
- null, null, new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput }, aDuration,
- aEUt, 0);
- }
- RECIPEHANDLER_MatterFabricator.debug5(aFluidInput, aFluidOutput, aDuration, aEUt);
- return true;
- }
- catch (final NullPointerException e) {
- return false;
- }
- }
- catch (final Throwable e) {
- return false;
- }
- }
-
- @Override
- public boolean addFuel(final ItemStack aInput1, final ItemStack aOutput1, final int aEU, final int aType) {
- if (aInput1 == null) {
- Logger.WARNING("Fuel Input is Invalid.");
- return false;
- }
- // new GregtechRecipe(aInput1, aOutput1,
- // GregTech_API.sRecipeFile.get("fuel_" + aType, aInput1, aEU), aType);
- return true;
- }
-
- /*
- * @Override public boolean addDehydratorRecipe(ItemStack aItemA, ItemStack
- * aItemB, FluidStack aFluid, ItemStack[] aOutputItems, FluidStack
- * aOutputFluid, int aDuration, int aEUt) { if ((aItemA == null) || (aItemB
- * == null) || (aOutputItems == null)) { return false; } for (ItemStack
- * tStack : aOutputItems) { if (tStack != null) { if ((aDuration =
- * GregTech_API.sRecipeFile.get("dehydrator", aItemA, aDuration)) <= 0) {
- * return false; }
- * Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes.addRecipe(true,
- * new ItemStack[]{aItemA, aItemB}, aOutputItems, null, null, null,
- * aDuration, aEUt, 0); RECIPEHANDLER_Dehydrator.debug5(aItemA, aItemB,
- * aFluid, aOutputFluid, aOutputItems, aDuration, aEUt); return true; } }
- * return false; }
- * @Override public boolean addDehydratorRecipe(ItemStack aItemA, ItemStack
- * aItemB, ItemStack[] aOutputItems, int aDuration, int aEUt) { if ((aItemA
- * == null) || (aItemB == null) || (aOutputItems == null)) { return false; }
- * if ((aDuration = GregTech_API.sRecipeFile.get("dehydrator", aItemA,
- * aDuration)) <= 0) { return false; }
- * Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes.addRecipe(true,
- * new ItemStack[]{aItemA, aItemB}, aOutputItems, null, null, null,
- * aDuration, aEUt, 0); RECIPEHANDLER_Dehydrator.debug5(aItemA, aItemB,
- * null, null, aOutputItems, aDuration, aEUt); return true; }
- * @Override public boolean addDehydratorRecipe(FluidStack aFluid,
- * FluidStack aOutputFluid, ItemStack[] aOutputItems, int aDuration, int
- * aEUt){ if ((aFluid == null) || (aOutputFluid == null || aOutputItems ==
- * null)) { return false; } if ((aDuration =
- * GregTech_API.sRecipeFile.get("dehydrator", aFluid.getUnlocalizedName(),
- * aDuration)) <= 0) { return false; }
- * Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes.addRecipe(true,
- * null, aOutputItems, null, new FluidStack[]{aFluid}, new
- * FluidStack[]{aOutputFluid}, aDuration, aEUt, 0);
- * RECIPEHANDLER_Dehydrator.debug5(null, null, aFluid, aOutputFluid,
- * aOutputItems, aDuration, aEUt); return true; }
- */
-
- @Override
- public boolean addDehydratorRecipe(final ItemStack aInput, final FluidStack aFluid, final ItemStack[] aOutput,
- int aDuration, final int aEUt) {
- Logger.WARNING("Trying to add a Dehydrator recipe.");
- try {
- if ((aInput == null) || (aFluid == null) || (aOutput == null)) {
- return false;
- }
- if ((aDuration = GregTech_API.sRecipeFile.get("dehydrator", aInput, aDuration)) <= 0) {
- return false;
- }
- Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes.addRecipe(true, new ItemStack[] { aInput },
- aOutput, null, new FluidStack[] { aFluid }, null, aDuration, aEUt, 0);
- // RECIPEHANDLER_Dehydrator.debug5(aInput, null, aFluid, null,
- // aOutput, aDuration, aEUt);
- return true;
- }
- catch (final NullPointerException e) {
- Logger.WARNING("FAILED TO LOAD RECIPES - NULL POINTER SOMEWHERE");
- return false;
- }
- }
-
- @Override
- public boolean addDehydratorRecipe(final ItemStack[] aInput, final FluidStack aFluidInput,
- final FluidStack aFluidOutput, final ItemStack[] aOutputItems, final int[] aChances, int aDuration,
- final int aEUt) throws IndexOutOfBoundsException {
- Logger.WARNING("Trying to add a Dehydrator recipe.");
- try {
- if (aInput[0] != null) {
- Logger.WARNING("Recipe requires input: " + aInput[0].getDisplayName() + " x" + aInput[0].stackSize);
- }
- if (aInput.length > 1) {
- if (aInput[1] != null) {
- Logger.WARNING("Recipe requires input: " + aInput[1].getDisplayName() + " x" + aInput[1].stackSize);
- }
- }
- if (aFluidInput != null) {
- Logger.WARNING("Recipe requires input: " + aFluidInput.getFluid().getName() + " " + aFluidInput.amount
- + "mbst");
- }
- if (((aInput[0] == null) && (aFluidInput == null)) || ((aOutputItems == null) && (aFluidOutput == null))) {
- return false;
- }
- if ((aOutputItems != null)
- && ((aDuration = GregTech_API.sRecipeFile.get("dehydrator", aOutputItems[0], aDuration)) <= 0)) {
- return false;
- }
- if (aOutputItems != null) {
- Logger.WARNING("Recipe will output: " + ItemUtils.getArrayStackNames(aOutputItems));
- }
- if ((aFluidOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("dehydrator",
- aFluidOutput.getFluid().getName(), aDuration)) <= 0)) {
- return false;
- }
- if (aFluidOutput != null) {
- Logger.WARNING("Recipe will output: " + aFluidOutput.getFluid().getName());
- }
-
- if (aInput.length == 1) {
- Logger.WARNING("Dehydrator recipe only has a single input item.");
- Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes.addRecipe(true, aInput, aOutputItems, null,
- aChances, new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput }, aDuration, aEUt,
- 0);
-
- }
- else {
- Logger.WARNING("Dehydrator recipe has two input items.");
- Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes.addRecipe(true, aInput, aOutputItems, null,
- aChances, new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput }, aDuration, aEUt,
- 0);
-
- }
-
- return true;
- }
- catch (final NullPointerException e) {
- Logger.WARNING("FAILED TO LOAD RECIPES - NULL POINTER SOMEWHERE");
- return false;
- }
- }
-
- @Override
- 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);
- }
-
- @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,
- 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, 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, int[] aChance,
- int aDuration, int aEUt, int aSpecialValue) {
- if ((aInput == null) || (aOutput == null)) {
- Logger.WARNING("Fail - Input or Output was null.");
- return false;
- }
-
- if (aOutput.isFluidEqual(Materials.PhasedGold.getMolten(1))) {
- aOutput = Materials.VibrantAlloy.getMolten(aOutput.amount);
- }
- if (aOutput.isFluidEqual(Materials.PhasedIron.getMolten(1))) {
- aOutput = Materials.PulsatingIron.getMolten(aOutput.amount);
- }
- if ((aDuration = GregTech_API.sRecipeFile.get("blastsmelter", aOutput.getFluid().getName(), aDuration)) <= 0) {
- Logger.WARNING("Recipe did not register.");
- return false;
- }
-
- for (int das = 0; das < aInput.length; das++) {
- if (aInput[das] != null) {
- Logger.WARNING("tMaterial[" + das + "]: " + aInput[das].getDisplayName() + ", Amount: "
- + aInput[das].stackSize);
- }
- }
-
- ArrayUtils.removeNulls(aInput);
- if (aInput.length <= 1) {
- return false;
- }
-
-
-
- Recipe_GT.Gregtech_Recipe_Map.sAlloyBlastSmelterRecipes.addRecipe(true, aInput, aOutputStack, null,
- aChance, new FluidStack[] { aInputFluid }, new FluidStack[] { aOutput }, aDuration, aEUt,
- aSpecialValue);
- return true;
- }
-
- @Override
- public boolean addLFTRRecipe(final ItemStack aInput1, final FluidStack aInput2, final ItemStack aOutput1,
- final FluidStack aOutput2, final int aDuration, final int aEUt) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean addLFTRRecipe(final ItemStack aInput1, final ItemStack aInput2, final ItemStack aOutput1,
- final int aDuration, final int aEUt) {
- return false;
- }
-
- @Override
- public boolean addLFTRRecipe(final FluidStack aInput1, final FluidStack aInput2, final FluidStack aOutput1,
- final int aDuration, final int aEUt) {
- if ((aInput1 == null) || (aInput2 == null) || (aOutput1 == null) || (aDuration < 1) || (aEUt < 1)) {
- return false;
- }
- Recipe_GT.Gregtech_Recipe_Map.sLiquidFluorineThoriumReactorRecipes.addRecipe(null,
- new FluidStack[] { aInput1, aInput2 }, new FluidStack[] { aOutput1 }, aDuration, aEUt, 16000);
- return true;
- }
-
- @Override
- public boolean addFissionFuel(final FluidStack aInput1, final FluidStack aInput2, final FluidStack aInput3,
- final FluidStack aInput4, final FluidStack aInput5, final FluidStack aInput6, final FluidStack aInput7,
- final FluidStack aInput8, final FluidStack aInput9, final FluidStack aOutput1, final FluidStack aOutput2,
- final int aDuration, final int aEUt) {
-
- if ((aInput1 == null) || (aInput2 == null) || (aOutput1 == null) || (aDuration < 1) || (aEUt < 1)) {
- return false;
- }
- final FluidStack inputs[] = { aInput1, aInput2, aInput3, aInput4, aInput5, aInput6, aInput7, aInput8, aInput9 };
- final FluidStack outputs[] = { aOutput1, aOutput2 };
- // Recipe_GT.Gregtech_Recipe_Map.sFissionFuelProcessing.addRecipe(null,
- // inputs, outputs, aDuration, aEUt, 0);
- CustomRecipeMap.sFissionFuelProcessing.addRecipe(null, inputs, outputs, aDuration, aEUt, 0);
- return true;
- }
-
- @Override
- public boolean addCyclotronRecipe(ItemStack aInputs, FluidStack aFluidInput, ItemStack[] aOutputs,
- FluidStack aFluidOutput, int[] aChances, int aDuration, int aEUt, int aSpecialValue) {
- return addCyclotronRecipe(new ItemStack[] {aInputs}, aFluidInput, aOutputs, aFluidOutput, aChances, aDuration, aEUt, aSpecialValue);
- }
-
- @Override
- public boolean addCyclotronRecipe(ItemStack[] aInputs, FluidStack aFluidInput, ItemStack[] aOutput,
- FluidStack aFluidOutput, int[] aChances, int aDuration, int aEUt, int aSpecialValue) {
- if (aOutput == null || aOutput.length < 1 || !ItemUtils.checkForInvalidItems(aOutput)) {
- return false;
- }
- if (Recipe_GT.Gregtech_Recipe_Map.sCyclotronRecipes.addRecipe(true, aInputs, aOutput,
- null, aChances, new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput },
- Math.max(1, aDuration), Math.max(1, aEUt), aSpecialValue) != null) {
- return true;
- }
-
- return false;
- }
-
- @Override
- public boolean addMixerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aInput3, ItemStack aInput4,
- FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3,
- ItemStack aOutput4, int aDuration, int aEUt) {
- if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput1 == null) && (aFluidOutput == null))) {
- return false;
- }
- if ((aOutput1 != null)
- && ((aDuration = GregTech_API.sRecipeFile.get("advancedmixer", aOutput1, aDuration)) <= 0)) {
- return false;
- }
- if ((aFluidOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("advancedmixer",
- aFluidOutput.getFluid().getName(), aDuration)) <= 0)) {
- return false;
- }
- Recipe_GT.Gregtech_Recipe_Map.sAdvancedMixerRecipes.addRecipe(true,
- new ItemStack[] { aInput1, aInput2, aInput3, aInput4 },
- new ItemStack[] { aOutput1, aOutput2, aOutput3, aOutput4 }, null, null,
- new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput }, aDuration, aEUt, 0);
- return true;
- }
-
- // Machine Component Assembler
- @Override
- public boolean addComponentMakerRecipe(ItemStack[] aInputs, FluidStack aFluidInput, ItemStack aOutput1,
- int aDuration, int aEUt) {
- if (areItemsAndFluidsBothNull(aInputs, new FluidStack[] { aFluidInput })) {
- return false;
- }
- if (aOutput1 == null) {
- return false;
- }
- if ((aDuration = GregTech_API.sRecipeFile.get("machinecomponents", aOutput1, aDuration)) <= 0) {
- return false;
- }
- if (GTNH) {
- return false;
- }
- Recipe_GT.Gregtech_Recipe_Map.sComponentAssemblerRecipes.addRecipe(true, aInputs, new ItemStack[] { aOutput1 },
- null, new FluidStack[] { aFluidInput }, null, aDuration, aEUt, 0);
- return true;
- }
-
-
- public boolean addMultiblockCentrifugeRecipe(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 Centrifuge 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;
- }
- Recipe_GT.Gregtech_Recipe_Map.sMultiblockCentrifugeRecipes.addRecipe(true, aInputs, aOutputs, null, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUtick, aSpecial);
- return true;
- }
-
- public boolean addMultiblockElectrolyzerRecipe(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 Electrolyzer 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;
- }
- Recipe_GT.Gregtech_Recipe_Map.sMultiblockElectrolyzerRecipes.addRecipe(true, aInputs, aOutputs, null, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUtick, aSpecial);
- return true;
- }
-
-
- public boolean addAdvancedFreezerRecipe(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 Adv. Vac Freezer 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;
- }
- if (Recipe_GT.Gregtech_Recipe_Map.sAdvFreezerRecipes.addRecipe(true, aInputs, aOutputs, null, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUtick, aSpecial) != null) {
- return true;
- }
- return false;
-
- }
-
- public boolean addAssemblerRecipeWithOreDict(Object aInput1, int aAmount1, Object aInput2, int aAmount2, ItemStack aOutput, int a1, int a2) {
- if (aInput1 instanceof String || aInput2 instanceof String) {
- int mCompleted = 0;
- if (aInput1 instanceof String && aInput2 instanceof String) {
- List<ItemStack> x = OreDictionary.getOres((String) aInput1, false);
- List<ItemStack> x1 = OreDictionary.getOres((String) aInput2, false);
- if (x != null && x.size() > 0 && x1 != null && x1.size() > 0) {
- for (ItemStack r : x) {
- r.stackSize = aAmount1;
- for (ItemStack r1 : x1) {
- r1.stackSize = aAmount2;
- if (GT_Values.RA.addAssemblerRecipe(r, r1, aOutput, a1, a2)) {
- mCompleted++;
- }
- }
- }
- }
- }
- else if (aInput1 instanceof String) {
- List<ItemStack> x = OreDictionary.getOres((String) aInput1, false);
- if (x != null && x.size() > 0) {
- for (ItemStack r : x) {
- r.stackSize = aAmount1;
- if (GT_Values.RA.addAssemblerRecipe(r, (ItemStack) aInput2, aOutput, a1, a2)) {
- mCompleted++;
- }
- }
- }
-
- }
- else {
- List<ItemStack> x = OreDictionary.getOres((String) aInput2, false);
- if (x != null && x.size() > 0) {
- for (ItemStack r : x) {
- r.stackSize = aAmount1;
- if (GT_Values.RA.addAssemblerRecipe((ItemStack) aInput1, r, aOutput, a1, a2)) {
- mCompleted++;
- }
- }
- }
- }
- return mCompleted > 0;
- }
- else {
- return GT_Values.RA.addAssemblerRecipe((ItemStack) aInput1, (ItemStack) aInput2, aOutput, a1, a2);
- }
- }
-
- public boolean addAssemblerRecipeWithOreDict(Object aInput1, int aAmount1, Object aInput2, int aAmount2, FluidStack aInputFluid, ItemStack aOutput, int a1, int a2) {
- if (aInput1 instanceof String || aInput2 instanceof String) {
- int mCompleted = 0;
- if (aInput1 instanceof String && aInput2 instanceof String) {
- List<ItemStack> x = OreDictionary.getOres((String) aInput1, false);
- List<ItemStack> x1 = OreDictionary.getOres((String) aInput2, false);
- if (x != null && x.size() > 0 && x1 != null && x1.size() > 0) {
- for (ItemStack r : x) {
- r.stackSize = aAmount1;
- for (ItemStack r1 : x1) {
- r1.stackSize = aAmount2;
- if (GT_Values.RA.addAssemblerRecipe(r, r1, aInputFluid, aOutput, a1, a2)) {
- mCompleted++;
- }
- }
- }
- }
- }
- else if (aInput1 instanceof String) {
- List<ItemStack> x = OreDictionary.getOres((String) aInput1, false);
- if (x != null && x.size() > 0) {
- for (ItemStack r : x) {
- r.stackSize = aAmount1;
- if (GT_Values.RA.addAssemblerRecipe(r, (ItemStack) aInput2, aInputFluid, aOutput, a1, a2)) {
- mCompleted++;
- }
- }
- }
-
- }
- else {
- List<ItemStack> x = OreDictionary.getOres((String) aInput2, false);
- if (x != null && x.size() > 0) {
- for (ItemStack r : x) {
- r.stackSize = aAmount1;
- if (GT_Values.RA.addAssemblerRecipe((ItemStack) aInput1, r, aInputFluid, aOutput, a1, a2)) {
- mCompleted++;
- }
- }
- }
- }
- return mCompleted > 0;
- }
- else {
- return GT_Values.RA.addAssemblerRecipe((ItemStack) aInput1, (ItemStack) aInput2, aInputFluid, aOutput, a1, a2);
- }
- }
-
- /*
- * Reflection Based Recipe Additions with Fallbacks
- */
-
- private static final Method mSixSlotAssembly;
- private static final Method mAssemblyLine;
- private static final Method mScannerTT;
- private static final Method[] mChemicalRecipe = new Method[3];
- private static final Method mLargeChemReactor;
-
- static {
-
- //Get GT's RA class;
- Class<? extends IGT_RecipeAdder> clazz = GT_Values.RA.getClass();
-
- mChemicalRecipe[0] = ReflectionUtils.getMethod(clazz, "addChemicalRecipe", ItemStack.class, ItemStack.class, FluidStack.class, FluidStack.class, ItemStack.class, int.class);
-
-
- if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK || CORE.GTNH) {
- //6 Slot Assembler
- mSixSlotAssembly = ReflectionUtils.getMethod(clazz, "addAssemblerRecipe", ItemStack[].class, FluidStack.class, ItemStack.class, int.class, int.class);
- //Assembly Line
- mAssemblyLine = ReflectionUtils.getMethod(clazz, "addAssemblylineRecipe", ItemStack.class, int.class, ItemStack[].class, FluidStack[].class, ItemStack.class, int.class, int.class);
-
-
- Method T = null;
- if (LoadedMods.TecTech) {
- Class TTRecipeAdder = ReflectionUtils.getClass("com.github.technus.tectech.recipe.TT_recipeAdder");
- if (TTRecipeAdder != null) {
- Method ttTest = ReflectionUtils.getMethod(TTRecipeAdder, "addResearchableAssemblylineRecipe",
- ItemStack.class, int.class, int.class, int.class, int.class, Object[].class,
- FluidStack[].class, ItemStack.class, int.class, int.class);
- if (ttTest != null) {
- T = ttTest;
- }
- }
- }
- else {
- T = null;
- }
- mScannerTT = T;
-
- mChemicalRecipe[1] = ReflectionUtils.getMethod(clazz, "addChemicalRecipe", ItemStack.class, ItemStack.class, FluidStack.class, FluidStack.class, ItemStack.class, int.class, int.class);
- mChemicalRecipe[2] = ReflectionUtils.getMethod(clazz, "addChemicalRecipe", ItemStack.class, ItemStack.class, FluidStack.class, FluidStack.class, ItemStack.class, ItemStack.class, int.class);
-
- mLargeChemReactor = ReflectionUtils.getMethod(clazz, "addMultiblockChemicalRecipe", ItemStack[].class, FluidStack[].class, FluidStack[].class, ItemStack[].class, int.class, int.class);
-
-
-
- }
- else {
- mSixSlotAssembly = null;
- mAssemblyLine = null;
- mLargeChemReactor = null;
- mScannerTT = null;
- }
-
-
- }
-
-
-
-
-
-
- public boolean addSixSlotAssemblingRecipe(ItemStack[] aInputs, FluidStack aInputFluid, ItemStack aOutput1, int aDuration, int aEUt) {
- if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK || CORE.GTNH) {
- if (mSixSlotAssembly != null) {
- try {
- return (boolean) mSixSlotAssembly.invoke(GT_Values.RA, aInputs, aInputFluid, aOutput1, aDuration, aEUt);
- } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
- if (CORE.GTNH) {
- return false;
- }
- }
- }
- }
- return CORE.RA.addComponentMakerRecipe(aInputs, aInputFluid, aOutput1, aDuration, aEUt);
- }
-
- public boolean addAssemblylineRecipe(ItemStack aResearchItem, int aResearchTime, ItemStack[] aInputs, FluidStack[] aFluidInputs_OLD, ItemStack aOutput, int aDuration, int aEUt) {
-
- FluidStack[] aFluidInputs = new FluidStack[4];
- AutoMap<FluidStack> aNewFluidMap = new AutoMap<FluidStack>();
- if (aFluidInputs_OLD.length > 4) {
- for (FluidStack s : aFluidInputs_OLD) {
- aNewFluidMap.put(s);
- }
- for (int i = 0; i < 4; i++) {
- aFluidInputs[i] = aNewFluidMap.get(i);
- }
- }
- else {
- aFluidInputs = aFluidInputs_OLD;
- }
-
-
- if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
- if (aInputs.length < 6 && aFluidInputs.length < 2) {
- ItemStack[] aInputStack = new ItemStack[] {aResearchItem, aInputs[0], aInputs[1], aInputs[2], aInputs[3], aInputs[4]};
- return addSixSlotAssemblingRecipe(aInputStack, aFluidInputs[0], aOutput, aDuration, aEUt);
- }
- return false;
- }
- else {
- if ((aResearchItem==null)||(aResearchTime<=0)||(aInputs == null) || (aOutput == null) || aInputs.length>15 || aInputs.length<4) {
- return false;
- }
- else {
- if (mAssemblyLine != null) {
- try {
- if (!tryAddTecTechScannerRecipe(aResearchItem, aInputs, aFluidInputs, aOutput, aDuration, aEUt)) {
- try {
- Logger.INFO("Failed to generate TecTech recipe for "+ItemUtils.getItemName(aResearchItem)+", please report this to Alkalus.");
- }
- catch (Throwable t) {
-
- }
- }
- return (boolean) mAssemblyLine.invoke(GT_Values.RA, aResearchItem, aResearchTime, aInputs,
- aFluidInputs, aOutput, aDuration, aEUt);
- } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
- if (aInputs.length < 6 && aFluidInputs.length < 2) {
- ItemStack[] aInputStack = new ItemStack[] { aResearchItem, aInputs[0], aInputs[1],
- aInputs[2], aInputs[3], aInputs[4] };
- return addSixSlotAssemblingRecipe(aInputStack, aFluidInputs[0], aOutput, aDuration,
- aEUt);
- }
- return false;
- }
- } else {
- if (aInputs.length < 6 && aFluidInputs.length < 2) {
- ItemStack[] aInputStack = new ItemStack[] { aResearchItem, aInputs[0], aInputs[1], aInputs[2],
- aInputs[3], aInputs[4] };
- return addSixSlotAssemblingRecipe(aInputStack, aFluidInputs[0], aOutput, aDuration,
- aEUt);
- }
- return false;
- }
- }
- }
- }
-
- private boolean tryAddTecTechScannerRecipe(ItemStack aResearchItem, Object[] aInputs, FluidStack[] aFluidInputs, ItemStack aOutput, int assDuration, int assEUt) {
- if (!LoadedMods.TecTech) {
- return true;
- }
- else {
-
- int compSec = (GT_Utility.getTier(assEUt)+1) * 16;
- int compMax = (GT_Utility.getTier(assEUt)+1) * 10000;
-
- if (mScannerTT != null) {
- try {
- boolean aResult = (boolean) mScannerTT.invoke(null, aResearchItem, compMax, compSec,
- (assEUt/2), 16, aInputs, aFluidInputs, aOutput, assDuration, assEUt);