aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r--src/main/java/gregtech/api/util/GT_ModHandler.java2
-rw-r--r--src/main/java/gregtech/api/util/GT_Recipe.java2
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeBuilder.java84
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeMapUtil.java16
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeRegistrator.java33
5 files changed, 58 insertions, 79 deletions
diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java
index 5201cc6876..f6362a3db7 100644
--- a/src/main/java/gregtech/api/util/GT_ModHandler.java
+++ b/src/main/java/gregtech/api/util/GT_ModHandler.java
@@ -566,8 +566,6 @@ public class GT_ModHandler {
recipeBuilder.itemInputs(aInput, input2);
}
recipeBuilder.itemOutputs(aOutput)
- .noFluidInputs()
- .noFluidOutputs()
.duration(duration * TICKS)
.eut(3);
if (hidden) {
diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java
index cc2a2b0626..fb44c3489f 100644
--- a/src/main/java/gregtech/api/util/GT_Recipe.java
+++ b/src/main/java/gregtech/api/util/GT_Recipe.java
@@ -2323,8 +2323,6 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
.get(),
b.fluidInputs(in)
.fluidOutputs(out)
- .noItemInputs()
- .noItemOutputs()
.build()
.get());
}
diff --git a/src/main/java/gregtech/api/util/GT_RecipeBuilder.java b/src/main/java/gregtech/api/util/GT_RecipeBuilder.java
index 2649d65eb7..07132420c7 100644
--- a/src/main/java/gregtech/api/util/GT_RecipeBuilder.java
+++ b/src/main/java/gregtech/api/util/GT_RecipeBuilder.java
@@ -56,12 +56,12 @@ public class GT_RecipeBuilder {
PANIC_MODE = DEBUG_MODE && Boolean.getBoolean("gt.recipebuilder.panic");
}
- protected ItemStack[] inputsBasic;
+ protected ItemStack[] inputsBasic = new ItemStack[0];
protected Object[] inputsOreDict;
- protected ItemStack[] outputs;
+ protected ItemStack[] outputs = new ItemStack[0];
protected ItemStack[][] alts;
- protected FluidStack[] fluidInputs;
- protected FluidStack[] fluidOutputs;
+ protected FluidStack[] fluidInputs = new FluidStack[0];
+ protected FluidStack[] fluidOutputs = new FluidStack[0];
protected int[] chances;
protected Object special;
protected int duration = -1;
@@ -106,6 +106,8 @@ public class GT_RecipeBuilder {
this.valid = valid;
}
+ // region helper methods
+
private static FluidStack[] fix(FluidStack[] fluidInputs) {
return Arrays.stream(fluidInputs)
.filter(Objects::nonNull)
@@ -163,6 +165,10 @@ public class GT_RecipeBuilder {
}
}
+ // endregion
+
+ // region setter
+
/**
* Non-OreDicted item inputs. Assumes input is unified.
*/
@@ -221,13 +227,10 @@ public class GT_RecipeBuilder {
}
/**
- * Same as itemInputs(), but make it clear that no item inputs is intended, instead of a mistake.
+ * @deprecated You don't need to call this method, RecipeBuilder now takes empty item input array by default.
*/
+ @Deprecated
public GT_RecipeBuilder noItemInputs() {
- // this does not call into one of the itemInputs, to make it clear what is the expected behavior here.
- inputsBasic = new ItemStack[0];
- inputsOreDict = null;
- alts = null;
return this;
}
@@ -254,9 +257,12 @@ public class GT_RecipeBuilder {
return this;
}
+ /**
+ * @deprecated You don't need to call this method, RecipeBuilder now takes empty item output array by default.
+ */
+ @Deprecated
public GT_RecipeBuilder noItemOutputs() {
- chances = null;
- return itemOutputs();
+ return this;
}
public GT_RecipeBuilder fluidInputs(FluidStack... fluidInputs) {
@@ -265,8 +271,12 @@ public class GT_RecipeBuilder {
return this;
}
+ /**
+ * @deprecated You don't need to call this method, RecipeBuilder now takes empty fluid input array by default.
+ */
+ @Deprecated
public GT_RecipeBuilder noFluidInputs() {
- return fluidInputs == null ? fluidInputs() : this;
+ return this;
}
public GT_RecipeBuilder fluidOutputs(FluidStack... fluidOutputs) {
@@ -275,12 +285,20 @@ public class GT_RecipeBuilder {
return this;
}
+ /**
+ * @deprecated You don't need to call this method, RecipeBuilder now takes empty fluid output array by default.
+ */
+ @Deprecated
public GT_RecipeBuilder noFluidOutputs() {
- return fluidOutputs();
+ return this;
}
+ /**
+ * @deprecated You don't need to call this method, RecipeBuilder now takes empty arrays by default.
+ */
+ @Deprecated
public GT_RecipeBuilder noOutputs() {
- return noFluidOutputs().noItemOutputs();
+ return this;
}
public GT_RecipeBuilder outputChances(int... chances) {
@@ -393,6 +411,8 @@ public class GT_RecipeBuilder {
return metadata(GT_RecipeConstants.LOW_GRAVITY, true);
}
+ // endregion
+
private static <T> T[] copy(T[] arr) {
return arr == null ? null : arr.clone();
}
@@ -458,6 +478,8 @@ public class GT_RecipeBuilder {
valid);
}
+ // region getter
+
public ItemStack getItemInputBasic(int index) {
return index < inputsBasic.length ? inputsBasic[index] : null;
}
@@ -510,6 +532,10 @@ public class GT_RecipeBuilder {
return eut;
}
+ // endregion
+
+ // region validator
+
public GT_RecipeBuilder clearInvalid() {
valid = true;
return this;
@@ -537,7 +563,7 @@ public class GT_RecipeBuilder {
* unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code.
*/
public GT_RecipeBuilder validateNoInput() {
- return GT_Utility.isArrayEmptyOrNull(inputsBasic) ? noItemInputs() : invalidate();
+ return GT_Utility.isArrayEmptyOrNull(inputsBasic) ? this : invalidate();
}
/**
@@ -545,7 +571,7 @@ public class GT_RecipeBuilder {
* unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code.
*/
public GT_RecipeBuilder validateNoInputFluid() {
- return GT_Utility.isArrayEmptyOrNull(fluidInputs) ? noFluidInputs() : invalidate();
+ return GT_Utility.isArrayEmptyOrNull(fluidInputs) ? this : invalidate();
}
/**
@@ -553,7 +579,7 @@ public class GT_RecipeBuilder {
* unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code.
*/
public GT_RecipeBuilder validateNoOutput() {
- return GT_Utility.isArrayEmptyOrNull(outputs) ? noItemInputs() : invalidate();
+ return GT_Utility.isArrayEmptyOrNull(outputs) ? this : invalidate();
}
/**
@@ -561,7 +587,7 @@ public class GT_RecipeBuilder {
* unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code.
*/
public GT_RecipeBuilder validateNoOutputFluid() {
- return GT_Utility.isArrayEmptyOrNull(fluidOutputs) ? noFluidOutputs() : invalidate();
+ return GT_Utility.isArrayEmptyOrNull(fluidOutputs) ? this : invalidate();
}
/**
@@ -569,7 +595,7 @@ public class GT_RecipeBuilder {
* unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code.
*/
public GT_RecipeBuilder validateInputCount(int min, int max) {
- if (inputsBasic == null) return min < 0 ? noItemInputs() : invalidate();
+ if (inputsBasic == null) return min < 0 ? this : invalidate();
return isArrayValid(inputsBasic, min, max) ? this : invalidate();
}
@@ -578,7 +604,7 @@ public class GT_RecipeBuilder {
* unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code.
*/
public GT_RecipeBuilder validateInputFluidCount(int min, int max) {
- if (fluidInputs == null) return min < 0 ? noItemInputs() : invalidate();
+ if (fluidInputs == null) return min < 0 ? this : invalidate();
return isArrayValid(fluidInputs, min, max) ? this : invalidate();
}
@@ -587,7 +613,7 @@ public class GT_RecipeBuilder {
* unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code.
*/
public GT_RecipeBuilder validateOutputCount(int min, int max) {
- if (outputs == null) return min < 0 ? noItemInputs() : invalidate();
+ if (outputs == null) return min < 0 ? this : invalidate();
return isArrayValid(outputs, min, max) ? this : invalidate();
}
@@ -596,30 +622,32 @@ public class GT_RecipeBuilder {
* unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code.
*/
public GT_RecipeBuilder validateOutputFluidCount(int min, int max) {
- if (fluidOutputs == null) return min < 0 ? noItemInputs() : invalidate();
+ if (fluidOutputs == null) return min < 0 ? this : invalidate();
return isArrayValid(fluidOutputs, min, max) ? this : invalidate();
}
public GT_RecipeBuilder validateAnyInput() {
if (fluidInputs != null && isArrayValid(fluidInputs, 1, Integer.MAX_VALUE)) {
- return inputsBasic == null ? noItemInputs() : this;
+ return this;
}
if (inputsBasic != null && isArrayValid(inputsBasic, 1, Integer.MAX_VALUE)) {
- return fluidInputs == null ? noFluidInputs() : this;
+ return this;
}
return invalidate();
}
public GT_RecipeBuilder validateAnyOutput() {
if (fluidOutputs != null && isArrayValid(fluidOutputs, 1, Integer.MAX_VALUE)) {
- return outputs == null ? noItemOutputs() : this;
+ return this;
}
if (outputs != null && isArrayValid(outputs, 1, Integer.MAX_VALUE)) {
- return fluidOutputs == null ? noFluidOutputs() : this;
+ return this;
}
return invalidate();
}
+ // endregion
+
public Optional<GT_Recipe> build() {
if (!valid) {
if (DEBUG_MODE) handleInvalidRecipe();
@@ -684,10 +712,6 @@ public class GT_RecipeBuilder {
}
private void preBuildChecks() {
- if (inputsBasic == null) throw new IllegalStateException("no itemInputs");
- if (outputs == null) throw new IllegalStateException("no itemOutputs");
- if (fluidInputs == null) throw new IllegalStateException("no fluidInputs");
- if (fluidOutputs == null) throw new IllegalStateException("no fluidOutputs");
if (duration == -1) throw new IllegalStateException("no duration");
if (eut == -1) throw new IllegalStateException("no eut");
}
diff --git a/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java b/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java
index bc8662ab03..fb6a790159 100644
--- a/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java
+++ b/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java
@@ -107,24 +107,16 @@ public class GT_RecipeMapUtil {
}
fluidInputs.removeIf(Objects::isNull);
fluidOutputs.removeIf(Objects::isNull);
- if (itemInputs.size() == 0) {
- b.noItemInputs();
- } else {
+ if (!itemInputs.isEmpty()) {
b.itemInputs(itemInputs.toArray(new ItemStack[0]));
}
- if (itemOutputs.size() == 0) {
- b.noItemOutputs();
- } else {
+ if (!itemOutputs.isEmpty()) {
b.itemOutputs(itemOutputs.toArray(new ItemStack[0]), chances != null ? chances.toArray() : null);
}
- if (fluidInputs.size() == 0) {
- b.noFluidInputs();
- } else {
+ if (!fluidInputs.isEmpty()) {
b.fluidInputs(fluidInputs.toArray(new FluidStack[0]));
}
- if (fluidOutputs.size() == 0) {
- b.noFluidOutputs();
- } else {
+ if (!fluidOutputs.isEmpty()) {
b.fluidOutputs(fluidOutputs.toArray(new FluidStack[0]));
}
return b;
diff --git a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java
index f44196eefe..6afa40e17f 100644
--- a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java
+++ b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java
@@ -341,7 +341,6 @@ public class GT_RecipeRegistrator {
recipeBuilder.itemInputs(aStack)
.itemOutputs(outputsArray)
.fluidInputs(Materials.Oxygen.getGas((int) Math.max(16, tAmount / M)))
- .noFluidOutputs()
.duration(((int) Math.max(16, tAmount / M)) * TICKS)
.eut(90);
if (tHide) {
@@ -399,8 +398,6 @@ public class GT_RecipeRegistrator {
GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder();
recipeBuilder.itemInputs(aStack)
.itemOutputs(outputsArray)
- .noFluidInputs()
- .noFluidOutputs()
.duration(
(aData.mMaterial.mMaterial == Materials.Marble ? 1 : (int) Math.max(16, tAmount / M)) * TICKS)
.eut(4);
@@ -422,8 +419,6 @@ public class GT_RecipeRegistrator {
GT_Values.RA.stdBuilder()
.itemInputs(GT_Utility.copyAmount(1, aStack))
.itemOutputs(GT_OreDictUnificator.getDust(aData.mMaterial))
- .noFluidInputs()
- .noFluidOutputs()
.duration(10 * SECONDS)
.eut(TierEU.RECIPE_LV)
.addTo(sHammerRecipes);
@@ -681,8 +676,6 @@ public class GT_RecipeRegistrator {
GT_Values.RA.stdBuilder()
.itemInputs(GT_OreDictUnificator.get(prefix1, aMaterial, 1L), GT_Utility.getIntegratedCircuit(1))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, multiplier))
- .noFluidInputs()
- .noFluidOutputs()
.duration(baseDuration * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -691,8 +684,6 @@ public class GT_RecipeRegistrator {
GT_OreDictUnificator.get(prefix1, aMaterial, 2L / multiplier),
GT_Utility.getIntegratedCircuit(2))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L))
- .noFluidInputs()
- .noFluidOutputs()
.duration(((int) (baseDuration * 1.5f)) * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -701,8 +692,6 @@ public class GT_RecipeRegistrator {
GT_OreDictUnificator.get(prefix1, aMaterial, 4L / multiplier),
GT_Utility.getIntegratedCircuit(4))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L))
- .noFluidInputs()
- .noFluidOutputs()
.duration(baseDuration * 2 * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -711,8 +700,6 @@ public class GT_RecipeRegistrator {
GT_OreDictUnificator.get(prefix1, aMaterial, 8L / multiplier),
GT_Utility.getIntegratedCircuit(8))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L))
- .noFluidInputs()
- .noFluidOutputs()
.duration(((int) (baseDuration * 2.5f)) * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -721,8 +708,6 @@ public class GT_RecipeRegistrator {
GT_OreDictUnificator.get(prefix1, aMaterial, 12L / multiplier),
GT_Utility.getIntegratedCircuit(12))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt12, aMaterial, 1L))
- .noFluidInputs()
- .noFluidOutputs()
.duration(baseDuration * 3 * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -731,8 +716,6 @@ public class GT_RecipeRegistrator {
GT_OreDictUnificator.get(prefix1, aMaterial, 16L / multiplier),
GT_Utility.getIntegratedCircuit(16))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt16, aMaterial, 1L))
- .noFluidInputs()
- .noFluidOutputs()
.duration(((int) (baseDuration * 3.5f)) * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -743,8 +726,6 @@ public class GT_RecipeRegistrator {
GT_Values.RA.stdBuilder()
.itemInputs(GT_OreDictUnificator.get(prefix2, aMaterial, 1L), GT_Utility.getIntegratedCircuit(1))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 2L / multiplier))
- .noFluidInputs()
- .noFluidOutputs()
.duration(((int) (baseDuration * 0.5f)) * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -753,8 +734,6 @@ public class GT_RecipeRegistrator {
GT_OreDictUnificator.get(prefix2, aMaterial, 4L / multiplier),
GT_Utility.getIntegratedCircuit(2))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L))
- .noFluidInputs()
- .noFluidOutputs()
.duration(baseDuration * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -763,8 +742,6 @@ public class GT_RecipeRegistrator {
GT_OreDictUnificator.get(prefix2, aMaterial, 8L / multiplier),
GT_Utility.getIntegratedCircuit(4))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L))
- .noFluidInputs()
- .noFluidOutputs()
.duration(((int) (baseDuration * 1.5f)) * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -773,8 +750,6 @@ public class GT_RecipeRegistrator {
GT_OreDictUnificator.get(prefix2, aMaterial, 16L / multiplier),
GT_Utility.getIntegratedCircuit(8))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L))
- .noFluidInputs()
- .noFluidOutputs()
.duration(baseDuration * 2 * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -783,8 +758,6 @@ public class GT_RecipeRegistrator {
GT_OreDictUnificator.get(prefix2, aMaterial, 24L / multiplier),
GT_Utility.getIntegratedCircuit(12))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt12, aMaterial, 1L))
- .noFluidInputs()
- .noFluidOutputs()
.duration(((int) (baseDuration * 2.5f)) * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -793,8 +766,6 @@ public class GT_RecipeRegistrator {
GT_OreDictUnificator.get(prefix2, aMaterial, 32L / multiplier),
GT_Utility.getIntegratedCircuit(16))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt16, aMaterial, 1L))
- .noFluidInputs()
- .noFluidOutputs()
.duration(baseDuration * 3 * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -804,8 +775,6 @@ public class GT_RecipeRegistrator {
GT_Values.RA.stdBuilder()
.itemInputs(GT_OreDictUnificator.get(prefix1, aMaterial, 1L), GT_Utility.getIntegratedCircuit(3))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L * multiplier))
- .noFluidInputs()
- .noFluidOutputs()
.duration(baseDuration * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);
@@ -815,8 +784,6 @@ public class GT_RecipeRegistrator {
GT_Values.RA.stdBuilder()
.itemInputs(GT_OreDictUnificator.get(prefix2, aMaterial, 1L), GT_Utility.getIntegratedCircuit(3))
.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 2L * multiplier))
- .noFluidInputs()
- .noFluidOutputs()
.duration(((int) (baseDuration * 0.5f)) * TICKS)
.eut(aEUt)
.addTo(sWiremillRecipes);