diff options
Diffstat (limited to 'src/main/java/goodgenerator/blocks/tileEntity')
-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; |