package crazypants.enderio.machine.crafter;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import org.lwjgl.opengl.GL11;
import com.enderio.core.client.gui.button.ToggleButton;
import com.enderio.core.client.gui.widget.GhostSlot;
import com.enderio.core.client.render.RenderUtil;
import crazypants.enderio.EnderIO;
import crazypants.enderio.config.Config;
import crazypants.enderio.gui.IconEIO;
import crazypants.enderio.machine.PacketItemBuffer;
import crazypants.enderio.machine.gui.GuiPoweredMachineBase;
import crazypants.enderio.machine.power.PowerDisplayUtil;
import crazypants.enderio.network.PacketHandler;
public class GuiCrafter extends GuiPoweredMachineBase<TileCrafter> {
private final ToggleButton bufferSizeB;
public GuiCrafter(InventoryPlayer par1InventoryPlayer, TileCrafter te) {
super(te, new ContainerCrafter(par1InventoryPlayer, te), "crafter");
xSize = getXSize();
int x = getXSize() - 5 - 16;
int y = 43;
bufferSizeB = new ToggleButton(this, 4327, x, y, IconEIO.ITEM_SINGLE, IconEIO.ITEM_STACK);
bufferSizeB.setSelectedToolTip(EnderIO.lang.localize("gui.machine.bufferingstacks"));
bufferSizeB.setUnselectedToolTip(EnderIO.lang.localize("gui.machine.bufferingsingle"));
bufferSizeB.setSelected(te.isBufferStacks());
}
@Override
public void initGui() {
super.initGui();
bufferSizeB.onGuiInit();
((ContainerCrafter) inventorySlots).addCrafterSlots(ghostSlots);
}
@Override
protected void mouseClickMove(int mouseX, int mouseY, int button, long par4) {
if(!ghostSlots.isEmpty()) {
GhostSlot slot = getGhostSlot(mouseX, mouseY);
if(slot != null) {
ItemStack st = Minecraft.getMinecraft().thePlayer.inventory.getItemStack();
// don't replace already set slots while dragging an item
if(st == null || slot.getStack() == null) {
slot.putStack(st);
}
}
}
super.mouseClickMove(mouseX, mouseY, button, par4);
}
@Override
protected void actionPerformed(GuiButton b) {
super.actionPerformed(b);
if(b == bufferSizeB) {
getTileEntity().setBufferStacks(bufferSizeB.isSelected());
PacketHandler.INSTANCE.sendToServer(new PacketItemBuffer(getTileEntity()));
}
}
@Override
protected boolean showRecipeButton() {
return false;
}
@Override
public final int getXSize() {
return 219;
}
@Override
protected int getPowerU() {
return 220;
}
@Override
protected int getPowerX() {
return 9;
}
@Override
protected void updatePowerBarTooltip(List<String> text) {
text.add(PowerDisplayUtil.formatPower(Config.crafterRfPerCraft) + " " + PowerDisplayUtil.abrevation()
+ " " + EnderIO.lang.localize("gui.machine.percraft"));
super.updatePowerBarTooltip(text);
}
@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);
}
}