diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2021-04-13 18:10:02 +0800 |
---|---|---|
committer | Glease <4586901+Glease@users.noreply.github.com> | 2021-04-13 18:10:02 +0800 |
commit | 8db285394a46d7cce2c4066f549db71a52b92252 (patch) | |
tree | b29f035db33539a1a500f16f51b8acad7bb12577 /src/main/java/gregtech/common/tileentities/boilers | |
parent | 370df22bb0f4ad8ede60a2b84c2c17b216f5d66f (diff) | |
download | GT5-Unofficial-8db285394a46d7cce2c4066f549db71a52b92252.tar.gz GT5-Unofficial-8db285394a46d7cce2c4066f549db71a52b92252.tar.bz2 GT5-Unofficial-8db285394a46d7cce2c4066f549db71a52b92252.zip |
Fix solar boiler outputting to wrong direction
Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/boilers')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java | 30 | ||||
-rw-r--r-- | src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java | 19 |
2 files changed, 25 insertions, 24 deletions
diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java index 9c52df7986..a2b357e302 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java @@ -284,20 +284,24 @@ public abstract class GT_MetaTileEntity_Boiler extends GT_MetaTileEntity_BasicTa return false; } - private void pushSteamToInventories(IGregTechTileEntity aBaseMetaTileEntity) { + protected final void pushSteamToSide(IGregTechTileEntity aBaseMetaTileEntity, int aSide) { + IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide((byte) aSide); + if (tTileEntity == null) + return; + FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(aSide), Math.max(1, this.mSteam.amount / 2), false); + if (tDrained == null) + return; + int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tDrained, false); + if (tFilledAmount <= 0) + return; + tTileEntity.fill(ForgeDirection.getOrientation(aSide).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(aSide), tFilledAmount, true), true); + } + + protected void pushSteamToInventories(IGregTechTileEntity aBaseMetaTileEntity) { for (int i = 1; (this.mSteam != null) && (i < 6); i++) { if (i == aBaseMetaTileEntity.getFrontFacing()) continue; - IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide((byte) i); - if (tTileEntity == null) - continue; - FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); - if (tDrained == null) - continue; - int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); - if (tFilledAmount <= 0) - continue; - tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); + pushSteamToSide(aBaseMetaTileEntity, i); } } @@ -347,6 +351,10 @@ public abstract class GT_MetaTileEntity_Boiler extends GT_MetaTileEntity_BasicTa return 100; } + protected boolean isOutputToFront() { + return false; + } + protected abstract int getPollution(); @Override diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java index e7b318d27d..c356e4ee98 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java @@ -93,7 +93,7 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler { + " Hot time: " + EnumChatFormatting.RED + GT_Utility.formatNumbers(this.mRunTime*25/20)+EnumChatFormatting.RESET+" s", "Min output: " + EnumChatFormatting.RED + GT_Utility.formatNumbers(this.basicMaxOuput*20/25)+EnumChatFormatting.RESET+ " L/s" + " Max output: " + EnumChatFormatting.RED + GT_Utility.formatNumbers(this.basicOutput*20/25)+EnumChatFormatting.RESET+" L/s", - "Current Output: " + EnumChatFormatting.YELLOW + GT_Utility.formatNumbers(getCalcificationOutput()*20/25) +EnumChatFormatting.RESET+" L/s"}; + "Current Output: " + EnumChatFormatting.YELLOW + GT_Utility.formatNumbers(getProductionPerSecond()*20/25) +EnumChatFormatting.RESET+" L/s"}; } @Override @@ -108,18 +108,6 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler { // Calcification start time is 43200*25/20=54,000s or 15 hours of game time. static final int CALCIFICATION_TIME = 43200; - - public int getCalcificationOutput() { // Returns how much output the boiler can do. - if (this.mTemperature < 100 ) { - return 0; - } - if (this.mRunTime > CALCIFICATION_TIME) { - // Calcification takes about 2/3 CALCIFICATION_TIME to completely calcify on basic solar. For HP solar, it takes about 2x CALCIFICATION_TIME - return Math.max(this.basicMaxOuput, this.basicOutput - ((this.mRunTime - CALCIFICATION_TIME) / (CALCIFICATION_TIME/150))); // Every 288*25 ticks, or 6 minutes, lose 1 L output. - } else { - return this.basicOutput; - } - } @Override protected void produceSteam(int aAmount) { @@ -128,6 +116,11 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler { } @Override + protected void pushSteamToInventories(IGregTechTileEntity aBaseMetaTileEntity) { + pushSteamToSide(aBaseMetaTileEntity, aBaseMetaTileEntity.getFrontFacing()); + } + + @Override protected int getPollution() { return 0; } |