diff options
author | HoleFish <48403212+HoleFish@users.noreply.github.com> | 2024-03-11 18:06:51 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-11 11:06:51 +0100 |
commit | ad49276a25535ff110a3e37934f72dbea8eec258 (patch) | |
tree | 57620a84a6928bc9d01516835cf0a6ec1f30d915 /src/main/java/gregtech/common/tileentities/machines | |
parent | 34c34137ba1c888feff65b1695992d609f33a7f1 (diff) | |
download | GT5-Unofficial-ad49276a25535ff110a3e37934f72dbea8eec258.tar.gz GT5-Unofficial-ad49276a25535ff110a3e37934f72dbea8eec258.tar.bz2 GT5-Unofficial-ad49276a25535ff110a3e37934f72dbea8eec258.zip |
Add messages about the reasons for machine shutdown during processing (#2522)
* ShutDownReason setup
* implement
* fix machine not turn on
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/machines')
10 files changed, 43 insertions, 58 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java index 9bd0c80e48..16a87db11d 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java @@ -72,6 +72,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Utility; +import gregtech.api.util.shutdown.ShutDownReasonRegistry; import gregtech.common.gui.modularui.widget.AESlotWidget; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; @@ -489,7 +490,7 @@ public class GT_MetaTileEntity_Hatch_InputBus_ME extends GT_MetaTileEntity_Hatch .extractAEPower(request.getStackSize(), Actionable.MODULATE, PowerMultiplier.CONFIG); setInventorySlotContents(i + SLOT_COUNT, oldStack); if (result == null || result.getStackSize() != toExtract) { - controller.criticalStopMachine(); + controller.stopMachine(ShutDownReasonRegistry.CRITICAL_NONE); checkRecipeResult = SimpleCheckRecipeResult .ofFailurePersistOnShutdown("stocking_bus_fail_extraction"); } diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Input_ME.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Input_ME.java index 7237cd738f..a1e73519fc 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Input_ME.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Input_ME.java @@ -76,6 +76,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Utility; +import gregtech.api.util.shutdown.ShutDownReasonRegistry; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; @@ -248,7 +249,7 @@ public class GT_MetaTileEntity_Hatch_Input_ME extends GT_MetaTileEntity_Hatch_In .extractAEPower(toExtract, Actionable.MODULATE, PowerMultiplier.CONFIG); if (extractionResult == null || extractionResult.getStackSize() != toExtract) { - controller.criticalStopMachine(); + controller.stopMachine(ShutDownReasonRegistry.CRITICAL_NONE); checkRecipeResult = SimpleCheckRecipeResult .ofFailurePersistOnShutdown("stocking_hatch_fail_extraction"); } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java index 3e9238003f..ce8abe7a73 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java @@ -25,6 +25,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Utility; +import gregtech.api.util.shutdown.ShutDownReasonRegistry; public abstract class GT_MetaTileEntity_ConcreteBackfillerBase extends GT_MetaTileEntity_DrillerBase { @@ -122,7 +123,7 @@ public abstract class GT_MetaTileEntity_ConcreteBackfillerBase extends GT_MetaTi return true; } else { workState = STATE_DOWNWARD; - stopMachine(); + stopMachine(ShutDownReasonRegistry.NONE); setShutdownReason(StatCollector.translateToLocal("GT5U.gui.text.backfiller_finished")); return false; } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java index e884922710..db58a1152e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java @@ -81,6 +81,7 @@ import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gregtech.api.util.IGT_HatchAdder; +import gregtech.api.util.shutdown.ShutDownReasonRegistry; public abstract class GT_MetaTileEntity_DrillerBase extends GT_MetaTileEntity_EnhancedMultiBlockBase<GT_MetaTileEntity_DrillerBase> @@ -460,7 +461,7 @@ public abstract class GT_MetaTileEntity_DrillerBase return true; } else { workState = STATE_DOWNWARD; - stopMachine(); + stopMachine(ShutDownReasonRegistry.NONE); return false; } } @@ -488,7 +489,7 @@ public abstract class GT_MetaTileEntity_DrillerBase return true; } else { workState = STATE_DOWNWARD; - stopMachine(); + stopMachine(ShutDownReasonRegistry.NONE); return false; } } @@ -516,10 +517,10 @@ public abstract class GT_MetaTileEntity_DrillerBase setElectricityStats(); int oldYHead = yHead; if (!checkPipesAndSetYHead()) { - stopMachine(); + stopMachine(ShutDownReasonRegistry.NONE); return SimpleCheckRecipeResult.ofFailure("no_mining_pipe"); } else if (!isEnergyEnough()) { - stopMachine(); + stopMachine(ShutDownReasonRegistry.NONE); return SimpleCheckRecipeResult.ofFailure("not_enough_energy"); } putMiningPipesFromInputsInController(); diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java index 5fcb033109..7c9a1c6204 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java @@ -72,6 +72,8 @@ import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_ParallelHelper; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import gregtech.api.util.shutdown.ShutDownReason; +import gregtech.api.util.shutdown.ShutDownReasonRegistry; public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity_EnhancedMultiBlockBase<GT_MetaTileEntity_FusionComputer> @@ -397,7 +399,7 @@ public abstract class GT_MetaTileEntity_FusionComputer } } if (this.mEUStore <= 0 && mMaxProgresstime > 0) { - criticalStopMachine(); + stopMachine(ShutDownReasonRegistry.POWER_LOSS); } if (mMaxProgresstime > 0) { this.getBaseMetaTileEntity() @@ -432,7 +434,7 @@ public abstract class GT_MetaTileEntity_FusionComputer this.mEUStore = aBaseMetaTileEntity.getStoredEU(); if (checkRecipe()) { if (this.mEUStore < this.mLastRecipe.mSpecialValue + this.mEUt) { - criticalStopMachine(); + stopMachine(ShutDownReasonRegistry.POWER_LOSS); } aBaseMetaTileEntity .decreaseStoredEnergyUnits(this.mLastRecipe.mSpecialValue + this.mEUt, true); @@ -441,9 +443,9 @@ public abstract class GT_MetaTileEntity_FusionComputer if (mMaxProgresstime <= 0) mEfficiency = Math.max(0, mEfficiency - 1000); } } - } else { + } else if (aBaseMetaTileEntity.isAllowedToWork()) { this.mLastRecipe = null; - stopMachine(); + stopMachine(ShutDownReasonRegistry.STRUCTURE_INCOMPLETE); } } aBaseMetaTileEntity @@ -473,8 +475,8 @@ public abstract class GT_MetaTileEntity_FusionComputer } @Override - public void stopMachine() { - super.stopMachine(); + public void stopMachine(@NotNull ShutDownReason reason) { + super.stopMachine(reason); turnCasingActive(false); } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java index 3f16bb3f0e..54ad5939f8 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java @@ -51,6 +51,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.util.GT_Utility; import gregtech.api.util.LightingHelper; +import gregtech.api.util.shutdown.ShutDownReasonRegistry; import gregtech.common.items.GT_MetaGenerated_Tool_01; import gregtech.common.render.GT_RenderUtil; @@ -262,7 +263,7 @@ public abstract class GT_MetaTileEntity_LargeTurbine && (controllerSlot == null || !(controllerSlot.getItem() instanceof GT_MetaGenerated_Tool) || controllerSlot.getItemDamage() < 170 || controllerSlot.getItemDamage() > 179)) { - stopMachine(); + stopMachine(ShutDownReasonRegistry.NO_TURBINE); return CheckRecipeResultRegistry.NO_TURBINE_FOUND; } ArrayList<FluidStack> tFluids = getStoredFluids(); @@ -293,7 +294,7 @@ public abstract class GT_MetaTileEntity_LargeTurbine flowMultipliers[2] = GT_MetaGenerated_Tool.getPrimaryMaterial(controllerSlot).mPlasmaMultiplier; if (optFlow <= 0 || baseEff <= 0) { - stopMachine(); // in case the turbine got removed + stopMachine(ShutDownReasonRegistry.NONE); // in case the turbine got removed return CheckRecipeResultRegistry.NO_FUEL_FOUND; } } else { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java index 5f4f7d83fa..2ecc79cd3b 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java @@ -34,6 +34,7 @@ import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import gregtech.api.util.shutdown.ShutDownReasonRegistry; import gregtech.common.items.GT_MetaGenerated_Tool_01; public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_LargeTurbine { @@ -231,7 +232,7 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar && (controllerSlot == null || !(controllerSlot.getItem() instanceof GT_MetaGenerated_Tool) || controllerSlot.getItemDamage() < 170 || controllerSlot.getItemDamage() > 179)) { - stopMachine(); + stopMachine(ShutDownReasonRegistry.NO_TURBINE); return CheckRecipeResultRegistry.NO_TURBINE_FOUND; } ArrayList<FluidStack> tFluids = getStoredFluids(); @@ -258,16 +259,16 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar flowMultipliers[0] = GT_MetaGenerated_Tool.getPrimaryMaterial(controllerSlot).mSteamMultiplier; flowMultipliers[1] = GT_MetaGenerated_Tool.getPrimaryMaterial(controllerSlot).mGasMultiplier; flowMultipliers[2] = GT_MetaGenerated_Tool.getPrimaryMaterial(controllerSlot).mPlasmaMultiplier; + + if (optFlow <= 0 || baseEff <= 0) { + stopMachine(ShutDownReasonRegistry.NONE); // in case the turbine got removed + return CheckRecipeResultRegistry.NO_FUEL_FOUND; + } } else { counter++; } } - if (optFlow <= 0 || baseEff <= 0) { - stopMachine(); // in case the turbine got removed - return CheckRecipeResultRegistry.NO_FUEL_FOUND; - } - int newPower = fluidIntoPower(tFluids, optFlow, baseEff, overflowMultiplier, flowMultipliers); // How much the // turbine should // be producing diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java index 800e466e38..0f6fa77197 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java @@ -29,8 +29,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import org.jetbrains.annotations.NotNull; @@ -91,6 +89,7 @@ import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_ParallelHelper; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import gregtech.api.util.shutdown.ShutDownReasonRegistry; import gregtech.common.blocks.GT_Block_Casings8; @SuppressWarnings("SpellCheckingInspection") @@ -588,32 +587,15 @@ public class GT_MetaTileEntity_PCBFactory extends @Override public boolean onRunningTick(ItemStack aStack) { if (!super.onRunningTick(aStack)) { - criticalStopMachine(); return false; } if (ticker % 20 == 0) { - if (mOCTier1) { - if (mCoolantInputHatch == null) { - criticalStopMachine(); - return false; - } - FluidStack tFluid = GT_ModHandler.getDistilledWater(COOLANT_CONSUMED_PER_SEC); - if (!drain(mCoolantInputHatch, tFluid, true)) { - criticalStopMachine(); - return false; - } - } - - if (mOCTier2) { - if (mCoolantInputHatch == null) { - criticalStopMachine(); - return false; - } - Fluid superCoolant = FluidRegistry.getFluid("supercoolant"); - FluidStack tFluid = new FluidStack(superCoolant, COOLANT_CONSUMED_PER_SEC); + if (!isNoOC()) { + FluidStack tFluid = mOCTier1 ? GT_ModHandler.getDistilledWater(COOLANT_CONSUMED_PER_SEC) + : Materials.SuperCoolant.getFluid(COOLANT_CONSUMED_PER_SEC); if (!drain(mCoolantInputHatch, tFluid, true)) { - criticalStopMachine(); + stopMachine(ShutDownReasonRegistry.outOfFluid(tFluid)); return false; } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java index 19ce347d9f..bce4502a73 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java @@ -804,18 +804,11 @@ public class GT_MetaTileEntity_PlasmaForge extends @Override public boolean onRunningTick(ItemStack aStack) { - if (this.lEUt > 0) { - addEnergyOutput((this.lEUt * mEfficiency) / 10000); - return true; - } - if (this.lEUt < 0) { - if (!drainEnergyInput(getActualEnergyUsage())) { - resetDiscount(); - criticalStopMachine(); - return false; - } + boolean result = super.onRunningTick(aStack); + if (!result) { + resetDiscount(); } - return true; + return result; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java b/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java index 69b8f1f7b1..2977fe6dcd 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java @@ -71,6 +71,8 @@ import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.shutdown.ShutDownReason; +import gregtech.api.util.shutdown.ShutDownReasonRegistry; import gregtech.common.items.GT_TierDrone; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; @@ -226,9 +228,9 @@ public class GT_MetaTileEntity_DroneCentre extends } @Override - public void stopMachine() { + public void stopMachine(@NotNull ShutDownReason reason) { destroyRenderBlock(); - super.stopMachine(); + super.stopMachine(reason); } @Override @@ -242,7 +244,7 @@ public class GT_MetaTileEntity_DroneCentre extends default -> 1; } == 0) { droneLevel = 0; - if (!tryConsumeDrone()) criticalStopMachine(); + if (!tryConsumeDrone()) stopMachine(ShutDownReasonRegistry.outOfStuff("Any Drone", 1)); } } // Clean invalid connections every 4 seconds |