package mods.eln.transparentnode.battery; import mods.eln.gui.*; import mods.eln.misc.Utils; import mods.eln.node.transparent.TransparentNodeElementInventory; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import static mods.eln.i18n.I18N.tr; public class BatteryGuiDraw extends GuiContainerEln { private TransparentNodeElementInventory inventory; BatteryRender render; GuiButtonEln buttonGrounded; GuiVerticalProgressBar energyBar; public BatteryGuiDraw(EntityPlayer player, IInventory inventory, BatteryRender render) { super(new BatteryContainer(null, player, inventory)); this.inventory = (TransparentNodeElementInventory) inventory; this.render = render; } public void initGui() { super.initGui(); buttonGrounded = newGuiButton(8, 45, 100, ""); buttonGrounded.visible = false; energyBar = newGuiVerticalProgressBar(167 - 16, 8, 16, 69); energyBar.setColor(0.2f, 0.5f, 0.8f); } @Override public void guiObjectEvent(IGuiObject object) { super.guiObjectEvent(object); if (buttonGrounded == object) { render.clientSetGrounded(!render.grounded); } } @Override protected void drawGuiContainerForegroundLayer(int param1, int param2) { super.drawGuiContainerForegroundLayer(param1, param2); } @Override protected void preDraw(float f, int x, int y) { super.preDraw(f, x, y); buttonGrounded.displayString = tr("Grounded: " + render.grounded); energyBar.setValue((float) (render.energy / (render.descriptor.electricalStdEnergy * render.life))); energyBar.setComment(0, tr("Energy: %1$", Utils.plotPercent("", energyBar.getValue()).replace(" ", ""))); } @Override protected void postDraw(float f, int x, int y) { super.postDraw(f, x, y); String str1, str2 = ""; double p = render.power; double energyMiss = render.descriptor.electricalStdEnergy * render.life - render.energy; if (Math.abs(p) < 5) { str1 = tr("No charge"); } else if (p > 0) { str1 = tr("Discharge"); str2 = Utils.plotTime("", render.energy / p); } else if (energyMiss > 0) { str1 = tr("Charge"); str2 = Utils.plotTime("", -energyMiss / p); } else { str1 = tr("Charged"); } int xDelta = 70; if (render.descriptor.lifeEnable) { drawString(8, 8, tr("Life:")); drawString(xDelta, 8, Utils.plotPercent("", render.life)); } drawString(8, 17, tr("Energy:")); drawString(xDelta, 17, Utils.plotValue(render.energy, "J/") + Utils.plotValue(render.descriptor.electricalStdEnergy * render.life, "J")); if (render.power >= 0) drawString(8, 26, tr("Power out:")); else drawString(8, 26, tr("Power in:")); drawString(xDelta, 26, Utils.plotValue(Math.abs(render.power), "W/") + Utils.plotValue(render.descriptor.electricalStdP, "W")); drawString(8, 35, str1); drawString(xDelta, 35, str2); // drawString(8, 44, "Thermal protection"); } /* list.add("Nominal voltage : " + (int)(electricalU) + "V"); list.add("Nominal power : " + (int)(electricalStdP) + "W"); */ @Override protected GuiHelperContainer newHelper() { return new HelperStdContainer(this); } }