From de895550926631e893ed36c97ff734854c7ff2b5 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Tue, 17 May 2022 19:10:45 +0800 Subject: [PATCH] fix fluid change sync problem --- .../common/tile/TileFluidDiscretizer.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java b/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java index e8a22e54..b1712e92 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java @@ -5,10 +5,7 @@ import appeng.api.config.Actionable; import appeng.api.networking.GridFlags; import appeng.api.networking.crafting.ICraftingGrid; import appeng.api.networking.energy.IEnergyGrid; -import appeng.api.networking.events.MENetworkCellArrayUpdate; -import appeng.api.networking.events.MENetworkChannelsChanged; -import appeng.api.networking.events.MENetworkEventSubscribe; -import appeng.api.networking.events.MENetworkPowerStatusChange; +import appeng.api.networking.events.*; import appeng.api.networking.security.IActionSource; import appeng.api.networking.storage.IBaseMonitor; import appeng.api.networking.storage.IStorageGrid; @@ -91,6 +88,11 @@ public class TileFluidDiscretizer extends AENetworkTile implements ICellContaine updateState(); } + @MENetworkEventSubscribe + public void onStorageUpdate(MENetworkStorageEvent event) { + updateState(); + } + private void updateState() { boolean isActive = getProxy().isActive(); if (isActive != prevActiveState) { @@ -207,8 +209,15 @@ public class TileFluidDiscretizer extends AENetworkTile implements ICellContaine try { List mappedChanges = new ArrayList<>(); for (IAEFluidStack fluidStack : change) { + boolean isNg = false; + System.out.print(fluidStack + "\n"); + if (fluidStack.getStackSize() < 0) { + isNg = true; + fluidStack.setStackSize( - fluidStack.getStackSize()); + } IAEItemStack itemStack = ItemFluidDrop.newAeStack(fluidStack); if (itemStack != null) { + if (isNg) itemStack.setStackSize( - itemStack.getStackSize()); mappedChanges.add(itemStack); } }