Move features from GuiTexturedButton to GuiAdvancedButton

This commit is contained in:
johni0702
2015-07-07 16:30:53 +02:00
parent ddeb27be6f
commit 37c1796dca
2 changed files with 36 additions and 65 deletions

View File

@@ -1,12 +1,33 @@
package eu.crushedpixel.replaymod.gui.elements; package eu.crushedpixel.replaymod.gui.elements;
import eu.crushedpixel.replaymod.ReplayMod;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import java.awt.*;
public class GuiAdvancedButton extends GuiButton implements GuiElement { public class GuiAdvancedButton extends GuiButton implements GuiElement {
private final Runnable action;
private final String hoverText;
public GuiAdvancedButton(int id, int x, int y, String buttonText) { public GuiAdvancedButton(int id, int x, int y, String buttonText) {
this(id, x, y, buttonText, null, null);
}
public GuiAdvancedButton(int x, int y, int width, int height, String buttonText, Runnable action, String hoverText) {
this(0, x, y, width, height, buttonText, action, hoverText);
}
public GuiAdvancedButton(int id, int x, int y, String buttonText, Runnable action, String hoverText) {
super(id, x, y, buttonText); super(id, x, y, buttonText);
this.action = action;
this.hoverText = hoverText;
}
public GuiAdvancedButton(int id, int x, int y, int width, int height, String buttonText, Runnable action, String hoverText) {
super(id, x, y, width, height, buttonText);
this.action = action;
this.hoverText = hoverText;
} }
@Override @Override
@@ -16,7 +37,10 @@ public class GuiAdvancedButton extends GuiButton implements GuiElement {
@Override @Override
public void drawOverlay(Minecraft mc, int mouseX, int mouseY) { public void drawOverlay(Minecraft mc, int mouseX, int mouseY) {
hovered = isHovering(mouseX, mouseY);
if(hovered && hoverText != null) {
ReplayMod.tooltipRenderer.drawTooltip(mouseX, mouseY, hoverText, null, Color.WHITE);
}
} }
@Override @Override
@@ -29,7 +53,9 @@ public class GuiAdvancedButton extends GuiButton implements GuiElement {
@Override @Override
public void mouseClick(Minecraft mc, int mouseX, int mouseY, int button) { public void mouseClick(Minecraft mc, int mouseX, int mouseY, int button) {
mousePressed(mc, mouseX, mouseY); if (isHovering(mouseX, mouseY)) {
performAction();
}
} }
@Override @Override
@@ -51,4 +77,10 @@ public class GuiAdvancedButton extends GuiButton implements GuiElement {
public void tick(Minecraft mc) { public void tick(Minecraft mc) {
} }
public void performAction() {
if (action != null) {
action.run();
}
}
} }

View File

@@ -1,40 +1,23 @@
package eu.crushedpixel.replaymod.gui.elements; package eu.crushedpixel.replaymod.gui.elements;
import eu.crushedpixel.replaymod.ReplayMod;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import java.awt.*; public class GuiTexturedButton extends GuiAdvancedButton implements GuiElement {
public class GuiTexturedButton extends GuiButton implements GuiElement {
private final ResourceLocation texture; private final ResourceLocation texture;
private final int u, v; private final int u, v;
private final int textureWidth, textureHeight; private final int textureWidth, textureHeight;
private final Runnable action;
private final String hoverText;
public GuiTexturedButton(int buttonId, int x, int y, int width, int height, ResourceLocation texture, public GuiTexturedButton(int buttonId, int x, int y, int width, int height, ResourceLocation texture,
int u, int v, int textureWidth, int textureHeight, Runnable action, String hoverText) { int u, int v, int textureWidth, int textureHeight, Runnable action, String hoverText) {
super(buttonId, x, y, width, height, ""); super(buttonId, x, y, width, height, "", action, hoverText);
this.texture = texture; this.texture = texture;
this.u = u; this.u = u;
this.v = v; this.v = v;
this.textureWidth = textureWidth; this.textureWidth = textureWidth;
this.textureHeight = textureHeight; this.textureHeight = textureHeight;
this.action = action;
this.hoverText = hoverText;
}
@Override
public boolean isHovering(int mouseX, int mouseY) {
return enabled && visible
&& mouseX >= xPosition
&& mouseY >= yPosition
&& mouseX < xPosition + width
&& mouseY < yPosition + height;
} }
@Override @Override
@@ -49,48 +32,4 @@ public class GuiTexturedButton extends GuiButton implements GuiElement {
Gui.drawModalRectWithCustomSizedTexture(xPosition, yPosition, u, v, width, height, textureWidth, textureHeight); Gui.drawModalRectWithCustomSizedTexture(xPosition, yPosition, u, v, width, height, textureWidth, textureHeight);
} }
} }
@Override
public void draw(Minecraft mc, int mouseX, int mouseY) {
drawButton(mc, mouseX, mouseY);
}
@Override
public void drawOverlay(Minecraft mc, int mouseX, int mouseY) {
hovered = isHovering(mouseX, mouseY);
if(hovered && hoverText != null) {
ReplayMod.tooltipRenderer.drawTooltip(mouseX, mouseY, hoverText, null, Color.WHITE);
}
}
@Override
public void mouseClick(Minecraft mc, int mouseX, int mouseY, int button) {
if (isHovering(mouseX, mouseY)) {
performAction();
}
}
@Override
public void mouseDrag(Minecraft mc, int mouseX, int mouseY, int button) {
}
@Override
public void mouseRelease(Minecraft mc, int mouseX, int mouseY, int button) {
}
@Override
public void buttonPressed(Minecraft mc, int mouseX, int mouseY, char key, int keyCode) {
}
@Override
public void tick(Minecraft mc) {
}
public void performAction() {
action.run();
}
} }