From 585482a542ff07656eb4e93ec1502dd8d2ead538 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Mon, 20 Jul 2015 02:03:01 +0200 Subject: [PATCH] GuiArrowButton now draws from Texture instead of awful calculations --- .../gui/elements/GuiArrowButton.java | 47 ++++++++++-------- .../resources/assets/replaymod/replay_gui.png | Bin 8641 -> 8670 bytes 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/main/java/eu/crushedpixel/replaymod/gui/elements/GuiArrowButton.java b/src/main/java/eu/crushedpixel/replaymod/gui/elements/GuiArrowButton.java index 5781cc62..ccf2691a 100755 --- a/src/main/java/eu/crushedpixel/replaymod/gui/elements/GuiArrowButton.java +++ b/src/main/java/eu/crushedpixel/replaymod/gui/elements/GuiArrowButton.java @@ -1,13 +1,25 @@ package eu.crushedpixel.replaymod.gui.elements; +import eu.crushedpixel.replaymod.gui.overlay.GuiReplayOverlay; +import eu.crushedpixel.replaymod.utils.OpenGLUtils; +import lombok.AllArgsConstructor; +import lombok.Getter; import net.minecraft.client.Minecraft; -import java.awt.*; - public class GuiArrowButton extends GuiAdvancedButton { + private static final int TEXTURE_X = 40; + private static final int TEXTURE_Y = 80; + private static final int TEXTURE_WIDTH = 12; + private static final int TEXTURE_HEIGHT = 12; + + + @AllArgsConstructor public enum Direction { - UP, DOWN, RIGHT, LEFT + UP(-90), DOWN(90), RIGHT(0), LEFT(180); + + @Getter + private int rotation; } private Direction dir; @@ -20,30 +32,23 @@ public class GuiArrowButton extends GuiAdvancedButton { height = 20; } + @Override + public void drawButton(Minecraft mc, int mouseX, int mouseY) { + draw(mc, mouseX, mouseY); + } + @Override public void draw(Minecraft mc, int mouseX, int mouseY, boolean hovering) { try { super.draw(mc, mouseX, mouseY, hovering); - if(dir == Direction.UP) { - for(int i = 0; i <= Math.ceil(height / 2) - 5; i++) { - drawHorizontalLine(xPosition + width - height + i + 4, xPosition + width - i - 6, yPosition + height - ((height / 3) + i + 2), Color.BLACK.getRGB()); - } - } else if(dir == Direction.DOWN) { - for(int i = 0; i <= Math.ceil(height / 2) - 5; i++) { - drawHorizontalLine(xPosition + width - height + i + 4, xPosition + width - i - 6, yPosition + (height / 3) + i + 2, Color.BLACK.getRGB()); - } - } else if(dir == Direction.LEFT) { - for(int i = -1; i < Math.ceil(height / 2) - 5; i++) { - drawVerticalLine(xPosition + height - ((height / 3) + i + 4), yPosition + width - height + i + 4, yPosition + width - i - 6, Color.BLACK.getRGB()); - } - } else if(dir == Direction.RIGHT) { - for(int i = -1; i < Math.ceil(height / 2) - 5; i++) { - drawVerticalLine(xPosition + (height / 3) + i + 2, yPosition + width - height + i + 4, yPosition + width - i - 6, Color.BLACK.getRGB()); - } - } + + mc.getTextureManager().bindTexture(GuiReplayOverlay.replay_gui); + + OpenGLUtils.drawRotatedRectWithCustomSizedTexture(xPosition+4, yPosition+4, dir.getRotation(), + TEXTURE_X, TEXTURE_Y, TEXTURE_WIDTH, TEXTURE_HEIGHT, 128, 128); + } catch(Exception e) { e.printStackTrace(); } } - } diff --git a/src/main/resources/assets/replaymod/replay_gui.png b/src/main/resources/assets/replaymod/replay_gui.png index a612fb9fb553793e3f044bf052ddfd2db8e52375..79c9a993041d4982212d4ee4ba9c0d8729d1c4b4 100755 GIT binary patch literal 8670 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 literal 8641 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 J)+)mz{tvI!!1w?F