aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/enums/Materials.java4
-rw-r--r--src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java16
-rw-r--r--src/main/java/gregtech/api/util/GT_Recipe.java24
3 files changed, 37 insertions, 7 deletions
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java
index ebf24db8e0..2146e031a5 100644
--- a/src/main/java/gregtech/api/enums/Materials.java
+++ b/src/main/java/gregtech/api/enums/Materials.java
@@ -537,8 +537,8 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public static Materials HeavyFuel = new Materials(741, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 255, 0, 0, "HeavyFuel", "Heavy Fuel", 3, 192, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack).setCanBeCracked(true);
public static Materials LPG = new Materials(742, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 255, 0, 0, "LPG", "LPG", 1, 256, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow);
- public static Materials Polystyrene = new MaterialBuilder(636, TextureSet.SET_DULL, "Polystyrene").addDustItems().addMetalItems().addToolHeadItems().addGearItems().setToolSpeed(3.0f).setDurability(32).setToolQuality(1).setRGB(162, 150, 138).setColor(Dyes.dyeLightGray).setMaterialList(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8)).constructMaterial();
- public static Materials Styrene = new MaterialBuilder(637, TextureSet.SET_FLUID, "Styrene").addCell().addFluid().setRGB(180, 168, 154).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Polystyrene = new MaterialBuilder(636, TextureSet.SET_DULL, "Polystyrene").addDustItems().addMetalItems().addToolHeadItems().addGearItems().setToolSpeed(3.0f).setDurability(32).setToolQuality(1).setRGB(190, 180, 170).setColor(Dyes.dyeLightGray).setMaterialList(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8)).constructMaterial();
+ public static Materials Styrene = new MaterialBuilder(637, TextureSet.SET_FLUID, "Styrene").addCell().addFluid().setRGB(210, 200, 190).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().constructMaterial();
public static Materials Isoprene = new MaterialBuilder(638, TextureSet.SET_FLUID, "Isoprene").addCell().addFluid().setRGB(20, 20, 20).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().constructMaterial();
public static Materials Tetranitromethane = new MaterialBuilder(639, TextureSet.SET_FLUID, "Tetranitromethane").addCell().addFluid().setRGB(20, 20, 70).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
public static Materials Ethenone = new MaterialBuilder(641, TextureSet.SET_FLUID, "Ethenone").addCell().addGas().setRGB(20, 20, 70).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
index c15eda80e7..1a36b7a86e 100644
--- a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
+++ b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
@@ -1,5 +1,6 @@
package gregtech.api.interfaces.internal;
+import gregtech.api.util.GT_Recipe;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
@@ -148,7 +149,20 @@ public interface IGT_RecipeAdder {
*/
public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, ItemStack aOutput2, int aDuration, int aEUtick);
-
+ /**
+ * Adds a Chemical Recipe that only exists in the Large Chemical Reactor
+ *
+ * @param aInputs item inputs
+ * @param aFluidInputs fluid inputs
+ * @param aFluidOutputs fluid outputs
+ * @param aOutputs item outputs
+ * @param aDuration must be > 0
+ * @param aEUtick must be > 0
+ * aInputs and aFluidInputs must contain at least one valid input.
+ * aOutputs and aFluidOutputs must contain at least one valid output.
+ */
+ public boolean addMultiblockChemicalRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, ItemStack[] aOutputs, int aDuration, int aEUtick);
+
/**
* Adds a Blast Furnace Recipe
*
diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java
index 9973946daf..2ccc5df2cd 100644
--- a/src/main/java/gregtech/api/util/GT_Recipe.java
+++ b/src/main/java/gregtech/api/util/GT_Recipe.java
@@ -1458,8 +1458,8 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
public static class GT_Recipe_Map_LargeChemicalReactor extends GT_Recipe_Map{
private static int INPUT_COUNT = 2;
private static int OUTPUT_COUNT = 2;
- private static int FLUID_INPUT_COUNT = 3;
- private static int FLUID_OUTPUT_COUNT = 3;
+ private static int FLUID_INPUT_COUNT = 4;
+ private static int FLUID_OUTPUT_COUNT = 4;
public GT_Recipe_Map_LargeChemicalReactor() {
super(new HashSet<GT_Recipe>(200), "gt.recipe.largechemicalreactor", "Large Chemical Reactor", null, RES_PATH_GUI + "basicmachines/Default", INPUT_COUNT, OUTPUT_COUNT, 0, 0, 1, E, 1, E, true, true);
@@ -1467,12 +1467,14 @@ 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) {
- aOptimize = false;
ArrayList<ItemStack> adjustedInputs = new ArrayList<ItemStack>();
ArrayList<ItemStack> adjustedOutputs = new ArrayList<ItemStack>();
ArrayList<FluidStack> adjustedFluidInputs = new ArrayList<FluidStack>();
ArrayList<FluidStack> adjustedFluidOutputs = new ArrayList<FluidStack>();
+ if (aInputs == null) {
+ aInputs = new ItemStack[0];
+ }
for (ItemStack input : aInputs) {
FluidStack inputFluidContent = FluidContainerRegistry.getFluidForFilledItem(input);
if (inputFluidContent != null) {
@@ -1499,12 +1501,18 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
}
}
}
+ if (aFluidInputs == null) {
+ aFluidInputs = new FluidStack[0];
+ }
for (FluidStack fluidInput : aFluidInputs) {
adjustedFluidInputs.add(fluidInput);
}
aInputs = adjustedInputs.toArray(new ItemStack[adjustedInputs.size()]);
aFluidInputs = adjustedFluidInputs.toArray(new FluidStack[adjustedFluidInputs.size()]);
+ if (aOutputs == null) {
+ aOutputs = new ItemStack[0];
+ }
for (ItemStack output : aOutputs) {
FluidStack outputFluidContent = FluidContainerRegistry.getFluidForFilledItem(output);
if (outputFluidContent != null) {
@@ -1522,6 +1530,10 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
}
}
}
+
+ if (aFluidOutputs == null) {
+ aFluidOutputs = new FluidStack[0];
+ }
for (FluidStack fluidOutput : aFluidOutputs) {
adjustedFluidOutputs.add(fluidOutput);
}
@@ -1548,7 +1560,11 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
}
for (int i = 0; i < fluidLimit; i++) {
- inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidInputs[i], true), 48 - i * 18, 23));
+ if (i < 3) {
+ inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidInputs[i], true), 48 - i * 18, 23));
+ } else {
+ inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidInputs[i], true), 12, 5));
+ }
}
return inputStacks;