package pneumaticCraft.client.gui.tubemodule;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ResourceLocation;
import pneumaticCraft.client.gui.GuiButtonSpecial;
import pneumaticCraft.client.gui.widget.GuiCheckBox;
import pneumaticCraft.client.gui.widget.IGuiWidget;
import pneumaticCraft.client.gui.widget.WidgetTextFieldNumber;
import pneumaticCraft.common.block.tubes.TubeModule;
import pneumaticCraft.common.block.tubes.TubeModuleRedstoneReceiving;
import pneumaticCraft.common.network.NetworkHandler;
import pneumaticCraft.common.network.PacketUpdatePressureModule;
import pneumaticCraft.lib.Textures;
public class GuiPressureModuleSimple extends GuiTubeModule{
private GuiCheckBox advancedMode;
private WidgetTextFieldNumber thresholdField;
private GuiButtonSpecial moreOrLessButton;
public GuiPressureModuleSimple(EntityPlayer player, int x, int y, int z){
super(player, x, y, z);
ySize = 57;
}
public GuiPressureModuleSimple(TubeModule module){
super(module);
ySize = 57;
}
@Override
public void initGui(){
super.initGui();
String title = I18n.format("item." + module.getType() + ".name");
addLabel(title, width / 2 - fontRendererObj.getStringWidth(title) / 2, guiTop + 5);
advancedMode = new GuiCheckBox(0, guiLeft + 6, guiTop + 15, 0xFF000000, "gui.tubeModule.advancedConfig").setTooltip(I18n.format("gui.tubeModule.advancedConfig.tooltip"));
advancedMode.checked = false;
addWidget(advancedMode);
thresholdField = new WidgetTextFieldNumber(fontRendererObj, guiLeft + 110, guiTop + 33, 30, fontRendererObj.FONT_HEIGHT).setDecimals(1);
addWidget(thresholdField);
if(module instanceof TubeModuleRedstoneReceiving) {
thresholdField.setValue(((TubeModuleRedstoneReceiving)module).getThreshold());
addLabel(I18n.format("gui.tubeModule.simpleConfig.threshold"), guiLeft + 6, guiTop + 33);
} else {
thresholdField.setValue(module.lowerBound);
addLabel(I18n.format("gui.tubeModule.simpleConfig.turn"), guiLeft + 6, guiTop + 33);
moreOrLessButton = new GuiButtonSpecial(1, guiLeft + 85, guiTop + 28, 20, 20, module.lowerBound < module.higherBound ? ">" : "<");
moreOrLessButton.setTooltipText(I18n.format(module.lowerBound < module.higherBound ? "gui.tubeModule.simpleConfig.higherThan" : "gui.tubeModule.simpleConfig.lowerThan"));
addWidget(moreOrLessButton);
}
addLabel(I18n.format("gui.general.bar"), guiLeft + 145, guiTop + 34);
}
@Override
public void updateScreen(){
super.updateScreen();
if(module.advancedConfig) {
module.lowerBound = (float)thresholdField.getDoubleValue();
mc.displayGuiScreen(new GuiPressureModule(module));
}
}
@Override
protected ResourceLocation getTexture(){
return Textures.GUI_MODULE_SIMPLE;
}
@Override
public void actionPerformed(IGuiWidget widget){
super.actionPerformed(widget);
switch(widget.getID()){
case 0:
module.advancedConfig = true;//((GuiCheckBox)widget).checked;
NetworkHandler.sendToServer(new PacketUpdatePressureModule(module, 2, module.advancedConfig ? 1 : 0));
// initGui();
break;
case 1:
if(module.lowerBound < module.higherBound) {
module.higherBound = module.lowerBound - 0.1F;
} else {
module.higherBound = module.lowerBound + 0.1F;
}
moreOrLessButton.displayString = module.lowerBound < module.higherBound ? ">" : "<";
moreOrLessButton.setTooltipText(I18n.format(module.lowerBound < module.higherBound ? "gui.tubeModule.simpleConfig.higherThan" : "gui.tubeModule.simpleConfig.lowerThan"));
NetworkHandler.sendToServer(new PacketUpdatePressureModule(module, 1, module.higherBound));
break;
}
}
@Override
public void onGuiClosed(){
NetworkHandler.sendToServer(new PacketUpdatePressureModule(module, 0, (float)thresholdField.getDoubleValue()));
super.onGuiClosed();
}
}