package joshie.progression.gui.buttons; import joshie.progression.lib.PInfo; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.util.ResourceLocation; import static joshie.progression.gui.core.GuiList.CORE; public abstract class ButtonBaseTeam extends GuiButton { protected static final ResourceLocation buttonTextures = new ResourceLocation("textures/gui/widgets.png"); public ButtonBaseTeam(String text, int x, int y) { super(0, x, y, text.length() * 7, 20, text); } @Override public boolean mousePressed(Minecraft mc, int mouseX, int mouseY) { mouseY = mouseY + CORE.screenTop; if (super.mousePressed(mc, mouseX, mouseY)) { onClicked(); return true; } else { onNotClicked(); return false; } } @Override public void drawButton(Minecraft mc, int mouseX, int mouseY) { mouseY = mouseY + CORE.screenTop; FontRenderer fontrenderer = mc.fontRendererObj; mc.getTextureManager().bindTexture(PInfo.textures); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; int i = this.getHoverState(this.hovered); GlStateManager.enableBlend(); GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); GlStateManager.blendFunc(770, 771); this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, 196 + i * 20, this.width / 2, this.height); this.drawTexturedModalRect(this.xPosition + this.width / 2, this.yPosition, 200 - this.width / 2, 196 + i * 20, this.width / 2, this.height); this.mouseDragged(mc, mouseX, mouseY); int j = 14737632; if (packedFGColour != 0) { j = packedFGColour; } else if (!this.enabled) { j = 10526880; } else if (this.hovered) { j = 16777120; } this.drawCenteredString(fontrenderer, this.displayString, this.xPosition + this.width / 2, this.yPosition + (this.height - 8) / 2, j); if (this.hovered) { addTooltip(); } } public void addTooltip() { } public abstract void onClicked(); public void onNotClicked() {} }