Fix side buttons

This commit is contained in:
Raoul Van den Berge
2016-09-28 00:11:38 +02:00
parent c755ed605a
commit fe6b7a1bad
15 changed files with 60 additions and 75 deletions

View File

@@ -117,10 +117,9 @@ public abstract class GuiBase extends GuiContainer {
String sideButtonTooltip = null; String sideButtonTooltip = null;
// @TODO: Can this be moved to SideButton itself?
for (GuiButton button : buttonList) { for (GuiButton button : buttonList) {
if (button instanceof SideButton && inBounds(button.xPosition, button.yPosition, SideButton.WIDTH, SideButton.HEIGHT, mouseX, mouseY)) { if (button instanceof SideButton && ((SideButton) button).isHovered()) {
sideButtonTooltip = ((SideButton) button).getTooltip(this); sideButtonTooltip = ((SideButton) button).getTooltip();
} }
} }
@@ -178,7 +177,7 @@ public abstract class GuiBase extends GuiContainer {
public SideButton addSideButton(SideButton button) { public SideButton addSideButton(SideButton button) {
button.id = lastButtonId++; button.id = lastButtonId++;
button.xPosition = guiLeft + -SideButton.WIDTH + 2; button.xPosition = guiLeft + -SideButton.WIDTH - 2;
button.yPosition = guiTop + lastSideButtonY; button.yPosition = guiTop + lastSideButtonY;
lastSideButtonY += SideButton.HEIGHT + 2; lastSideButtonY += SideButton.HEIGHT + 2;

View File

@@ -2,6 +2,8 @@ package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.GlStateManager;
import org.lwjgl.opengl.GL11;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
public abstract class SideButton extends GuiButton { public abstract class SideButton extends GuiButton {
@@ -16,13 +18,31 @@ public abstract class SideButton extends GuiButton {
this.gui = gui; this.gui = gui;
} }
@Override public boolean isHovered() {
public void drawButton(Minecraft mc, int mouseX, int mouseY) { return hovered;
gui.bindTexture("icons.png");
gui.drawTexture(xPosition, yPosition, 238, 16, 18, 18);
} }
public abstract String getTooltip(GuiBase gui); @Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) {
hovered = gui.inBounds(xPosition, yPosition, width, height, mouseX, mouseY);
gui.bindTexture("icons.png");
gui.drawTexture(xPosition, yPosition, 238, hovered ? 35 : 16, 18, 18);
drawButtonIcon(xPosition + 1, yPosition + 1);
if (hovered) {
GlStateManager.enableBlend();
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GlStateManager.color(1.0f, 1.0f, 1.0f, 0.5f);
gui.drawTexture(xPosition, yPosition, 238, 54, 18, 18);
GlStateManager.disableBlend();
}
}
protected abstract void drawButtonIcon(int x, int y);
public abstract String getTooltip();
public abstract void actionPerformed(); public abstract void actionPerformed();
} }

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.api.storage.CompareUtils; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
@@ -19,7 +18,7 @@ public class SideButtonCompare extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
String tooltip = TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:compare." + mask) + TextFormatting.RESET + "\n"; String tooltip = TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:compare." + mask) + TextFormatting.RESET + "\n";
if ((parameter.getValue() & mask) == mask) { if ((parameter.getValue() & mask) == mask) {
@@ -32,9 +31,7 @@ public class SideButtonCompare extends SideButton {
} }
@Override @Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, mouseX, mouseY);
int ty = 0; int ty = 0;
if (mask == CompareUtils.COMPARE_DAMAGE) { if (mask == CompareUtils.COMPARE_DAMAGE) {
@@ -45,7 +42,7 @@ public class SideButtonCompare extends SideButton {
int tx = (parameter.getValue() & mask) == mask ? 0 : 16; int tx = (parameter.getValue() & mask) == mask ? 0 : 16;
gui.drawTexture(xPosition, yPosition, tx, ty, 16, 16); gui.drawTexture(x, y, tx, ty, 16, 16);
} }
@Override @Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.tile.TileCrafter; import refinedstorage.tile.TileCrafter;
@@ -12,15 +11,13 @@ public class SideButtonCrafterTriggeredAutocrafting extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:crafter.triggered_autocrafting") + TextFormatting.RESET + "\n" + gui.t("gui." + (TileCrafter.TRIGGERED_AUTOCRAFTING.getValue() ? "yes" : "no")); return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:crafter.triggered_autocrafting") + TextFormatting.RESET + "\n" + gui.t("gui." + (TileCrafter.TRIGGERED_AUTOCRAFTING.getValue() ? "yes" : "no"));
} }
@Override @Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, mouseX, mouseY); gui.drawTexture(x, y, 0, 144, 16, 16);
gui.drawTexture(xPosition, yPosition, 0, 144, 16, 16);
} }
@Override @Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.tile.TileDetector; import refinedstorage.tile.TileDetector;
@@ -12,14 +11,12 @@ public class SideButtonDetectorMode extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:detector.mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:detector.mode." + TileDetector.MODE.getValue()); return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:detector.mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:detector.mode." + TileDetector.MODE.getValue());
} }
@Override @Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, mouseX, mouseY);
// @TODO: Detector side icons // @TODO: Detector side icons
} }

View File

@@ -1,8 +1,6 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.gui.grid.GuiGrid; import refinedstorage.gui.grid.GuiGrid;
import refinedstorage.integration.jei.IntegrationJEI; import refinedstorage.integration.jei.IntegrationJEI;
import refinedstorage.tile.grid.TileGrid; import refinedstorage.tile.grid.TileGrid;
@@ -13,15 +11,13 @@ public class SideButtonGridSearchBoxMode extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.search_box_mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.search_box_mode." + ((GuiGrid) gui).getGrid().getSearchBoxMode()); return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.search_box_mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.search_box_mode." + ((GuiGrid) gui).getGrid().getSearchBoxMode());
} }
@Override @Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, mouseX, mouseY); gui.drawTexture(x, y, 0, 96, 16, 16);
gui.drawTexture(xPosition, yPosition, 0, 96, 16, 16);
} }
@Override @Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.tile.grid.IGrid; import refinedstorage.tile.grid.IGrid;
@@ -16,15 +15,13 @@ public class SideButtonGridSortingDirection extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.sorting.direction") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.sorting.direction." + grid.getSortingDirection()); return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.sorting.direction") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.sorting.direction." + grid.getSortingDirection());
} }
@Override @Override
public void drawButton(Minecraft mc, int x, int y) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, x, y); gui.drawTexture(x, y, grid.getSortingDirection() * 16, 16, 16, 16);
gui.drawTexture(xPosition, yPosition, grid.getSortingDirection() * 16, 16, 16, 16);
} }
@Override @Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.tile.grid.IGrid; import refinedstorage.tile.grid.IGrid;
@@ -16,15 +15,13 @@ public class SideButtonGridSortingType extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.sorting.type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.sorting.type." + grid.getSortingType()); return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.sorting.type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.sorting.type." + grid.getSortingType());
} }
@Override @Override
public void drawButton(Minecraft mc, int x, int y) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, x, y); gui.drawTexture(x, y, grid.getSortingType() * 16, 32, 16, 16);
gui.drawTexture(xPosition, yPosition, grid.getSortingType() * 16, 32, 16, 16);
} }
@Override @Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.tile.grid.IGrid; import refinedstorage.tile.grid.IGrid;
@@ -16,15 +15,13 @@ public class SideButtonGridViewType extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.view_type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.view_type." + grid.getViewType()); return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.view_type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.view_type." + grid.getViewType());
} }
@Override @Override
public void drawButton(Minecraft mc, int x, int y) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, x, y); gui.drawTexture(x, y, grid.getViewType() * 16, 112, 16, 16);
gui.drawTexture(xPosition, yPosition, grid.getViewType() * 16, 112, 16, 16);
} }
@Override @Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.tile.TileDiskManipulator; import refinedstorage.tile.TileDiskManipulator;
@@ -17,15 +16,13 @@ public class SideButtonIOMode extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:iomode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:iomode." + (parameter.getValue() == TileDiskManipulator.IO_MODE_INSERT ? "insert" : "extract")); return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:iomode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:iomode." + (parameter.getValue() == TileDiskManipulator.IO_MODE_INSERT ? "insert" : "extract"));
} }
@Override @Override
public void drawButton(Minecraft mc, int x, int y) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, x, y); gui.drawTexture(x, y, parameter.getValue() == TileDiskManipulator.IO_MODE_EXTRACT ? 0 : 16, 160, 16, 16);
gui.drawTexture(xPosition, yPosition, parameter.getValue() == TileDiskManipulator.IO_MODE_EXTRACT ? 0 : 16, 160, 16, 16);
} }
@Override @Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.tile.config.IFilterable; import refinedstorage.tile.config.IFilterable;
@@ -17,15 +16,13 @@ public class SideButtonMode extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:mode." + (parameter.getValue() == IFilterable.WHITELIST ? "whitelist" : "blacklist")); return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:mode." + (parameter.getValue() == IFilterable.WHITELIST ? "whitelist" : "blacklist"));
} }
@Override @Override
public void drawButton(Minecraft mc, int x, int y) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, x, y); gui.drawTexture(x, y, parameter.getValue() == IFilterable.WHITELIST ? 0 : 16, 64, 16, 16);
gui.drawTexture(xPosition, yPosition, parameter.getValue() == IFilterable.WHITELIST ? 0 : 16, 64, 16, 16);
} }
@Override @Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.tile.data.TileDataManager; import refinedstorage.tile.data.TileDataManager;
@@ -16,15 +15,13 @@ public class SideButtonRedstoneMode extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
return TextFormatting.RED + gui.t("sidebutton.refinedstorage:redstone_mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:redstone_mode." + parameter.getValue()); return TextFormatting.RED + gui.t("sidebutton.refinedstorage:redstone_mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:redstone_mode." + parameter.getValue());
} }
@Override @Override
public void drawButton(Minecraft mc, int x, int y) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, x, y); gui.drawTexture(x, y, parameter.getValue() * 16, 0, 16, 16);
gui.drawTexture(xPosition, yPosition, parameter.getValue() * 16, 0, 16, 16);
} }
@Override @Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton; package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.tile.config.IType; import refinedstorage.tile.config.IType;
@@ -17,15 +16,13 @@ public class SideButtonType extends SideButton {
} }
@Override @Override
public String getTooltip(GuiBase gui) { public String getTooltip() {
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:type." + type.getValue()); return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:type." + type.getValue());
} }
@Override @Override
public void drawButton(Minecraft mc, int x, int y) { protected void drawButtonIcon(int x, int y) {
super.drawButton(mc, x, y); gui.drawTexture(x, y, 16 * type.getValue(), 128, 16, 16);
gui.drawTexture(xPosition, yPosition, 16 * type.getValue(), 128, 16, 16);
} }
@Override @Override

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB