package mods.eln.sixnode.thermalsensor; import mods.eln.gui.*; import mods.eln.sim.PhysicalConstant; import mods.eln.sixnode.electricalsensor.ElectricalSensorElement; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import java.text.NumberFormat; import java.text.ParseException; import static mods.eln.i18n.I18N.tr; public class ThermalSensorGui extends GuiContainerEln { GuiButton validate, temperatureType, powerType; GuiTextFieldEln lowValue, highValue; ThermalSensorRender render; public ThermalSensorGui(EntityPlayer player, IInventory inventory, ThermalSensorRender render) { super(new ThermalSensorContainer(player, inventory, render.descriptor.temperatureOnly)); this.render = render; } @Override public void initGui() { super.initGui(); if (!render.descriptor.temperatureOnly) { powerType = newGuiButton(8, 8, 70, tr("Power")); temperatureType = newGuiButton(176 - 8 - 70, 8, 70, tr("Temperature")); int x = -15, y = 13; validate = newGuiButton(x + 8 + 50 + 4 + 50 + 4 - 26, y + (166 - 84) / 2 - 8, 50, tr("Validate")); lowValue = newGuiTextField(x + 8 + 50 + 4 - 26, y + (166 - 84) / 2 + 3, 50); lowValue.setText(render.lowValue); lowValue.setComment(tr("Measured value\ncorresponding\nto 0% output").split("/n")); highValue = newGuiTextField(x + 8 + 50 + 4 - 26, y + (166 - 84) / 2 - 12, 50); highValue.setText(render.highValue); highValue.setComment(tr("Measured value\ncorresponding\nto 100% output").split("\n")); } else { int x = 0, y = 0; validate = newGuiButton(x + 8 + 50 + 4 + 50 + 4 - 26, y + (166 - 84) / 2 - 8, 50, tr("Validate")); lowValue = newGuiTextField(x + 8 + 50 + 4 - 26, y + (166 - 84) / 2 + 3, 50); lowValue.setText(render.lowValue); lowValue.setComment(tr("Measured temperature\ncorresponding\nto 0% output").split("/n")); highValue = newGuiTextField(x + 8 + 50 + 4 - 26, y + (166 - 84) / 2 - 12, 50); highValue.setText(render.highValue); highValue.setComment(tr("Measured temperature\ncorresponding\nto 100% output").split("/n")); } } @Override public void guiObjectEvent(IGuiObject object) { super.guiObjectEvent(object); if (object == validate) { float lowVoltage, highVoltage; try { lowVoltage = NumberFormat.getInstance().parse(lowValue.getText()).floatValue(); highVoltage = NumberFormat.getInstance().parse(highValue.getText()).floatValue(); render.clientSetFloat(ElectricalSensorElement.setValueId, lowVoltage - (float) PhysicalConstant.Tamb, highVoltage - (float) PhysicalConstant.Tamb); } catch (ParseException e) { } } else if (object == temperatureType) { render.clientSetByte(ThermalSensorElement.setTypeOfSensorId, ThermalSensorElement.temperatureType); } else if (object == powerType) { render.clientSetByte(ThermalSensorElement.setTypeOfSensorId, ThermalSensorElement.powerType); } } @Override protected void preDraw(float f, int x, int y) { super.preDraw(f, x, y); if (!render.descriptor.temperatureOnly) { if (render.typeOfSensor == ThermalSensorElement.temperatureType) { powerType.enabled = true; temperatureType.enabled = false; } else if (render.typeOfSensor == ThermalSensorElement.powerType) { powerType.enabled = false; temperatureType.enabled = true; } } } @Override protected GuiHelperContainer newHelper() { return new HelperStdContainer(this); } }