diff options
author | Yang Xizhi <60341015+GlodBlock@users.noreply.github.com> | 2023-01-08 16:33:37 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-08 09:33:37 +0100 |
commit | 8b3638696f36d03ccdf7fd0b4ad427078a6eca3e (patch) | |
tree | 156700109ee98204b3ade3a61e91504bc868f7e9 /src | |
parent | 2ac155a5c95b0d55181b111a42b4ffc55b495b4d (diff) | |
download | GT5-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.java | 4 | ||||
-rw-r--r-- | src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java | 22 |
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; |