diff options
author | HoleFish <48403212+HoleFish@users.noreply.github.com> | 2024-11-05 02:46:19 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-04 18:46:19 +0000 |
commit | 1d60be1d549c7dfd0801d10d3d3d00854b256f2d (patch) | |
tree | fc0491f9ab4bc3151ad5fd2e5e1420aa62266f03 /src | |
parent | 1ed8c30ca975cb114218929eb0655d2fd48b3085 (diff) | |
download | GT5-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')
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; } } |