aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/gregtech/api/util/GT_Recipe.java371
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java2
-rw-r--r--src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java22
3 files changed, 194 insertions, 201 deletions
diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java
index 04d26ae025..9e46839f8c 100644
--- a/src/main/java/gregtech/api/util/GT_Recipe.java
+++ b/src/main/java/gregtech/api/util/GT_Recipe.java
@@ -555,17 +555,19 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
}
/**
- * Overriding this method and getOutputPositionedStacks allows for custom NEI stack placement
- * @return A list of input stacks
+ * Use {@link GT_Recipe_Map#getInputPositionedStacks(GT_Recipe)} instead
*/
+ @SuppressWarnings("DeprecatedIsStillUsed")
+ @Deprecated
public ArrayList<PositionedStack> getInputPositionedStacks(){
return null;
}
/**
- * Overriding this method and getInputPositionedStacks allows for custom NEI stack placement
- * @return A list of output stacks
+ * Use {@link GT_Recipe_Map#getOutputPositionedStacks(GT_Recipe)} instead
*/
+ @SuppressWarnings("DeprecatedIsStillUsed")
+ @Deprecated
public ArrayList<PositionedStack> getOutputPositionedStacks(){
return null;
}
@@ -1197,6 +1199,22 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
return mUsesSpecialSlot;
}
+ /**
+ * Overriding this method and getOutputPositionedStacks allows custom NEI stack placement
+ * @return A list of input stacks
+ */
+ public ArrayList<PositionedStack> getInputPositionedStacks(GT_Recipe recipe){
+ return null;
+ }
+
+ /**
+ * Overriding this method and getInputPositionedStacks allows custom NEI stack placement
+ * @return A list of output stacks
+ */
+ public ArrayList<PositionedStack> getOutputPositionedStacks(GT_Recipe recipe){
+ return null;
+ }
+
public void addRecipe(Object o, FluidStack[] fluidInputArray, FluidStack[] fluidOutputArray) {
}
}
@@ -2096,76 +2114,69 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
aOutputs = adjustedOutputs.toArray(new ItemStack[0]);
aFluidOutputs = adjustedFluidOutputs.toArray(new FluidStack[0]);
- return addRecipe(new GT_Recipe_LargeChemicalReactor(aOptimize, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue));
+ return super.addRecipe(aOptimize, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue);
}
- private static class GT_Recipe_LargeChemicalReactor extends GT_Recipe {
-
- protected GT_Recipe_LargeChemicalReactor(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
- super(aOptimize, aInputs, aOutputs, aSpecialItems, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue);
- }
-
- @Override
- public ArrayList<PositionedStack> getInputPositionedStacks() {
- int itemLimit = Math.min(mInputs.length, TOTAL_INPUT_COUNT);
- int fluidLimit = Math.min(mFluidInputs.length, TOTAL_INPUT_COUNT - itemLimit);
- int inputlimit = itemLimit + fluidLimit;
- int j = 0;
-
- ArrayList<PositionedStack> inputStacks = new ArrayList<>(inputlimit);
+ @Override
+ public ArrayList<PositionedStack> getInputPositionedStacks(GT_Recipe recipe) {
+ int itemLimit = Math.min(recipe.mInputs.length, TOTAL_INPUT_COUNT);
+ int fluidLimit = Math.min(recipe.mFluidInputs.length, TOTAL_INPUT_COUNT - itemLimit);
+ int inputlimit = itemLimit + fluidLimit;
+ int j = 0;
+
+ ArrayList<PositionedStack> inputStacks = new ArrayList<>(inputlimit);
+
+ for (int i = 0; i < itemLimit; i++, j++) {
+ if (recipe.mInputs == null || (recipe.mInputs[i] == null && (i == 0 && itemLimit == 1))) {
+ if (recipe.mOutputs != null && recipe.mOutputs.length > 0 && recipe.mOutputs[0] != null)
+ GT_Log.out.println("recipe " + recipe + " Output 0:" + recipe.mOutputs[0].getDisplayName() + " has errored!");
+ else
+ GT_Log.out.println("recipe " + recipe + " has errored!");
- for (int i = 0; i < itemLimit; i++, j++) {
- if (this.mInputs == null || (this.mInputs[i] == null && (i == 0 && itemLimit == 1))) {
- if (this.mOutputs != null && this.mOutputs.length > 0 && this.mOutputs[0] != null)
- GT_Log.out.println("recipe " + this + " Output 0:" + this.mOutputs[0].getDisplayName() + " has errored!");
- else
- GT_Log.out.println("recipe " + this + " has errored!");
+ new Exception("Recipe Fixme").printStackTrace(GT_Log.out);
+ }
- new Exception("Recipe Fixme").printStackTrace(GT_Log.out);
- }
+ if ((recipe.mInputs != null && recipe.mInputs[i] != null) || !GT_Values.allow_broken_recipemap)
+ inputStacks.add(new FixedPositionedStack(recipe.mInputs[i].copy(), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
+ else
+ inputStacks.add(new FixedPositionedStack(new ItemStack(Items.command_block_minecart), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
+ }
- if ((this.mInputs != null && this.mInputs[i] != null) || !GT_Values.allow_broken_recipemap)
- inputStacks.add(new FixedPositionedStack(this.mInputs[i].copy(), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
+ for (int i = 0; i < fluidLimit; i++, j++) {
+ if (recipe.mFluidInputs == null || recipe.mFluidInputs[i] == null) {
+ if (recipe.mOutputs != null && recipe.mOutputs.length > 0 && recipe.mOutputs[0] != null)
+ GT_Log.out.println("recipe " + recipe + " Output 0:" + recipe.mOutputs[0].getDisplayName() + " has errored!");
else
- inputStacks.add(new FixedPositionedStack(new ItemStack(Items.command_block_minecart), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
- }
+ GT_Log.out.println("recipe " + recipe + " has errored!");
- for (int i = 0; i < fluidLimit; i++, j++) {
- if (this.mFluidInputs == null || this.mFluidInputs[i] == null) {
- if (this.mOutputs != null && this.mOutputs.length > 0 && this.mOutputs[0] != null)
- GT_Log.out.println("recipe " + this + " Output 0:" + this.mOutputs[0].getDisplayName() + " has errored!");
- else
- GT_Log.out.println("recipe " + this + " has errored!");
-
- new Exception("Recipe Fixme").printStackTrace(GT_Log.out);
- }
-
- if ((this.mFluidInputs != null && this.mFluidInputs[i] != null) || !GT_Values.allow_broken_recipemap)
- inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidInputs[i], true), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
+ new Exception("Recipe Fixme").printStackTrace(GT_Log.out);
}
- return inputStacks;
- }
+ if ((recipe.mFluidInputs != null && recipe.mFluidInputs[i] != null) || !GT_Values.allow_broken_recipemap)
+ inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(recipe.mFluidInputs[i], true), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
+ }
- @Override
- public ArrayList<PositionedStack> getOutputPositionedStacks() {
- int itemLimit = Math.min(mOutputs.length, OUTPUT_COUNT);
- int fluidLimit = Math.min(mFluidOutputs.length, FLUID_OUTPUT_COUNT);
- ArrayList<PositionedStack> outputStacks = new ArrayList<>(itemLimit + fluidLimit);
+ return inputStacks;
+ }
- int j = 0;
+ @Override
+ public ArrayList<PositionedStack> getOutputPositionedStacks(GT_Recipe recipe) {
+ int itemLimit = Math.min(recipe.mOutputs.length, OUTPUT_COUNT);
+ int fluidLimit = Math.min(recipe.mFluidOutputs.length, FLUID_OUTPUT_COUNT);
+ ArrayList<PositionedStack> outputStacks = new ArrayList<>(itemLimit + fluidLimit);
- for (int i = 0; i < itemLimit; i++, j++) {
- outputStacks.add(new FixedPositionedStack(this.mOutputs[i].copy(), 102 + j % 3 * 18, (j >= 3 ? 5 : 23)));
- }
+ int j = 0;
- for (int i = 0; i < fluidLimit; i++, j++) {
- outputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidOutputs[i], true), 102 + j % 3 * 18, (j >= 3 ? 5 : 23)));
- }
+ for (int i = 0; i < itemLimit; i++, j++) {
+ outputStacks.add(new FixedPositionedStack(recipe.mOutputs[i].copy(), 102 + j % 3 * 18, (j >= 3 ? 5 : 23)));
+ }
- return outputStacks;
+ for (int i = 0; i < fluidLimit; i++, j++) {
+ outputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(recipe.mFluidOutputs[i], true), 102 + j % 3 * 18, (j >= 3 ? 5 : 23)));
}
+
+ return outputStacks;
}
}
public static class GT_Recipe_Map_DistillationTower extends GT_Recipe_Map {
@@ -2177,78 +2188,61 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
super(new HashSet<>(110), "gt.recipe.distillationtower", "Distillation Tower", null, RES_PATH_GUI + "basicmachines/DistillationTower", 2, 4, 0, 0, 1, E, 1, E, true, true);
}
- @Override
- public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
- return addRecipe(new GT_Recipe_DistillationTower(aOptimize, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue));
- }
+ @Override
+ public ArrayList<PositionedStack> getInputPositionedStacks(GT_Recipe recipe) {
+ int itemLimit = Math.min(recipe.mInputs.length, TOTAL_INPUT_COUNT);
+ int fluidLimit = Math.min(recipe.mFluidInputs.length, TOTAL_INPUT_COUNT - itemLimit);
+ int inputlimit = itemLimit + fluidLimit;
+ int j = 0;
+
+ ArrayList<PositionedStack> inputStacks = new ArrayList<>(inputlimit);
+
+ for (int i = 0; i < itemLimit; i++, j++) {
+ if (recipe.mInputs == null || (recipe.mInputs[i] == null && (i == 0 && itemLimit == 1))) {
+ if (recipe.mOutputs != null && recipe.mOutputs.length > 0 && recipe.mOutputs[0] != null)
+ GT_Log.out.println("recipe " + recipe + " Output 0:" + recipe.mOutputs[0].getDisplayName() + " has errored!");
+ else
+ GT_Log.out.println("recipe " + recipe + " has errored!");
+ new Exception("Recipe Fixme").printStackTrace(GT_Log.out);
+ }
- @Override
- public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
- return addRecipe(aOptimize, aInputs, aOutputs, aSpecial, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue);
- }
-
- private static class GT_Recipe_DistillationTower extends GT_Recipe{
- protected GT_Recipe_DistillationTower(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
- super(aOptimize, aInputs, aOutputs, aSpecialItems, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue);
- }
-
- @Override
- public ArrayList<PositionedStack> getInputPositionedStacks() {
- int itemLimit = Math.min(mInputs.length, TOTAL_INPUT_COUNT);
- int fluidLimit = Math.min(mFluidInputs.length, TOTAL_INPUT_COUNT - itemLimit);
- int inputlimit = itemLimit + fluidLimit;
- int j = 0;
-
- ArrayList<PositionedStack> inputStacks = new ArrayList<>(inputlimit);
-
- for (int i = 0; i < itemLimit; i++, j++) {
- if (this.mInputs == null || (this.mInputs[i] == null && (i == 0 && itemLimit == 1))) {
- if (this.mOutputs != null && this.mOutputs.length > 0 && this.mOutputs[0] != null)
- GT_Log.out.println("recipe " + this + " Output 0:" + this.mOutputs[0].getDisplayName() + " has errored!");
- else
- GT_Log.out.println("recipe " + this + " has errored!");
- new Exception("Recipe Fixme").printStackTrace(GT_Log.out);
- }
-
- if ((this.mInputs != null && this.mInputs[i] != null) || !GT_Values.allow_broken_recipemap)
- inputStacks.add(new FixedPositionedStack(this.mInputs[i].copy(), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
- else
- inputStacks.add(new FixedPositionedStack(new ItemStack(Items.command_block_minecart), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
- }
-
- for (int i = 0; i < fluidLimit; i++, j++) {
- if (this.mFluidInputs == null || this.mFluidInputs[i] == null) {
- if (this.mOutputs != null && this.mOutputs.length > 0 && this.mOutputs[0] != null)
- GT_Log.out.println("recipe " + this + " Output 0:" + this.mOutputs[0].getDisplayName() + " has errored!");
- else
- GT_Log.out.println("recipe " + this + " has errored!");
- new Exception("Recipe Fixme").printStackTrace(GT_Log.out);
- }
-
- if ((this.mFluidInputs != null && this.mFluidInputs[i] != null) || !GT_Values.allow_broken_recipemap)
- inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidInputs[i], true), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
- }
-
- return inputStacks;
- }
- @Override
- public ArrayList<PositionedStack> getOutputPositionedStacks() {
- int fluidLimit = Math.min(mFluidOutputs.length, FLUID_OUTPUT_COUNT);
- ArrayList<PositionedStack> outputStacks = new ArrayList<>(1 + fluidLimit);
-
- if (this.mOutputs.length > 0 && this.mOutputs[0] != null) {
- outputStacks.add(new FixedPositionedStack(this.getOutput(0), 102, 52));
- }
-
- for (int i = 0; i < fluidLimit; i++) {
- int x = 102 + ((i + 1) % ROW_SIZE) * 18;
- int y = 52 - ((i + 1) / ROW_SIZE) * 18;
- outputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidOutputs[i], true), x, y));
- }
- return outputStacks;
- }
-
- }
+ if ((recipe.mInputs != null && recipe.mInputs[i] != null) || !GT_Values.allow_broken_recipemap)
+ inputStacks.add(new FixedPositionedStack(recipe.mInputs[i].copy(), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
+ else
+ inputStacks.add(new FixedPositionedStack(new ItemStack(Items.command_block_minecart), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
+ }
+
+ for (int i = 0; i < fluidLimit; i++, j++) {
+ if (recipe.mFluidInputs == null || recipe.mFluidInputs[i] == null) {
+ if (recipe.mOutputs != null && recipe.mOutputs.length > 0 && recipe.mOutputs[0] != null)
+ GT_Log.out.println("recipe " + recipe + " Output 0:" + recipe.mOutputs[0].getDisplayName() + " has errored!");
+ else
+ GT_Log.out.println("recipe " + recipe + " has errored!");
+ new Exception("Recipe Fixme").printStackTrace(GT_Log.out);
+ }
+
+ if ((recipe.mFluidInputs != null && recipe.mFluidInputs[i] != null) || !GT_Values.allow_broken_recipemap)
+ inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(recipe.mFluidInputs[i], true), 48 - j % 3 * 18, (j >= 3 ? 5 : 23)));
+ }
+
+ return inputStacks;
+ }
+ @Override
+ public ArrayList<PositionedStack> getOutputPositionedStacks(GT_Recipe recipe) {
+ int fluidLimit = Math.min(recipe.mFluidOutputs.length, FLUID_OUTPUT_COUNT);
+ ArrayList<PositionedStack> outputStacks = new ArrayList<>(1 + fluidLimit);
+
+ if (recipe.mOutputs.length > 0 && recipe.mOutputs[0] != null) {
+ outputStacks.add(new FixedPositionedStack(recipe.getOutput(0), 102, 52));
+ }
+
+ for (int i = 0; i < fluidLimit; i++) {
+ int x = 102 + ((i + 1) % ROW_SIZE) * 18;
+ int y = 52 - ((i + 1) / ROW_SIZE) * 18;
+ outputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(recipe.mFluidOutputs[i], true), x, y));
+ }
+ return outputStacks;
+ }
}
public static class GT_Recipe_Map_OilCracker extends GT_Recipe_Map {
@@ -2330,56 +2324,42 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
}
@Override
- public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
- return addRecipe(new GT_Recipe_PlasmaForge(aOptimize, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue));
- }
-
- private static class GT_Recipe_PlasmaForge extends GT_Recipe {
-
- public GT_Recipe_PlasmaForge(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
- super(aOptimize, aInputs, aOutputs, aSpecialItems, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue);
- }
-
- @Override
- public ArrayList<PositionedStack> getInputPositionedStacks() {
- ArrayList<PositionedStack> inputStacks = new ArrayList<>();
- int i = 0;
- if (mInputs != null) {
- for (int j = 0; j < mInputs.length; j ++, i ++) {
- if (mInputs[j] == NI) continue;
- inputStacks.add(new FixedPositionedStack(mInputs[j].copy(), 12 + 18 * (i % 3), 5 + 18 * (i / 3)));
- }
+ public ArrayList<PositionedStack> getInputPositionedStacks(GT_Recipe recipe) {
+ ArrayList<PositionedStack> inputStacks = new ArrayList<>();
+ int i = 0;
+ if (recipe.mInputs != null) {
+ for (int j = 0; j < recipe.mInputs.length; j ++, i ++) {
+ if (recipe.mInputs[j] == NI) continue;
+ inputStacks.add(new FixedPositionedStack(recipe.mInputs[j].copy(), 12 + 18 * (i % 3), 5 + 18 * (i / 3)));
}
- if (mFluidInputs != null) {
- for (int j = 0; j < mFluidInputs.length; j ++, i ++) {
- if (mFluidInputs[j] == NF) continue;
- inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(mFluidInputs[j], true), 12 + 18 * (i % 3), 5 + 18 * (i / 3)));
- }
+ }
+ if (recipe.mFluidInputs != null) {
+ for (int j = 0; j < recipe.mFluidInputs.length; j ++, i ++) {
+ if (recipe.mFluidInputs[j] == NF) continue;
+ inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(recipe.mFluidInputs[j], true), 12 + 18 * (i % 3), 5 + 18 * (i / 3)));
}
- return inputStacks;
}
+ return inputStacks;
+ }
- @Override
- public ArrayList<PositionedStack> getOutputPositionedStacks() {
- ArrayList<PositionedStack> outputStacks = new ArrayList<>();
- int i = 0;
- if (mOutputs != null) {
- for (int j = 0; j < mOutputs.length; j ++, i ++) {
- if (mOutputs[j] == NI) continue;
- outputStacks.add(new FixedPositionedStack(mOutputs[j].copy(), 102 + 18 * (i % 3), 5 + 18 * (i / 3)));
- }
+ @Override
+ public ArrayList<PositionedStack> getOutputPositionedStacks(GT_Recipe recipe) {
+ ArrayList<PositionedStack> outputStacks = new ArrayList<>();
+ int i = 0;
+ if (recipe.mOutputs != null) {
+ for (int j = 0; j < recipe.mOutputs.length; j ++, i ++) {
+ if (recipe.mOutputs[j] == NI) continue;
+ outputStacks.add(new FixedPositionedStack(recipe.mOutputs[j].copy(), 102 + 18 * (i % 3), 5 + 18 * (i / 3)));
}
- if (mFluidOutputs != null) {
- for (int j = 0; j < mFluidOutputs.length; j ++, i ++) {
- if (mFluidOutputs[j] == NF) continue;
- outputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(mFluidOutputs[j], true), 102 + 18 * (i % 3), 5 + 18 * (i / 3)));
- }
+ }
+ if (recipe.mFluidOutputs != null) {
+ for (int j = 0; j < recipe.mFluidOutputs.length; j ++, i ++) {
+ if (recipe.mFluidOutputs[j] == NF) continue;
+ outputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(recipe.mFluidOutputs[j], true), 102 + 18 * (i % 3), 5 + 18 * (i / 3)));
}
- return outputStacks;
}
-
+ return outputStacks;
}
-
}
public static class GT_Recipe_Map_ComplexFusion extends GT_Recipe_Map {
@@ -2390,43 +2370,34 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
@Override
public GT_Recipe addRecipe(int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
- return addRecipe(new GT_Recipe_ComplexFusion(false, null, null, null, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue), false, false, false);
+ return addRecipe(new GT_Recipe(false, null, null, null, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue), false, false, false);
}
- private static class GT_Recipe_ComplexFusion extends GT_Recipe {
-
- public GT_Recipe_ComplexFusion(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
- super(aOptimize, aInputs, aOutputs, aSpecialItems, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue);
- }
-
- @Override
- public ArrayList<PositionedStack> getInputPositionedStacks() {
- ArrayList<PositionedStack> inputStacks = new ArrayList<>();
- int i = 0;
- if (mFluidInputs != null) {
- for (int j = 0; j < mFluidInputs.length; j ++, i ++) {
- if (mFluidInputs[j] == NF) continue;
- inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(mFluidInputs[j], true), 3 + 18 * (i % 4), -1 + 18 * (i / 4)));
- }
+ @Override
+ public ArrayList<PositionedStack> getInputPositionedStacks(GT_Recipe recipe) {
+ ArrayList<PositionedStack> inputStacks = new ArrayList<>();
+ int i = 0;
+ if (recipe.mFluidInputs != null) {
+ for (int j = 0; j < recipe.mFluidInputs.length; j ++, i ++) {
+ if (recipe.mFluidInputs[j] == NF) continue;
+ inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(recipe.mFluidInputs[j], true), 3 + 18 * (i % 4), -1 + 18 * (i / 4)));
}
- return inputStacks;
}
+ return inputStacks;
+ }
- @Override
- public ArrayList<PositionedStack> getOutputPositionedStacks() {
- ArrayList<PositionedStack> outputStacks = new ArrayList<>();
- int i = 0;
- if (mFluidOutputs != null) {
- for (int j = 0; j < mFluidOutputs.length; j ++, i ++) {
- if (mFluidOutputs[j] == NF) continue;
- outputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(mFluidOutputs[j], true), 93 + 18 * (i % 4), -1 + 18 * (i / 4)));
- }
+ @Override
+ public ArrayList<PositionedStack> getOutputPositionedStacks(GT_Recipe recipe) {
+ ArrayList<PositionedStack> outputStacks = new ArrayList<>();
+ int i = 0;
+ if (recipe.mFluidOutputs != null) {
+ for (int j = 0; j < recipe.mFluidOutputs.length; j ++, i ++) {
+ if (recipe.mFluidOutputs[j] == NF) continue;
+ outputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(recipe.mFluidOutputs[j], true), 93 + 18 * (i % 4), -1 + 18 * (i / 4)));
}
- return outputStacks;
}
-
+ return outputStacks;
}
-
}
}
diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
index 2e38ee9f6c..e74037b146 100644
--- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
+++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
@@ -1418,7 +1418,7 @@ public class GT_MachineRecipeLoader implements Runnable {
//4HSiCl3 = 3SiCl4 + SiH4
GT_Values.RA.addChemicalRecipe(ItemList.Cell_Empty.get(1L), GT_Utility.getIntegratedCircuit(2), Materials.Trichlorosilane.getFluid(4000), Materials.SiliconTetrachloride.getFluid(3000), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Silane, 1), 240, 30);
//SiH4 = Si + 4H
- GT_Values.RA.addChemicalRecipe(GT_Values.NI, GT_Utility.getIntegratedCircuit(1), Materials.Silane.getGas(1000), Materials.Hydrogen.getGas(4000), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1), 300, 30);
+ GT_Values.RA.addChemicalRecipe(GT_Utility.getIntegratedCircuit(1), GT_Values.NI, Materials.Silane.getGas(1000), Materials.Hydrogen.getGas(4000), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1), 300, 30);
GT_Values.RA.addChemicalRecipeForBasicMachineOnly(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Silane, 1), GT_Utility.getIntegratedCircuit(1), GT_Values.NF, Materials.Hydrogen.getGas(4000), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1), ItemList.Cell_Empty.get(1L),300, 30);
GT_Values.RA.addChemicalRecipeForBasicMachineOnly(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Silane, 1), ItemList.Cell_Empty.get(3L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconSG, 1), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 4),300, 30);
//Ca + 2H = CaH2
diff --git a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
index ad70b27b07..8932e35710 100644
--- a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
+++ b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
@@ -771,6 +771,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler {
}
}
+ @SuppressWarnings("deprecation")
public CachedDefaultRecipe(GT_Recipe aRecipe) {
super();
this.mRecipe = aRecipe;
@@ -778,6 +779,27 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler {
List<PositionedStack> maybeOut;
try {
+ maybeIn = GT_NEI_DefaultHandler.this.mRecipeMap.getInputPositionedStacks(aRecipe);
+ } catch (NullPointerException npe) {
+ maybeIn = null;
+ GT_Log.err.println("CachedDefaultRecipe - Invalid InputPositionedStacks " + aRecipe);
+ npe.printStackTrace(GT_Log.err);
+ }
+ try {
+ maybeOut = GT_NEI_DefaultHandler.this.mRecipeMap.getOutputPositionedStacks(aRecipe);
+ } catch (NullPointerException npe) {
+ maybeOut = null;
+ GT_Log.err.println("CachedDefaultRecipe - Invalid OutputPositionedStacks " + aRecipe);
+ npe.printStackTrace(GT_Log.err);
+ }
+
+ if (maybeOut != null && maybeIn != null) {
+ mOutputs = maybeOut;
+ mInputs = maybeIn;
+ return;
+ }
+
+ try {
maybeIn = aRecipe.getInputPositionedStacks();
} catch (NullPointerException npe) {
maybeIn = null;