package shedar.mods.ic2.nuclearcontrol.gui; import shedar.mods.ic2.nuclearcontrol.crossmod.EnergyStorageData; import ic2.api.network.NetworkHelper; import ic2.core.IC2; import ic2.core.network.NetworkManager; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.inventory.Container; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import org.lwjgl.opengl.GL11; import shedar.mods.ic2.nuclearcontrol.containers.ContainerAverageCounter; import shedar.mods.ic2.nuclearcontrol.tileentities.TileEntityAverageCounter; import shedar.mods.ic2.nuclearcontrol.utils.StringUtils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class GuiAverageCounter extends GuiContainer{ private static final String TEXTURE_FILE = "nuclearcontrol:textures/gui/GUIEnergyCounter.png"; private static final ResourceLocation TEXTURE_LOCATION = new ResourceLocation(TEXTURE_FILE); private String name; private ContainerAverageCounter container; public GuiAverageCounter(Container container){ super(container); this.container = (ContainerAverageCounter)container; name = StatCollector.translateToLocal("tile.blockAverageCounter.name"); } @SuppressWarnings("unchecked") private void initControls(){ buttonList.clear(); buttonList.add(new GuiButton(1, guiLeft + 35, guiTop + 42, 30, 20, StatCollector.translateToLocal("1"))); buttonList.add(new GuiButton(2, guiLeft + 35 + 30, guiTop + 42, 30, 20, StatCollector.translateToLocal("3"))); buttonList.add(new GuiButton(3, guiLeft + 35 + 60, guiTop + 42, 30, 20, StatCollector.translateToLocal("5"))); buttonList.add(new GuiButton(4, guiLeft + 35 + 90, guiTop + 42, 30, 20, StatCollector.translateToLocal("10"))); } @Override public void initGui(){ super.initGui(); initControls(); } @Override protected void drawGuiContainerForegroundLayer(int par1, int par2){ fontRendererObj.drawString(name, (xSize - fontRendererObj.getStringWidth(name)) / 2, 6, 0x404040); fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, (ySize - 96) + 2, 0x404040); String key = container.averageCounter.powerType == (byte)EnergyStorageData.TARGET_TYPE_IC2 ? "msg.nc.InfoPanelOutput":"msg.nc.InfoPanelOutputMJ"; String value = StringUtils.getFormatted(key, container.averageCounter.getClientAverage(), true); fontRendererObj.drawString(value, (xSize - fontRendererObj.getStringWidth(value)) / 2, 22, 0x404040); value = StringUtils.getFormatted("msg.nc.AverageCounterPeriod", container.averageCounter.period, true); fontRendererObj.drawString(value, (xSize - fontRendererObj.getStringWidth(value)) / 2, 32, 0x404040); } @Override protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3){ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); mc.renderEngine.bindTexture(TEXTURE_LOCATION); int left = (width - xSize) / 2; int top = (height - ySize) / 2; drawTexturedModalRect(left, top, 0, 0, xSize, ySize); } @Override protected void mouseMovedOrUp(int mouseX, int mouseY, int which){ super.mouseMovedOrUp(mouseX, mouseY, which); } @Override public void updateScreen(){ super.updateScreen(); initControls(); } @Override protected void actionPerformed(GuiButton guiButton){ int event = 0; switch(guiButton.id){ case 1: event = 1; break; case 2: event = 3; break; case 3: event = 5; break; case 4: event = 10; break; } ((NetworkManager)IC2.network.get()).initiateClientTileEntityEvent(container.averageCounter, event); } }