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

View File

@@ -2,6 +2,8 @@ package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.GlStateManager;
import org.lwjgl.opengl.GL11;
import refinedstorage.gui.GuiBase;
public abstract class SideButton extends GuiButton {
@@ -16,13 +18,31 @@ public abstract class SideButton extends GuiButton {
this.gui = gui;
}
@Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) {
gui.bindTexture("icons.png");
gui.drawTexture(xPosition, yPosition, 238, 16, 18, 18);
public boolean isHovered() {
return hovered;
}
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();
}

View File

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

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.tile.TileCrafter;
@@ -12,15 +11,13 @@ public class SideButtonCrafterTriggeredAutocrafting extends SideButton {
}
@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"));
}
@Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) {
super.drawButton(mc, mouseX, mouseY);
gui.drawTexture(xPosition, yPosition, 0, 144, 16, 16);
protected void drawButtonIcon(int x, int y) {
gui.drawTexture(x, y, 0, 144, 16, 16);
}
@Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.tile.TileDetector;
@@ -12,14 +11,12 @@ public class SideButtonDetectorMode extends SideButton {
}
@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());
}
@Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) {
super.drawButton(mc, mouseX, mouseY);
protected void drawButtonIcon(int x, int y) {
// @TODO: Detector side icons
}

View File

@@ -1,8 +1,6 @@
package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.gui.grid.GuiGrid;
import refinedstorage.integration.jei.IntegrationJEI;
import refinedstorage.tile.grid.TileGrid;
@@ -13,15 +11,13 @@ public class SideButtonGridSearchBoxMode extends SideButton {
}
@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());
}
@Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) {
super.drawButton(mc, mouseX, mouseY);
gui.drawTexture(xPosition, yPosition, 0, 96, 16, 16);
protected void drawButtonIcon(int x, int y) {
gui.drawTexture(x, y, 0, 96, 16, 16);
}
@Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.tile.grid.IGrid;
@@ -16,15 +15,13 @@ public class SideButtonGridSortingDirection extends SideButton {
}
@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());
}
@Override
public void drawButton(Minecraft mc, int x, int y) {
super.drawButton(mc, x, y);
gui.drawTexture(xPosition, yPosition, grid.getSortingDirection() * 16, 16, 16, 16);
protected void drawButtonIcon(int x, int y) {
gui.drawTexture(x, y, grid.getSortingDirection() * 16, 16, 16, 16);
}
@Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.tile.grid.IGrid;
@@ -16,15 +15,13 @@ public class SideButtonGridSortingType extends SideButton {
}
@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());
}
@Override
public void drawButton(Minecraft mc, int x, int y) {
super.drawButton(mc, x, y);
gui.drawTexture(xPosition, yPosition, grid.getSortingType() * 16, 32, 16, 16);
protected void drawButtonIcon(int x, int y) {
gui.drawTexture(x, y, grid.getSortingType() * 16, 32, 16, 16);
}
@Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.tile.grid.IGrid;
@@ -16,15 +15,13 @@ public class SideButtonGridViewType extends SideButton {
}
@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());
}
@Override
public void drawButton(Minecraft mc, int x, int y) {
super.drawButton(mc, x, y);
gui.drawTexture(xPosition, yPosition, grid.getViewType() * 16, 112, 16, 16);
protected void drawButtonIcon(int x, int y) {
gui.drawTexture(x, y, grid.getViewType() * 16, 112, 16, 16);
}
@Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.tile.TileDiskManipulator;
@@ -17,15 +16,13 @@ public class SideButtonIOMode extends SideButton {
}
@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"));
}
@Override
public void drawButton(Minecraft mc, int x, int y) {
super.drawButton(mc, x, y);
gui.drawTexture(xPosition, yPosition, parameter.getValue() == TileDiskManipulator.IO_MODE_EXTRACT ? 0 : 16, 160, 16, 16);
protected void drawButtonIcon(int x, int y) {
gui.drawTexture(x, y, parameter.getValue() == TileDiskManipulator.IO_MODE_EXTRACT ? 0 : 16, 160, 16, 16);
}
@Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.tile.config.IFilterable;
@@ -17,15 +16,13 @@ public class SideButtonMode extends SideButton {
}
@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"));
}
@Override
public void drawButton(Minecraft mc, int x, int y) {
super.drawButton(mc, x, y);
gui.drawTexture(xPosition, yPosition, parameter.getValue() == IFilterable.WHITELIST ? 0 : 16, 64, 16, 16);
protected void drawButtonIcon(int x, int y) {
gui.drawTexture(x, y, parameter.getValue() == IFilterable.WHITELIST ? 0 : 16, 64, 16, 16);
}
@Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.tile.data.TileDataManager;
@@ -16,15 +15,13 @@ public class SideButtonRedstoneMode extends SideButton {
}
@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());
}
@Override
public void drawButton(Minecraft mc, int x, int y) {
super.drawButton(mc, x, y);
gui.drawTexture(xPosition, yPosition, parameter.getValue() * 16, 0, 16, 16);
protected void drawButtonIcon(int x, int y) {
gui.drawTexture(x, y, parameter.getValue() * 16, 0, 16, 16);
}
@Override

View File

@@ -1,6 +1,5 @@
package refinedstorage.gui.sidebutton;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;
import refinedstorage.gui.GuiBase;
import refinedstorage.tile.config.IType;
@@ -17,15 +16,13 @@ public class SideButtonType extends SideButton {
}
@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());
}
@Override
public void drawButton(Minecraft mc, int x, int y) {
super.drawButton(mc, x, y);
gui.drawTexture(xPosition, yPosition, 16 * type.getValue(), 128, 16, 16);
protected void drawButtonIcon(int x, int y) {
gui.drawTexture(x, y, 16 * type.getValue(), 128, 16, 16);
}
@Override