Begin on less network usage. This is very broken!
This commit is contained in:
		| @@ -6,10 +6,8 @@ import net.minecraft.inventory.Slot; | |||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import refinedstorage.block.EnumGridType; | import refinedstorage.block.EnumGridType; | ||||||
| import refinedstorage.container.slot.SlotGridCraftingResult; | import refinedstorage.container.slot.SlotGridCraftingResult; | ||||||
| import refinedstorage.tile.TileController; |  | ||||||
| import refinedstorage.tile.grid.IGrid; | import refinedstorage.tile.grid.IGrid; | ||||||
| import refinedstorage.tile.grid.TileGrid; | import refinedstorage.tile.grid.TileGrid; | ||||||
| import refinedstorage.tile.grid.WirelessGrid; |  | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| @@ -81,8 +79,9 @@ public class ContainerGrid extends ContainerBase { | |||||||
|     public void onContainerClosed(EntityPlayer player) { |     public void onContainerClosed(EntityPlayer player) { | ||||||
|         super.onContainerClosed(player); |         super.onContainerClosed(player); | ||||||
|  |  | ||||||
|         if (grid instanceof WirelessGrid && ((WirelessGrid) grid).getBoundTile() instanceof TileController) { |         // @TODO: Fix | ||||||
|  |         /*if (grid instanceof WirelessGrid && ((WirelessGrid) grid).getBoundTile() instanceof TileController) { | ||||||
|             grid.getController().onCloseWirelessGrid(player); |             grid.getController().onCloseWirelessGrid(player); | ||||||
|         } |         }*/ | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -17,10 +17,8 @@ import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; | |||||||
| import refinedstorage.jei.PluginRefinedStorage; | import refinedstorage.jei.PluginRefinedStorage; | ||||||
| import refinedstorage.network.MessageGridCraftingClear; | import refinedstorage.network.MessageGridCraftingClear; | ||||||
| import refinedstorage.network.MessageGridCraftingPush; | import refinedstorage.network.MessageGridCraftingPush; | ||||||
| import refinedstorage.network.MessageStoragePull; | import refinedstorage.network.MessageGridStoragePull; | ||||||
| import refinedstorage.network.MessageStoragePush; |  | ||||||
| import refinedstorage.storage.ItemGroup; | import refinedstorage.storage.ItemGroup; | ||||||
| import refinedstorage.tile.TileController; |  | ||||||
| import refinedstorage.tile.grid.IGrid; | import refinedstorage.tile.grid.IGrid; | ||||||
| import refinedstorage.tile.grid.TileGrid; | import refinedstorage.tile.grid.TileGrid; | ||||||
| import refinedstorage.tile.grid.WirelessGrid; | import refinedstorage.tile.grid.WirelessGrid; | ||||||
| @@ -75,7 +73,7 @@ public class GuiGrid extends GuiBase { | |||||||
|         items.clear(); |         items.clear(); | ||||||
|  |  | ||||||
|         if (grid.isConnected()) { |         if (grid.isConnected()) { | ||||||
|             items.addAll(grid.getController().getItemGroups()); |             items.addAll(grid.getItemGroups()); | ||||||
|  |  | ||||||
|             if (!searchField.getText().trim().isEmpty()) { |             if (!searchField.getText().trim().isEmpty()) { | ||||||
|                 Iterator<ItemGroup> t = items.iterator(); |                 Iterator<ItemGroup> t = items.iterator(); | ||||||
| @@ -256,33 +254,31 @@ public class GuiGrid extends GuiBase { | |||||||
|         boolean clickedClear = clickedButton == 0 && isHoveringOverClear(mouseX - guiLeft, mouseY - guiTop); |         boolean clickedClear = clickedButton == 0 && isHoveringOverClear(mouseX - guiLeft, mouseY - guiTop); | ||||||
|  |  | ||||||
|         if (grid.isConnected()) { |         if (grid.isConnected()) { | ||||||
|             TileController controller = grid.getController(); |  | ||||||
|  |  | ||||||
|             if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null && (clickedButton == 0 || clickedButton == 1)) { |             if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null && (clickedButton == 0 || clickedButton == 1)) { | ||||||
|                 RefinedStorage.NETWORK.sendToServer(new MessageStoragePush(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), -1, clickedButton == 1)); |                 grid.onItemPush(-1, clickedButton == 1); | ||||||
|             } else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) { |             } else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) { | ||||||
|                 int flags = 0; |                 int flags = 0; | ||||||
|  |  | ||||||
|                 if (clickedButton == 1) { |                 if (clickedButton == 1) { | ||||||
|                     flags |= MessageStoragePull.PULL_HALF; |                     flags |= MessageGridStoragePull.PULL_HALF; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 if (GuiScreen.isShiftKeyDown()) { |                 if (GuiScreen.isShiftKeyDown()) { | ||||||
|                     flags |= MessageStoragePull.PULL_SHIFT; |                     flags |= MessageGridStoragePull.PULL_SHIFT; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 if (clickedButton == 2) { |                 if (clickedButton == 2) { | ||||||
|                     flags |= MessageStoragePull.PULL_ONE; |                     flags |= MessageGridStoragePull.PULL_ONE; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 RefinedStorage.NETWORK.sendToServer(new MessageStoragePull(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), hoveringItemId, flags)); |                 grid.onItemPull(hoveringItemId, flags); | ||||||
|             } else if (clickedClear) { |             } else if (clickedClear) { | ||||||
|                 RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingClear((TileGrid) grid)); |                 RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingClear((TileGrid) grid)); | ||||||
|             } else { |             } else { | ||||||
|                 for (Slot slot : container.getPlayerInventorySlots()) { |                 for (Slot slot : container.getPlayerInventorySlots()) { | ||||||
|                     if (inBounds(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX - guiLeft, mouseY - guiTop)) { |                     if (inBounds(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX - guiLeft, mouseY - guiTop)) { | ||||||
|                         if (GuiScreen.isShiftKeyDown()) { |                         if (GuiScreen.isShiftKeyDown()) { | ||||||
|                             RefinedStorage.NETWORK.sendToServer(new MessageStoragePush(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), slot.slotNumber, clickedButton == 1)); |                             grid.onItemPush(slot.slotNumber, clickedButton == 1); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|   | |||||||
							
								
								
									
										55
									
								
								src/main/java/refinedstorage/network/MessageContainerUpdate.java
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										55
									
								
								src/main/java/refinedstorage/network/MessageContainerUpdate.java
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  | package refinedstorage.network; | ||||||
|  |  | ||||||
|  | import io.netty.buffer.ByteBuf; | ||||||
|  | import net.minecraft.client.Minecraft; | ||||||
|  | import net.minecraft.tileentity.TileEntity; | ||||||
|  | import net.minecraft.util.math.BlockPos; | ||||||
|  | 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 refinedstorage.tile.INetworkTile; | ||||||
|  |  | ||||||
|  | public class MessageContainerUpdate implements IMessage, IMessageHandler<MessageContainerUpdate, IMessage> { | ||||||
|  |     private TileEntity tile; | ||||||
|  |     private int x; | ||||||
|  |     private int y; | ||||||
|  |     private int z; | ||||||
|  |  | ||||||
|  |     public MessageContainerUpdate() { | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public MessageContainerUpdate(TileEntity tile) { | ||||||
|  |         this.tile = tile; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void fromBytes(ByteBuf buf) { | ||||||
|  |         x = buf.readInt(); | ||||||
|  |         y = buf.readInt(); | ||||||
|  |         z = buf.readInt(); | ||||||
|  |  | ||||||
|  |         if (Minecraft.getMinecraft().theWorld != null) { | ||||||
|  |             tile = Minecraft.getMinecraft().theWorld.getTileEntity(new BlockPos(x, y, z)); | ||||||
|  |  | ||||||
|  |             if (tile instanceof INetworkTile) { | ||||||
|  |                 ((INetworkTile) tile).receiveContainerData(buf); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void toBytes(ByteBuf buf) { | ||||||
|  |         buf.writeInt(tile.getPos().getX()); | ||||||
|  |         buf.writeInt(tile.getPos().getY()); | ||||||
|  |         buf.writeInt(tile.getPos().getZ()); | ||||||
|  |  | ||||||
|  |         if (tile instanceof INetworkTile) { | ||||||
|  |             ((INetworkTile) tile).sendContainerData(buf); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public IMessage onMessage(MessageContainerUpdate message, MessageContext ctx) { | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -9,43 +9,44 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage; | |||||||
| import refinedstorage.item.ItemWirelessGrid; | import refinedstorage.item.ItemWirelessGrid; | ||||||
| import refinedstorage.storage.ItemGroup; | import refinedstorage.storage.ItemGroup; | ||||||
| import refinedstorage.tile.TileController; | import refinedstorage.tile.TileController; | ||||||
|  | import refinedstorage.tile.grid.TileGrid; | ||||||
| 
 | 
 | ||||||
| public class MessageStoragePull extends MessageHandlerPlayerToServer<MessageStoragePull> implements IMessage { | public class MessageGridStoragePull extends MessageHandlerPlayerToServer<MessageGridStoragePull> implements IMessage { | ||||||
|     public static final int PULL_HALF = 1; |     public static final int PULL_HALF = 1; | ||||||
|     public static final int PULL_ONE = 2; |     public static final int PULL_ONE = 2; | ||||||
|     public static final int PULL_SHIFT = 4; |     public static final int PULL_SHIFT = 4; | ||||||
| 
 | 
 | ||||||
|     private int x; |     private int gridX; | ||||||
|     private int y; |     private int gridY; | ||||||
|     private int z; |     private int gridZ; | ||||||
|     private int id; |     private int id; | ||||||
|     private int flags; |     private int flags; | ||||||
| 
 | 
 | ||||||
|     public MessageStoragePull() { |     public MessageGridStoragePull() { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public MessageStoragePull(int x, int y, int z, int id, int flags) { |     public MessageGridStoragePull(int gridX, int gridY, int gridZ, int id, int flags) { | ||||||
|         this.x = x; |         this.gridX = gridX; | ||||||
|         this.y = y; |         this.gridY = gridY; | ||||||
|         this.z = z; |         this.gridZ = gridZ; | ||||||
|         this.id = id; |         this.id = id; | ||||||
|         this.flags = flags; |         this.flags = flags; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void fromBytes(ByteBuf buf) { | ||||||
|         x = buf.readInt(); |         gridX = buf.readInt(); | ||||||
|         y = buf.readInt(); |         gridY = buf.readInt(); | ||||||
|         z = buf.readInt(); |         gridZ = buf.readInt(); | ||||||
|         id = buf.readInt(); |         id = buf.readInt(); | ||||||
|         flags = buf.readInt(); |         flags = buf.readInt(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void toBytes(ByteBuf buf) { | ||||||
|         buf.writeInt(x); |         buf.writeInt(gridX); | ||||||
|         buf.writeInt(y); |         buf.writeInt(gridY); | ||||||
|         buf.writeInt(z); |         buf.writeInt(gridZ); | ||||||
|         buf.writeInt(id); |         buf.writeInt(id); | ||||||
|         buf.writeInt(flags); |         buf.writeInt(flags); | ||||||
|     } |     } | ||||||
| @@ -63,11 +64,11 @@ public class MessageStoragePull extends MessageHandlerPlayerToServer<MessageStor | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void handle(MessageStoragePull message, EntityPlayerMP player) { |     public void handle(MessageGridStoragePull message, EntityPlayerMP player) { | ||||||
|         TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z)); |         TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.gridX, message.gridY, message.gridZ)); | ||||||
| 
 | 
 | ||||||
|         if (tile instanceof TileController && ((TileController) tile).isActive()) { |         if (tile instanceof TileGrid && ((TileGrid) tile).isConnected()) { | ||||||
|             TileController controller = (TileController) tile; |             TileController controller = ((TileGrid) tile).getController(); | ||||||
| 
 | 
 | ||||||
|             if (message.id < controller.getItemGroups().size()) { |             if (message.id < controller.getItemGroups().size()) { | ||||||
|                 ItemGroup group = controller.getItemGroups().get(message.id); |                 ItemGroup group = controller.getItemGroups().get(message.id); | ||||||
| @@ -8,67 +8,68 @@ import net.minecraft.util.math.BlockPos; | |||||||
| import net.minecraftforge.fml.common.network.simpleimpl.IMessage; | import net.minecraftforge.fml.common.network.simpleimpl.IMessage; | ||||||
| import refinedstorage.item.ItemWirelessGrid; | import refinedstorage.item.ItemWirelessGrid; | ||||||
| import refinedstorage.tile.TileController; | import refinedstorage.tile.TileController; | ||||||
|  | import refinedstorage.tile.grid.TileGrid; | ||||||
| 
 | 
 | ||||||
| public class MessageStoragePush extends MessageHandlerPlayerToServer<MessageStoragePush> implements IMessage { | public class MessageGridStoragePush extends MessageHandlerPlayerToServer<MessageGridStoragePush> implements IMessage { | ||||||
|     private int x; |     private int gridX; | ||||||
|     private int y; |     private int gridY; | ||||||
|     private int z; |     private int gridZ; | ||||||
|     private int slot; |     private int playerSlot; | ||||||
|     private boolean one; |     private boolean one; | ||||||
| 
 | 
 | ||||||
|     public MessageStoragePush() { |     public MessageGridStoragePush() { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public MessageStoragePush(int x, int y, int z, int slot, boolean one) { |     public MessageGridStoragePush(int gridX, int gridY, int gridZ, int playerSlot, boolean one) { | ||||||
|         this.x = x; |         this.gridX = gridX; | ||||||
|         this.y = y; |         this.gridY = gridY; | ||||||
|         this.z = z; |         this.gridZ = gridZ; | ||||||
|         this.slot = slot; |         this.playerSlot = playerSlot; | ||||||
|         this.one = one; |         this.one = one; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void fromBytes(ByteBuf buf) { | ||||||
|         x = buf.readInt(); |         gridX = buf.readInt(); | ||||||
|         y = buf.readInt(); |         gridY = buf.readInt(); | ||||||
|         z = buf.readInt(); |         gridZ = buf.readInt(); | ||||||
|         slot = buf.readInt(); |         playerSlot = buf.readInt(); | ||||||
|         one = buf.readBoolean(); |         one = buf.readBoolean(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void toBytes(ByteBuf buf) { | ||||||
|         buf.writeInt(x); |         buf.writeInt(gridX); | ||||||
|         buf.writeInt(y); |         buf.writeInt(gridY); | ||||||
|         buf.writeInt(z); |         buf.writeInt(gridZ); | ||||||
|         buf.writeInt(slot); |         buf.writeInt(playerSlot); | ||||||
|         buf.writeBoolean(one); |         buf.writeBoolean(one); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void handle(MessageStoragePush message, EntityPlayerMP player) { |     public void handle(MessageGridStoragePush message, EntityPlayerMP player) { | ||||||
|         TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z)); |         TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.gridX, message.gridY, message.gridZ)); | ||||||
| 
 | 
 | ||||||
|         if (tile instanceof TileController && ((TileController) tile).isActive()) { |         if (tile instanceof TileGrid && ((TileGrid) tile).isConnected()) { | ||||||
|             TileController controller = (TileController) tile; |             TileController controller = ((TileGrid) tile).getController(); | ||||||
| 
 | 
 | ||||||
|             ItemStack stack; |             ItemStack stack; | ||||||
| 
 | 
 | ||||||
|             if (message.slot == -1) { |             if (message.playerSlot == -1) { | ||||||
|                 stack = player.inventory.getItemStack().copy(); |                 stack = player.inventory.getItemStack().copy(); | ||||||
| 
 | 
 | ||||||
|                 if (message.one) { |                 if (message.one) { | ||||||
|                     stack.stackSize = 1; |                     stack.stackSize = 1; | ||||||
|                 } |                 } | ||||||
|             } else { |             } else { | ||||||
|                 stack = player.inventory.getStackInSlot(message.slot); |                 stack = player.inventory.getStackInSlot(message.playerSlot); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             if (stack != null) { |             if (stack != null) { | ||||||
|                 boolean success = controller.push(stack); |                 boolean success = controller.push(stack); | ||||||
| 
 | 
 | ||||||
|                 if (success) { |                 if (success) { | ||||||
|                     if (message.slot == -1) { |                     if (message.playerSlot == -1) { | ||||||
|                         if (message.one) { |                         if (message.one) { | ||||||
|                             player.inventory.getItemStack().stackSize--; |                             player.inventory.getItemStack().stackSize--; | ||||||
| 
 | 
 | ||||||
| @@ -81,7 +82,7 @@ public class MessageStoragePush extends MessageHandlerPlayerToServer<MessageStor | |||||||
| 
 | 
 | ||||||
|                         player.updateHeldItem(); |                         player.updateHeldItem(); | ||||||
|                     } else { |                     } else { | ||||||
|                         player.inventory.setInventorySlotContents(message.slot, null); |                         player.inventory.setInventorySlotContents(message.playerSlot, null); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
| @@ -32,7 +32,7 @@ public class MessageTileUpdate implements IMessage, IMessageHandler<MessageTileU | |||||||
|             tile = Minecraft.getMinecraft().theWorld.getTileEntity(new BlockPos(x, y, z)); |             tile = Minecraft.getMinecraft().theWorld.getTileEntity(new BlockPos(x, y, z)); | ||||||
|  |  | ||||||
|             if (tile instanceof INetworkTile) { |             if (tile instanceof INetworkTile) { | ||||||
|                 ((INetworkTile) tile).fromBytes(buf); |                 ((INetworkTile) tile).receiveData(buf); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -44,7 +44,7 @@ public class MessageTileUpdate implements IMessage, IMessageHandler<MessageTileU | |||||||
|         buf.writeInt(tile.getPos().getZ()); |         buf.writeInt(tile.getPos().getZ()); | ||||||
|  |  | ||||||
|         if (tile instanceof INetworkTile) { |         if (tile instanceof INetworkTile) { | ||||||
|             ((INetworkTile) tile).toBytes(buf); |             ((INetworkTile) tile).sendData(buf); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -35,8 +35,8 @@ public class CommonProxy { | |||||||
|     public void preInit(FMLPreInitializationEvent e) { |     public void preInit(FMLPreInitializationEvent e) { | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageTileUpdate.class, MessageTileUpdate.class, 0, Side.CLIENT); |         RefinedStorage.NETWORK.registerMessage(MessageTileUpdate.class, MessageTileUpdate.class, 0, Side.CLIENT); | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageRedstoneModeUpdate.class, MessageRedstoneModeUpdate.class, 1, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageRedstoneModeUpdate.class, MessageRedstoneModeUpdate.class, 1, Side.SERVER); | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageStoragePush.class, MessageStoragePush.class, 2, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageGridStoragePush.class, MessageGridStoragePush.class, 2, Side.SERVER); | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageStoragePull.class, MessageStoragePull.class, 3, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageGridStoragePull.class, MessageGridStoragePull.class, 3, Side.SERVER); | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageCompareUpdate.class, MessageCompareUpdate.class, 4, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageCompareUpdate.class, MessageCompareUpdate.class, 4, Side.SERVER); | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageModeToggle.class, MessageModeToggle.class, 5, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageModeToggle.class, MessageModeToggle.class, 5, Side.SERVER); | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageDetectorModeUpdate.class, MessageDetectorModeUpdate.class, 6, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageDetectorModeUpdate.class, MessageDetectorModeUpdate.class, 6, Side.SERVER); | ||||||
| @@ -47,6 +47,7 @@ public class CommonProxy { | |||||||
|         RefinedStorage.NETWORK.registerMessage(MessageGridCraftingPush.class, MessageGridCraftingPush.class, 12, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageGridCraftingPush.class, MessageGridCraftingPush.class, 12, Side.SERVER); | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageGridCraftingTransfer.class, MessageGridCraftingTransfer.class, 13, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageGridCraftingTransfer.class, MessageGridCraftingTransfer.class, 13, Side.SERVER); | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageWirelessGridSettingsUpdate.class, MessageWirelessGridSettingsUpdate.class, 14, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageWirelessGridSettingsUpdate.class, MessageWirelessGridSettingsUpdate.class, 14, Side.SERVER); | ||||||
|  |         RefinedStorage.NETWORK.registerMessage(MessageContainerUpdate.class, MessageContainerUpdate.class, 15, Side.CLIENT); | ||||||
|  |  | ||||||
|         NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler()); |         NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler()); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,9 +1,16 @@ | |||||||
| package refinedstorage.tile; | package refinedstorage.tile; | ||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
|  |  | ||||||
| public interface INetworkTile { | public interface INetworkTile { | ||||||
|     void fromBytes(ByteBuf buf); |     void receiveData(ByteBuf buf); | ||||||
|  |  | ||||||
|     void toBytes(ByteBuf buf); |     void sendData(ByteBuf buf); | ||||||
|  |  | ||||||
|  |     void receiveContainerData(ByteBuf buf); | ||||||
|  |  | ||||||
|  |     void sendContainerData(ByteBuf buf); | ||||||
|  |  | ||||||
|  |     Class<? extends Container> getContainer(); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,6 +1,8 @@ | |||||||
| package refinedstorage.tile; | package refinedstorage.tile; | ||||||
|  |  | ||||||
| import net.minecraft.block.state.IBlockState; | import net.minecraft.block.state.IBlockState; | ||||||
|  | import net.minecraft.entity.player.EntityPlayer; | ||||||
|  | import net.minecraft.entity.player.EntityPlayerMP; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import net.minecraft.network.NetworkManager; | import net.minecraft.network.NetworkManager; | ||||||
| @@ -13,12 +15,13 @@ import net.minecraft.util.math.BlockPos; | |||||||
| import net.minecraft.world.World; | import net.minecraft.world.World; | ||||||
| import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; | import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
|  | import refinedstorage.network.MessageContainerUpdate; | ||||||
| import refinedstorage.network.MessageTileUpdate; | import refinedstorage.network.MessageTileUpdate; | ||||||
|  |  | ||||||
| public abstract class TileBase extends TileEntity implements ITickable { | public abstract class TileBase extends TileEntity implements ITickable { | ||||||
|     public static final String NBT_DIRECTION = "Direction"; |     public static final String NBT_DIRECTION = "Direction"; | ||||||
|  |  | ||||||
|     public static final int UPDATE_RANGE = 256; |     public static final int UPDATE_RANGE = 32; | ||||||
|  |  | ||||||
|     private EnumFacing direction = EnumFacing.NORTH; |     private EnumFacing direction = EnumFacing.NORTH; | ||||||
|  |  | ||||||
| @@ -33,6 +36,12 @@ public abstract class TileBase extends TileEntity implements ITickable { | |||||||
|                 TargetPoint target = new TargetPoint(worldObj.provider.getDimensionType().getId(), pos.getX(), pos.getY(), pos.getZ(), UPDATE_RANGE); |                 TargetPoint target = new TargetPoint(worldObj.provider.getDimensionType().getId(), pos.getX(), pos.getY(), pos.getZ(), UPDATE_RANGE); | ||||||
|  |  | ||||||
|                 RefinedStorage.NETWORK.sendToAllAround(new MessageTileUpdate(this), target); |                 RefinedStorage.NETWORK.sendToAllAround(new MessageTileUpdate(this), target); | ||||||
|  |  | ||||||
|  |                 for (EntityPlayer player : worldObj.playerEntities) { | ||||||
|  |                     if (((INetworkTile) this).getContainer() == player.openContainer.getClass()) { | ||||||
|  |                         RefinedStorage.NETWORK.sendTo(new MessageContainerUpdate(this), (EntityPlayerMP) player); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -2,11 +2,13 @@ package refinedstorage.tile; | |||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
| import net.minecraft.block.Block; | import net.minecraft.block.Block; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.item.ItemBlock; | import net.minecraft.item.ItemBlock; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import net.minecraft.util.math.BlockPos; | import net.minecraft.util.math.BlockPos; | ||||||
|  | import refinedstorage.container.ContainerConstructor; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
| import refinedstorage.util.InventoryUtils; | import refinedstorage.util.InventoryUtils; | ||||||
| @@ -33,7 +35,7 @@ public class TileConstructor extends TileMachine implements ICompareConfig { | |||||||
|             Block tryingToPlace = ((ItemBlock) inventory.getStackInSlot(0).getItem()).getBlock(); |             Block tryingToPlace = ((ItemBlock) inventory.getStackInSlot(0).getItem()).getBlock(); | ||||||
|  |  | ||||||
|             if (tryingToPlace.canPlaceBlockAt(worldObj, front)) { |             if (tryingToPlace.canPlaceBlockAt(worldObj, front)) { | ||||||
|                 ItemStack took = getController().take(inventory.getStackInSlot(0).copy(), compare); |                 ItemStack took = controller.take(inventory.getStackInSlot(0).copy(), compare); | ||||||
|  |  | ||||||
|                 if (took != null) { |                 if (took != null) { | ||||||
|                     worldObj.setBlockState(front, tryingToPlace.getStateFromMeta(took.getItemDamage()), 1 | 2); |                     worldObj.setBlockState(front, tryingToPlace.getStateFromMeta(took.getItemDamage()), 1 | 2); | ||||||
| @@ -75,19 +77,24 @@ public class TileConstructor extends TileMachine implements ICompareConfig { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|         compare = buf.readInt(); |         compare = buf.readInt(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeInt(compare); |         buf.writeInt(compare); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerConstructor.class; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public IInventory getInventory() { |     public IInventory getInventory() { | ||||||
|         return inventory; |         return inventory; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -4,18 +4,22 @@ import cofh.api.energy.EnergyStorage; | |||||||
| import cofh.api.energy.IEnergyReceiver; | import cofh.api.energy.IEnergyReceiver; | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
| import net.minecraft.entity.player.EntityPlayer; | import net.minecraft.entity.player.EntityPlayer; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import net.minecraft.tileentity.TileEntity; | import net.minecraft.tileentity.TileEntity; | ||||||
| import net.minecraft.util.EnumFacing; | import net.minecraft.util.EnumFacing; | ||||||
| import net.minecraft.util.EnumHand; | import net.minecraft.util.EnumHand; | ||||||
| import net.minecraft.util.math.BlockPos; | import net.minecraft.util.math.BlockPos; | ||||||
|  | import net.minecraftforge.fml.relauncher.Side; | ||||||
|  | import net.minecraftforge.fml.relauncher.SideOnly; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.RefinedStorageBlocks; | import refinedstorage.RefinedStorageBlocks; | ||||||
| import refinedstorage.RefinedStorageGui; | import refinedstorage.RefinedStorageGui; | ||||||
| import refinedstorage.RefinedStorageItems; | import refinedstorage.RefinedStorageItems; | ||||||
| import refinedstorage.block.BlockController; | import refinedstorage.block.BlockController; | ||||||
| import refinedstorage.block.EnumControllerType; | import refinedstorage.block.EnumControllerType; | ||||||
|  | import refinedstorage.container.ContainerController; | ||||||
| import refinedstorage.item.ItemWirelessGrid; | import refinedstorage.item.ItemWirelessGrid; | ||||||
| import refinedstorage.storage.IStorage; | import refinedstorage.storage.IStorage; | ||||||
| import refinedstorage.storage.IStorageProvider; | import refinedstorage.storage.IStorageProvider; | ||||||
| @@ -43,10 +47,11 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|     private EnergyStorage energy = new EnergyStorage(32000); |     private EnergyStorage energy = new EnergyStorage(32000); | ||||||
|     private int energyUsage; |     private int energyUsage; | ||||||
|  |  | ||||||
|     private boolean activeClientSide; |  | ||||||
|  |  | ||||||
|     private boolean destroyed = false; |     private boolean destroyed = false; | ||||||
|  |  | ||||||
|  |     @SideOnly(Side.CLIENT) | ||||||
|  |     private boolean activeClientSide; | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void update() { |     public void update() { | ||||||
|         super.update(); |         super.update(); | ||||||
| @@ -374,10 +379,6 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|         return energy.getEnergyStored() >= getEnergyUsage() && redstoneMode.isEnabled(worldObj, pos); |         return energy.getEnergyStored() >= getEnergyUsage() && redstoneMode.isEnabled(worldObj, pos); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public boolean isActiveClientSide() { |  | ||||||
|         return activeClientSide; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public RedstoneMode getRedstoneMode() { |     public RedstoneMode getRedstoneMode() { | ||||||
|         return redstoneMode; |         return redstoneMode; | ||||||
| @@ -396,32 +397,34 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveData(ByteBuf buf) { | ||||||
|         activeClientSide = buf.readBoolean(); |  | ||||||
|  |  | ||||||
|         int lastEnergy = energy.getEnergyStored(); |         int lastEnergy = energy.getEnergyStored(); | ||||||
|  |  | ||||||
|  |         activeClientSide = buf.readBoolean(); | ||||||
|  |  | ||||||
|         energy.setEnergyStored(buf.readInt()); |         energy.setEnergyStored(buf.readInt()); | ||||||
|  |  | ||||||
|         if (lastEnergy != energy.getEnergyStored()) { |         if (lastEnergy != energy.getEnergyStored()) { | ||||||
|             worldObj.notifyBlockUpdate(pos, worldObj.getBlockState(pos), worldObj.getBlockState(pos), 2 | 4); |             worldObj.notifyBlockUpdate(pos, worldObj.getBlockState(pos), worldObj.getBlockState(pos), 2 | 4); | ||||||
|         } |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void sendData(ByteBuf buf) { | ||||||
|  |         buf.writeBoolean(isActive()); | ||||||
|  |  | ||||||
|  |         buf.writeInt(energy.getEnergyStored()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         energyUsage = buf.readInt(); |         energyUsage = buf.readInt(); | ||||||
|  |  | ||||||
|         redstoneMode = RedstoneMode.getById(buf.readInt()); |         redstoneMode = RedstoneMode.getById(buf.readInt()); | ||||||
|  |  | ||||||
|         itemGroups.clear(); |  | ||||||
|  |  | ||||||
|         int size = buf.readInt(); |  | ||||||
|  |  | ||||||
|         for (int i = 0; i < size; ++i) { |  | ||||||
|             itemGroups.add(new ItemGroup(buf)); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         machines.clear(); |         machines.clear(); | ||||||
|  |  | ||||||
|         size = buf.readInt(); |         int size = buf.readInt(); | ||||||
|  |  | ||||||
|         for (int i = 0; i < size; ++i) { |         for (int i = 0; i < size; ++i) { | ||||||
|             TileEntity tile = worldObj.getTileEntity(new BlockPos(buf.readInt(), buf.readInt(), buf.readInt())); |             TileEntity tile = worldObj.getTileEntity(new BlockPos(buf.readInt(), buf.readInt(), buf.readInt())); | ||||||
| @@ -433,20 +436,11 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         buf.writeBoolean(isActive()); |  | ||||||
|  |  | ||||||
|         buf.writeInt(energy.getEnergyStored()); |  | ||||||
|         buf.writeInt(energyUsage); |         buf.writeInt(energyUsage); | ||||||
|  |  | ||||||
|         buf.writeInt(redstoneMode.id); |         buf.writeInt(redstoneMode.id); | ||||||
|  |  | ||||||
|         buf.writeInt(itemGroups.size()); |  | ||||||
|  |  | ||||||
|         for (ItemGroup group : itemGroups) { |  | ||||||
|             group.toBytes(buf, itemGroups.indexOf(group)); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         buf.writeInt(machines.size()); |         buf.writeInt(machines.size()); | ||||||
|  |  | ||||||
|         for (TileMachine machine : machines) { |         for (TileMachine machine : machines) { | ||||||
| @@ -455,4 +449,13 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|             buf.writeInt(machine.getPos().getZ()); |             buf.writeInt(machine.getPos().getZ()); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public boolean isActiveClientSide() { | ||||||
|  |         return activeClientSide; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerController.class; | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -3,11 +3,13 @@ package refinedstorage.tile; | |||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
| import net.minecraft.block.Block; | import net.minecraft.block.Block; | ||||||
| import net.minecraft.block.state.IBlockState; | import net.minecraft.block.state.IBlockState; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.item.Item; | import net.minecraft.item.Item; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import net.minecraft.util.math.BlockPos; | import net.minecraft.util.math.BlockPos; | ||||||
|  | import refinedstorage.container.ContainerDestructor; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
| import refinedstorage.tile.config.IModeConfig; | import refinedstorage.tile.config.IModeConfig; | ||||||
| @@ -47,7 +49,7 @@ public class TileDestructor extends TileMachine implements ICompareConfig, IMode | |||||||
|                     worldObj.setBlockToAir(front); |                     worldObj.setBlockToAir(front); | ||||||
|  |  | ||||||
|                     for (ItemStack drop : drops) { |                     for (ItemStack drop : drops) { | ||||||
|                         if (!getController().push(drop)) { |                         if (!controller.push(drop)) { | ||||||
|                             InventoryUtils.dropStack(worldObj, drop, front.getX(), front.getY(), front.getZ()); |                             InventoryUtils.dropStack(worldObj, drop, front.getX(), front.getY(), front.getZ()); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
| @@ -118,21 +120,25 @@ public class TileDestructor extends TileMachine implements ICompareConfig, IMode | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|         compare = buf.readInt(); |         compare = buf.readInt(); | ||||||
|         mode = buf.readInt(); |         mode = buf.readInt(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeInt(compare); |         buf.writeInt(compare); | ||||||
|         buf.writeInt(mode); |         buf.writeInt(mode); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerDestructor.class; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public IInventory getInventory() { |     public IInventory getInventory() { | ||||||
|         return inventory; |         return inventory; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -1,10 +1,12 @@ | |||||||
| package refinedstorage.tile; | package refinedstorage.tile; | ||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import refinedstorage.RefinedStorageBlocks; | import refinedstorage.RefinedStorageBlocks; | ||||||
|  | import refinedstorage.container.ContainerDetector; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.storage.ItemGroup; | import refinedstorage.storage.ItemGroup; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
| @@ -50,7 +52,7 @@ public class TileDetector extends TileMachine implements ICompareConfig { | |||||||
|             if (slot != null) { |             if (slot != null) { | ||||||
|                 boolean foundAny = false; |                 boolean foundAny = false; | ||||||
|  |  | ||||||
|                 for (ItemGroup group : getController().getItemGroups()) { |                 for (ItemGroup group : controller.getItemGroups()) { | ||||||
|                     if (group.compare(slot, compare)) { |                     if (group.compare(slot, compare)) { | ||||||
|                         foundAny = true; |                         foundAny = true; | ||||||
|  |  | ||||||
| @@ -156,12 +158,8 @@ public class TileDetector extends TileMachine implements ICompareConfig { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveData(buf); | ||||||
|  |  | ||||||
|         compare = buf.readInt(); |  | ||||||
|         mode = buf.readInt(); |  | ||||||
|         amount = buf.readInt(); |  | ||||||
|  |  | ||||||
|         boolean lastPowered = powered; |         boolean lastPowered = powered; | ||||||
|  |  | ||||||
| @@ -173,13 +171,33 @@ public class TileDetector extends TileMachine implements ICompareConfig { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendData(buf); | ||||||
|  |  | ||||||
|  |         buf.writeBoolean(powered); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void sendContainerData(ByteBuf buf) { | ||||||
|  |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeInt(compare); |         buf.writeInt(compare); | ||||||
|         buf.writeInt(mode); |         buf.writeInt(mode); | ||||||
|         buf.writeInt(amount); |         buf.writeInt(amount); | ||||||
|         buf.writeBoolean(powered); |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void receiveContainerData(ByteBuf buf) { | ||||||
|  |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|  |         compare = buf.readInt(); | ||||||
|  |         mode = buf.readInt(); | ||||||
|  |         amount = buf.readInt(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerDetector.class; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public IInventory getInventory() { |     public IInventory getInventory() { | ||||||
|   | |||||||
| @@ -2,12 +2,14 @@ package refinedstorage.tile; | |||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
| import net.minecraft.entity.player.EntityPlayer; | import net.minecraft.entity.player.EntityPlayer; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import net.minecraft.util.text.ITextComponent; | import net.minecraft.util.text.ITextComponent; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.block.EnumStorageType; | import refinedstorage.block.EnumStorageType; | ||||||
|  | import refinedstorage.container.ContainerDiskDrive; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.network.MessagePriorityUpdate; | import refinedstorage.network.MessagePriorityUpdate; | ||||||
| import refinedstorage.storage.*; | import refinedstorage.storage.*; | ||||||
| @@ -89,8 +91,8 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeInt(priority); |         buf.writeInt(priority); | ||||||
|         buf.writeInt(compare); |         buf.writeInt(compare); | ||||||
| @@ -98,14 +100,19 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|         priority = buf.readInt(); |         priority = buf.readInt(); | ||||||
|         compare = buf.readInt(); |         compare = buf.readInt(); | ||||||
|         mode = buf.readInt(); |         mode = buf.readInt(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerDiskDrive.class; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getCompare() { |     public int getCompare() { | ||||||
|         return compare; |         return compare; | ||||||
|   | |||||||
| @@ -1,11 +1,13 @@ | |||||||
| package refinedstorage.tile; | package refinedstorage.tile; | ||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import net.minecraft.tileentity.TileEntity; | import net.minecraft.tileentity.TileEntity; | ||||||
| import net.minecraft.tileentity.TileEntityHopper; | import net.minecraft.tileentity.TileEntityHopper; | ||||||
|  | import refinedstorage.container.ContainerExporter; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
| import refinedstorage.util.InventoryUtils; | import refinedstorage.util.InventoryUtils; | ||||||
| @@ -39,13 +41,13 @@ public class TileExporter extends TileMachine implements ICompareConfig { | |||||||
|                         ItemStack toTake = slot.copy(); |                         ItemStack toTake = slot.copy(); | ||||||
|                         toTake.stackSize = 1; |                         toTake.stackSize = 1; | ||||||
|  |  | ||||||
|                         ItemStack took = getController().take(toTake, compare); |                         ItemStack took = controller.take(toTake, compare); | ||||||
|  |  | ||||||
|                         if (took != null) { |                         if (took != null) { | ||||||
|                             ItemStack remaining = TileEntityHopper.putStackInInventoryAllSlots(connectedInventory, took, getDirection().getOpposite()); |                             ItemStack remaining = TileEntityHopper.putStackInInventoryAllSlots(connectedInventory, took, getDirection().getOpposite()); | ||||||
|  |  | ||||||
|                             if (remaining != null) { |                             if (remaining != null) { | ||||||
|                                 getController().push(remaining); |                                 controller.push(remaining); | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
| @@ -87,19 +89,24 @@ public class TileExporter extends TileMachine implements ICompareConfig { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|         compare = buf.readInt(); |         compare = buf.readInt(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeInt(compare); |         buf.writeInt(compare); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerExporter.class; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public IInventory getInventory() { |     public IInventory getInventory() { | ||||||
|         return inventory; |         return inventory; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -1,12 +1,14 @@ | |||||||
| package refinedstorage.tile; | package refinedstorage.tile; | ||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import net.minecraft.tileentity.TileEntity; | import net.minecraft.tileentity.TileEntity; | ||||||
| import powercrystals.minefactoryreloaded.api.IDeepStorageUnit; | import powercrystals.minefactoryreloaded.api.IDeepStorageUnit; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
|  | import refinedstorage.container.ContainerStorage; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.network.MessagePriorityUpdate; | import refinedstorage.network.MessagePriorityUpdate; | ||||||
| import refinedstorage.storage.IStorage; | import refinedstorage.storage.IStorage; | ||||||
| @@ -175,8 +177,8 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeInt(priority); |         buf.writeInt(priority); | ||||||
|  |  | ||||||
| @@ -197,8 +199,8 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|         priority = buf.readInt(); |         priority = buf.readInt(); | ||||||
|         stored = buf.readInt(); |         stored = buf.readInt(); | ||||||
| @@ -206,6 +208,11 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider | |||||||
|         mode = buf.readInt(); |         mode = buf.readInt(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerStorage.class; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void readFromNBT(NBTTagCompound nbt) { |     public void readFromNBT(NBTTagCompound nbt) { | ||||||
|         super.readFromNBT(nbt); |         super.readFromNBT(nbt); | ||||||
|   | |||||||
| @@ -1,11 +1,13 @@ | |||||||
| package refinedstorage.tile; | package refinedstorage.tile; | ||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.inventory.ISidedInventory; | import net.minecraft.inventory.ISidedInventory; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import net.minecraft.tileentity.TileEntity; | import net.minecraft.tileentity.TileEntity; | ||||||
|  | import refinedstorage.container.ContainerImporter; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
| import refinedstorage.tile.config.IModeConfig; | import refinedstorage.tile.config.IModeConfig; | ||||||
| @@ -55,7 +57,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo | |||||||
|                         toTake.stackSize = 1; |                         toTake.stackSize = 1; | ||||||
|  |  | ||||||
|                         if (canImport(toTake) && sided.canExtractItem(availableSlot, toTake, getDirection().getOpposite())) { |                         if (canImport(toTake) && sided.canExtractItem(availableSlot, toTake, getDirection().getOpposite())) { | ||||||
|                             if (getController().push(toTake)) { |                             if (controller.push(toTake)) { | ||||||
|                                 sided.decrStackSize(availableSlot, 1); |                                 sided.decrStackSize(availableSlot, 1); | ||||||
|                                 sided.markDirty(); |                                 sided.markDirty(); | ||||||
|                             } |                             } | ||||||
| @@ -82,7 +84,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo | |||||||
|  |  | ||||||
|                     // If we can't import and/ or push, move on (otherwise we stay on the same slot forever) |                     // If we can't import and/ or push, move on (otherwise we stay on the same slot forever) | ||||||
|                     if (canImport(toTake)) { |                     if (canImport(toTake)) { | ||||||
|                         if (getController().push(toTake)) { |                         if (controller.push(toTake)) { | ||||||
|                             inventory.decrStackSize(currentSlot, 1); |                             inventory.decrStackSize(currentSlot, 1); | ||||||
|                             inventory.markDirty(); |                             inventory.markDirty(); | ||||||
|                         } else { |                         } else { | ||||||
| @@ -188,21 +190,26 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|         compare = buf.readInt(); |         compare = buf.readInt(); | ||||||
|         mode = buf.readInt(); |         mode = buf.readInt(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeInt(compare); |         buf.writeInt(compare); | ||||||
|         buf.writeInt(mode); |         buf.writeInt(mode); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerImporter.class; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public IInventory getInventory() { |     public IInventory getInventory() { | ||||||
|         return inventory; |         return inventory; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -2,12 +2,14 @@ package refinedstorage.tile; | |||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
| import net.minecraft.entity.player.EntityPlayer; | import net.minecraft.entity.player.EntityPlayer; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.inventory.ISidedInventory; | import net.minecraft.inventory.ISidedInventory; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import net.minecraft.util.EnumFacing; | import net.minecraft.util.EnumFacing; | ||||||
| import net.minecraft.util.text.ITextComponent; | import net.minecraft.util.text.ITextComponent; | ||||||
|  | import refinedstorage.container.ContainerInterface; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
| import refinedstorage.util.InventoryUtils; | import refinedstorage.util.InventoryUtils; | ||||||
| @@ -50,7 +52,7 @@ public class TileInterface extends TileMachine implements ICompareConfig, ISided | |||||||
|                 ItemStack toPush = slot.copy(); |                 ItemStack toPush = slot.copy(); | ||||||
|                 toPush.stackSize = 1; |                 toPush.stackSize = 1; | ||||||
|  |  | ||||||
|                 if (getController().push(toPush)) { |                 if (controller.push(toPush)) { | ||||||
|                     decrStackSize(currentSlot, 1); |                     decrStackSize(currentSlot, 1); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @@ -65,7 +67,7 @@ public class TileInterface extends TileMachine implements ICompareConfig, ISided | |||||||
|  |  | ||||||
|                 if (got != null) { |                 if (got != null) { | ||||||
|                     if (!InventoryUtils.compareStack(wanted, got, compare)) { |                     if (!InventoryUtils.compareStack(wanted, got, compare)) { | ||||||
|                         if (getController().push(got)) { |                         if (controller.push(got)) { | ||||||
|                             inventory.setInventorySlotContents(i + 9, null); |                             inventory.setInventorySlotContents(i + 9, null); | ||||||
|                         } |                         } | ||||||
|                     } else { |                     } else { | ||||||
| @@ -83,7 +85,7 @@ public class TileInterface extends TileMachine implements ICompareConfig, ISided | |||||||
|                     ItemStack goingToTake = wanted.copy(); |                     ItemStack goingToTake = wanted.copy(); | ||||||
|                     goingToTake.stackSize = needed; |                     goingToTake.stackSize = needed; | ||||||
|  |  | ||||||
|                     ItemStack took = getController().take(goingToTake, compare); |                     ItemStack took = controller.take(goingToTake, compare); | ||||||
|  |  | ||||||
|                     if (took != null) { |                     if (took != null) { | ||||||
|                         if (got == null) { |                         if (got == null) { | ||||||
| @@ -94,7 +96,7 @@ public class TileInterface extends TileMachine implements ICompareConfig, ISided | |||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } else if (got != null) { |             } else if (got != null) { | ||||||
|                 if (getController().push(got)) { |                 if (controller.push(got)) { | ||||||
|                     inventory.setInventorySlotContents(i + 9, null); |                     inventory.setInventorySlotContents(i + 9, null); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @@ -122,19 +124,24 @@ public class TileInterface extends TileMachine implements ICompareConfig, ISided | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|         compare = buf.readInt(); |         compare = buf.readInt(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeInt(compare); |         buf.writeInt(compare); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerInterface.class; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getSizeInventory() { |     public int getSizeInventory() { | ||||||
|         return inventory.getSizeInventory(); |         return inventory.getSizeInventory(); | ||||||
|   | |||||||
| @@ -1,7 +1,6 @@ | |||||||
| package refinedstorage.tile; | package refinedstorage.tile; | ||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
| import net.minecraft.block.Block; |  | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| import net.minecraft.util.math.BlockPos; | import net.minecraft.util.math.BlockPos; | ||||||
| import refinedstorage.block.BlockMachine; | import refinedstorage.block.BlockMachine; | ||||||
| @@ -11,47 +10,39 @@ import refinedstorage.tile.config.RedstoneMode; | |||||||
| public abstract class TileMachine extends TileBase implements INetworkTile, IRedstoneModeConfig { | public abstract class TileMachine extends TileBase implements INetworkTile, IRedstoneModeConfig { | ||||||
|     protected boolean connected = false; |     protected boolean connected = false; | ||||||
|     protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; |     protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; | ||||||
|  |     protected TileController controller; | ||||||
|     private BlockPos controllerPosition; |  | ||||||
|  |  | ||||||
|     private Block originalBlock; |  | ||||||
|  |  | ||||||
|     public void onConnected(TileController controller) { |     public void onConnected(TileController controller) { | ||||||
|         if (worldObj != null && worldObj.getBlockState(pos).getBlock() == originalBlock) { |         if (worldObj != null && worldObj.getBlockState(pos).getBlock() == blockType) { | ||||||
|             markDirty(); |             markDirty(); | ||||||
|  |  | ||||||
|             connected = true; |             this.connected = true; | ||||||
|  |             this.controller = controller; | ||||||
|  |  | ||||||
|             worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, true)); |             worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, true)); | ||||||
|  |  | ||||||
|             controllerPosition = controller.getPos(); |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void onDisconnected() { |     public void onDisconnected() { | ||||||
|         if (worldObj != null && worldObj.getBlockState(pos).getBlock() == originalBlock) { |         if (worldObj != null && worldObj.getBlockState(pos).getBlock() == blockType) { | ||||||
|             markDirty(); |             markDirty(); | ||||||
|  |  | ||||||
|             connected = false; |             this.connected = false; | ||||||
|  |             this.controller = null; | ||||||
|  |  | ||||||
|             worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, false)); |             worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, false)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public TileController getController() { | ||||||
|  |         return controller; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void update() { |     public void update() { | ||||||
|         if (worldObj == null) { |  | ||||||
|             super.update(); |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         if (ticks == 0) { |  | ||||||
|             originalBlock = worldObj.getBlockState(pos).getBlock(); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         super.update(); |         super.update(); | ||||||
|  |  | ||||||
|         if (!worldObj.isRemote && isConnected()) { |         if (worldObj != null && !worldObj.isRemote && isConnected()) { | ||||||
|             updateMachine(); |             updateMachine(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -77,37 +68,30 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed | |||||||
|         return pos; |         return pos; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public TileController getController() { |  | ||||||
|         return (TileController) worldObj.getTileEntity(controllerPosition); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveData(ByteBuf buf) { | ||||||
|         boolean lastConnected = connected; |         boolean lastConnected = connected; | ||||||
|  |  | ||||||
|         connected = buf.readBoolean(); |         connected = buf.readBoolean(); | ||||||
|  |  | ||||||
|         if (connected) { |  | ||||||
|             controllerPosition = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt()); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         redstoneMode = RedstoneMode.getById(buf.readInt()); |  | ||||||
|  |  | ||||||
|         if (lastConnected != connected) { |         if (lastConnected != connected) { | ||||||
|  |             // @TODO: make this work and use correct flags? | ||||||
|             worldObj.notifyBlockUpdate(pos, worldObj.getBlockState(pos), worldObj.getBlockState(pos), 2 | 4); |             worldObj.notifyBlockUpdate(pos, worldObj.getBlockState(pos), worldObj.getBlockState(pos), 2 | 4); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendData(ByteBuf buf) { | ||||||
|         buf.writeBoolean(connected); |         buf.writeBoolean(connected); | ||||||
|  |     } | ||||||
|  |  | ||||||
|         if (connected) { |     @Override | ||||||
|             buf.writeInt(controllerPosition.getX()); |     public void receiveContainerData(ByteBuf buf) { | ||||||
|             buf.writeInt(controllerPosition.getY()); |         redstoneMode = RedstoneMode.getById(buf.readInt()); | ||||||
|             buf.writeInt(controllerPosition.getZ()); |     } | ||||||
|         } |  | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void sendContainerData(ByteBuf buf) { | ||||||
|         buf.writeInt(redstoneMode.id); |         buf.writeInt(redstoneMode.id); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,5 +1,7 @@ | |||||||
| package refinedstorage.tile; | package refinedstorage.tile; | ||||||
|  |  | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
|  | import refinedstorage.container.ContainerRelay; | ||||||
| import refinedstorage.tile.config.RedstoneMode; | import refinedstorage.tile.config.RedstoneMode; | ||||||
|  |  | ||||||
| public class TileRelay extends TileMachine { | public class TileRelay extends TileMachine { | ||||||
| @@ -15,4 +17,9 @@ public class TileRelay extends TileMachine { | |||||||
|     @Override |     @Override | ||||||
|     public void updateMachine() { |     public void updateMachine() { | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerRelay.class; | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ package refinedstorage.tile; | |||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
| import net.minecraft.entity.player.EntityPlayer; | import net.minecraft.entity.player.EntityPlayer; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.inventory.ISidedInventory; | import net.minecraft.inventory.ISidedInventory; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| @@ -10,6 +11,7 @@ import net.minecraft.util.EnumFacing; | |||||||
| import net.minecraft.util.text.ITextComponent; | import net.minecraft.util.text.ITextComponent; | ||||||
| import net.minecraftforge.fml.relauncher.Side; | import net.minecraftforge.fml.relauncher.Side; | ||||||
| import net.minecraftforge.fml.relauncher.SideOnly; | import net.minecraftforge.fml.relauncher.SideOnly; | ||||||
|  | import refinedstorage.container.ContainerSolderer; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.tile.solderer.ISoldererRecipe; | import refinedstorage.tile.solderer.ISoldererRecipe; | ||||||
| import refinedstorage.tile.solderer.SoldererRegistry; | import refinedstorage.tile.solderer.SoldererRegistry; | ||||||
| @@ -112,8 +114,8 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|         working = buf.readBoolean(); |         working = buf.readBoolean(); | ||||||
|         progress = buf.readInt(); |         progress = buf.readInt(); | ||||||
| @@ -121,14 +123,19 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeBoolean(working); |         buf.writeBoolean(working); | ||||||
|         buf.writeInt(progress); |         buf.writeInt(progress); | ||||||
|         buf.writeInt(recipe != null ? recipe.getDuration() : 0); |         buf.writeInt(recipe != null ? recipe.getDuration() : 0); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerSolderer.class; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public boolean isWorking() { |     public boolean isWorking() { | ||||||
|         return working; |         return working; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -1,6 +1,7 @@ | |||||||
| package refinedstorage.tile; | package refinedstorage.tile; | ||||||
|  |  | ||||||
| import io.netty.buffer.ByteBuf; | import io.netty.buffer.ByteBuf; | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
| import net.minecraft.inventory.IInventory; | import net.minecraft.inventory.IInventory; | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
| @@ -10,6 +11,7 @@ import refinedstorage.RefinedStorage; | |||||||
| import refinedstorage.RefinedStorageBlocks; | import refinedstorage.RefinedStorageBlocks; | ||||||
| import refinedstorage.block.BlockStorage; | import refinedstorage.block.BlockStorage; | ||||||
| import refinedstorage.block.EnumStorageType; | import refinedstorage.block.EnumStorageType; | ||||||
|  | import refinedstorage.container.ContainerStorage; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.network.MessagePriorityUpdate; | import refinedstorage.network.MessagePriorityUpdate; | ||||||
| import refinedstorage.storage.*; | import refinedstorage.storage.*; | ||||||
| @@ -95,8 +97,8 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeInt(NBTStorage.getStored(tag)); |         buf.writeInt(NBTStorage.getStored(tag)); | ||||||
|         buf.writeInt(priority); |         buf.writeInt(priority); | ||||||
| @@ -105,8 +107,8 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|         stored = buf.readInt(); |         stored = buf.readInt(); | ||||||
|         priority = buf.readInt(); |         priority = buf.readInt(); | ||||||
| @@ -114,6 +116,11 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora | |||||||
|         mode = buf.readInt(); |         mode = buf.readInt(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerStorage.class; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void addItems(List<ItemGroup> items) { |     public void addItems(List<ItemGroup> items) { | ||||||
|         getStorage().addItems(items); |         getStorage().addItems(items); | ||||||
|   | |||||||
| @@ -1,13 +1,19 @@ | |||||||
| package refinedstorage.tile.grid; | package refinedstorage.tile.grid; | ||||||
|  |  | ||||||
| import refinedstorage.block.EnumGridType; | import refinedstorage.block.EnumGridType; | ||||||
| import refinedstorage.tile.TileController; | import refinedstorage.storage.ItemGroup; | ||||||
| import refinedstorage.tile.config.IRedstoneModeConfig; | import refinedstorage.tile.config.IRedstoneModeConfig; | ||||||
|  |  | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| public interface IGrid { | public interface IGrid { | ||||||
|     EnumGridType getType(); |     EnumGridType getType(); | ||||||
|  |  | ||||||
|     TileController getController(); |     List<ItemGroup> getItemGroups(); | ||||||
|  |  | ||||||
|  |     void onItemPush(int playerSlot, boolean one); | ||||||
|  |  | ||||||
|  |     void onItemPull(int id, int flags); | ||||||
|  |  | ||||||
|     int getSortingType(); |     int getSortingType(); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -8,6 +8,8 @@ import net.minecraft.inventory.InventoryCrafting; | |||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.item.crafting.CraftingManager; | import net.minecraft.item.crafting.CraftingManager; | ||||||
| import net.minecraft.nbt.NBTTagCompound; | import net.minecraft.nbt.NBTTagCompound; | ||||||
|  | import net.minecraftforge.fml.relauncher.Side; | ||||||
|  | import net.minecraftforge.fml.relauncher.SideOnly; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.RefinedStorageBlocks; | import refinedstorage.RefinedStorageBlocks; | ||||||
| import refinedstorage.block.BlockGrid; | import refinedstorage.block.BlockGrid; | ||||||
| @@ -15,6 +17,9 @@ import refinedstorage.block.EnumGridType; | |||||||
| import refinedstorage.container.ContainerGrid; | import refinedstorage.container.ContainerGrid; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.network.MessageGridSettingsUpdate; | import refinedstorage.network.MessageGridSettingsUpdate; | ||||||
|  | import refinedstorage.network.MessageGridStoragePull; | ||||||
|  | import refinedstorage.network.MessageGridStoragePush; | ||||||
|  | import refinedstorage.storage.ItemGroup; | ||||||
| import refinedstorage.tile.TileMachine; | import refinedstorage.tile.TileMachine; | ||||||
| import refinedstorage.tile.config.IRedstoneModeConfig; | import refinedstorage.tile.config.IRedstoneModeConfig; | ||||||
| import refinedstorage.util.InventoryUtils; | import refinedstorage.util.InventoryUtils; | ||||||
| @@ -54,6 +59,9 @@ public class TileGrid extends TileMachine implements IGrid { | |||||||
|     private int sortingType = SORTING_TYPE_NAME; |     private int sortingType = SORTING_TYPE_NAME; | ||||||
|     private int searchBoxMode = SEARCH_BOX_MODE_NORMAL; |     private int searchBoxMode = SEARCH_BOX_MODE_NORMAL; | ||||||
|  |  | ||||||
|  |     @SideOnly(Side.CLIENT) | ||||||
|  |     private List<ItemGroup> itemGroups = new ArrayList<ItemGroup>(); | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return 4; |         return 4; | ||||||
| @@ -71,6 +79,21 @@ public class TileGrid extends TileMachine implements IGrid { | |||||||
|         return EnumGridType.NORMAL; |         return EnumGridType.NORMAL; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public List<ItemGroup> getItemGroups() { | ||||||
|  |         return itemGroups; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void onItemPush(int playerSlot, boolean one) { | ||||||
|  |         RefinedStorage.NETWORK.sendToServer(new MessageGridStoragePush(getPos().getX(), getPos().getY(), getPos().getZ(), playerSlot, one)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void onItemPull(int id, int flags) { | ||||||
|  |         RefinedStorage.NETWORK.sendToServer(new MessageGridStoragePull(getPos().getX(), getPos().getY(), getPos().getZ(), id, flags)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public InventoryCrafting getCraftingInventory() { |     public InventoryCrafting getCraftingInventory() { | ||||||
|         return craftingInventory; |         return craftingInventory; | ||||||
|     } |     } | ||||||
| @@ -92,7 +115,7 @@ public class TileGrid extends TileMachine implements IGrid { | |||||||
|  |  | ||||||
|                 if (slot != null) { |                 if (slot != null) { | ||||||
|                     if (slot.stackSize == 1 && isConnected()) { |                     if (slot.stackSize == 1 && isConnected()) { | ||||||
|                         craftingInventory.setInventorySlotContents(i, getController().take(slot.copy())); |                         craftingInventory.setInventorySlotContents(i, controller.take(slot.copy())); | ||||||
|                     } else { |                     } else { | ||||||
|                         craftingInventory.decrStackSize(i, 1); |                         craftingInventory.decrStackSize(i, 1); | ||||||
|                     } |                     } | ||||||
| @@ -124,7 +147,7 @@ public class TileGrid extends TileMachine implements IGrid { | |||||||
|  |  | ||||||
|         for (ItemStack craftedItem : craftedItemsList) { |         for (ItemStack craftedItem : craftedItemsList) { | ||||||
|             if (!player.inventory.addItemStackToInventory(craftedItem.copy())) { |             if (!player.inventory.addItemStackToInventory(craftedItem.copy())) { | ||||||
|                 if (isConnected() && getController().push(craftedItem.copy())) { |                 if (isConnected() && controller.push(craftedItem.copy())) { | ||||||
|                     // NO OP |                     // NO OP | ||||||
|                 } else { |                 } else { | ||||||
|                     InventoryUtils.dropStack(player.worldObj, craftedItem, player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ()); |                     InventoryUtils.dropStack(player.worldObj, craftedItem, player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ()); | ||||||
| @@ -139,7 +162,7 @@ public class TileGrid extends TileMachine implements IGrid { | |||||||
|                 ItemStack slot = craftingInventory.getStackInSlot(i); |                 ItemStack slot = craftingInventory.getStackInSlot(i); | ||||||
|  |  | ||||||
|                 if (slot != null) { |                 if (slot != null) { | ||||||
|                     if (!getController().push(slot)) { |                     if (!controller.push(slot)) { | ||||||
|                         return; |                         return; | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
| @@ -152,7 +175,7 @@ public class TileGrid extends TileMachine implements IGrid { | |||||||
|                     ItemStack[] possibilities = recipe[i]; |                     ItemStack[] possibilities = recipe[i]; | ||||||
|  |  | ||||||
|                     for (ItemStack possibility : possibilities) { |                     for (ItemStack possibility : possibilities) { | ||||||
|                         ItemStack took = getController().take(possibility); |                         ItemStack took = controller.take(possibility); | ||||||
|  |  | ||||||
|                         if (took != null) { |                         if (took != null) { | ||||||
|                             craftingInventory.setInventorySlotContents(i, possibility); |                             craftingInventory.setInventorySlotContents(i, possibility); | ||||||
| @@ -244,21 +267,44 @@ public class TileGrid extends TileMachine implements IGrid { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void toBytes(ByteBuf buf) { |     public void sendContainerData(ByteBuf buf) { | ||||||
|         super.toBytes(buf); |         super.sendContainerData(buf); | ||||||
|  |  | ||||||
|         buf.writeInt(sortingDirection); |         buf.writeInt(sortingDirection); | ||||||
|         buf.writeInt(sortingType); |         buf.writeInt(sortingType); | ||||||
|         buf.writeInt(searchBoxMode); |         buf.writeInt(searchBoxMode); | ||||||
|  |  | ||||||
|  |         if (connected) { | ||||||
|  |             buf.writeInt(controller.getItemGroups().size()); | ||||||
|  |  | ||||||
|  |             for (ItemGroup group : controller.getItemGroups()) { | ||||||
|  |                 group.toBytes(buf, controller.getItemGroups().indexOf(group)); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void fromBytes(ByteBuf buf) { |     public void receiveContainerData(ByteBuf buf) { | ||||||
|         super.fromBytes(buf); |         super.receiveContainerData(buf); | ||||||
|  |  | ||||||
|         sortingDirection = buf.readInt(); |         sortingDirection = buf.readInt(); | ||||||
|         sortingType = buf.readInt(); |         sortingType = buf.readInt(); | ||||||
|         searchBoxMode = buf.readInt(); |         searchBoxMode = buf.readInt(); | ||||||
|  |  | ||||||
|  |         itemGroups.clear(); | ||||||
|  |  | ||||||
|  |         if (connected) { | ||||||
|  |             int size = buf.readInt(); | ||||||
|  |  | ||||||
|  |             for (int i = 0; i < size; ++i) { | ||||||
|  |                 itemGroups.add(new ItemGroup(buf)); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return ContainerGrid.class; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -1,16 +1,17 @@ | |||||||
| package refinedstorage.tile.grid; | package refinedstorage.tile.grid; | ||||||
|  |  | ||||||
| import net.minecraft.item.ItemStack; | import net.minecraft.item.ItemStack; | ||||||
| import net.minecraft.tileentity.TileEntity; |  | ||||||
| import net.minecraft.util.EnumHand; | import net.minecraft.util.EnumHand; | ||||||
| import net.minecraft.util.math.BlockPos; |  | ||||||
| import net.minecraft.world.World; | import net.minecraft.world.World; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.block.EnumGridType; | import refinedstorage.block.EnumGridType; | ||||||
| import refinedstorage.item.ItemWirelessGrid; | import refinedstorage.item.ItemWirelessGrid; | ||||||
| import refinedstorage.network.MessageWirelessGridSettingsUpdate; | import refinedstorage.network.MessageWirelessGridSettingsUpdate; | ||||||
| import refinedstorage.tile.TileController; | import refinedstorage.storage.ItemGroup; | ||||||
| import refinedstorage.tile.config.IRedstoneModeConfig; | import refinedstorage.tile.config.IRedstoneModeConfig; | ||||||
|  | import refinedstorage.util.HandUtils; | ||||||
|  |  | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| public class WirelessGrid implements IGrid { | public class WirelessGrid implements IGrid { | ||||||
|     private ItemStack stack; |     private ItemStack stack; | ||||||
| @@ -34,13 +35,19 @@ public class WirelessGrid implements IGrid { | |||||||
|         return EnumGridType.NORMAL; |         return EnumGridType.NORMAL; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public TileEntity getBoundTile() { |     @Override | ||||||
|         return world.getTileEntity(new BlockPos(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack))); |     public List<ItemGroup> getItemGroups() { | ||||||
|  |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public TileController getController() { |     public void onItemPush(int playerSlot, boolean one) { | ||||||
|         return (TileController) getBoundTile(); |  | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void onItemPull(int id, int flags) { | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -60,21 +67,21 @@ public class WirelessGrid implements IGrid { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void onSortingTypeChanged(int type) { |     public void onSortingTypeChanged(int type) { | ||||||
|         RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridSettingsUpdate(hand == EnumHand.OFF_HAND ? 1 : 0, getSortingDirection(), type, getSearchBoxMode())); |         RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridSettingsUpdate(HandUtils.getIdFromHand(hand), getSortingDirection(), type, getSearchBoxMode())); | ||||||
|  |  | ||||||
|         this.sortingType = type; |         this.sortingType = type; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void onSortingDirectionChanged(int direction) { |     public void onSortingDirectionChanged(int direction) { | ||||||
|         RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridSettingsUpdate(hand == EnumHand.OFF_HAND ? 1 : 0, direction, getSortingType(), getSearchBoxMode())); |         RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridSettingsUpdate(HandUtils.getIdFromHand(hand), direction, getSortingType(), getSearchBoxMode())); | ||||||
|  |  | ||||||
|         this.sortingDirection = direction; |         this.sortingDirection = direction; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void onSearchBoxModeChanged(int searchBoxMode) { |     public void onSearchBoxModeChanged(int searchBoxMode) { | ||||||
|         RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridSettingsUpdate(hand == EnumHand.OFF_HAND ? 1 : 0, getSortingDirection(), getSortingType(), searchBoxMode)); |         RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridSettingsUpdate(HandUtils.getIdFromHand(hand), getSortingDirection(), getSortingType(), searchBoxMode)); | ||||||
|  |  | ||||||
|         this.searchBoxMode = searchBoxMode; |         this.searchBoxMode = searchBoxMode; | ||||||
|     } |     } | ||||||
| @@ -86,6 +93,6 @@ public class WirelessGrid implements IGrid { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public boolean isConnected() { |     public boolean isConnected() { | ||||||
|         return getBoundTile() instanceof TileController && getController().isActiveClientSide(); |         return false; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Raoul Van den Berge
					Raoul Van den Berge