package com.flansmod.client.gui; import org.lwjgl.opengl.GL11; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import com.flansmod.common.FlansMod; import com.flansmod.common.driveables.ContainerDriveableMenu; import com.flansmod.common.driveables.DriveableType; import com.flansmod.common.driveables.EntityDriveable; import com.flansmod.common.network.PacketDriveableGUI; public class GuiDriveableMenu extends GuiContainer { private static final ResourceLocation texture = new ResourceLocation("flansmod", "gui/planeMenu.png"); public World world; public InventoryPlayer inventory; public EntityDriveable entity; public GuiDriveableMenu(InventoryPlayer inventoryplayer, World world1, EntityDriveable entPlane) { super(new ContainerDriveableMenu(inventoryplayer, world1)); entity = entPlane; ySize = 180; world = world1; inventory = inventoryplayer; } @Override public void initGui() { super.initGui(); DriveableType type = entity.getDriveableType(); //Cargo button GuiButton cargoButton = new GuiButton(0, width / 2 - 60, height / 2 - 71, 58, 20, "Cargo"); cargoButton.enabled = type.numCargoSlots > 0; buttonList.add(cargoButton); //Gun button GuiButton gunsButton = new GuiButton(1, width / 2 + 2, height / 2 - 71, 58, 20, "Guns"); gunsButton.enabled = type.ammoSlots() > 0; buttonList.add(gunsButton); //Fuel button GuiButton fuelButton = new GuiButton(2, width / 2 -60, height / 2 - 49, 58, 20, "Fuel"); fuelButton.enabled = type.fuelTankSize > 0; buttonList.add(fuelButton); //Missile / Shell Button GuiButton missileButton = new GuiButton(3, width / 2 + 2, height / 2 - 49, 58, 20, entity.getMissileInventoryName()); missileButton.enabled = type.numMissileSlots > 0; buttonList.add(missileButton); //Mine / Bomb Button GuiButton bombButton = new GuiButton(5, width / 2 + 2, height / 2 - 27, 58, 20, entity.getBombInventoryName()); bombButton.enabled = type.numBombSlots > 0; buttonList.add(bombButton); //Repair button buttonList.add(new GuiButton(4, width / 2 - 60, height / 2 - 27, 58, 20, "Repair")); } @Override protected void actionPerformed(GuiButton button) { //Replace with a packet requesting the GUI from the server if(button.id == 0) //Cargo { FlansMod.getPacketHandler().sendToServer(new PacketDriveableGUI(3)); //inventory.player.openGui(FlansMod.INSTANCE, 9, world, entity.chunkCoordX, entity.chunkCoordY, entity.chunkCoordZ); } if(button.id == 1) //Guns { FlansMod.getPacketHandler().sendToServer(new PacketDriveableGUI(0)); //inventory.player.openGui(FlansMod.INSTANCE, 6, world, entity.chunkCoordX, entity.chunkCoordY, entity.chunkCoordZ); } if(button.id == 2) //Fuel { FlansMod.getPacketHandler().sendToServer(new PacketDriveableGUI(2)); //inventory.player.openGui(FlansMod.INSTANCE, 8, world, entity.chunkCoordX, entity.chunkCoordY, entity.chunkCoordZ); } if(button.id == 3) //Missiles { FlansMod.getPacketHandler().sendToServer(new PacketDriveableGUI(5)); //inventory.player.openGui(FlansMod.INSTANCE, 12, world, entity.chunkCoordX, entity.chunkCoordY, entity.chunkCoordZ); } if(button.id == 4) //Repair { //No server side required. No interactive slots in this one inventory.player.openGui(FlansMod.INSTANCE, 1, world, entity.chunkCoordX, entity.chunkCoordY, entity.chunkCoordZ); } if(button.id == 5) //Bombs { FlansMod.getPacketHandler().sendToServer(new PacketDriveableGUI(1)); //inventory.player.openGui(FlansMod.INSTANCE, 7, world, entity.chunkCoordX, entity.chunkCoordY, entity.chunkCoordZ); } } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { fontRendererObj.drawString(entity.getDriveableType().name, 6, 6, 0x404040); fontRendererObj.drawString("Inventory", 8, (ySize - 96) + 2, 0x404040); } @Override protected void drawGuiContainerBackgroundLayer(float f, int i1, int j1) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); mc.renderEngine.bindTexture(texture); int j = (width - xSize) / 2; int k = (height - ySize) / 2; drawTexturedModalRect(j, k, 0, 0, xSize, ySize); } }