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/recipe/RecipeMapBackend.java4
-rw-r--r--src/main/java/gregtech/api/util/GTOreDictUnificator.java10
-rw-r--r--src/main/java/gregtech/api/util/GTRecipe.java4
-rw-r--r--src/main/java/gregtech/api/util/GTRecipeBuilder.java19
4 files changed, 29 insertions, 8 deletions
diff --git a/src/main/java/gregtech/api/recipe/RecipeMapBackend.java b/src/main/java/gregtech/api/recipe/RecipeMapBackend.java
index f78e367adf..1122eaf869 100644
--- a/src/main/java/gregtech/api/recipe/RecipeMapBackend.java
+++ b/src/main/java/gregtech/api/recipe/RecipeMapBackend.java
@@ -277,8 +277,8 @@ public class RecipeMapBackend {
public void reInit() {
itemIndex.clear();
for (GTRecipe recipe : allRecipes()) {
- GTOreDictUnificator.setStackArray(true, recipe.mInputs);
- GTOreDictUnificator.setStackArray(true, recipe.mOutputs);
+ GTOreDictUnificator.setStackArray(true, true, recipe.mInputs);
+ GTOreDictUnificator.setStackArray(true, true, recipe.mOutputs);
addToItemMap(recipe);
}
}
diff --git a/src/main/java/gregtech/api/util/GTOreDictUnificator.java b/src/main/java/gregtech/api/util/GTOreDictUnificator.java
index 6168b03211..8060c5e49b 100644
--- a/src/main/java/gregtech/api/util/GTOreDictUnificator.java
+++ b/src/main/java/gregtech/api/util/GTOreDictUnificator.java
@@ -140,8 +140,16 @@ public class GTOreDictUnificator {
return GTUtility.copyAmount(aAmount, aReplacement);
}
+ /**
+ * Wrapper for setStackArray that assumes safe copying
+ */
public static ItemStack[] setStackArray(boolean aUseBlackList, ItemStack... aStacks) {
- for (int i = 0; i < aStacks.length; i++) aStacks[i] = get(aUseBlackList, GTUtility.copyOrNull(aStacks[i]));
+ return setStackArray(aUseBlackList, false, aStacks);
+ }
+
+ public static ItemStack[] setStackArray(boolean aUseBlackList, boolean aUnsafe, ItemStack... aStacks) {
+ for (int i = 0; i < aStacks.length; i++)
+ aStacks[i] = get(aUseBlackList, GTUtility.copyOrNull(aStacks[i]), aUnsafe);
return aStacks;
}
diff --git a/src/main/java/gregtech/api/util/GTRecipe.java b/src/main/java/gregtech/api/util/GTRecipe.java
index 7aa3dfbdfb..d27412d4ec 100644
--- a/src/main/java/gregtech/api/util/GTRecipe.java
+++ b/src/main/java/gregtech/api/util/GTRecipe.java
@@ -252,8 +252,8 @@ public class GTRecipe implements Comparable<GTRecipe> {
aFluidInputs = ArrayExt.withoutNulls(aFluidInputs, FluidStack[]::new);
aFluidOutputs = ArrayExt.withoutNulls(aFluidOutputs, FluidStack[]::new);
- GTOreDictUnificator.setStackArray(true, aInputs);
- GTOreDictUnificator.setStackArray(true, aOutputs);
+ GTOreDictUnificator.setStackArray(true, true, aInputs);
+ GTOreDictUnificator.setStackArray(true, true, aOutputs);
for (ItemStack tStack : aOutputs) GTUtility.updateItemStack(tStack);
diff --git a/src/main/java/gregtech/api/util/GTRecipeBuilder.java b/src/main/java/gregtech/api/util/GTRecipeBuilder.java
index 6f8acfb2dc..1426c1c264 100644
--- a/src/main/java/gregtech/api/util/GTRecipeBuilder.java
+++ b/src/main/java/gregtech/api/util/GTRecipeBuilder.java
@@ -163,8 +163,9 @@ public class GTRecipeBuilder {
.toArray(FluidStack[]::new);
}
- private static ItemStack[] fix(ItemStack[] inputs) {
- return GTOreDictUnificator.setStackArray(true, ArrayExt.withoutTrailingNulls(inputs, ItemStack[]::new));
+ private static ItemStack[] fix(ItemStack[] inputs, boolean aUnsafe) {
+ return GTOreDictUnificator
+ .setStackArray(true, aUnsafe, ArrayExt.withoutTrailingNulls(inputs, ItemStack[]::new));
}
public static GTRecipeBuilder builder() {
@@ -250,7 +251,19 @@ public class GTRecipeBuilder {
public GTRecipeBuilder itemInputs(ItemStack... inputs) {
if (skip) return this;
if (debugNull() && containsNull(inputs)) handleNullRecipeComponents("itemInputs");
- inputsBasic = fix(inputs);
+ inputsBasic = fix(inputs, false);
+ inputsOreDict = null;
+ alts = null;
+ return this;
+ }
+
+ /**
+ * Non-OreDicted item inputs, allowing stack sizes greater than 64. Assumes input is not unified
+ */
+ public GTRecipeBuilder itemInputsUnsafe(ItemStack... inputs) {
+ if (skip) return this;
+ if (debugNull() && containsNull(inputs)) handleNullRecipeComponents("itemInputs");
+ inputsBasic = fix(inputs, true);
inputsOreDict = null;
alts = null;
return this;