package crazypants.enderio.machine.soul;
import net.minecraft.client.Minecraft;
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 com.enderio.core.common.util.SoundUtil;
import crazypants.enderio.gui.IconEIO;
import crazypants.enderio.machine.enchanter.ContainerEnchanter;
import crazypants.enderio.machine.gui.GuiPoweredMachineBase;
import crazypants.enderio.network.PacketHandler;
import crazypants.enderio.xp.ExperienceBarRenderer;
import crazypants.enderio.xp.PacketDrainPlayerXP;
import crazypants.enderio.xp.XpUtil;
public class GuiSoulBinder extends GuiPoweredMachineBase<TileSoulBinder> {
private static final int PLAYER_XP_ID = 985162394;
private final IconButton usePlayerXP;
public GuiSoulBinder(InventoryPlayer par1InventoryPlayer, TileSoulBinder te) {
super(te, new ContainerSoulBinder(par1InventoryPlayer, te), "soulFuser");
usePlayerXP = new IconButton(this, PLAYER_XP_ID, 125, 57, IconEIO.XP);
usePlayerXP.visible = false;
usePlayerXP.setToolTip("Use Player XP");
addProgressTooltip(80, 34, 24, 16);
}
@Override
public void initGui() {
super.initGui();
usePlayerXP.onGuiInit();
((ContainerSoulBinder) inventorySlots).createGhostSlots(getGhostSlots());
}
@Override
protected void actionPerformed(GuiButton b) {
super.actionPerformed(b);
if(b.id == PLAYER_XP_ID) {
int xp = XpUtil.getPlayerXP(Minecraft.getMinecraft().thePlayer);
if(xp > 0 || Minecraft.getMinecraft().thePlayer.capabilities.isCreativeMode) {
PacketHandler.INSTANCE.sendToServer(new PacketDrainPlayerXP(getTileEntity(), getTileEntity().getCurrentlyRequiredLevel(), true));
SoundUtil.playClientSoundFX("random.orb", getTileEntity());
}
}
}
/**
* Draw the background layer for the GuiContainer (everything behind the
* items)
*/
@Override
protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
bindGuiTexture();
int k = guiLeft;
int l = guiTop;
drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);
int i1;
TileSoulBinder binder = getTileEntity();
if(shouldRenderProgress()) {
i1 = getProgressScaled(24);
drawTexturedModalRect(k + 80, l + 34, 176, 14, i1 + 1, 16);
}
usePlayerXP.visible = binder.needsXP();
ExperienceBarRenderer.render(this, getGuiLeft() + 56, getGuiTop() + 68, 65, binder.getContainer(), binder.getCurrentlyRequiredLevel());
bindGuiTexture();
super.drawGuiContainerBackgroundLayer(par1, par2, par3);
}
}