diff options
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/hud')
| -rw-r--r-- | src/main/java/cc/polyfrost/oneconfig/hud/TextHud.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/hud/TextHud.java b/src/main/java/cc/polyfrost/oneconfig/hud/TextHud.java index f868660..99df46b 100644 --- a/src/main/java/cc/polyfrost/oneconfig/hud/TextHud.java +++ b/src/main/java/cc/polyfrost/oneconfig/hud/TextHud.java @@ -3,25 +3,35 @@ package cc.polyfrost.oneconfig.hud; import cc.polyfrost.oneconfig.renderer.RenderManager; import gg.essential.universal.UMinecraft; +import java.util.List; + public abstract class TextHud extends BasicHud { + private transient int width = 100; + private transient int height; public TextHud(boolean enabled, int x, int y) { super(enabled, x, y); } @Override public int getWidth(float scale) { - return (int) (UMinecraft.getFontRenderer().getStringWidth(getText()) * scale); + return (int) (width * scale); } @Override public int getHeight(float scale) { - return (int) (9 * scale); + return (int) (height * scale); } @Override public void draw(int x, int y, float scale) { - RenderManager.drawScaledString(getText(), x, y, 0xffffff, false, scale); + int textY = y; + for (String line : getLines()) { + RenderManager.drawScaledString(line, x, textY, 0xffffff, false, scale); + width = Math.max(width, UMinecraft.getFontRenderer().getStringWidth(line)); + textY += 12 * scale; + } + height = (int) ((textY - y) / scale); } - public abstract String getText(); + public abstract List<String> getLines(); } |
