aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2024-04-09 02:14:17 +0800
committerGitHub <noreply@github.com>2024-04-08 20:14:17 +0200
commit7bae638b3022249a048225fbb807948f9840d679 (patch)
treedb4201d088d9950baf0fb3ef26d34925e77b85b7
parentb08d04847fafcc6f2086326adce653170423babc (diff)
downloadGT5-Unofficial-7bae638b3022249a048225fbb807948f9840d679.tar.gz
GT5-Unofficial-7bae638b3022249a048225fbb807948f9840d679.tar.bz2
GT5-Unofficial-7bae638b3022249a048225fbb807948f9840d679.zip
improve robustness of me inputs (#2556)
basically, always flush the cached info regardless of whether a GridAccessException has happened. also a bit more checking over whether the ME network is accessible
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java8
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Input_ME.java35
2 files changed, 27 insertions, 16 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 91d1355869..a99ec29822 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
@@ -397,7 +397,7 @@ public class GT_MetaTileEntity_Hatch_InputBus_ME extends GT_MetaTileEntity_Hatch
if (aIndex == getCircuitSlot() || aIndex == getManualSlot()) return mInventory[aIndex];
if (mInventory[aIndex] != null) {
AENetworkProxy proxy = getProxy();
- if (proxy == null) {
+ if (proxy == null || !proxy.isActive()) {
return null;
}
try {
@@ -495,7 +495,11 @@ public class GT_MetaTileEntity_Hatch_InputBus_ME extends GT_MetaTileEntity_Hatch
checkRecipeResult = SimpleCheckRecipeResult
.ofFailurePersistOnShutdown("stocking_bus_fail_extraction");
}
- } catch (final GridAccessException ignored) {}
+ } catch (final GridAccessException ignored) {
+ controller.stopMachine(ShutDownReasonRegistry.CRITICAL_NONE);
+ checkRecipeResult = SimpleCheckRecipeResult
+ .ofFailurePersistOnShutdown("stocking_hatch_fail_extraction");
+ }
}
savedStackSizes[i] = 0;
shadowInventory[i] = null;
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 20be0f0005..b8a2c78763 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
@@ -234,14 +234,14 @@ public class GT_MetaTileEntity_Hatch_Input_ME extends GT_MetaTileEntity_Hatch_In
CheckRecipeResult checkRecipeResult = CheckRecipeResultRegistry.SUCCESSFUL;
AENetworkProxy proxy = getProxy();
- try {
- IMEMonitor<IAEFluidStack> sg = proxy.getStorage()
- .getFluidInventory();
+ for (int i = 0; i < SLOT_COUNT; ++i) {
+ FluidStack oldStack = shadowStoredFluids[i];
+ int toExtract = savedStackSizes[i] - (oldStack != null ? oldStack.amount : 0);
+ if (toExtract <= 0) continue;
- for (int i = 0; i < SLOT_COUNT; ++i) {
- FluidStack oldStack = shadowStoredFluids[i];
- int toExtract = savedStackSizes[i] - (oldStack != null ? oldStack.amount : 0);
- if (toExtract <= 0) continue;
+ try {
+ IMEMonitor<IAEFluidStack> sg = proxy.getStorage()
+ .getFluidInventory();
IAEFluidStack request = AEFluidStack.create(storedFluids[i]);
request.setStackSize(toExtract);
@@ -254,14 +254,16 @@ public class GT_MetaTileEntity_Hatch_Input_ME extends GT_MetaTileEntity_Hatch_In
checkRecipeResult = SimpleCheckRecipeResult
.ofFailurePersistOnShutdown("stocking_hatch_fail_extraction");
}
- shadowStoredFluids[i] = null;
- savedStackSizes[i] = 0;
- if (storedInformationFluids[i] != null && storedInformationFluids[i].amount <= 0) {
- storedInformationFluids[i] = null;
- }
+ } catch (GridAccessException ignored) {
+ controller.stopMachine(ShutDownReasonRegistry.CRITICAL_NONE);
+ checkRecipeResult = SimpleCheckRecipeResult
+ .ofFailurePersistOnShutdown("stocking_hatch_fail_extraction");
+ }
+ shadowStoredFluids[i] = null;
+ savedStackSizes[i] = 0;
+ if (storedInformationFluids[i] != null && storedInformationFluids[i].amount <= 0) {
+ storedInformationFluids[i] = null;
}
- } catch (GridAccessException e) {
- throw new RuntimeException(e);
}
processingRecipe = false;
@@ -387,6 +389,11 @@ public class GT_MetaTileEntity_Hatch_Input_ME extends GT_MetaTileEntity_Hatch_In
public FluidStack getMatchingFluidStack(FluidStack fluidStack) {
if (fluidStack == null) return null;
+ AENetworkProxy proxy = getProxy();
+ if (proxy == null || !proxy.isActive()) {
+ return null;
+ }
+
for (int i = 0; i < storedFluids.length; i++) {
if (storedFluids[i] == null) {
continue;