package crazypants.enderio.machine.obelisk.xp;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.InventoryPlayer;
import org.lwjgl.opengl.GL11;
import com.enderio.core.client.gui.button.IconButton;
import com.enderio.core.client.render.RenderUtil;
import crazypants.enderio.EnderIO;
import crazypants.enderio.gui.IconEIO;
import crazypants.enderio.machine.ContainerNoInv;
import crazypants.enderio.machine.gui.GuiMachineBase;
import crazypants.enderio.network.PacketHandler;
import crazypants.enderio.xp.ExperienceBarRenderer;
import crazypants.enderio.xp.PacketDrainPlayerXP;
import crazypants.enderio.xp.PacketGivePlayerXP;
public class GuiExperienceObelisk extends GuiMachineBase<TileExperienceObelisk> {
private IconButton p;
private IconButton pp;
private IconButton ppp;
private IconButton m;
private IconButton mm;
private IconButton mmm;
public GuiExperienceObelisk(InventoryPlayer playerInv, TileExperienceObelisk te) {
super(te, new ContainerNoInv(te), "experianceObelisk");
ySize = 115;
int spacing = 5;
int bw = 20;
int startX = xSize / 2 - bw / 2 - spacing - bw;
int x;
int y;
x = startX;
y = 20;
p = new IconButton(this, 800, x, y, IconEIO.SINGLE_PLUS);
p.setSize(bw, bw);
p.setIconMargin(2, 2);
p.setToolTip(EnderIO.lang.localize("gui.machine.button.storelevel"), EnderIO.lang.localize("gui.machine.tooltip.storelevel"));
x += spacing + bw;
pp = new IconButton(this, 801, x, y, IconEIO.DOUBLE_PLUS);
pp.setSize(bw, bw);
pp.setIconMargin(2, 2);
pp.setToolTip(EnderIO.lang.localize("gui.machine.button.storelevels"), EnderIO.lang.localize("gui.machine.tooltip.storelevels"));
x += spacing + bw;
ppp = new IconButton(this, 802, x, y, IconEIO.TRIPLE_PLUS);
ppp.setSize(bw, bw);
ppp.setIconMargin(2, 2);
ppp.setToolTip(EnderIO.lang.localize("gui.machine.button.storeall"), EnderIO.lang.localize("gui.machine.tooltip.storeall"));
x = startX;
y = 75;
m = new IconButton(this, 803, x, y, IconEIO.SINGLE_MINUS);
m.setSize(bw, bw);
m.setIconMargin(2, 2);
m.setToolTip(EnderIO.lang.localize("gui.machine.button.retrievelevel"), EnderIO.lang.localize("gui.machine.tooltip.retrievelevel"));
x += spacing + bw;
mm = new IconButton(this, 804, x, y, IconEIO.DOUBLE_MINUS);
mm.setSize(bw, bw);
mm.setIconMargin(2, 2);
mm.setToolTip(EnderIO.lang.localize("gui.machine.button.retrievelevels"), EnderIO.lang.localize("gui.machine.tooltip.retrievelevels"));
x += spacing + bw;
mmm = new IconButton(this, 805, x, y, IconEIO.TRIPLE_MINUS);
mmm.setSize(bw, bw);
mmm.setIconMargin(2, 2);
mmm.setToolTip(EnderIO.lang.localize("gui.machine.button.retrieveall"), EnderIO.lang.localize("gui.machine.tooltip.retrieveall"));
}
@Override
public void initGui() {
super.initGui();
p.onGuiInit();
pp.onGuiInit();
ppp.onGuiInit();
m.onGuiInit();
mm.onGuiInit();
mmm.onGuiInit();
}
@Override
protected void actionPerformed(GuiButton b) {
super.actionPerformed(b);
int levels = 0;
if(b == p) {
levels = -1;
} else if(b == pp) {
levels = -10;
} else if(b == ppp) {
levels = -5000;
} else if(b == m) {
levels = 1;
} else if(b == mm) {
levels = 10;
} else if(b == mmm) {
levels = 5000;
} else {
return;
}
if(levels < 0) {
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
int currLevel = player.experienceLevel;
int targetLevel = Math.max(0, currLevel + levels);
PacketDrainPlayerXP packet = new PacketDrainPlayerXP(getTileEntity(), targetLevel, false);
PacketHandler.INSTANCE.sendToServer(packet);
} else {
PacketGivePlayerXP packet = new PacketGivePlayerXP(getTileEntity(), levels);
PacketHandler.INSTANCE.sendToServer(packet);
}
}
@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);
int width = 110;
ExperienceBarRenderer.render(this, getGuiLeft() + xSize / 2 - width / 2, getGuiTop() + 55, width, getTileEntity().getContainer());
super.drawGuiContainerBackgroundLayer(par1, par2, par3);
}
@Override
protected boolean showRecipeButton() {
return false;
}
}