package shedar.mods.ic2.nuclearcontrol.gui;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import org.lwjgl.opengl.GL11;
import shedar.mods.ic2.nuclearcontrol.IC2NuclearControl;
import shedar.mods.ic2.nuclearcontrol.containers.ContainerEmpty;
import shedar.mods.ic2.nuclearcontrol.gui.controls.GuiHowlerAlarmListBox;
import shedar.mods.ic2.nuclearcontrol.gui.controls.GuiHowlerAlarmSlider;
import shedar.mods.ic2.nuclearcontrol.tileentities.TileEntityHowlerAlarm;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class GuiHowlerAlarm extends GuiContainer {
private static final String TEXTURE_FILE = "nuclearcontrol:textures/gui/GUIHowlerAlarm.png";
private static final ResourceLocation TEXTURE_LOCATION = new ResourceLocation(TEXTURE_FILE);
private TileEntityHowlerAlarm alarm;
private GuiHowlerAlarmSlider slider;
private GuiHowlerAlarmListBox listBox;
private String name;
public GuiHowlerAlarm(TileEntityHowlerAlarm alarm) {
super(new ContainerEmpty(alarm));
this.alarm = alarm;
xSize = 131;
ySize = 136;
name = StatCollector.translateToLocal("tile.blockHowlerAlarm.name");
}
@SuppressWarnings("unchecked")
@Override
public void initGui() {
super.initGui();
guiLeft = (this.width - xSize) / 2;
guiTop = (this.height - ySize) / 2;
buttonList.clear();
slider = new GuiHowlerAlarmSlider(3, guiLeft + 12, guiTop + 33, StatCollector.translateToLocal("msg.nc.HowlerAlarmSoundRange"), alarm);
List<String> items;
if(alarm.getWorldObj().isRemote) {
items = new ArrayList<String>(IC2NuclearControl.instance.availableAlarms);
items.retainAll(IC2NuclearControl.instance.serverAllowedAlarms);
}else
items = IC2NuclearControl.instance.availableAlarms;
listBox = new GuiHowlerAlarmListBox(4, guiLeft + 13, guiTop + 63, 105, 65, items, alarm);
buttonList.add(slider);
buttonList.add(listBox);
}
@Override
public boolean doesGuiPauseGame() {
return false;
}
@Override
protected void drawGuiContainerForegroundLayer(int par1, int par2) {
fontRendererObj.drawString(name, (xSize - fontRendererObj.getStringWidth(name)) / 2, 6, 0x404040);
fontRendererObj.drawString(StatCollector.translateToLocal("msg.nc.HowlerAlarmSound"), 12, 53, 0x404040);
}
@Override
protected void mouseMovedOrUp(int mouseX, int mouseY, int which) {
super.mouseMovedOrUp(mouseX, mouseY, which);
if ((which == 0 || which == 1) && (slider.dragging || listBox.dragging)) {
slider.mouseReleased(mouseX, mouseY);
listBox.mouseReleased(mouseX, mouseY);
}
}
@Override
protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
mc.renderEngine.bindTexture(TEXTURE_LOCATION);
int left = (width - xSize) / 2;
int top = (height - ySize) / 2;
drawTexturedModalRect(left, top, 0, 0, xSize, ySize);
}
}