aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-12-12 19:16:02 +0900
committerGitHub <noreply@github.com>2023-12-12 11:16:02 +0100
commitfc36b70902a71df3df2c1b24f6cd0f2af1876322 (patch)
tree13ff2be685608b0863d7e6002bda05f2a59e7842 /src/main/java/goodgenerator
parenta48003749fdd10103635a2e646cfbe4f60dafd41 (diff)
downloadGT5-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.java18
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) {