equivalent-exchange-3/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiAlchenomicon.java

128 lines
4.5 KiB
Java

package com.pahimar.ee3.client.gui.inventory;
import com.pahimar.ee3.client.gui.element.ElementSearchField;
import com.pahimar.ee3.inventory.ContainerAlchenomicon;
import com.pahimar.ee3.network.PacketHandler;
import com.pahimar.ee3.network.message.MessageGuiElementClicked;
import com.pahimar.ee3.reference.Messages;
import com.pahimar.ee3.reference.Textures;
import com.pahimar.repackage.cofh.lib.gui.GuiBase;
import com.pahimar.repackage.cofh.lib.gui.GuiColor;
import com.pahimar.repackage.cofh.lib.gui.element.ElementButton;
import com.pahimar.repackage.cofh.lib.gui.element.ElementTextField;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import org.lwjgl.opengl.GL11;
@SideOnly(Side.CLIENT)
public class GuiAlchenomicon extends GuiBase
{
private ElementButton prevPageButton;
private ElementButton nextPageButton;
private ElementTextField searchTextField;
public GuiAlchenomicon(InventoryPlayer inventoryPlayer, ItemStack itemStack)
{
super(new ContainerAlchenomicon(inventoryPlayer.player, itemStack), Textures.Gui.ALCHENOMICON);
xSize = 256;
ySize = 226;
}
@Override
public void initGui()
{
super.initGui();
this.drawTitle = false;
this.drawInventory = false;
prevPageButton = new ElementButton(this, 15, 177, "prev", 0, 0, 20, 0, 40, 0, 20, 10, 60, 10, Textures.Gui.Elements.ARROW_LEFT);
nextPageButton = new ElementButton(this, 223, 177, "next", 0, 0, 22, 0, 44, 0, 22, 10, 66, 10, Textures.Gui.Elements.ARROW_RIGHT);
searchTextField = new ElementSearchField(this, 64, 205, "searchField", 128, 20);
searchTextField.setPadding(6, 3, 0, 3);
searchTextField.borderColor = new GuiColor(160, 160, 160).getColor();
searchTextField.backgroundColor = new GuiColor(0, 0, 0).getColor();
addElement(prevPageButton);
addElement(nextPageButton);
addElement(searchTextField);
}
@Override
protected void drawGuiContainerForegroundLayer(int x, int y)
{
super.drawGuiContainerForegroundLayer(x, y);
int pageOffset = ((ContainerAlchenomicon) this.inventorySlots).getPageOffset();
if (this.inventorySlots.getSlot(0).getHasStack())
{
fontRendererObj.drawString((pageOffset * 2 + 1) + "", 64, 178, new GuiColor(50, 50, 50).getColor());
}
else
{
if (((ContainerAlchenomicon) this.inventorySlots).getKnownTransmutationsCount() == 0)
{
fontRendererObj.drawSplitString(StatCollector.translateToLocal(Messages.Gui.NO_KNOWN_TRANSMUTATIONS), 142, 20, 100, new GuiColor(50, 50, 50).getColor());
}
}
if (this.inventorySlots.getSlot(40).getHasStack())
{
fontRendererObj.drawString((pageOffset * 2 + 2) + "", 186, 178, new GuiColor(50, 50, 50).getColor());
}
}
@Override
protected void drawGuiContainerBackgroundLayer(float partialTicks, int x, int y)
{
mouseX = x - guiLeft;
mouseY = y - guiTop;
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
bindTexture(texture);
drawSizedTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize, 256f, 256f);
GL11.glPushMatrix();
GL11.glTranslatef(guiLeft, guiTop, 0.0F);
drawElements(partialTicks, false);
drawTabs(partialTicks, false);
GL11.glPopMatrix();
}
@Override
protected void updateElementInformation()
{
if (((ContainerAlchenomicon) this.inventorySlots).getPageOffset() == 0)
{
prevPageButton.setDisabled();
}
else if (!prevPageButton.isEnabled())
{
prevPageButton.setEnabled(true);
}
if (((ContainerAlchenomicon) this.inventorySlots).getPageOffset() == ((ContainerAlchenomicon) this.inventorySlots).getMaxPageOffset())
{
nextPageButton.setDisabled();
}
else if (!nextPageButton.isEnabled())
{
nextPageButton.setEnabled(true);
}
}
@Override
protected void handleMouseClick(Slot slot, int p_146984_2_, int p_146984_3_, int p_146984_4_)
{
// NOOP
}
@Override
public void handleElementButtonClick(String buttonName, int mouseButton)
{
PacketHandler.INSTANCE.sendToServer(new MessageGuiElementClicked(buttonName, mouseButton));
}
}