aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/boilers
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2021-04-13 18:10:02 +0800
committerGlease <4586901+Glease@users.noreply.github.com>2021-04-13 18:10:02 +0800
commit8db285394a46d7cce2c4066f549db71a52b92252 (patch)
treeb29f035db33539a1a500f16f51b8acad7bb12577 /src/main/java/gregtech/common/tileentities/boilers
parent370df22bb0f4ad8ede60a2b84c2c17b216f5d66f (diff)
downloadGT5-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.java30
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java19
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;
}