diff --git a/src/main/java/refinedstorage/api/network/NetworkMaster.java b/src/main/java/refinedstorage/api/network/NetworkMaster.java index 18370c290..3fe672439 100755 --- a/src/main/java/refinedstorage/api/network/NetworkMaster.java +++ b/src/main/java/refinedstorage/api/network/NetworkMaster.java @@ -54,6 +54,7 @@ public class NetworkMaster { private List storages = new ArrayList(); private List slaves = new ArrayList(); + private Map slaveConnectivity = new HashMap(); private List slavesToAdd = new ArrayList(); private List slavesToLoad = new ArrayList(); private List slavesToRemove = new ArrayList(); @@ -146,6 +147,16 @@ public class NetworkMaster { if (slave.canUpdate()) { slave.updateSlave(); } + + boolean active = slave.canUpdate(); + + if (!slaveConnectivity.containsKey(slave.getPosition()) || slaveConnectivity.get(slave.getPosition()) != active) { + slaveConnectivity.put(slave.getPosition(), active); + + if (slave.canSendConnectivityUpdate()) { + RefinedStorageUtils.updateBlock(world, slave.getPosition()); + } + } } for (ICraftingTask taskToCancel : craftingTasksToCancel) { @@ -200,7 +211,7 @@ public class NetworkMaster { if (energy.getEnergyStored() != lastEnergy) { world.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER); - if (System.currentTimeMillis() - lastEnergyUpdate > 5000) { + if (System.currentTimeMillis() - lastEnergyUpdate > 2500) { lastEnergyUpdate = System.currentTimeMillis(); RefinedStorageUtils.updateBlock(world, pos); diff --git a/src/main/java/refinedstorage/tile/TileSlave.java b/src/main/java/refinedstorage/tile/TileSlave.java index 67c391653..f1fcc0f8a 100755 --- a/src/main/java/refinedstorage/tile/TileSlave.java +++ b/src/main/java/refinedstorage/tile/TileSlave.java @@ -26,7 +26,6 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; protected NetworkMaster network; - private boolean wasActive; private Set visited = new HashSet(); @Override @@ -43,15 +42,6 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain return true; } - @Override - public void update() { - if (canSendConnectivityUpdate() && wasActive != isActive()) { - wasActive = isActive(); - - RefinedStorageUtils.updateBlock(worldObj, pos); - } - } - @Override public void connect(World world, NetworkMaster network) { if (network.canRun()) { @@ -61,6 +51,10 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain this.network.addSlave(pos); world.notifyNeighborsOfStateChange(pos, getBlockType()); + + if (canSendConnectivityUpdate()) { + RefinedStorageUtils.updateBlock(world, pos); + } } } @@ -80,6 +74,10 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain } world.notifyNeighborsOfStateChange(pos, getBlockType()); + + if (canSendConnectivityUpdate()) { + RefinedStorageUtils.updateBlock(world, pos); + } } @Override diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/cable.png b/src/main/resources/assets/refinedstorage/textures/blocks/cable.png index 75a9ec185..123ad41e2 100644 Binary files a/src/main/resources/assets/refinedstorage/textures/blocks/cable.png and b/src/main/resources/assets/refinedstorage/textures/blocks/cable.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/detector_powered.png b/src/main/resources/assets/refinedstorage/textures/blocks/detector_powered.png index 760e4d9de..885120f4e 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/blocks/detector_powered.png and b/src/main/resources/assets/refinedstorage/textures/blocks/detector_powered.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/external_storage.png b/src/main/resources/assets/refinedstorage/textures/blocks/external_storage.png index 9a49736d2..887a3e44b 100644 Binary files a/src/main/resources/assets/refinedstorage/textures/blocks/external_storage.png and b/src/main/resources/assets/refinedstorage/textures/blocks/external_storage.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/interface.png b/src/main/resources/assets/refinedstorage/textures/blocks/interface.png index bbfb4846d..c8c4c4a91 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/blocks/interface.png and b/src/main/resources/assets/refinedstorage/textures/blocks/interface.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/processing_pattern_encoder.png b/src/main/resources/assets/refinedstorage/textures/blocks/processing_pattern_encoder.png index 1814c6dc3..f02eb6e2b 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/blocks/processing_pattern_encoder.png and b/src/main/resources/assets/refinedstorage/textures/blocks/processing_pattern_encoder.png differ