From dccbc99d86a18e406d996aa82bfb2a2941ebd362 Mon Sep 17 00:00:00 2001 From: johni0702 Date: Mon, 13 Jul 2015 13:56:03 +0200 Subject: [PATCH] Add option for whether to draw a shadow of string to GuiRenderer --- .../johni0702/minecraft/gui/GuiRenderer.java | 8 +++++ .../minecraft/gui/MinecraftGuiRenderer.java | 29 ++++++++++++++++--- .../minecraft/gui/OffsetGuiRenderer.java | 20 +++++++++++++ .../gui/element/AbstractGuiTooltip.java | 2 +- .../element/advanced/AbstractGuiTextArea.java | 4 +-- 5 files changed, 56 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/johni0702/minecraft/gui/GuiRenderer.java b/src/main/java/de/johni0702/minecraft/gui/GuiRenderer.java index 796cbc0b..9fe56c0a 100644 --- a/src/main/java/de/johni0702/minecraft/gui/GuiRenderer.java +++ b/src/main/java/de/johni0702/minecraft/gui/GuiRenderer.java @@ -58,4 +58,12 @@ public interface GuiRenderer { int drawCenteredString(int x, int y, ReadableColor color, String text); + int drawString(int x, int y, int color, String text, boolean shadow); + + int drawString(int x, int y, ReadableColor color, String text, boolean shadow); + + int drawCenteredString(int x, int y, int color, String text, boolean shadow); + + int drawCenteredString(int x, int y, ReadableColor color, String text, boolean shadow); + } diff --git a/src/main/java/de/johni0702/minecraft/gui/MinecraftGuiRenderer.java b/src/main/java/de/johni0702/minecraft/gui/MinecraftGuiRenderer.java index effe4cb2..cef6a6b0 100644 --- a/src/main/java/de/johni0702/minecraft/gui/MinecraftGuiRenderer.java +++ b/src/main/java/de/johni0702/minecraft/gui/MinecraftGuiRenderer.java @@ -121,8 +121,7 @@ public class MinecraftGuiRenderer implements GuiRenderer { @Override public int drawString(int x, int y, int color, String text) { - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - return fontRenderer.drawStringWithShadow(text, x, y, color); + return drawString(x, y, color, text, false); } @Override @@ -132,8 +131,7 @@ public class MinecraftGuiRenderer implements GuiRenderer { @Override public int drawCenteredString(int x, int y, int color, String text) { - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - return fontRenderer.drawStringWithShadow(text, x - fontRenderer.getStringWidth(text) / 2, y, color); + return drawCenteredString(x, y, color, text, false); } @Override @@ -141,6 +139,29 @@ public class MinecraftGuiRenderer implements GuiRenderer { return drawCenteredString(x, y, color(color), text); } + @Override + public int drawString(int x, int y, int color, String text, boolean shadow) { + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; + return shadow ? fontRenderer.drawStringWithShadow(text, x, y, color) : fontRenderer.drawString(text, x, y, color); + } + + @Override + public int drawString(int x, int y, ReadableColor color, String text, boolean shadow) { + return drawString(x, y, color(color), text, shadow); + } + + @Override + public int drawCenteredString(int x, int y, int color, String text, boolean shadow) { + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; + x-=fontRenderer.getStringWidth(text) / 2; + return drawString(x, y, color, text, shadow); + } + + @Override + public int drawCenteredString(int x, int y, ReadableColor color, String text, boolean shadow) { + return drawCenteredString(x, y, color(color), text, shadow); + } + private int color(ReadableColor color) { return color.getAlpha() << 24 | color.getRed() << 16 diff --git a/src/main/java/de/johni0702/minecraft/gui/OffsetGuiRenderer.java b/src/main/java/de/johni0702/minecraft/gui/OffsetGuiRenderer.java index 6d64bc8c..eba3dacd 100644 --- a/src/main/java/de/johni0702/minecraft/gui/OffsetGuiRenderer.java +++ b/src/main/java/de/johni0702/minecraft/gui/OffsetGuiRenderer.java @@ -117,4 +117,24 @@ public class OffsetGuiRenderer implements GuiRenderer { public int drawCenteredString(int x, int y, ReadableColor color, String text) { return renderer.drawCenteredString(x + position.getX(), y + position.getY(), color, text) - position.getX(); } + + @Override + public int drawString(int x, int y, int color, String text, boolean shadow) { + return renderer.drawString(x + position.getX(), y + position.getY(), color, text) - position.getX(); + } + + @Override + public int drawString(int x, int y, ReadableColor color, String text, boolean shadow) { + return renderer.drawString(x + position.getX(), y + position.getY(), color, text) - position.getX(); + } + + @Override + public int drawCenteredString(int x, int y, int color, String text, boolean shadow) { + return renderer.drawCenteredString(x + position.getX(), y + position.getY(), color, text) - position.getX(); + } + + @Override + public int drawCenteredString(int x, int y, ReadableColor color, String text, boolean shadow) { + return renderer.drawCenteredString(x + position.getX(), y + position.getY(), color, text) - position.getX(); + } } diff --git a/src/main/java/de/johni0702/minecraft/gui/element/AbstractGuiTooltip.java b/src/main/java/de/johni0702/minecraft/gui/element/AbstractGuiTooltip.java index ddbd356c..3893b2b7 100644 --- a/src/main/java/de/johni0702/minecraft/gui/element/AbstractGuiTooltip.java +++ b/src/main/java/de/johni0702/minecraft/gui/element/AbstractGuiTooltip.java @@ -64,7 +64,7 @@ public abstract class AbstractGuiTooltip> extend FontRenderer fontRenderer = getMinecraft().fontRendererObj; int y = LINE_SPACING + 1; for (String line : text) { - renderer.drawString(LINE_SPACING + 1, y, color, line); + renderer.drawString(LINE_SPACING + 1, y, color, line, true); y += fontRenderer.FONT_HEIGHT + LINE_SPACING; } } diff --git a/src/main/java/de/johni0702/minecraft/gui/element/advanced/AbstractGuiTextArea.java b/src/main/java/de/johni0702/minecraft/gui/element/advanced/AbstractGuiTextArea.java index b34f6f26..b7972e4a 100644 --- a/src/main/java/de/johni0702/minecraft/gui/element/advanced/AbstractGuiTextArea.java +++ b/src/main/java/de/johni0702/minecraft/gui/element/advanced/AbstractGuiTextArea.java @@ -474,7 +474,7 @@ public abstract class AbstractGuiTextArea> // Draw line int posY = BORDER + i * lineHeight; - int lineEnd = renderer.drawString(BORDER, posY, textColor, line); + int lineEnd = renderer.drawString(BORDER, posY, textColor, line, true); // Draw selection int fromX = getSelectionFromX(); @@ -503,7 +503,7 @@ public abstract class AbstractGuiTextArea> String beforeCursor = line.substring(0, cursorX - leftTrimmed); int posX = BORDER + fontRenderer.getStringWidth(beforeCursor); if (cursorX == text[lineY].length()) { - renderer.drawString(posX, posY, CURSOR_COLOR, "_"); + renderer.drawString(posX, posY, CURSOR_COLOR, "_", true); } else { renderer.drawRect(posX, posY - 1, 1, 1 + fontRenderer.FONT_HEIGHT, CURSOR_COLOR); }