aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/util/GT_RecipeMapUtil.java')
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeMapUtil.java31
1 files changed, 27 insertions, 4 deletions
diff --git a/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java b/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java
index 4f7f2e199b..a534f8031d 100644
--- a/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java
+++ b/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java
@@ -92,10 +92,33 @@ public class GT_RecipeMapUtil {
TIntList chances = b.getChances() != null ? new TIntArrayList(b.getChances()) : null;
cellToFluid(itemInputs, fluidInputs, removeIntegratedCircuit, null);
cellToFluid(itemOutputs, fluidOutputs, removeIntegratedCircuit, chances);
- return b.itemInputs(itemInputs.toArray(new ItemStack[0]))
- .itemOutputs(itemOutputs.toArray(new ItemStack[0]), chances != null ? chances.toArray() : null)
- .fluidInputs(fluidInputs.toArray(new FluidStack[0]))
- .fluidOutputs(fluidOutputs.toArray(new FluidStack[0]));
+ itemInputs.removeIf(Objects::isNull);
+ if (chances == null) {
+ itemOutputs.removeIf(Objects::isNull);
+ }
+ fluidInputs.removeIf(Objects::isNull);
+ fluidOutputs.removeIf(Objects::isNull);
+ if (itemInputs.size() == 0) {
+ b.noItemInputs();
+ } else {
+ b.itemInputs(itemInputs.toArray(new ItemStack[0]));
+ }
+ if (itemOutputs.size() == 0) {
+ b.noItemOutputs();
+ } else {
+ b.itemOutputs(itemOutputs.toArray(new ItemStack[0]), chances != null ? chances.toArray() : null);
+ }
+ if (fluidInputs.size() == 0) {
+ b.noFluidInputs();
+ } else {
+ b.fluidInputs(fluidInputs.toArray(new FluidStack[0]));
+ }
+ if (fluidOutputs.size() == 0) {
+ b.noFluidOutputs();
+ } else {
+ b.fluidOutputs(fluidOutputs.toArray(new FluidStack[0]));
+ }
+ return b;
}
private static void cellToFluid(List<ItemStack> items, List<FluidStack> fluids, boolean removeIntegratedCircuit,