Requesting packet stuff
This commit is contained in:
		| @@ -1,20 +1,29 @@ | |||||||
| package refinedstorage.gui; | package refinedstorage.gui; | ||||||
|  |  | ||||||
|  | import com.google.common.primitives.Ints; | ||||||
|  | import net.minecraft.client.gui.GuiButton; | ||||||
| import net.minecraft.client.gui.GuiTextField; | import net.minecraft.client.gui.GuiTextField; | ||||||
|  | import net.minecraftforge.fml.client.FMLClientHandler; | ||||||
| import refinedstorage.container.ContainerDummy; | import refinedstorage.container.ContainerDummy; | ||||||
|  |  | ||||||
| import java.io.IOException; | import java.io.IOException; | ||||||
|  |  | ||||||
| public class GuiCraftingSettings extends GuiBase { | public class GuiCraftingSettings extends GuiBase { | ||||||
|     private GuiTextField amountField; |     private GuiTextField amountField; | ||||||
|  |     private GuiGrid gridGui; | ||||||
|  |     private int id; | ||||||
|  |     private GuiButton startButton; | ||||||
|  |  | ||||||
|     public GuiCraftingSettings() { |     public GuiCraftingSettings(GuiGrid gridGui, int id) { | ||||||
|         super(new ContainerDummy(), 143, 61); |         super(new ContainerDummy(), 143, 61); | ||||||
|  |  | ||||||
|  |         this.gridGui = gridGui; | ||||||
|  |         this.id = id; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void init(int x, int y) { |     public void init(int x, int y) { | ||||||
|         addButton(x + 48, y + 35, 50, 20, t("misc.refinedstorage:start")); |         startButton = addButton(x + 48, y + 35, 50, 20, t("misc.refinedstorage:start")); | ||||||
|  |  | ||||||
|         amountField = new GuiTextField(0, fontRendererObj, x + 39 + 1, y + 21 + 1, 69 - 6, fontRendererObj.FONT_HEIGHT); |         amountField = new GuiTextField(0, fontRendererObj, x + 39 + 1, y + 21 + 1, 69 - 6, fontRendererObj.FONT_HEIGHT); | ||||||
|         amountField.setEnableBackgroundDrawing(false); |         amountField.setEnableBackgroundDrawing(false); | ||||||
| @@ -51,4 +60,19 @@ public class GuiCraftingSettings extends GuiBase { | |||||||
|             super.keyTyped(character, keyCode); |             super.keyTyped(character, keyCode); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     protected void actionPerformed(GuiButton button) throws IOException { | ||||||
|  |         super.actionPerformed(button); | ||||||
|  |  | ||||||
|  |         if (button.id == startButton.id) { | ||||||
|  |             Integer quantity = Ints.tryParse(amountField.getText()); | ||||||
|  |  | ||||||
|  |             if (quantity != null && quantity > 0) { | ||||||
|  |                 gridGui.getGrid().onCraftingRequested(id, quantity); | ||||||
|  |  | ||||||
|  |                 FMLClientHandler.instance().showGuiScreen(gridGui); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -69,6 +69,10 @@ public class GuiGrid extends GuiBase { | |||||||
|         searchField.setFocused(true); |         searchField.setFocused(true); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public IGrid getGrid() { | ||||||
|  |         return grid; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void update(int x, int y) { |     public void update(int x, int y) { | ||||||
|         items.clear(); |         items.clear(); | ||||||
| @@ -268,7 +272,7 @@ public class GuiGrid extends GuiBase { | |||||||
|                 grid.onItemPush(-1, clickedButton == 1); |                 grid.onItemPush(-1, clickedButton == 1); | ||||||
|             } else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) { |             } else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) { | ||||||
|                 if (items.get(hoveringSlot).getQuantity() == 0) { |                 if (items.get(hoveringSlot).getQuantity() == 0) { | ||||||
|                     FMLCommonHandler.instance().showGuiScreen(new GuiCraftingSettings()); |                     FMLCommonHandler.instance().showGuiScreen(new GuiCraftingSettings(this, hoveringItemId)); | ||||||
|                 } else { |                 } else { | ||||||
|                     int flags = 0; |                     int flags = 0; | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										54
									
								
								src/main/java/refinedstorage/network/MessageGridCraftingStart.java
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								src/main/java/refinedstorage/network/MessageGridCraftingStart.java
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,54 @@ | |||||||
|  | package refinedstorage.network; | ||||||
|  |  | ||||||
|  | import io.netty.buffer.ByteBuf; | ||||||
|  | import net.minecraft.entity.player.EntityPlayerMP; | ||||||
|  | import net.minecraft.tileentity.TileEntity; | ||||||
|  | import net.minecraft.util.math.BlockPos; | ||||||
|  | import net.minecraftforge.fml.common.network.simpleimpl.IMessage; | ||||||
|  | import refinedstorage.tile.grid.TileGrid; | ||||||
|  |  | ||||||
|  | public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<MessageGridCraftingStart> implements IMessage { | ||||||
|  |     private int gridX; | ||||||
|  |     private int gridY; | ||||||
|  |     private int gridZ; | ||||||
|  |     private int id; | ||||||
|  |     private int quantity; | ||||||
|  |  | ||||||
|  |     public MessageGridCraftingStart() { | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public MessageGridCraftingStart(int gridX, int gridY, int gridZ, int id, int quantity) { | ||||||
|  |         this.gridX = gridX; | ||||||
|  |         this.gridY = gridY; | ||||||
|  |         this.gridZ = gridZ; | ||||||
|  |         this.id = id; | ||||||
|  |         this.quantity = quantity; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void fromBytes(ByteBuf buf) { | ||||||
|  |         gridX = buf.readInt(); | ||||||
|  |         gridY = buf.readInt(); | ||||||
|  |         gridZ = buf.readInt(); | ||||||
|  |         id = buf.readInt(); | ||||||
|  |         quantity = buf.readInt(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void toBytes(ByteBuf buf) { | ||||||
|  |         buf.writeInt(gridX); | ||||||
|  |         buf.writeInt(gridY); | ||||||
|  |         buf.writeInt(gridZ); | ||||||
|  |         buf.writeInt(id); | ||||||
|  |         buf.writeInt(quantity); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void handle(MessageGridCraftingStart message, EntityPlayerMP player) { | ||||||
|  |         TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.gridX, message.gridY, message.gridZ)); | ||||||
|  |  | ||||||
|  |         if (tile instanceof TileGrid && ((TileGrid) tile).isConnected() && message.quantity > 0 && message.id >= 0) { | ||||||
|  |             ((TileGrid) tile).getController().onCraftingRequested(message.id, message.quantity); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -51,7 +51,7 @@ public class MessageGridStoragePull extends MessageHandlerPlayerToServer<Message | |||||||
|         if (tile instanceof TileGrid && ((TileGrid) tile).isConnected()) { |         if (tile instanceof TileGrid && ((TileGrid) tile).isConnected()) { | ||||||
|             TileController controller = ((TileGrid) tile).getController(); |             TileController controller = ((TileGrid) tile).getController(); | ||||||
|  |  | ||||||
|             if (message.id < controller.getItemGroups().size()) { |             if (message.id >= 0 && message.id < controller.getItemGroups().size()) { | ||||||
|                 controller.handleStoragePull(message.id, message.flags, player); |                 controller.handleStoragePull(message.id, message.flags, player); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|   | |||||||
							
								
								
									
										54
									
								
								src/main/java/refinedstorage/network/MessageWirelessGridCraftingStart.java
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								src/main/java/refinedstorage/network/MessageWirelessGridCraftingStart.java
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,54 @@ | |||||||
|  | package refinedstorage.network; | ||||||
|  |  | ||||||
|  | import io.netty.buffer.ByteBuf; | ||||||
|  | import net.minecraft.entity.player.EntityPlayerMP; | ||||||
|  | import net.minecraft.tileentity.TileEntity; | ||||||
|  | import net.minecraft.util.math.BlockPos; | ||||||
|  | import net.minecraftforge.fml.common.network.simpleimpl.IMessage; | ||||||
|  | import refinedstorage.tile.TileController; | ||||||
|  |  | ||||||
|  | public class MessageWirelessGridCraftingStart extends MessageHandlerPlayerToServer<MessageWirelessGridCraftingStart> implements IMessage { | ||||||
|  |     private int controllerX; | ||||||
|  |     private int controllerY; | ||||||
|  |     private int controllerZ; | ||||||
|  |     private int id; | ||||||
|  |     private int quantity; | ||||||
|  |  | ||||||
|  |     public MessageWirelessGridCraftingStart() { | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public MessageWirelessGridCraftingStart(int controllerX, int controllerY, int controllerZ, int id, int quantity) { | ||||||
|  |         this.controllerX = controllerX; | ||||||
|  |         this.controllerY = controllerY; | ||||||
|  |         this.controllerZ = controllerZ; | ||||||
|  |         this.id = id; | ||||||
|  |         this.quantity = quantity; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void fromBytes(ByteBuf buf) { | ||||||
|  |         controllerX = buf.readInt(); | ||||||
|  |         controllerY = buf.readInt(); | ||||||
|  |         controllerZ = buf.readInt(); | ||||||
|  |         id = buf.readInt(); | ||||||
|  |         quantity = buf.readInt(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void toBytes(ByteBuf buf) { | ||||||
|  |         buf.writeInt(controllerX); | ||||||
|  |         buf.writeInt(controllerY); | ||||||
|  |         buf.writeInt(controllerZ); | ||||||
|  |         buf.writeInt(id); | ||||||
|  |         buf.writeInt(quantity); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void handle(MessageWirelessGridCraftingStart message, EntityPlayerMP player) { | ||||||
|  |         TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.controllerX, message.controllerY, message.controllerZ)); | ||||||
|  |  | ||||||
|  |         if (tile instanceof TileController && ((TileController) tile).isActive() && message.quantity > 0 && message.id >= 0) { | ||||||
|  |             ((TileController) tile).onCraftingRequested(message.id, message.quantity); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -50,7 +50,7 @@ public class MessageWirelessGridStoragePull extends MessageHandlerPlayerToServer | |||||||
|         if (tile instanceof TileController && ((TileController) tile).isActive()) { |         if (tile instanceof TileController && ((TileController) tile).isActive()) { | ||||||
|             TileController controller = (TileController) tile; |             TileController controller = (TileController) tile; | ||||||
|  |  | ||||||
|             if (message.id < controller.getItemGroups().size()) { |             if (message.id >= 0 && message.id < controller.getItemGroups().size()) { | ||||||
|                 controller.handleStoragePull(message.id, message.flags, player); |                 controller.handleStoragePull(message.id, message.flags, player); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -50,6 +50,8 @@ public class CommonProxy { | |||||||
|         RefinedStorage.NETWORK.registerMessage(MessageWirelessGridStoragePush.class, MessageWirelessGridStoragePush.class, 17, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageWirelessGridStoragePush.class, MessageWirelessGridStoragePush.class, 17, Side.SERVER); | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageWirelessGridStoragePull.class, MessageWirelessGridStoragePull.class, 18, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageWirelessGridStoragePull.class, MessageWirelessGridStoragePull.class, 18, Side.SERVER); | ||||||
|         RefinedStorage.NETWORK.registerMessage(MessageGridCraftingShift.class, MessageGridCraftingShift.class, 19, Side.SERVER); |         RefinedStorage.NETWORK.registerMessage(MessageGridCraftingShift.class, MessageGridCraftingShift.class, 19, Side.SERVER); | ||||||
|  |         RefinedStorage.NETWORK.registerMessage(MessageGridCraftingStart.class, MessageGridCraftingStart.class, 20, Side.SERVER); | ||||||
|  |         RefinedStorage.NETWORK.registerMessage(MessageWirelessGridCraftingStart.class, MessageWirelessGridCraftingStart.class, 21, Side.SERVER); | ||||||
|  |  | ||||||
|         NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler()); |         NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler()); | ||||||
|  |  | ||||||
| @@ -86,13 +88,13 @@ public class CommonProxy { | |||||||
|         registerBlock(RefinedStorageBlocks.CRAFTING_MONITOR); |         registerBlock(RefinedStorageBlocks.CRAFTING_MONITOR); | ||||||
|  |  | ||||||
|         registerItem(RefinedStorageItems.STORAGE_DISK); |         registerItem(RefinedStorageItems.STORAGE_DISK); | ||||||
|  |         registerItem(RefinedStorageItems.PATTERN); | ||||||
|         registerItem(RefinedStorageItems.WIRELESS_GRID); |         registerItem(RefinedStorageItems.WIRELESS_GRID); | ||||||
|         registerItem(RefinedStorageItems.QUARTZ_ENRICHED_IRON); |         registerItem(RefinedStorageItems.QUARTZ_ENRICHED_IRON); | ||||||
|         registerItem(RefinedStorageItems.CORE); |         registerItem(RefinedStorageItems.CORE); | ||||||
|         registerItem(RefinedStorageItems.SILICON); |         registerItem(RefinedStorageItems.SILICON); | ||||||
|         registerItem(RefinedStorageItems.PROCESSOR); |         registerItem(RefinedStorageItems.PROCESSOR); | ||||||
|         registerItem(RefinedStorageItems.STORAGE_PART); |         registerItem(RefinedStorageItems.STORAGE_PART); | ||||||
|         registerItem(RefinedStorageItems.PATTERN); |  | ||||||
|  |  | ||||||
|         // Processors |         // Processors | ||||||
|         SoldererRegistry.addRecipe(new SoldererRecipePrintedProcessor(ItemProcessor.TYPE_PRINTED_BASIC)); |         SoldererRegistry.addRecipe(new SoldererRecipePrintedProcessor(ItemProcessor.TYPE_PRINTED_BASIC)); | ||||||
|   | |||||||
| @@ -606,4 +606,8 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|             group.toBytes(buf, getItemGroups().indexOf(group)); |             group.toBytes(buf, getItemGroups().indexOf(group)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public void onCraftingRequested(int id, int quantity) { | ||||||
|  |         System.out.println("Requested crafting for item " + id + " with quantity of " + quantity); | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -27,6 +27,8 @@ public interface IGrid { | |||||||
|  |  | ||||||
|     void onSearchBoxModeChanged(int searchBoxMode); |     void onSearchBoxModeChanged(int searchBoxMode); | ||||||
|  |  | ||||||
|  |     void onCraftingRequested(int id, int quantity); | ||||||
|  |  | ||||||
|     IRedstoneModeConfig getRedstoneModeSetting(); |     IRedstoneModeConfig getRedstoneModeSetting(); | ||||||
|  |  | ||||||
|     boolean isConnected(); |     boolean isConnected(); | ||||||
|   | |||||||
| @@ -16,6 +16,7 @@ import refinedstorage.block.EnumGridType; | |||||||
| import refinedstorage.container.ContainerGrid; | import refinedstorage.container.ContainerGrid; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
| import refinedstorage.item.ItemPattern; | import refinedstorage.item.ItemPattern; | ||||||
|  | import refinedstorage.network.MessageGridCraftingStart; | ||||||
| import refinedstorage.network.MessageGridSettingsUpdate; | import refinedstorage.network.MessageGridSettingsUpdate; | ||||||
| import refinedstorage.network.MessageGridStoragePull; | import refinedstorage.network.MessageGridStoragePull; | ||||||
| import refinedstorage.network.MessageGridStoragePush; | import refinedstorage.network.MessageGridStoragePush; | ||||||
| @@ -251,6 +252,11 @@ public class TileGrid extends TileMachine implements IGrid { | |||||||
|         RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(this, sortingDirection, sortingType, searchBoxMode)); |         RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(this, sortingDirection, sortingType, searchBoxMode)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void onCraftingRequested(int id, int quantity) { | ||||||
|  |         RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingStart(getPos().getX(), getPos().getY(), getPos().getZ(), id, quantity)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public IRedstoneModeConfig getRedstoneModeSetting() { |     public IRedstoneModeConfig getRedstoneModeSetting() { | ||||||
|         return this; |         return this; | ||||||
|   | |||||||
| @@ -8,6 +8,7 @@ import net.minecraft.util.math.BlockPos; | |||||||
| 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.MessageWirelessGridCraftingStart; | ||||||
| import refinedstorage.network.MessageWirelessGridSettingsUpdate; | import refinedstorage.network.MessageWirelessGridSettingsUpdate; | ||||||
| import refinedstorage.network.MessageWirelessGridStoragePull; | import refinedstorage.network.MessageWirelessGridStoragePull; | ||||||
| import refinedstorage.network.MessageWirelessGridStoragePush; | import refinedstorage.network.MessageWirelessGridStoragePush; | ||||||
| @@ -101,6 +102,11 @@ public class WirelessGrid implements IGrid { | |||||||
|         this.searchBoxMode = searchBoxMode; |         this.searchBoxMode = searchBoxMode; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void onCraftingRequested(int id, int quantity) { | ||||||
|  |         RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridCraftingStart(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack), id, quantity)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public IRedstoneModeConfig getRedstoneModeSetting() { |     public IRedstoneModeConfig getRedstoneModeSetting() { | ||||||
|         return null; |         return null; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Raoul Van den Berge
					Raoul Van den Berge