aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gregtech
diff options
context:
space:
mode:
authorJordan Byrne <draknyte1@hotmail.com>2018-04-17 00:59:51 +1000
committerJordan Byrne <draknyte1@hotmail.com>2018-04-17 00:59:51 +1000
commitbbc1b38b3d12da80136a71e6aa1989cd54995be1 (patch)
tree5aa117f2141a4768ac3da3dfc3d03a7c33b0fc15 /src/Java/gregtech
parentd021650b5b9090f3aee7550c4f307d4248b2625a (diff)
downloadGT5-Unofficial-bbc1b38b3d12da80136a71e6aa1989cd54995be1.tar.gz
GT5-Unofficial-bbc1b38b3d12da80136a71e6aa1989cd54995be1.tar.bz2
GT5-Unofficial-bbc1b38b3d12da80136a71e6aa1989cd54995be1.zip
% Made Industrial Machines use the FFPP NEI GUI.
$ Greatly improved NEI support for Industrial Machines. $ Fixed Unbalanced cell recipes in the Industrial Centrifuge and Industrial Electrolyzer.
Diffstat (limited to 'src/Java/gregtech')
-rw-r--r--src/Java/gregtech/api/util/Recipe_GT.java87
1 files changed, 60 insertions, 27 deletions
diff --git a/src/Java/gregtech/api/util/Recipe_GT.java b/src/Java/gregtech/api/util/Recipe_GT.java
index 19bd1122a4..017f7c90f2 100644
--- a/src/Java/gregtech/api/util/Recipe_GT.java
+++ b/src/Java/gregtech/api/util/Recipe_GT.java
@@ -17,6 +17,7 @@ import gregtech.nei.GT_NEI_DefaultHandler;
import codechicken.nei.PositionedStack;
import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry;
@@ -843,7 +844,7 @@ public class Recipe_GT extends GT_Recipe{
public GT_Recipe_Map_LargeCentrifuge() {
super(new HashSet<GT_Recipe>(2000), "gt.recipe.largecentrifuge", "Large Centrifuge", null,
- "gregtech:textures/gui/basicmachines/Default", GT_Recipe_Map_LargeCentrifuge.INPUT_COUNT,
+ RES_PATH_GUI + "basicmachines/FissionFuel", GT_Recipe_Map_LargeCentrifuge.INPUT_COUNT,
GT_Recipe_Map_LargeCentrifuge.OUTPUT_COUNT, 0, 0, 1, "", 1, "", true, true);
}
@@ -921,8 +922,13 @@ public class Recipe_GT extends GT_Recipe{
}
aOutputs = adjustedOutputs.toArray(new ItemStack[adjustedOutputs.size()]);
aFluidOutputs = adjustedFluidOutputs.toArray(new FluidStack[adjustedFluidOutputs.size()]);
- return this.addRecipe(new GT_Recipe_LargeCentrifuge(aOptimize, aInputs, aOutputs, aSpecial,
- aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue));
+ GT_Recipe mNew = new GT_Recipe_LargeCentrifuge(false, aInputs, aOutputs, null, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, 0);
+ if (RecipeUtils.doesGregtechRecipeHaveEqualCells(mNew)) {
+ return this.addRecipe(mNew);
+ }
+ else {
+ return null;
+ }
}
static {
@@ -965,18 +971,29 @@ public class Recipe_GT extends GT_Recipe{
@Override
public ArrayList<PositionedStack> getOutputPositionedStacks() {
- final int itemLimit = Math.min(this.mOutputs.length, GT_Recipe_Map_LargeCentrifuge.OUTPUT_COUNT);
- final int fluidLimit = Math.min(this.mFluidOutputs.length,
- GT_Recipe_Map_LargeCentrifuge.FLUID_OUTPUT_COUNT);
- final ArrayList<PositionedStack> outputStacks = new ArrayList<PositionedStack>(itemLimit + fluidLimit);
+ final int itemLimit = Math.max(this.mOutputs.length, 0);
+ final int fluidLimit = Math.max(this.mFluidOutputs.length, 0);
+ final ArrayList<PositionedStack> outputStacks = new ArrayList<PositionedStack>(itemLimit + fluidLimit);
+ AutoMap<Object> mNEIMap = new AutoMap<Object>();
for (int i = 0; i < itemLimit; ++i) {
- outputStacks.add((PositionedStack) new GT_NEI_DefaultHandler.FixedPositionedStack(
- (Object) this.mOutputs[i].copy(), 102 + i * 18, 5));
- }
+ mNEIMap.put((Object) this.mOutputs[i].copy());
+ }
for (int i = 0; i < fluidLimit; ++i) {
- outputStacks.add((PositionedStack) new GT_NEI_DefaultHandler.FixedPositionedStack(
- (Object) GT_Utility.getFluidDisplayStack(this.mFluidOutputs[i], true), 102 + i * 18, 23));
+ mNEIMap.put((Object) GT_Utility.getFluidDisplayStack(this.mFluidOutputs[i], true));
}
+ int xPos[] = new int[] {102, 120, 138};
+ int yPos[] = new int[] {5, 23, 41, 59};
+ int mRow = 0;
+ int mColumn = 0;
+ for (int i = 0; i < mNEIMap.size(); ++i) {
+ if (mColumn >= 3) {
+ mColumn = 0;
+ mRow++;
+ }
+ outputStacks.add(
+ (PositionedStack) new GT_NEI_DefaultHandler.FixedPositionedStack(
+ (Object) mNEIMap.get(i), xPos[mColumn++], yPos[mRow]));
+ }
return outputStacks;
}
}
@@ -990,7 +1007,7 @@ public class Recipe_GT extends GT_Recipe{
public GT_Recipe_Map_LargeElectrolyzer() {
super(new HashSet<GT_Recipe>(2000), "gt.recipe.largeelectrolyzer", "Large Electrolyzer", null,
- "gregtech:textures/gui/basicmachines/Default", GT_Recipe_Map_LargeElectrolyzer.INPUT_COUNT,
+ RES_PATH_GUI + "basicmachines/FissionFuel", GT_Recipe_Map_LargeElectrolyzer.INPUT_COUNT,
GT_Recipe_Map_LargeElectrolyzer.OUTPUT_COUNT, 0, 0, 1, "", 1, "", true, true);
}
@@ -1067,9 +1084,14 @@ public class Recipe_GT extends GT_Recipe{
adjustedFluidOutputs.add(fluidOutput);
}
aOutputs = adjustedOutputs.toArray(new ItemStack[adjustedOutputs.size()]);
- aFluidOutputs = adjustedFluidOutputs.toArray(new FluidStack[adjustedFluidOutputs.size()]);
- return this.addRecipe(new GT_Recipe_LargeElectrolyzer(aOptimize, aInputs, aOutputs, aSpecial,
- aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue));
+ aFluidOutputs = adjustedFluidOutputs.toArray(new FluidStack[adjustedFluidOutputs.size()]);
+ GT_Recipe mNew = new GT_Recipe_LargeElectrolyzer(false, aInputs, aOutputs, null, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, 0);
+ if (RecipeUtils.doesGregtechRecipeHaveEqualCells(mNew)) {
+ return this.addRecipe(mNew);
+ }
+ else {
+ return null;
+ }
}
static {
@@ -1112,18 +1134,29 @@ public class Recipe_GT extends GT_Recipe{
@Override
public ArrayList<PositionedStack> getOutputPositionedStacks() {
- final int itemLimit = Math.min(this.mOutputs.length, GT_Recipe_Map_LargeElectrolyzer.OUTPUT_COUNT);
- final int fluidLimit = Math.min(this.mFluidOutputs.length,
- GT_Recipe_Map_LargeElectrolyzer.FLUID_OUTPUT_COUNT);
- final ArrayList<PositionedStack> outputStacks = new ArrayList<PositionedStack>(itemLimit + fluidLimit);
+ final int itemLimit = Math.max(this.mOutputs.length, 0);
+ final int fluidLimit = Math.max(this.mFluidOutputs.length, 0);
+ final ArrayList<PositionedStack> outputStacks = new ArrayList<PositionedStack>(itemLimit + fluidLimit);
+ AutoMap<Object> mNEIMap = new AutoMap<Object>();
for (int i = 0; i < itemLimit; ++i) {
- outputStacks.add((PositionedStack) new GT_NEI_DefaultHandler.FixedPositionedStack(
- (Object) this.mOutputs[i].copy(), 102 + i * 18, 5));
- }
+ mNEIMap.put((Object) this.mOutputs[i].copy());
+ }
for (int i = 0; i < fluidLimit; ++i) {
- outputStacks.add((PositionedStack) new GT_NEI_DefaultHandler.FixedPositionedStack(
- (Object) GT_Utility.getFluidDisplayStack(this.mFluidOutputs[i], true), 102 + i * 18, 23));
+ mNEIMap.put((Object) GT_Utility.getFluidDisplayStack(this.mFluidOutputs[i], true));
}
+ int xPos[] = new int[] {102, 120, 138};
+ int yPos[] = new int[] {5, 23, 41, 59};
+ int mRow = 0;
+ int mColumn = 0;
+ for (int i = 0; i < mNEIMap.size(); ++i) {
+ if (mColumn >= 3) {
+ mColumn = 0;
+ mRow++;
+ }
+ outputStacks.add(
+ (PositionedStack) new GT_NEI_DefaultHandler.FixedPositionedStack(
+ (Object) mNEIMap.get(i), xPos[mColumn++], yPos[mRow]));
+ }
return outputStacks;
}
}
@@ -1137,7 +1170,7 @@ public class Recipe_GT extends GT_Recipe{
public GT_Recipe_Map_AdvancedVacuumFreezer() {
super(new HashSet<GT_Recipe>(2000), "gt.recipe.advfreezer", "Adv. Cryogenic Freezer", null,
- "gregtech:textures/gui/basicmachines/Default", GT_Recipe_Map_AdvancedVacuumFreezer.INPUT_COUNT,
+ RES_PATH_GUI + "basicmachines/FissionFuel", GT_Recipe_Map_AdvancedVacuumFreezer.INPUT_COUNT,
GT_Recipe_Map_AdvancedVacuumFreezer.OUTPUT_COUNT, 0, 0, 1, "", 1, "", true, true);
}
@@ -1216,7 +1249,7 @@ public class Recipe_GT extends GT_Recipe{
aOutputs = adjustedOutputs.toArray(new ItemStack[adjustedOutputs.size()]);
aFluidOutputs = adjustedFluidOutputs.toArray(new FluidStack[adjustedFluidOutputs.size()]);
- GT_Recipe mNew = new Recipe_GT(false, aInputs, aOutputs, null, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, 0);
+ GT_Recipe mNew = new GT_Recipe_AdvFreezer(false, aInputs, aOutputs, null, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, 0);
if (RecipeUtils.doesGregtechRecipeHaveEqualCells(mNew)) {
return this.addRecipe(mNew);
}