aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHoleFish <48403212+HoleFish@users.noreply.github.com>2024-11-05 02:46:19 +0800
committerGitHub <noreply@github.com>2024-11-04 18:46:19 +0000
commit1d60be1d549c7dfd0801d10d3d3d00854b256f2d (patch)
treefc0491f9ab4bc3151ad5fd2e5e1420aa62266f03 /src
parent1ed8c30ca975cb114218929eb0655d2fd48b3085 (diff)
downloadGT5-Unofficial-1d60be1d549c7dfd0801d10d3d3d00854b256f2d.tar.gz
GT5-Unofficial-1d60be1d549c7dfd0801d10d3d3d00854b256f2d.tar.bz2
GT5-Unofficial-1d60be1d549c7dfd0801d10d3d3d00854b256f2d.zip
Fix wrong shutdown duration of tectech multi & cleanup (#3424)
Diffstat (limited to 'src')
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/MTELargeFusionComputer.java10
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/MTEEnhancedMultiBlockBase.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/MTEFusionComputer.java1
-rw-r--r--src/main/java/gtnhlanth/common/tileentity/MTEDissolutionTank.java3
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/base/TTMultiblockBase.java9
5 files changed, 15 insertions, 10 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/MTELargeFusionComputer.java b/src/main/java/goodgenerator/blocks/tileEntity/base/MTELargeFusionComputer.java
index f2302511fb..36b1142732 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/MTELargeFusionComputer.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/MTELargeFusionComputer.java
@@ -63,6 +63,7 @@ import gregtech.api.util.GTUtility;
import gregtech.api.util.HatchElementBuilder;
import gregtech.api.util.OverclockCalculator;
import gregtech.api.util.ParallelHelper;
+import gregtech.api.util.shutdown.ShutDownReasonRegistry;
import gregtech.common.tileentities.machines.IDualInputHatch;
import gregtech.common.tileentities.machines.multi.drone.MTEHatchDroneDownLink;
import tectech.thing.metaTileEntity.hatch.MTEHatchEnergyMulti;
@@ -294,7 +295,7 @@ public abstract class MTELargeFusionComputer extends MTETooltipMultiBlockBaseEM
if (mStartUpCheck < 0) {
if (mMachine) {
if (aBaseMetaTileEntity.getStoredEU() <= 0 && mMaxProgresstime > 0) {
- criticalStopMachine();
+ stopMachine(ShutDownReasonRegistry.POWER_LOSS);
}
long energyLimit = getSingleHatchPower();
@@ -325,6 +326,7 @@ public abstract class MTELargeFusionComputer extends MTETooltipMultiBlockBaseEM
mProgresstime = 0;
mMaxProgresstime = 0;
mEfficiencyIncrease = 0;
+ mLastWorkingTick = mTotalRunTime;
para = 0;
if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe();
}
@@ -338,7 +340,7 @@ public abstract class MTELargeFusionComputer extends MTETooltipMultiBlockBaseEM
< this.mLastRecipe.mSpecialValue + this.lEUt) {
mMaxProgresstime = 0;
turnCasingActive(false);
- criticalStopMachine();
+ stopMachine(ShutDownReasonRegistry.POWER_LOSS);
}
getBaseMetaTileEntity()
.decreaseStoredEnergyUnits(this.mLastRecipe.mSpecialValue + this.lEUt, false);
@@ -347,10 +349,10 @@ public abstract class MTELargeFusionComputer extends MTETooltipMultiBlockBaseEM
if (mMaxProgresstime <= 0) mEfficiency = Math.max(0, mEfficiency - 1000);
}
}
- } else {
+ } else if (aBaseMetaTileEntity.isAllowedToWork()) {
turnCasingActive(false);
this.mLastRecipe = null;
- stopMachine();
+ stopMachine(ShutDownReasonRegistry.STRUCTURE_INCOMPLETE);
}
}
aBaseMetaTileEntity
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/MTEEnhancedMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/MTEEnhancedMultiBlockBase.java
index a576295f07..512552e9f0 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/MTEEnhancedMultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/MTEEnhancedMultiBlockBase.java
@@ -54,7 +54,7 @@ public abstract class MTEEnhancedMultiBlockBase<T extends MTEEnhancedMultiBlockB
@Override
public void setExtendedFacing(ExtendedFacing newExtendedFacing) {
if (mExtendedFacing != newExtendedFacing) {
- if (mMachine) stopMachine(ShutDownReasonRegistry.STRUCTURE_INCOMPLETE);
+ if (mMachine && isAllowedToWork()) stopMachine(ShutDownReasonRegistry.STRUCTURE_INCOMPLETE);
mExtendedFacing = newExtendedFacing;
final IGregTechTileEntity base = getBaseMetaTileEntity();
mMachine = false;
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEFusionComputer.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEFusionComputer.java
index ea9036577a..66f78a09db 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEFusionComputer.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEFusionComputer.java
@@ -422,6 +422,7 @@ public abstract class MTEFusionComputer extends MTEEnhancedMultiBlockBase<MTEFus
mProgresstime = 0;
mMaxProgresstime = 0;
mEfficiencyIncrease = 0;
+ mLastWorkingTick = mTotalRunTime;
if (mOutputFluids != null && mOutputFluids.length > 0) {
try {
GTMod.achievements.issueAchivementHatchFluid(
diff --git a/src/main/java/gtnhlanth/common/tileentity/MTEDissolutionTank.java b/src/main/java/gtnhlanth/common/tileentity/MTEDissolutionTank.java
index 1031d05dba..59b76c502b 100644
--- a/src/main/java/gtnhlanth/common/tileentity/MTEDissolutionTank.java
+++ b/src/main/java/gtnhlanth/common/tileentity/MTEDissolutionTank.java
@@ -48,6 +48,7 @@ import gregtech.api.recipe.check.SimpleCheckRecipeResult;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GTRecipe;
import gregtech.api.util.MultiblockTooltipBuilder;
+import gregtech.api.util.shutdown.ShutDownReasonRegistry;
import gtnhlanth.api.recipe.LanthanidesRecipeMaps;
import gtnhlanth.util.DescTextLocalization;
@@ -113,7 +114,7 @@ public class MTEDissolutionTank extends MTEEnhancedMultiBlockBase<MTEDissolution
@Override
protected CheckRecipeResult onRecipeStart(@Nonnull GTRecipe recipe) {
if (!checkRatio(recipe, Arrays.asList(inputFluids))) {
- criticalStopMachine();
+ stopMachine(ShutDownReasonRegistry.CRITICAL_NONE);
return SimpleCheckRecipeResult.ofFailurePersistOnShutdown("dissolution_ratio");
}
return CheckRecipeResultRegistry.SUCCESSFUL;
diff --git a/src/main/java/tectech/thing/metaTileEntity/multi/base/TTMultiblockBase.java b/src/main/java/tectech/thing/metaTileEntity/multi/base/TTMultiblockBase.java
index 5020533663..5a4bc93910 100644
--- a/src/main/java/tectech/thing/metaTileEntity/multi/base/TTMultiblockBase.java
+++ b/src/main/java/tectech/thing/metaTileEntity/multi/base/TTMultiblockBase.java
@@ -851,7 +851,7 @@ public abstract class TTMultiblockBase extends MTEExtendedPowerMultiBlockBase<TT
for (MTEHatchDataOutput data : eOutputData) {
data.q = null;
}
-
+ mLastWorkingTick = mTotalRunTime;
mOutputItems = null;
mOutputFluids = null;
mEfficiency = 0;
@@ -1113,6 +1113,7 @@ public abstract class TTMultiblockBase extends MTEExtendedPowerMultiBlockBase<TT
mProgresstime = 0;
mMaxProgresstime = 0;
mEfficiencyIncrease = 0;
+ mLastWorkingTick = mTotalRunTime;
if (aBaseMetaTileEntity.isAllowedToWork()) {
if (checkRecipe()) {
@@ -1148,10 +1149,10 @@ public abstract class TTMultiblockBase extends MTEExtendedPowerMultiBlockBase<TT
updateSlots();
} // else notAllowedToWork_stopMachine_EM(); //it is already stopped here
}
- } else { // not repaired
+ } else if (aBaseMetaTileEntity.isAllowedToWork()) { // not repaired
stopMachine(ShutDownReasonRegistry.NO_REPAIR);
}
- } else { // not complete
+ } else if (aBaseMetaTileEntity.isAllowedToWork()) { // not complete
stopMachine(ShutDownReasonRegistry.STRUCTURE_INCOMPLETE);
}
}
@@ -1461,7 +1462,7 @@ public abstract class TTMultiblockBase extends MTEExtendedPowerMultiBlockBase<TT
getPowerFlow(),
getPowerFlow() * getMaxEfficiency(aStack) / Math.max(1000L, mEfficiency),
eAmpereFlow)) {
- criticalStopMachine();
+ stopMachine(ShutDownReasonRegistry.POWER_LOSS);
return false;
}
}