From c3000dbf6b3adcc53bcbb4b889ed54aed957fd42 Mon Sep 17 00:00:00 2001 From: minecraft7771 Date: Mon, 29 Aug 2022 09:50:49 +0200 Subject: Added a timeout to TT MB base so that machines dont stop after a world reload --- .../multi/GT_MetaTileEntity_EM_computer.java | 1 + .../base/GT_MetaTileEntity_MultiblockBase_EM.java | 33 ++++++++++++++++++---- 2 files changed, 28 insertions(+), 6 deletions(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java index 09995604aa..08eb16dd53 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java @@ -189,6 +189,7 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB super.loadNBTData(aNBT); if (availableData != null) { availableData.set(aNBT.getDouble("computation")); + eAvailableData = (long)availableData.get(); } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java index b071196b14..8cd1b5a396 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java @@ -118,6 +118,12 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt // data required to operate protected long eRequiredData = 0; + // Counter for the computation timeout. Will be initialized one to the max time and then only decreased. + protected int eComputationTimeout = MAX_COMPUTATION_TIMEOUT; + + // Max timeout of computation in ticks + protected static int MAX_COMPUTATION_TIMEOUT = 40; + // storage for output EM that will be auto handled in case of failure to finish recipe // if you succed to use a recipe - be sure to output EM from outputEM to hatches in the output method protected EMInstanceStackMap[] outputEM; @@ -1214,20 +1220,24 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt public boolean onRunningTickCheck_EM(ItemStack aStack) { if (eRequiredData > eAvailableData) { - if (energyFlowOnRunningTick_EM(aStack, false)) { - stopMachine(); + if (!checkComputationTimeout()) { + if (energyFlowOnRunningTick_EM(aStack, false)) { + stopMachine(); + } + return false; } - return false; } return energyFlowOnRunningTick_EM(aStack, true); } public boolean onRunningTickCheck(ItemStack aStack) { if (eRequiredData > eAvailableData) { - if (energyFlowOnRunningTick(aStack, false)) { - stopMachine(); + if (!checkComputationTimeout()) { + if (energyFlowOnRunningTick(aStack, false)) { + stopMachine(); + } + return false; } - return false; } return energyFlowOnRunningTick(aStack, true); } @@ -2881,4 +2891,15 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt return adder; } } + + /** Check if the computation timeout is still active + * + * @return True if the timeout is still active or false if the machine should fail + */ + protected boolean checkComputationTimeout() { + if (eComputationTimeout > 0) { + return --eComputationTimeout > 0; + } + return false; + } } -- cgit From 20b9395ab0804f18f17d876ab13cc4bb728107e7 Mon Sep 17 00:00:00 2001 From: minecraft7771 Date: Mon, 29 Aug 2022 10:12:46 +0200 Subject: Applied spotless --- .../thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java index 08eb16dd53..ad0fe07447 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java @@ -189,7 +189,7 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB super.loadNBTData(aNBT); if (availableData != null) { availableData.set(aNBT.getDouble("computation")); - eAvailableData = (long)availableData.get(); + eAvailableData = (long) availableData.get(); } } -- cgit From 9276a180d1c7514b38bfe72b8d40a3869a1980ab Mon Sep 17 00:00:00 2001 From: minecraft7771 Date: Thu, 1 Sep 2022 12:51:33 +0200 Subject: Increased timeout --- .../metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java index 8cd1b5a396..31e7d3e010 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java @@ -122,7 +122,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt protected int eComputationTimeout = MAX_COMPUTATION_TIMEOUT; // Max timeout of computation in ticks - protected static int MAX_COMPUTATION_TIMEOUT = 40; + protected static int MAX_COMPUTATION_TIMEOUT = 100; // storage for output EM that will be auto handled in case of failure to finish recipe // if you succed to use a recipe - be sure to output EM from outputEM to hatches in the output method -- cgit