package mods.eln.transparentnode.heatfurnace;
import mods.eln.gui.*;
import mods.eln.misc.Utils;
import mods.eln.node.transparent.TransparentNodeElementInventory;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import static mods.eln.i18n.I18N.tr;
public class HeatFurnaceGuiDraw extends GuiContainerEln {
private TransparentNodeElementInventory inventory;
HeatFurnaceRender render;
GuiButton externalControl, takeFuel;
GuiVerticalTrackBar vuMeterGain;
GuiVerticalTrackBarHeat vuMeterHeat;
public HeatFurnaceGuiDraw(EntityPlayer player, IInventory inventory, HeatFurnaceRender render) {
super(new HeatFurnaceContainer(null, player, inventory, render.descriptor));
this.inventory = (TransparentNodeElementInventory) inventory;
this.render = render;
}
public void initGui() {
super.initGui();
externalControl = newGuiButton(6, 6, 100, "");
takeFuel = newGuiButton(6, 6 + 20 + 4, 100, "");
vuMeterGain = newGuiVerticalTrackBar(167 - 20 - 3, 8, 20, 69);
vuMeterGain.setStepIdMax((int) (0.9f / 0.01f));
vuMeterGain.setEnable(true);
vuMeterGain.setRange(0.1f, 1.0f);
syncVumeterGain();
vuMeterHeat = newGuiVerticalTrackBarHeat(167 - 20 - 20 - 5 - 6, 8, 20, 69);
vuMeterHeat.setStepIdMax(98);
vuMeterHeat.setEnable(true);
vuMeterHeat.setRange(0.0f, 980.0f);
vuMeterHeat.setComment(0, tr("Temperature gauge"));
syncVumeterHeat();
/*
GuiHelpText help = new GuiHelpText(0, 0, helper);
helper.add(help);
help.setComment(0, "Help me");
help.setComment(1, "Miaou");
*/
}
public void syncVumeterGain() {
vuMeterGain.setValue(render.gainSyncValue);
render.gainSyncNew = false;
}
public void syncVumeterHeat() {
vuMeterHeat.setValue(render.temperatureTargetSyncValue);
render.temperatureTargetSyncNew = false;
}
@Override
protected void preDraw(float f, int x, int y) {
super.preDraw(f, x, y);
if (!render.controleExternal)
externalControl.displayString = tr("Internal control");
else
externalControl.displayString = tr("External control");
//externalControl.displayString = "External control : " + render.controleExternal;
if (render.takeFuel)
takeFuel.displayString = tr("Take fuel");
else
takeFuel.displayString = tr("Decline fuel");
takeFuel.enabled = !render.controleExternal;
vuMeterGain.setEnable(inventory.getStackInSlot(HeatFurnaceContainer.regulatorId) == null && !render.controleExternal);
if (render.gainSyncNew) syncVumeterGain();
vuMeterHeat.setEnable(inventory.getStackInSlot(HeatFurnaceContainer.regulatorId) != null && !render.controleExternal);
if (render.temperatureTargetSyncNew) syncVumeterHeat();
vuMeterHeat.temperatureHit = (float) render.temperature;
//vuMeterHeat.setVisible(render.controleExternal == false);
vuMeterHeat.setComment(new String[]{});
vuMeterHeat.setComment(0, tr("Temperature gauge"));
vuMeterHeat.setComment(1, tr("Actual: %1$°C", Utils.plotValue(render.temperature)));
if (!render.controleExternal)
vuMeterHeat.setComment(2, Utils.plotCelsius("Set point:", vuMeterHeat.getValue()));
vuMeterGain.setComment(0, tr("Control gauge at %1$%", (int) (vuMeterGain.getValue()) * 100));
vuMeterGain.setComment(1, tr("Power: %1$W", render.power));
}
@Override
public void guiObjectEvent(IGuiObject object) {
super.guiObjectEvent(object);
if (object == externalControl) {
render.clientToogleControl();
} else if (object == takeFuel) {
render.clientToogleTakeFuel();
} else if (vuMeterGain == object) {
render.clientSetGain(vuMeterGain.getValue());
} else if (vuMeterHeat == object) {
render.clientSetTemperatureTarget(vuMeterHeat.getValue());
}
}
@Override
protected void postDraw(float f, int x, int y) {
super.postDraw(f, x, y);
//drawString(27, 51 + 17 + 3, Utils.plotPower("Power", render.power));
}
@Override
protected GuiHelperContainer newHelper() {
return new HelperStdContainer(this);
}
}