From a169dda9b44f6740a4550d629269526d355578bd Mon Sep 17 00:00:00 2001 From: miozune Date: Wed, 3 Aug 2022 17:05:35 +0900 Subject: Implement void protection for TGS (#261) --- .../base/GregtechMeta_MultiBlockBase.java | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/api') diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java index 4a509f07fe..af807d190b 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java @@ -404,11 +404,8 @@ public abstract class GregtechMeta_MultiBlockBase 16) { if (aRecipe == null) { @@ -416,18 +413,24 @@ public abstract class GregtechMeta_MultiBlockBase 16) { if (aAllow16SlotWithoutCheck) { - return aParallelRecipes; + return aParallelRecipes; } else { - // Do nothing, we want to check this recipe properly. + // Do nothing, we want to check this recipe properly. } - } - } + } + } + return canBufferOutputs(aRecipe.mOutputs, aRecipe.mFluidOutputs, aParallelRecipes); + } + + public int canBufferOutputs(ItemStack[] aItemOutputs, FluidStack[] aFluidOutputs, int aParallelRecipes) { + if (mVoidExcess) return aParallelRecipes; + log("Determining if we have space to buffer outputs. Parallel: "+aParallelRecipes); // Do we even need to check for item outputs? - boolean aDoesOutputItems = aRecipe.mOutputs.length > 0; + boolean aDoesOutputItems = aItemOutputs.length > 0; // Do we even need to check for fluid outputs? - boolean aDoesOutputFluids = aRecipe.mFluidOutputs.length > 0; + boolean aDoesOutputFluids = aFluidOutputs.length > 0; @@ -447,7 +450,7 @@ public abstract class GregtechMeta_MultiBlockBase> aItemMap = new AutoMap>(); - AutoMap aOutputs = new AutoMap(aRecipe.mOutputs); + AutoMap aOutputs = new AutoMap(aItemOutputs); for (final GT_MetaTileEntity_Hatch_OutputBus tBus : this.mOutputBusses) { if (!isValidMetaTileEntity(tBus)) { @@ -606,7 +609,7 @@ public abstract class GregtechMeta_MultiBlockBase aOutputFluids = new ArrayList(); // Ugly ass boxing - aOutputFluids.addAll(new AutoMap(aRecipe.mFluidOutputs)); + aOutputFluids.addAll(new AutoMap(aFluidOutputs)); // Iterate the Hatches, updating their 'stored' data. //for (Triplet aHatchData : aOutputHatches) { for (int i = 0;i