package cofh.lib.gui.element; import cofh.lib.gui.GuiBase; import cofh.lib.render.RenderHelper; import cofh.lib.util.helpers.StringHelper; import java.util.List; public class ElementButton extends ElementBase { int sheetX; int sheetY; int hoverX; int hoverY; int disabledX = 0; int disabledY = 0; boolean tooltipLocalized = false; String tooltip; public ElementButton(GuiBase gui, int posX, int posY, String name, int sheetX, int sheetY, int hoverX, int hoverY, int sizeX, int sizeY, String texture) { super(gui, posX, posY); setName(name); setSize(sizeX, sizeY); setTexture(texture, texW, texH); this.sheetX = sheetX; this.sheetY = sheetY; this.hoverX = hoverX; this.hoverY = hoverY; } public ElementButton(GuiBase gui, int posX, int posY, String name, int sheetX, int sheetY, int hoverX, int hoverY, int disabledX, int disabledY, int sizeX, int sizeY, String texture) { super(gui, posX, posY); setName(name); setSize(sizeX, sizeY); setTexture(texture, texW, texH); this.sheetX = sheetX; this.sheetY = sheetY; this.hoverX = hoverX; this.hoverY = hoverY; this.disabledX = disabledX; this.disabledY = disabledY; } public ElementButton clearToolTip() { this.tooltip = null; return this; } public ElementButton setToolTip(String tooltip) { this.tooltip = tooltip; return this; } public ElementButton setToolTipLocalized(boolean localized) { this.tooltipLocalized = localized; return this; } @Override public void drawBackground(int mouseX, int mouseY, float gameTicks) { RenderHelper.bindTexture(texture); if (isEnabled()) { if (intersectsWith(mouseX, mouseY)) { drawTexturedModalRect(posX, posY, hoverX, hoverY, sizeX, sizeY); } else { drawTexturedModalRect(posX, posY, sheetX, sheetY, sizeX, sizeY); } } else { drawTexturedModalRect(posX, posY, disabledX, disabledY, sizeX, sizeY); } } @Override public void drawForeground(int mouseX, int mouseY) { } @Override public void addTooltip(List<String> list) { if (tooltip != null) { if (tooltipLocalized) { list.add(tooltip); } else { list.add(StringHelper.localize(tooltip)); } } } @Override public boolean onMousePressed(int x, int y, int mouseButton) { if (isEnabled()) { gui.handleElementButtonClick(getName(), mouseButton); return true; } return false; } public void setSheetX(int pos) { sheetX = pos; } public void setSheetY(int pos) { sheetY = pos; } public void setHoverX(int pos) { hoverX = pos; } public void setHoverY(int pos) { hoverY = pos; } public ElementButton setDisabledX(int pos) { disabledX = pos; return this; } public ElementButton setDisabledY(int pos) { disabledY = pos; return this; } public void setActive() { setEnabled(true); } public void setDisabled() { setEnabled(false); } }