package chbachman.armour.gui.element; import net.minecraft.util.IIcon; import org.lwjgl.opengl.GL11; import chbachman.armour.gui.crafting.ArmourGui; import cofh.lib.gui.GuiBase; import cofh.lib.gui.element.ElementButtonBase; public class ElementButtonIcon extends ElementButtonBase { private IIcon icon; private int spriteSheet; private String actionName; public ElementButtonIcon(GuiBase containerScreen, IIcon icon, int posX, int posY, int sizeX, int sizeY) { this(containerScreen, icon, posX, posY, sizeX, sizeY, 1); } public ElementButtonIcon(GuiBase containerScreen, IIcon icon, int posX, int posY, int sizeX, int sizeY, int spriteSheet) { super(containerScreen, posX, posY, sizeX, sizeY); this.icon = icon; this.spriteSheet = spriteSheet; } public void setActionName(String name) { this.actionName = name; } public String getActionName() { return actionName; } protected void bindTexture(int mouseX, int mouseY) { if (!isEnabled()) { gui.bindTexture(DISABLED); } else if (intersectsWith(mouseX, mouseY)) { gui.bindTexture(HOVER); } else { gui.bindTexture(ENABLED); } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } @Override public void drawBackground(int mouseX, int mouseY, float gameTicks) { bindTexture(mouseX, mouseY); drawTexturedModalRect(posX, posY, 0, 0, sizeX / 2, sizeY / 2); drawTexturedModalRect(posX, posY + sizeY / 2, 0, 256 - sizeY / 2, sizeX / 2, sizeY / 2); drawTexturedModalRect(posX + sizeX / 2, posY, 256 - sizeX / 2, 0, sizeX / 2, sizeY / 2); drawTexturedModalRect(posX + sizeX / 2, posY + sizeY / 2, 256 - sizeX / 2, 256 - sizeY / 2, sizeX / 2, sizeY / 2); this.gui.drawIcon(icon, posX, posY, spriteSheet); } @Override public void drawForeground(int mouseX, int mouseY) { } @Override public void onClick() { if (actionName != null) { if (this.gui instanceof ArmourGui) { ((ArmourGui) gui).onButtonClick(actionName); } } } }