From b59c36da07f98d01103637101e6ba15173e56cbf Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 15 May 2016 22:05:22 +0200 Subject: [PATCH] Fixes --- .../refinedstorage/tile/ControllerSearcher.java | 3 +-- .../java/refinedstorage/tile/TileController.java | 7 ++++++- src/main/java/refinedstorage/tile/TileRelay.java | 13 +++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/refinedstorage/tile/ControllerSearcher.java b/src/main/java/refinedstorage/tile/ControllerSearcher.java index 8d1e9543d..6f732725a 100755 --- a/src/main/java/refinedstorage/tile/ControllerSearcher.java +++ b/src/main/java/refinedstorage/tile/ControllerSearcher.java @@ -20,8 +20,7 @@ public class ControllerSearcher { if (tile instanceof TileController) { return (TileController) tile; } else if (tile instanceof TileMachine) { - // We need to have visited more than 1 tile so that the relay can find a controller for itself - if (visited.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).isConnected()) { + if (visited.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).mayUpdate()) { return null; } diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index 0be8dfc86..00a3fbe89 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -104,7 +104,12 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr super.update(); if (!worldObj.isRemote) { - machines.addAll(machinesToAdd); + // Prevent cache from re-adding the block + for (TileMachine machine : machinesToAdd) { + if (!machines.contains(machine)) { + machines.add(machine); + } + } machinesToAdd.clear(); machines.removeAll(machinesToRemove); diff --git a/src/main/java/refinedstorage/tile/TileRelay.java b/src/main/java/refinedstorage/tile/TileRelay.java index d69c4dbae..c9cdfa7be 100755 --- a/src/main/java/refinedstorage/tile/TileRelay.java +++ b/src/main/java/refinedstorage/tile/TileRelay.java @@ -1,10 +1,13 @@ package refinedstorage.tile; import net.minecraft.inventory.Container; +import refinedstorage.RefinedStorageBlocks; import refinedstorage.container.ContainerRelay; import refinedstorage.tile.config.RedstoneMode; public class TileRelay extends TileMachine { + private boolean couldUpdate; + public TileRelay() { this.redstoneMode = RedstoneMode.LOW; } @@ -18,6 +21,16 @@ public class TileRelay extends TileMachine { public void updateMachine() { } + public void update() { + super.update(); + + if (connected && couldUpdate != mayUpdate()) { + couldUpdate = mayUpdate(); + + worldObj.notifyNeighborsOfStateChange(pos, RefinedStorageBlocks.RELAY); + } + } + @Override public Class getContainer() { return ContainerRelay.class;