diff options
Diffstat (limited to 'src/main/java/gregtech/api/util')
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); |