aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/machines
diff options
context:
space:
mode:
authorHoleFish <48403212+HoleFish@users.noreply.github.com>2024-03-11 18:06:51 +0800
committerGitHub <noreply@github.com>2024-03-11 11:06:51 +0100
commitad49276a25535ff110a3e37934f72dbea8eec258 (patch)
tree57620a84a6928bc9d01516835cf0a6ec1f30d915 /src/main/java/gregtech/common/tileentities/machines
parent34c34137ba1c888feff65b1695992d609f33a7f1 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java3
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Input_ME.java3
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java3
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java9
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java14
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java13
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java28
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java15
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java8
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