diff options
author | miozune <miozune@gmail.com> | 2023-12-12 19:16:02 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-12 11:16:02 +0100 |
commit | fc36b70902a71df3df2c1b24f6cd0f2af1876322 (patch) | |
tree | 13ff2be685608b0863d7e6002bda05f2a59e7842 /src/main/java/goodgenerator | |
parent | a48003749fdd10103635a2e646cfbe4f60dafd41 (diff) | |
download | GT5-Unofficial-fc36b70902a71df3df2c1b24f6cd0f2af1876322.tar.gz GT5-Unofficial-fc36b70902a71df3df2c1b24f6cd0f2af1876322.tar.bz2 GT5-Unofficial-fc36b70902a71df3df2c1b24f6cd0f2af1876322.zip |
Fix crash with Nq Gen if coolant has just been depleted (#226)
Diffstat (limited to 'src/main/java/goodgenerator')
-rw-r--r-- | src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java index 0d3f48ac4a..a5b0f731b9 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java @@ -246,7 +246,7 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM // If there's no startRecipeProcessing, ME input hatch wouldn't work startRecipeProcessing(); FluidStack[] input = getStoredFluids().toArray(new FluidStack[0]); - int eff = 100, time = 1; + int time = 1; if (LiquidAirConsumptionPerSecond != 0 && !consumeFuel(Materials.LiquidAir.getFluid(LiquidAirConsumptionPerSecond), input)) { this.mEUt = 0; @@ -255,7 +255,7 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM endRecipeProcessing(); return true; } - if (getCoolant(input, true) != null) eff = getCoolant(input, false).getValue(); + int eff = consumeCoolant(input); if (consumeFuel(lockedFluid, input)) time = times; this.mEUt = basicOutput * eff * time / 100; this.trueEff = eff; @@ -309,17 +309,23 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM return null; } - public Pair<FluidStack, Integer> getCoolant(FluidStack[] input, boolean isConsume) { + /** + * Finds valid coolant from given inputs and consumes if found. + * + * @param input Fluid inputs. + * @return Efficiency of the coolant. 100 if not found. + */ + private int consumeCoolant(FluidStack[] input) { for (Pair<FluidStack, Integer> fluidPair : coolant) { FluidStack tFluid = fluidPair.getKey(); for (FluidStack inFluid : input) { if (inFluid != null && inFluid.isFluidEqual(tFluid) && inFluid.amount >= tFluid.amount) { - if (isConsume) inFluid.amount -= tFluid.amount; - return fluidPair; + inFluid.amount -= tFluid.amount; + return fluidPair.getValue(); } } } - return null; + return 100; } public void addAutoEnergy(long outputPower) { |