package crazypants.enderio.machine.spawner;
import java.awt.Color;
import java.awt.Rectangle;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.InventoryPlayer;
import org.lwjgl.opengl.GL11;
import com.enderio.core.client.gui.button.MultiIconButton;
import com.enderio.core.client.render.ColorUtil;
import com.enderio.core.client.render.RenderUtil;
import com.enderio.core.common.Lang;
import crazypants.enderio.EnderIO;
import crazypants.enderio.machine.gui.GuiPoweredMachineBase;
import crazypants.enderio.machine.killera.ContainerKillerJoe;
import crazypants.enderio.network.PacketHandler;
public class GuiPoweredSpawner extends GuiPoweredMachineBase<TilePoweredSpawner> {
private final MultiIconButton modeB;
private final Rectangle progressTooltipRect;
private boolean wasSpawnMode;
private String header;
public GuiPoweredSpawner(InventoryPlayer par1InventoryPlayer, TilePoweredSpawner te) {
super(te, new ContainerPoweredSpawner(par1InventoryPlayer, te), "poweredSpawner");
modeB = MultiIconButton.createRightArrowButton(this, 8888, 115, 10);
modeB.setSize(10, 16);
addProgressTooltip(80, 34, 14, 14);
progressTooltipRect = progressTooltips.get(0).getBounds();
updateSpawnMode(te.isSpawnMode());
}
@Override
public void initGui() {
super.initGui();
modeB.onGuiInit();
((ContainerPoweredSpawner) inventorySlots).createGhostSlots(getGhostSlots());
}
@Override
protected void actionPerformed(GuiButton par1GuiButton) {
if(par1GuiButton == modeB) {
getTileEntity().setSpawnMode(!getTileEntity().isSpawnMode());
PacketHandler.INSTANCE.sendToServer(new PacketMode(getTileEntity()));
} else {
super.actionPerformed(par1GuiButton);
}
}
private void updateSpawnMode(boolean spawnMode) {
wasSpawnMode = spawnMode;
((ContainerPoweredSpawner) inventorySlots).setSlotVisibility(!spawnMode);
if(spawnMode) {
header = EnderIO.lang.localize("gui.machine.poweredspawner.spawn");
progressTooltipRect.x = 80;
progressTooltipRect.y = 34;
progressTooltipRect.width = 14;
progressTooltipRect.height = 14;
} else {
header = EnderIO.lang.localize("gui.machine.poweredspawner.capture");
progressTooltipRect.x = 52;
progressTooltipRect.y = 40;
progressTooltipRect.width = 72;
progressTooltipRect.height = 21;
}
}
@Override
protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
bindGuiTexture();
int sx = (width - xSize) / 2;
int sy = (height - ySize) / 2;
drawTexturedModalRect(sx, sy, 0, 0, xSize, ySize);
super.drawGuiContainerBackgroundLayer(par1, par2, par3);
TilePoweredSpawner spawner = getTileEntity();
boolean spawnMode = spawner.isSpawnMode();
if(spawnMode != wasSpawnMode) {
updateSpawnMode(spawnMode);
}
FontRenderer fr = getFontRenderer();
int x = sx + xSize / 2 - fr.getStringWidth(header) / 2;
int y = sy + fr.FONT_HEIGHT + 6;
fr.drawStringWithShadow(header, x, y, ColorUtil.getRGB(Color.WHITE));
bindGuiTexture();
if(spawnMode) {
drawTexturedModalRect(sx + 80, sy + 34, 207, 0, 17, 15);
if(shouldRenderProgress()) {
int scaled = getProgressScaled(14) + 1;
drawTexturedModalRect(sx + 81, sy + 34 + 14 - scaled, 176, 14 - scaled, 14, scaled);
}
} else {
drawTexturedModalRect(sx + 52, sy + 40, 52, 170, 72, 21);
if(shouldRenderProgress()) {
int scaled = getProgressScaled(24);
drawTexturedModalRect(sx + 76, sy + 43, 176, 14, scaled + 1, 16);
}
}
}
@Override
protected boolean showRecipeButton() {
return false;
}
}