diff --git a/src/main/java/refinedstorage/tile/TileNetworkReceiver.java b/src/main/java/refinedstorage/tile/TileNetworkReceiver.java index 0a4ab0e87..58a05c267 100755 --- a/src/main/java/refinedstorage/tile/TileNetworkReceiver.java +++ b/src/main/java/refinedstorage/tile/TileNetworkReceiver.java @@ -4,6 +4,10 @@ import net.minecraft.inventory.Container; import refinedstorage.RefinedStorage; public class TileNetworkReceiver extends TileNode { + public TileNetworkReceiver() { + rebuildOnUpdateChange = true; + } + @Override public void updateNode() { } diff --git a/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java b/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java index 1bce6ced6..20d7fd925 100755 --- a/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java +++ b/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java @@ -36,28 +36,24 @@ public class TileNetworkTransmitter extends TileNode { private BlockPos receiver; private int receiverDimension; - private boolean couldUpdate; - // Used clientside private int distance; private boolean inSameDimension; + public TileNetworkTransmitter() { + rebuildOnUpdateChange = true; + } + @Override public void updateNode() { } - public void update() { - super.update(); - - if (network != null && couldUpdate != canUpdate()) { - couldUpdate = canUpdate(); - - network.rebuildNodes(); - } - } - public boolean canTransmit() { - return receiver != null && worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver && isInSameDimension(); + return canUpdate() + && receiver != null + && isInSameDimension() + && worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver + && ((TileNetworkReceiver) worldObj.getTileEntity(receiver)).canUpdate(); } @Override diff --git a/src/main/java/refinedstorage/tile/TileNode.java b/src/main/java/refinedstorage/tile/TileNode.java index b0454af04..ca8cdb288 100755 --- a/src/main/java/refinedstorage/tile/TileNode.java +++ b/src/main/java/refinedstorage/tile/TileNode.java @@ -17,6 +17,7 @@ public abstract class TileNode extends TileBase implements INetworkNode, ISynchr private boolean active; private boolean update; + protected boolean rebuildOnUpdateChange; protected boolean connected; protected INetworkMaster network; @@ -42,6 +43,10 @@ public abstract class TileNode extends TileBase implements INetworkNode, ISynchr update = canUpdate(); onConnectionChange(network, update); + + if (rebuildOnUpdateChange) { + network.rebuildNodes(); + } } if (active != isActive() && canSendConnectivityUpdate()) { diff --git a/src/main/java/refinedstorage/tile/TileRelay.java b/src/main/java/refinedstorage/tile/TileRelay.java index 07c1a9df9..34e29e1f5 100755 --- a/src/main/java/refinedstorage/tile/TileRelay.java +++ b/src/main/java/refinedstorage/tile/TileRelay.java @@ -6,10 +6,10 @@ import refinedstorage.container.ContainerRelay; import refinedstorage.tile.config.RedstoneMode; public class TileRelay extends TileNode { - private boolean couldUpdate; - public TileRelay() { setRedstoneMode(RedstoneMode.LOW); + + rebuildOnUpdateChange = true; } @Override @@ -21,16 +21,6 @@ public class TileRelay extends TileNode { public void updateNode() { } - public void update() { - super.update(); - - if (network != null && couldUpdate != canUpdate()) { - couldUpdate = canUpdate(); - - network.rebuildNodes(); - } - } - @Override public boolean canConduct() { return canUpdate();