package mods.eln.transparentnode.electricalfurnace; import mods.eln.gui.*; import mods.eln.item.HeatingCorpElement; import mods.eln.misc.Utils; import mods.eln.node.transparent.TransparentNodeElementInventory; import mods.eln.sim.PhysicalConstant; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import static mods.eln.i18n.I18N.tr; public class ElectricalFurnaceGuiDraw extends GuiContainerEln { private TransparentNodeElementInventory inventory; ElectricalFurnaceRender render; GuiButton buttonGrounded, autoShutDown; GuiVerticalTrackBarHeat vuMeterTemperature; GuiVerticalVoltageSupplyBar supplyBar; public ElectricalFurnaceGuiDraw(EntityPlayer player, IInventory inventory, ElectricalFurnaceRender render) { super(new ElectricalFurnaceContainer(null, player, inventory)); this.inventory = (TransparentNodeElementInventory) inventory; this.render = render; } public void initGui() { super.initGui(); autoShutDown = newGuiButton(6, 6, 99, ""); buttonGrounded = newGuiButton(6 + 10 * 0, 6 + 20 + 4, 60 - 20, ""); vuMeterTemperature = newGuiVerticalTrackBarHeat(167 - 20 - 20 - 8 - 4, 8, 20, 69); vuMeterTemperature.setStepIdMax(800 / 10); vuMeterTemperature.setEnable(true); vuMeterTemperature.setRange(0, 800); vuMeterTemperature.setComment(new String[]{tr("Temperature gauge")}); syncVumeter(); supplyBar = new GuiVerticalVoltageSupplyBar(167 - 20 - 2, 8, 20, 69, helper); add(supplyBar); } public void syncVumeter() { vuMeterTemperature.setValue(render.temperatureTargetSyncValue); render.temperatureTargetSyncNew = false; } @Override protected void preDraw(float f, int x, int y) { super.preDraw(f, x, y); if (render.getPowerOn()) buttonGrounded.displayString = tr("Is on"); else buttonGrounded.displayString = tr("Is off"); if (render.autoShutDown) { buttonGrounded.enabled = false; autoShutDown.displayString = tr("Auto shutdown"); } else { autoShutDown.displayString = tr("Manual shutdown"); buttonGrounded.enabled = true; } if (render.temperatureTargetSyncNew) syncVumeter(); vuMeterTemperature.temperatureHit = render.temperature; vuMeterTemperature.setComment(1, tr("Actual: %1$°C", Utils.plotValue(render.temperature + PhysicalConstant.Tamb))); vuMeterTemperature.setComment(2, tr("Set point: %1$°C", Utils.plotValue(vuMeterTemperature.getValue() + PhysicalConstant.Tamb))); } @Override public void guiObjectEvent(IGuiObject object) { super.guiObjectEvent(object); if (object == buttonGrounded) { render.clientSetPowerOn(!render.getPowerOn()); } else if (object == autoShutDown) { render.clientSendId(ElectricalFurnaceElement.unserializeAutoShutDownId); } else if (object == vuMeterTemperature) { render.clientSetTemperatureTarget(vuMeterTemperature.getValue()); } } @Override protected void postDraw(float f, int x, int y) { super.postDraw(f, x, y); ((HelperStdContainer) helper).drawProcess(40, 57, render.processState); //drawString(8, 6, Utils.plotPower("Consummation", render.heatingCorpResistorP)); ItemStack stack = render.inventory.getStackInSlot(ElectricalFurnaceElement.heatingCorpSlotId); if (stack == null) { supplyBar.setEnabled(false); } else { supplyBar.setEnabled(true); HeatingCorpElement desc = (HeatingCorpElement) HeatingCorpElement.getDescriptor(stack); supplyBar.setNominalU((float) desc.electricalNominalU); } supplyBar.setVoltage(render.voltage); supplyBar.setPower(render.heatingCorpResistorP); } @Override protected GuiHelperContainer newHelper() { return new HelperStdContainer(this); } }