diff --git a/src/main/java/refinedstorage/api/network/INetworkMaster.java b/src/main/java/refinedstorage/api/network/INetworkMaster.java index 6b62e5f3a..af698b0f3 100755 --- a/src/main/java/refinedstorage/api/network/INetworkMaster.java +++ b/src/main/java/refinedstorage/api/network/INetworkMaster.java @@ -130,14 +130,6 @@ public interface INetworkMaster { */ void sendStorageToClient(EntityPlayerMP player); - /** - * Sends a specific delta to all grid watchers. - * - * @param stack The stack - * @param amount The amount changed - */ - void sendStorageDelta(ItemStack stack, int amount); - /** * Pushes an item to this network. * diff --git a/src/main/java/refinedstorage/apiimpl/storage/GroupedStorage.java b/src/main/java/refinedstorage/apiimpl/storage/GroupedStorage.java index 143b45939..76bed2b29 100755 --- a/src/main/java/refinedstorage/apiimpl/storage/GroupedStorage.java +++ b/src/main/java/refinedstorage/apiimpl/storage/GroupedStorage.java @@ -19,7 +19,6 @@ public class GroupedStorage implements IGroupedStorage { private List storages = new ArrayList(); private Multimap stacks = ArrayListMultimap.create(); private INetworkMaster network; - private boolean rebuilding; public GroupedStorage(INetworkMaster network) { this.network = network; @@ -27,8 +26,6 @@ public class GroupedStorage implements IGroupedStorage { @Override public void rebuild() { - rebuilding = true; - storages.clear(); for (INetworkSlave slave : network.getSlaves()) { @@ -45,7 +42,7 @@ public class GroupedStorage implements IGroupedStorage { } } - rebuilding = false; + network.sendStorageToClient(); } @Override @@ -65,9 +62,7 @@ public class GroupedStorage implements IGroupedStorage { stacks.put(stack.getItem(), stack.copy()); - if (!rebuilding) { - network.sendStorageDelta(stack, stack.stackSize); - } + network.sendStorageToClient(); } @Override @@ -80,7 +75,7 @@ public class GroupedStorage implements IGroupedStorage { stacks.remove(otherStack.getItem(), otherStack); } - network.sendStorageDelta(stack, -stack.stackSize); + network.sendStorageToClient(); return; } diff --git a/src/main/java/refinedstorage/network/MessageGridDelta.java b/src/main/java/refinedstorage/network/MessageGridDelta.java deleted file mode 100755 index dffd9f6be..000000000 --- a/src/main/java/refinedstorage/network/MessageGridDelta.java +++ /dev/null @@ -1,67 +0,0 @@ -package refinedstorage.network; - -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; -import net.minecraftforge.items.ItemHandlerHelper; -import refinedstorage.RefinedStorageUtils; -import refinedstorage.container.ContainerGrid; - -import java.util.List; - -public class MessageGridDelta implements IMessage, IMessageHandler { - private ItemStack stack; - private int delta; - - public MessageGridDelta() { - } - - public MessageGridDelta(ItemStack stack, int delta) { - this.stack = stack; - this.delta = delta; - } - - @Override - public void fromBytes(ByteBuf buf) { - this.stack = ByteBufUtils.readItemStack(buf); - this.delta = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - ByteBufUtils.writeItemStack(buf, stack); - buf.writeInt(delta); - } - - @Override - public IMessage onMessage(MessageGridDelta message, MessageContext ctx) { - Container container = Minecraft.getMinecraft().thePlayer.openContainer; - - if (container instanceof ContainerGrid) { - List items = ((ContainerGrid) container).getGrid().getItems(); - - for (ItemStack item : items) { - if (RefinedStorageUtils.compareStackNoQuantity(item, message.stack)) { - item.stackSize += message.delta; - - if (item.stackSize <= 0) { - items.remove(item); - } - - return null; - } - } - - if (message.delta > 0) { - items.add(ItemHandlerHelper.copyStackWithSize(message.stack, message.delta)); - } - } - - return null; - } -} diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index 6b5bff350..6d042e304 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -55,18 +55,12 @@ public class TileDiskDrive extends TileSlave implements IStorageProvider, IStora protected void onContentsChanged(int slot) { super.onContentsChanged(slot); - if (!worldObj.isRemote) { - ItemStack disk = getStackInSlot(slot); + ItemStack disk = getStackInSlot(slot); - if (disk == null) { - storages[slot] = null; - } else { - storages[slot] = new Storage(disk); - } - - if (isConnected()) { - network.getStorage().rebuild(); - } + if (disk == null) { + storages[slot] = null; + } else { + storages[slot] = new Storage(disk); } } diff --git a/src/main/java/refinedstorage/tile/TileSlave.java b/src/main/java/refinedstorage/tile/TileSlave.java index 4b389093e..37ae190c6 100755 --- a/src/main/java/refinedstorage/tile/TileSlave.java +++ b/src/main/java/refinedstorage/tile/TileSlave.java @@ -11,7 +11,6 @@ import refinedstorage.RefinedStorageUtils; import refinedstorage.api.RefinedStorageCapabilities; import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.INetworkSlave; -import refinedstorage.api.storage.IStorageProvider; import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.RedstoneMode; import refinedstorage.tile.controller.TileController; @@ -169,10 +168,6 @@ public abstract class TileSlave extends TileBase implements INetworkSlave, ISync markDirty(); this.redstoneMode = mode; - - if (this instanceof IStorageProvider && isConnected()) { - network.getStorage().rebuild(); - } } @Override diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index 75fc9a05c..e5ef37443 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -27,7 +27,6 @@ import refinedstorage.api.network.IWirelessGridHandler; import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.IGroupedStorage; import refinedstorage.api.storage.IStorage; -import refinedstorage.api.storage.IStorageProvider; import refinedstorage.apiimpl.autocrafting.BasicCraftingTask; import refinedstorage.apiimpl.autocrafting.CraftingPattern; import refinedstorage.apiimpl.autocrafting.ProcessingCraftingTask; @@ -39,7 +38,6 @@ import refinedstorage.block.EnumControllerType; import refinedstorage.container.ContainerController; import refinedstorage.container.ContainerGrid; import refinedstorage.item.ItemPattern; -import refinedstorage.network.MessageGridDelta; import refinedstorage.network.MessageGridItems; import refinedstorage.tile.ISynchronizedContainer; import refinedstorage.tile.TileBase; @@ -60,7 +58,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR private WirelessGridHandler wirelessGridHandler = new WirelessGridHandler(this); private IGroupedStorage storage = new GroupedStorage(this); - private boolean rebuildStorage; private List slaves = new ArrayList(); private List slavesToAdd = new ArrayList(); @@ -132,14 +129,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR slaves.removeAll(slavesToRemove); slavesToRemove.clear(); - if (rebuildStorage) { - storage.rebuild(); - - rebuildStorage = false; - - sendStorageToClient(); - } - if (canRun()) { if (ticks % 20 == 0 || forceUpdate) { updateSlaves(); @@ -227,19 +216,11 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR @Override public void addSlave(INetworkSlave slave) { slavesToAdd.add(slave); - - if (slave instanceof IStorageProvider) { - rebuildStorage = true; - } } @Override public void removeSlave(INetworkSlave slave) { slavesToRemove.add(slave); - - if (slave instanceof IStorageProvider) { - rebuildStorage = true; - } } public void disconnectSlaves() { @@ -411,6 +392,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR return (left.getPriority() > right.getPriority()) ? -1 : 1; } }); + + this.storage.rebuild(); } @Override @@ -427,15 +410,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR RefinedStorage.NETWORK.sendTo(new MessageGridItems(this), player); } - @Override - public void sendStorageDelta(ItemStack stack, int amount) { - for (EntityPlayer player : worldObj.playerEntities) { - if (isWatchingGrid(player)) { - RefinedStorage.NETWORK.sendTo(new MessageGridDelta(stack, amount), (EntityPlayerMP) player); - } - } - } - private boolean isWatchingGrid(EntityPlayer player) { return player.openContainer.getClass() == ContainerGrid.class && pos.equals(((ContainerGrid) player.openContainer).getGrid().getNetworkPosition()); }