aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYang Xizhi <60341015+GlodBlock@users.noreply.github.com>2023-01-08 16:33:37 +0800
committerGitHub <noreply@github.com>2023-01-08 09:33:37 +0100
commit8b3638696f36d03ccdf7fd0b4ad427078a6eca3e (patch)
tree156700109ee98204b3ade3a61e91504bc868f7e9 /src
parent2ac155a5c95b0d55181b111a42b4ffc55b495b4d (diff)
downloadGT5-Unofficial-8b3638696f36d03ccdf7fd0b4ad427078a6eca3e.tar.gz
GT5-Unofficial-8b3638696f36d03ccdf7fd0b4ad427078a6eca3e.tar.bz2
GT5-Unofficial-8b3638696f36d03ccdf7fd0b4ad427078a6eca3e.zip
make sc turbine won't explode when overvoltaged (#128)
* make sc turbine won't explode when overvoltaged * cal max power once * request change
Diffstat (limited to 'src')
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/SupercriticalFluidTurbine.java4
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java22
2 files changed, 24 insertions, 2 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/SupercriticalFluidTurbine.java b/src/main/java/goodgenerator/blocks/tileEntity/SupercriticalFluidTurbine.java
index fcf842dfd8..a1fddba696 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/SupercriticalFluidTurbine.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/SupercriticalFluidTurbine.java
@@ -84,6 +84,10 @@ public class SupercriticalFluidTurbine extends GT_MetaTileEntity_LargeTurbineBas
tEU = Math.max(1, GT_Utility.safeInt((long) tEU * (long) aBaseEff / 100L));
}
+ if (tEU > maxPower) {
+ tEU = GT_Utility.safeInt(maxPower);
+ }
+
return tEU;
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
index 0e44718e9e..41a471e2fd 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
@@ -80,6 +80,7 @@ public abstract class GT_MetaTileEntity_LargeTurbineBase
protected int storedFluid = 0;
protected int counter = 0;
protected boolean looseFit = false;
+ protected long maxPower = 0;
public GT_MetaTileEntity_LargeTurbineBase(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
@@ -101,9 +102,14 @@ public abstract class GT_MetaTileEntity_LargeTurbineBase
@Override
public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
- return checkPiece(STRUCTURE_PIECE_MAIN, 2, 2, 1)
+ maxPower = 0;
+ if (checkPiece(STRUCTURE_PIECE_MAIN, 2, 2, 1)
&& mMaintenanceHatches.size() == 1
- && mMufflerHatches.isEmpty() == (getPollutionPerTick(null) == 0);
+ && mMufflerHatches.isEmpty() == (getPollutionPerTick(null) == 0)) {
+ maxPower = getMaximumOutput();
+ return true;
+ }
+ return false;
}
public abstract Block getCasingBlock();
@@ -216,6 +222,18 @@ public abstract class GT_MetaTileEntity_LargeTurbineBase
return true;
}
+ public long getMaximumOutput() {
+ long aTotal = 0;
+ for (GT_MetaTileEntity_Hatch_Dynamo aDynamo : mDynamoHatches) {
+ if (isValidMetaTileEntity(aDynamo)) {
+ long aVoltage = aDynamo.maxEUOutput();
+ aTotal = aDynamo.maxAmperesOut() * aVoltage;
+ break;
+ }
+ }
+ return aTotal;
+ }
+
@Override
public String[] getInfoData() {
int mPollutionReduction = 0;