From 20ff6a1eb88b88ca57a837fc0e68a8cc9437b864 Mon Sep 17 00:00:00 2001 From: DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> Date: Tue, 28 Jun 2022 13:44:42 +0200 Subject: undo wyvest hud changes --- .../cc/polyfrost/oneconfig/hud/SingleTextHud.java | 159 ++++++++------------- 1 file changed, 60 insertions(+), 99 deletions(-) (limited to 'src/main/java/cc/polyfrost/oneconfig/hud/SingleTextHud.java') diff --git a/src/main/java/cc/polyfrost/oneconfig/hud/SingleTextHud.java b/src/main/java/cc/polyfrost/oneconfig/hud/SingleTextHud.java index 94bb496..7506c30 100644 --- a/src/main/java/cc/polyfrost/oneconfig/hud/SingleTextHud.java +++ b/src/main/java/cc/polyfrost/oneconfig/hud/SingleTextHud.java @@ -1,108 +1,81 @@ package cc.polyfrost.oneconfig.hud; import cc.polyfrost.oneconfig.config.annotations.Dropdown; -import cc.polyfrost.oneconfig.config.annotations.Exclude; import cc.polyfrost.oneconfig.config.annotations.Switch; import cc.polyfrost.oneconfig.config.annotations.Text; -import cc.polyfrost.oneconfig.config.elements.BasicOption; -import cc.polyfrost.oneconfig.events.EventManager; -import cc.polyfrost.oneconfig.events.event.Stage; -import cc.polyfrost.oneconfig.events.event.TickEvent; -import cc.polyfrost.oneconfig.gui.elements.config.ConfigSwitch; -import cc.polyfrost.oneconfig.libs.eventbus.Subscribe; -import cc.polyfrost.oneconfig.libs.universal.UMinecraft; -import cc.polyfrost.oneconfig.renderer.RenderManager; -import java.util.ArrayList; - -public abstract class SingleTextHud extends TextHud implements Conditional { - - private transient String cachedString = null; - private transient final boolean caching; - - public SingleTextHud(String title) { - this(title, true); - } +import java.util.Collections; +import java.util.List; +public abstract class SingleTextHud extends TextHud { public SingleTextHud(String title, boolean enabled) { this(title, enabled, 0, 0); } - public SingleTextHud(String title, boolean enabled, boolean caching) { - this(title, enabled, 0, 0, caching); - } - public SingleTextHud(String title, boolean enabled, int x, int y) { - this(title, enabled, x, y, true); - } - - public SingleTextHud(String title, boolean enabled, int x, int y, boolean caching) { super(enabled, x, y); this.title = title; - this.caching = caching; - if (caching) { - EventManager.INSTANCE.register(new TextCacher()); - } } - @Override - public void addNewOptions(String category, String subcategory, ArrayList options) { - if (caching) { - try { - options.add(new ConfigSwitch(getClass().getField("cacheText"), this, "Cache Text", category, subcategory, 1)); - } catch (NoSuchFieldException e) { - e.printStackTrace(); - } - } - } - - @Exclude - public boolean cacheText = true; - - @Switch( - name = "Brackets" - ) - public boolean brackets = false; + /** + * This function is called every tick + * + * @return The new text + */ + protected abstract String getText(); - @Text( - name = "Title" - ) - public String title; + /** + * This function is called every frame + * + * @return The new text, null to use the cached value + */ + protected String getTextFrequent() { + return null; + } - @Dropdown( - name = "Title Location", - options = {"Left", "Right"} - ) - public int titleLocation = 0; + /** + * This function is called every tick in the move GUI + * + * @return The new text + */ + protected String getExampleText() { + return getText(); + } - @Override - public int getWidth(float scale) { - return (int) (UMinecraft.getFontRenderer().getStringWidth(getCompleteText(false)) * scale); + /** + * This function is called every frame in the move GUI + * + * @return The new text, null to use the cached value + */ + protected String getExampleTextFrequent() { + return getTextFrequent(); } @Override - public int getExampleWidth(float scale) { - return (int) (UMinecraft.getFontRenderer().getStringWidth(getCompleteText(true)) * scale); + protected List getLines() { + return Collections.singletonList(getCompleteText(getText())); } @Override - public int getHeight(float scale) { - return (int) (UMinecraft.getFontRenderer().FONT_HEIGHT * scale); + protected List getLinesFrequent() { + String text = getTextFrequent(); + if (text == null) return null; + return Collections.singletonList(getCompleteText(text)); } @Override - public void draw(int x, int y, float scale) { - update(x, y, scale); - RenderManager.drawScaledString(getCompleteText(false), x, y, color.getRGB(), RenderManager.TextType.toType(textType), scale); + protected List getExampleLines() { + return Collections.singletonList(getCompleteText(getExampleText())); } @Override - public void drawExample(int x, int y, float scale) { - update(x, y, scale); - RenderManager.drawScaledString(getCompleteText(true), x, y, color.getRGB(), RenderManager.TextType.toType(textType), scale); + protected List getExampleLinesFrequent() { + String text = getExampleTextFrequent(); + if (text == null) return null; + return Collections.singletonList(getCompleteText(text)); } - protected final String getCompleteText(boolean example) { + protected final String getCompleteText(String text) { boolean showTitle = !title.trim().isEmpty(); StringBuilder builder = new StringBuilder(); if (brackets) { @@ -113,7 +86,7 @@ public abstract class SingleTextHud extends TextHud implements Conditional { builder.append(title).append(": "); } - builder.append(example ? getExampleText() : (cachedString == null ? getText() : cachedString)); + builder.append(text); if (showTitle && titleLocation == 1) { builder.append(" ").append(title); @@ -125,32 +98,20 @@ public abstract class SingleTextHud extends TextHud implements Conditional { return builder.toString(); } - public abstract String getText(); - - public String getExampleText() { - return getText(); - } - /** - * Ran before the HUD is drawn. - * - * Can be used to update values but not necessarily process / render them. - * This should only be used if absolutely necessary. - */ - protected void update(int x, int y, float scale) { + @Switch( + name = "Brackets" + ) + public boolean brackets = false; - } + @Text( + name = "Title" + ) + public String title; - private class TextCacher { - @Subscribe - private void onTick(TickEvent event) { - if (event.stage == Stage.START) { - if (cacheText) { - cachedString = getText(); - } else { - cachedString = null; - } - } - } - } -} + @Dropdown( + name = "Title Location", + options = {"Left", "Right"} + ) + public int titleLocation = 0; +} \ No newline at end of file -- cgit