diff --git a/src/main/java/refinedstorage/apiimpl/network/GridHandler.java b/src/main/java/refinedstorage/apiimpl/network/GridHandler.java index ef86913a7..d0107d5f4 100755 --- a/src/main/java/refinedstorage/apiimpl/network/GridHandler.java +++ b/src/main/java/refinedstorage/apiimpl/network/GridHandler.java @@ -7,15 +7,16 @@ import refinedstorage.RefinedStorageUtils; import refinedstorage.api.autocrafting.ICraftingPattern; import refinedstorage.api.autocrafting.ICraftingTask; import refinedstorage.api.network.IGridHandler; +import refinedstorage.api.network.INetworkMaster; import refinedstorage.item.ItemWirelessGrid; import refinedstorage.network.GridPullFlags; public class GridHandler implements IGridHandler { public static final int MAX_CRAFTING_PER_REQUEST = 500; - private NetworkMaster network; + private INetworkMaster network; - public GridHandler(NetworkMaster network) { + public GridHandler(INetworkMaster network) { this.network = network; } diff --git a/src/main/java/refinedstorage/apiimpl/network/NetworkMaster.java b/src/main/java/refinedstorage/apiimpl/network/NetworkMaster.java index c7a5c0ab6..c0e54aa53 100755 --- a/src/main/java/refinedstorage/apiimpl/network/NetworkMaster.java +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkMaster.java @@ -238,7 +238,7 @@ public class NetworkMaster implements INetworkMaster { if (energy.getEnergyStored() != lastEnergy) { world.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER); - if (System.currentTimeMillis() - lastEnergyUpdate > 2500) { + if (System.currentTimeMillis() - lastEnergyUpdate > 1500) { lastEnergyUpdate = System.currentTimeMillis(); RefinedStorageUtils.updateBlock(world, pos); diff --git a/src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java b/src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java index 377d9b9a5..67788e1db 100755 --- a/src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java +++ b/src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java @@ -8,6 +8,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageUtils; +import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.IWirelessGridHandler; import refinedstorage.api.network.WirelessGridConsumer; import refinedstorage.item.ItemWirelessGrid; @@ -17,14 +18,14 @@ import java.util.Iterator; import java.util.List; public class WirelessGridHandler implements IWirelessGridHandler { - private NetworkMaster network; + private INetworkMaster network; private int range; private List consumers = new ArrayList(); private List consumersToRemove = new ArrayList(); - public WirelessGridHandler(NetworkMaster network) { + public WirelessGridHandler(INetworkMaster network) { this.network = network; } diff --git a/src/main/java/refinedstorage/tile/TileRelay.java b/src/main/java/refinedstorage/tile/TileRelay.java index 205401e3a..9345b0c1e 100755 --- a/src/main/java/refinedstorage/tile/TileRelay.java +++ b/src/main/java/refinedstorage/tile/TileRelay.java @@ -9,7 +9,7 @@ public class TileRelay extends TileSlave { private boolean couldUpdate; public TileRelay() { - this.redstoneMode = RedstoneMode.LOW; + setRedstoneMode(RedstoneMode.LOW); } @Override diff --git a/src/main/java/refinedstorage/tile/TileSlave.java b/src/main/java/refinedstorage/tile/TileSlave.java index d7f908beb..45e76006a 100755 --- a/src/main/java/refinedstorage/tile/TileSlave.java +++ b/src/main/java/refinedstorage/tile/TileSlave.java @@ -22,11 +22,10 @@ import java.util.Set; public abstract class TileSlave extends TileBase implements INetworkSlave, ISynchronizedContainer, IRedstoneModeConfig { public static final String NBT_CONNECTED = "Connected"; - protected boolean connected; - protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; - protected INetworkMaster network; + private RedstoneMode redstoneMode = RedstoneMode.IGNORE; - private Set visited = new HashSet(); + protected boolean connected; + protected INetworkMaster network; @Override public boolean canUpdate() { @@ -84,13 +83,10 @@ public abstract class TileSlave extends TileBase implements INetworkSlave, ISync @Override public void onNeighborChanged(World world) { - visited.clear(); - - TileController controller = searchController(world, pos, visited); + TileController controller = searchController(world, pos, new HashSet()); if (network == null) { if (controller != null) { - // For backwards compatibility INetworkMaster network = NetworkMasterRegistry.get(world, controller.getPos()); if (network != null) { @@ -104,26 +100,26 @@ public abstract class TileSlave extends TileBase implements INetworkSlave, ISync } } - private TileController searchController(World world, BlockPos current, Set visited) { - String id = current.getX() + "," + current.getY() + "," + current.getZ(); + private TileController searchController(World world, BlockPos current, Set visits) { + long pos = current.toLong(); - if (visited.contains(id)) { + if (visits.contains(pos)) { return null; } - visited.add(id); + visits.add(pos); TileEntity tile = world.getTileEntity(current); if (tile instanceof TileController) { return (TileController) tile; } else if (tile instanceof TileSlave) { - if (visited.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).canUpdate()) { + if (visits.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).canUpdate()) { return null; } for (EnumFacing dir : EnumFacing.VALUES) { - TileController controller = searchController(world, current.offset(dir), visited); + TileController controller = searchController(world, current.offset(dir), visits); if (controller != null) { return controller;