From 8192f13e51405fb366b514dd41a26e06d035ae0a Mon Sep 17 00:00:00 2001 From: Shiewk Date: Mon, 18 Aug 2025 10:33:40 +0200 Subject: [PATCH] Add different text styles (#3) --- .../widgets/widgets/BandwidthWidget.java | 6 +- .../widgets/widgets/BasicTextWidget.java | 56 +++++++++++++++---- .../shiewk/widgets/widgets/BiomeWidget.java | 19 ++++--- .../de/shiewk/widgets/widgets/CPSWidget.java | 13 ++--- .../shiewk/widgets/widgets/ClockWidget.java | 4 +- .../de/shiewk/widgets/widgets/FPSWidget.java | 4 +- .../widgets/widgets/MemoryUsageWidget.java | 15 +++-- .../de/shiewk/widgets/widgets/PingWidget.java | 6 +- .../widgets/widgets/PlainTextWidget.java | 4 +- .../widgets/widgets/PlayTimeWidget.java | 19 ++++--- .../widgets/widgets/PlayerCountWidget.java | 13 +++-- .../widgets/widgets/ServerIPWidget.java | 17 +++--- .../shiewk/widgets/widgets/SpeedWidget.java | 4 +- .../de/shiewk/widgets/widgets/TPSWidget.java | 19 ++++--- .../resources/assets/widgets/lang/de_de.json | 6 +- .../resources/assets/widgets/lang/en_us.json | 4 ++ 16 files changed, 141 insertions(+), 68 deletions(-) diff --git a/src/main/java/de/shiewk/widgets/widgets/BandwidthWidget.java b/src/main/java/de/shiewk/widgets/widgets/BandwidthWidget.java index 283bdef..38086ba 100644 --- a/src/main/java/de/shiewk/widgets/widgets/BandwidthWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/BandwidthWidget.java @@ -12,6 +12,8 @@ import net.minecraft.util.profiler.MultiValueDebugSampleLogImpl; import java.util.List; import java.util.function.LongFunction; +import static net.minecraft.text.Text.literal; + public class BandwidthWidget extends BasicTextWidget { public enum Unit { @@ -46,7 +48,7 @@ public class BandwidthWidget extends BasicTextWidget { super(id, List.of( new ToggleWidgetSetting("dynamic_color", Text.translatable("widgets.widgets.bandwidth.dynamicColor"), true), new ToggleWidgetSetting("hide_in_singleplayer", Text.translatable("widgets.widgets.common.hideInSingleplayer"), false), - new EnumWidgetSetting<>("unit", Text.translatable("widgets.widgets.bandwidth.unit"), Unit.class, Unit.KB, unit -> Text.literal(unit.name)) + new EnumWidgetSetting<>("unit", Text.translatable("widgets.widgets.bandwidth.unit"), Unit.class, Unit.KB, unit -> literal(unit.name)) )); getSettings().optionById("textcolor").setShowCondition(() -> !this.dynamicColor); } @@ -65,7 +67,7 @@ public class BandwidthWidget extends BasicTextWidget { if (t >= tickRate){ t = 0; long avgBytesPerSecond = getAvgBytesPerSecond(MinecraftClient.getInstance(), tickRate); - this.renderText = Text.of(unit.sizeFormatter.apply(avgBytesPerSecond)); + formatAndSetRenderText(literal(unit.sizeFormatter.apply(avgBytesPerSecond))); if (this.dynamicColor){ if (avgBytesPerSecond < 100000){ this.textColor = 0xff00ff00; diff --git a/src/main/java/de/shiewk/widgets/widgets/BasicTextWidget.java b/src/main/java/de/shiewk/widgets/widgets/BasicTextWidget.java index dd2e4b2..ce037f0 100644 --- a/src/main/java/de/shiewk/widgets/widgets/BasicTextWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/BasicTextWidget.java @@ -14,6 +14,9 @@ import net.minecraft.util.Identifier; import java.awt.*; import java.util.List; +import java.util.function.UnaryOperator; + +import static net.minecraft.text.Text.*; public abstract class BasicTextWidget extends ResizableWidget { @@ -28,12 +31,34 @@ public abstract class BasicTextWidget extends ResizableWidget { this.key = key; } - public Text text(){ - return Text.translatable("widgets.widgets.basictext.alignment." + key); + public Text displayText(){ + return translatable("widgets.widgets.basictext.alignment." + key); } } - protected Text renderText = Text.empty(); + public enum TextStyle { + PLAIN("plain", UnaryOperator.identity()), + SQUARE_BRACKETS("squareBrackets", t -> surround("[", t, "]")), + PARENTHESES("parentheses", t -> surround("(", t, ")")); + + public final String key; + public final UnaryOperator operator; + + TextStyle(String key, UnaryOperator operator) { + this.key = key; + this.operator = operator; + } + + public Text displayText(){ + return translatable("widgets.widgets.basictext.style." + key); + } + + public static Text surround(String prefix, Text subject, String suffix){ + return literal(prefix).append(subject).append(literal(suffix)); + } + } + + protected Text renderText = empty(); protected boolean shouldRender = true; private int textX = 0; private int textY = 0; @@ -43,13 +68,14 @@ public abstract class BasicTextWidget extends ResizableWidget { private static ObjectArrayList getCustomSettings(List otherCustomOptions) { final ObjectArrayList list = new ObjectArrayList<>(otherCustomOptions); - list.add(new RGBAColorWidgetSetting("backgroundcolor", Text.translatable("widgets.widgets.basictext.background"), 0, 0, 0, 80)); - list.add(new RGBAColorWidgetSetting("textcolor", Text.translatable("widgets.widgets.basictext.textcolor"), 255, 255, 255, 255)); - list.add(new IntSliderWidgetSetting("width", Text.translatable("widgets.widgets.basictext.width"), 10, DEFAULT_WIDTH, 80*3)); - list.add(new IntSliderWidgetSetting("height", Text.translatable("widgets.widgets.basictext.height"), 9, DEFAULT_HEIGHT, 80)); - list.add(new ToggleWidgetSetting("shadow", Text.translatable("widgets.widgets.basictext.textshadow"), true)); - list.add(new EnumWidgetSetting<>("alignment", Text.translatable("widgets.widgets.basictext.alignment"), TextAlignment.class, TextAlignment.CENTER, TextAlignment::text)); - list.add(new IntSliderWidgetSetting("padding", Text.translatable("widgets.widgets.basictext.padding"), 0, 5, 20)); + list.add(new RGBAColorWidgetSetting("backgroundcolor", translatable("widgets.widgets.basictext.background"), 0, 0, 0, 80)); + list.add(new RGBAColorWidgetSetting("textcolor", translatable("widgets.widgets.basictext.textcolor"), 255, 255, 255, 255)); + list.add(new IntSliderWidgetSetting("width", translatable("widgets.widgets.basictext.width"), 10, DEFAULT_WIDTH, 80*3)); + list.add(new IntSliderWidgetSetting("height", translatable("widgets.widgets.basictext.height"), 9, DEFAULT_HEIGHT, 80)); + list.add(new ToggleWidgetSetting("shadow", translatable("widgets.widgets.basictext.textshadow"), true)); + list.add(new EnumWidgetSetting<>("alignment", translatable("widgets.widgets.basictext.alignment"), TextAlignment.class, TextAlignment.CENTER, TextAlignment::displayText)); + list.add(new IntSliderWidgetSetting("padding", translatable("widgets.widgets.basictext.padding"), 0, 5, 20)); + list.add(new EnumWidgetSetting<>("text_style", translatable("widgets.widgets.basictext.textstyle"), TextStyle.class, TextStyle.PLAIN, TextStyle::displayText)); return list; } protected BasicTextWidget(Identifier id, List otherCustomOptions) { @@ -65,6 +91,7 @@ public abstract class BasicTextWidget extends ResizableWidget { protected int backgroundColor = DEFAULT_BACKGROUND_COLOR, textColor = DEFAULT_TEXT_COLOR, width = DEFAULT_WIDTH, height = DEFAULT_HEIGHT; protected TextAlignment textAlignment = TextAlignment.CENTER; + protected TextStyle textStyle = TextStyle.PLAIN; @Override public int width() { @@ -98,6 +125,14 @@ public abstract class BasicTextWidget extends ResizableWidget { textY = (height-9) / 2; } + protected void formatAndSetRenderText(Text renderText) { + if (textStyle != TextStyle.PLAIN){ + this.renderText = textStyle.operator.apply(renderText); + } else { + this.renderText = renderText; + } + } + public abstract void tickWidget(); @Override @@ -110,5 +145,6 @@ public abstract class BasicTextWidget extends ResizableWidget { this.textAlignment = (TextAlignment) ((EnumWidgetSetting) settings.optionById("alignment")).getValue(); this.padding = ((IntSliderWidgetSetting) settings.optionById("padding")).getValue(); this.textShadow = ((ToggleWidgetSetting) settings.optionById("shadow")).getValue(); + this.textStyle = (TextStyle) ((EnumWidgetSetting) settings.optionById("text_style")).getValue(); } } diff --git a/src/main/java/de/shiewk/widgets/widgets/BiomeWidget.java b/src/main/java/de/shiewk/widgets/widgets/BiomeWidget.java index b3322fe..8007531 100644 --- a/src/main/java/de/shiewk/widgets/widgets/BiomeWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/BiomeWidget.java @@ -12,11 +12,14 @@ import net.minecraft.world.biome.Biome; import java.util.List; +import static net.minecraft.text.Text.literal; +import static net.minecraft.text.Text.translatable; + public class BiomeWidget extends BasicTextWidget { public BiomeWidget(Identifier id) { super(id, List.of( - new ToggleWidgetSetting("show_label", Text.translatable("widgets.widgets.common.showLabel"), true) + new ToggleWidgetSetting("show_label", translatable("widgets.widgets.common.showLabel"), true) )); } @@ -34,19 +37,19 @@ public class BiomeWidget extends BasicTextWidget { String text = biome.getKeyOrValue().map( (biomeKey) -> { if (showLabel){ - return Text.translatable("widgets.widgets.biome.label", Text.translatable(biomeKey.getValue().toTranslationKey("biome"))).getString(); + return translatable("widgets.widgets.biome.label", translatable(biomeKey.getValue().toTranslationKey("biome"))).getString(); } else { - return Text.translatable(biomeKey.getValue().toTranslationKey("biome")).getString(); + return translatable(biomeKey.getValue().toTranslationKey("biome")).getString(); } }, (b) -> "[unregistered " + b + "]" ); - this.renderText = Text.literal(text); + formatAndSetRenderText(literal(text)); } else { if (showLabel){ - this.renderText = Text.translatable("widgets.widgets.biome.label", "?"); + formatAndSetRenderText(translatable("widgets.widgets.biome.label", "?")); } else { - this.renderText = Text.literal("?"); + formatAndSetRenderText(literal("?")); } } } @@ -54,12 +57,12 @@ public class BiomeWidget extends BasicTextWidget { @Override public Text getName() { - return Text.translatable("widgets.widgets.biome"); + return translatable("widgets.widgets.biome"); } @Override public Text getDescription() { - return Text.translatable("widgets.widgets.biome.description"); + return translatable("widgets.widgets.biome.description"); } @Override diff --git a/src/main/java/de/shiewk/widgets/widgets/CPSWidget.java b/src/main/java/de/shiewk/widgets/widgets/CPSWidget.java index 755bd46..95f35f0 100644 --- a/src/main/java/de/shiewk/widgets/widgets/CPSWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/CPSWidget.java @@ -11,6 +11,8 @@ import org.jetbrains.annotations.NotNull; import java.util.List; +import static net.minecraft.text.Text.literal; + public class CPSWidget extends BasicTextWidget { public static class Click { @@ -100,13 +102,10 @@ public class CPSWidget extends BasicTextWidget { middleClicks.removeIf(click -> click.expiresAt <= mtime); middle = middleClicks.size(); } - switch (appearance){ - case UNIFIED -> renderText = Text.literal((left + right + middle) + " CPS"); - case SPLIT_PIPE, SPLIT_SLASH -> { - final StringBuilder sb = getClickText(left, middle, right); - renderText = Text.literal(sb + " CPS"); - } - } + formatAndSetRenderText(switch (appearance){ + case UNIFIED -> literal((left + right + middle) + " CPS"); + case SPLIT_PIPE, SPLIT_SLASH -> literal(getClickText(left, middle, right) + " CPS"); + }); } private @NotNull StringBuilder getClickText(int left, int middle, int right) { diff --git a/src/main/java/de/shiewk/widgets/widgets/ClockWidget.java b/src/main/java/de/shiewk/widgets/widgets/ClockWidget.java index 7c5a0e6..bec496e 100644 --- a/src/main/java/de/shiewk/widgets/widgets/ClockWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/ClockWidget.java @@ -12,6 +12,8 @@ import java.time.Instant; import java.util.Date; import java.util.List; +import static net.minecraft.text.Text.literal; + public class ClockWidget extends BasicTextWidget { public enum TimeOption { @@ -95,7 +97,7 @@ public class ClockWidget extends BasicTextWidget { @Override public void tickWidget() { - renderText = Text.literal(dateFormat.format(Date.from(Instant.now()))); + formatAndSetRenderText(literal(dateFormat.format(Date.from(Instant.now())))); } @Override diff --git a/src/main/java/de/shiewk/widgets/widgets/FPSWidget.java b/src/main/java/de/shiewk/widgets/widgets/FPSWidget.java index 501c42d..962f9bd 100644 --- a/src/main/java/de/shiewk/widgets/widgets/FPSWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/FPSWidget.java @@ -6,6 +6,8 @@ import net.minecraft.util.Identifier; import java.util.List; +import static net.minecraft.text.Text.literal; + public class FPSWidget extends BasicTextWidget { public FPSWidget(Identifier id) { super(id, List.of()); @@ -13,7 +15,7 @@ public class FPSWidget extends BasicTextWidget { @Override public void tickWidget() { - this.renderText = Text.literal(MinecraftClient.getInstance().getCurrentFps() + " FPS"); + formatAndSetRenderText(literal(MinecraftClient.getInstance().getCurrentFps() + " FPS")); } @Override diff --git a/src/main/java/de/shiewk/widgets/widgets/MemoryUsageWidget.java b/src/main/java/de/shiewk/widgets/widgets/MemoryUsageWidget.java index c10b8b5..05d8a14 100644 --- a/src/main/java/de/shiewk/widgets/widgets/MemoryUsageWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/MemoryUsageWidget.java @@ -7,6 +7,9 @@ import net.minecraft.util.Identifier; import java.util.List; +import static net.minecraft.text.Text.literal; +import static net.minecraft.text.Text.translatable; + public class MemoryUsageWidget extends BasicTextWidget { private boolean showPercentage = true; @@ -14,8 +17,8 @@ public class MemoryUsageWidget extends BasicTextWidget { public MemoryUsageWidget(Identifier id) { super(id, List.of( - new ToggleWidgetSetting("percentage", Text.translatable("widgets.widgets.memory.showPercentage"), true), - new ToggleWidgetSetting("label", Text.translatable("widgets.widgets.common.showLabel"), true) + new ToggleWidgetSetting("percentage", translatable("widgets.widgets.memory.showPercentage"), true), + new ToggleWidgetSetting("label", translatable("widgets.widgets.common.showLabel"), true) )); } @@ -31,9 +34,9 @@ public class MemoryUsageWidget extends BasicTextWidget { mib(memUsed) + "MiB / " + mib(memTotal) + "MiB (" + memUsagePercent + "%)" : mib(memUsed) + "MiB / " + mib(memTotal) + "MiB"; if (showLabel){ - renderText = Text.literal(Text.translatable("widgets.widgets.memory.withLabel", memUsageString).getString()); + formatAndSetRenderText(literal(translatable("widgets.widgets.memory.withLabel", memUsageString).getString())); } else { - renderText = Text.literal(memUsageString); + formatAndSetRenderText(literal(memUsageString)); } } @@ -44,12 +47,12 @@ public class MemoryUsageWidget extends BasicTextWidget { @Override public Text getName() { - return Text.translatable("widgets.widgets.memory"); + return translatable("widgets.widgets.memory"); } @Override public Text getDescription() { - return Text.translatable("widgets.widgets.memory.description"); + return translatable("widgets.widgets.memory.description"); } @Override diff --git a/src/main/java/de/shiewk/widgets/widgets/PingWidget.java b/src/main/java/de/shiewk/widgets/widgets/PingWidget.java index d968147..4fccf32 100644 --- a/src/main/java/de/shiewk/widgets/widgets/PingWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/PingWidget.java @@ -12,6 +12,8 @@ import net.minecraft.util.profiler.MultiValueDebugSampleLogImpl; import java.util.List; +import static net.minecraft.text.Text.literal; + public class PingWidget extends BasicTextWidget { public PingWidget(Identifier id) { @@ -48,12 +50,12 @@ public class PingWidget extends BasicTextWidget { valuesRead++; } if (valuesRead == 0){ - this.renderText = Text.literal("??? ms"); + formatAndSetRenderText(literal("??? ms")); if (this.dynamicColor) this.textColor = 0xff00ff00; return; } long avgPing = ping / valuesRead; - this.renderText = Text.literal(avgPing + " ms"); + formatAndSetRenderText(literal(avgPing + " ms")); if (this.dynamicColor){ if (avgPing < 50){ this.textColor = 0xff00ff00; diff --git a/src/main/java/de/shiewk/widgets/widgets/PlainTextWidget.java b/src/main/java/de/shiewk/widgets/widgets/PlainTextWidget.java index c07cf43..8577132 100644 --- a/src/main/java/de/shiewk/widgets/widgets/PlainTextWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/PlainTextWidget.java @@ -7,6 +7,8 @@ import net.minecraft.util.Identifier; import java.util.List; +import static net.minecraft.text.Text.literal; + public class PlainTextWidget extends BasicTextWidget { public PlainTextWidget(Identifier id) { super(id, List.of( @@ -30,6 +32,6 @@ public class PlainTextWidget extends BasicTextWidget { @Override public void onSettingsChanged(WidgetSettings settings) { super.onSettingsChanged(settings); - renderText = Text.literal(((TextFieldWidgetSettingOption) settings.optionById("text")).getValue()); + formatAndSetRenderText(literal(((TextFieldWidgetSettingOption) settings.optionById("text")).getValue())); } } diff --git a/src/main/java/de/shiewk/widgets/widgets/PlayTimeWidget.java b/src/main/java/de/shiewk/widgets/widgets/PlayTimeWidget.java index 155b3c4..42b4d41 100644 --- a/src/main/java/de/shiewk/widgets/widgets/PlayTimeWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/PlayTimeWidget.java @@ -7,6 +7,9 @@ import net.minecraft.util.Identifier; import java.util.List; +import static net.minecraft.text.Text.literal; +import static net.minecraft.text.Text.translatable; + public class PlayTimeWidget extends BasicTextWidget { private static final long startTime = System.nanoTime(); @@ -27,18 +30,18 @@ public class PlayTimeWidget extends BasicTextWidget { public PlayTimeWidget(Identifier id) { super(id, List.of( - new EnumWidgetSetting<>("labelstyle", Text.translatable("widgets.widgets.playtime.labelStyle"), LabelStyle.class, LabelStyle.NO_LABEL, labelStyle -> Text.translatable("widgets.widgets.playtime.labelStyle."+labelStyle.key)) + new EnumWidgetSetting<>("labelstyle", translatable("widgets.widgets.playtime.labelStyle"), LabelStyle.class, LabelStyle.NO_LABEL, labelStyle -> translatable("widgets.widgets.playtime.labelStyle."+labelStyle.key)) )); } @Override public void tickWidget() { long timePlayedMs = getPlayedMs(); - switch (labelStyle){ - case NO_LABEL -> renderText = Text.literal(msToTimeStr(timePlayedMs)); - case PLAYTIME -> renderText = Text.literal(Text.translatable("widgets.widgets.playtime.playtime", msToTimeStr(timePlayedMs)).getString()); - case PLAYED -> renderText = Text.literal(Text.translatable("widgets.widgets.playtime.played", msToTimeStr(timePlayedMs)).getString()); - } + formatAndSetRenderText(switch (labelStyle){ + case NO_LABEL -> literal(msToTimeStr(timePlayedMs)); + case PLAYTIME -> literal(translatable("widgets.widgets.playtime.playtime", msToTimeStr(timePlayedMs)).getString()); + case PLAYED -> literal(translatable("widgets.widgets.playtime.played", msToTimeStr(timePlayedMs)).getString()); + }); } private static long getPlayedMs() { @@ -59,12 +62,12 @@ public class PlayTimeWidget extends BasicTextWidget { @Override public Text getName() { - return Text.translatable("widgets.widgets.playtime"); + return translatable("widgets.widgets.playtime"); } @Override public Text getDescription() { - return Text.translatable("widgets.widgets.playtime.description"); + return translatable("widgets.widgets.playtime.description"); } @Override diff --git a/src/main/java/de/shiewk/widgets/widgets/PlayerCountWidget.java b/src/main/java/de/shiewk/widgets/widgets/PlayerCountWidget.java index c2363ca..8aff20f 100644 --- a/src/main/java/de/shiewk/widgets/widgets/PlayerCountWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/PlayerCountWidget.java @@ -10,11 +10,14 @@ import net.minecraft.util.Identifier; import java.util.List; +import static net.minecraft.text.Text.literal; +import static net.minecraft.text.Text.translatable; + public class PlayerCountWidget extends BasicTextWidget{ public PlayerCountWidget(Identifier id) { super(id, List.of( - new ToggleWidgetSetting("showlabel", Text.translatable("widgets.widgets.common.showLabel"), true), - new ToggleWidgetSetting("hide_in_singleplayer", Text.translatable("widgets.widgets.common.hideInSingleplayer"), false) + new ToggleWidgetSetting("showlabel", translatable("widgets.widgets.common.showLabel"), true), + new ToggleWidgetSetting("hide_in_singleplayer", translatable("widgets.widgets.common.hideInSingleplayer"), false) )); } @@ -27,17 +30,17 @@ public class PlayerCountWidget extends BasicTextWidget{ if (!shouldRender) return; final ClientPlayNetworkHandler networkHandler = MinecraftClient.getInstance().getNetworkHandler(); String online = networkHandler == null ? "?" : String.valueOf(networkHandler.getListedPlayerListEntries().size()); - this.renderText = showLabel ? Text.literal(Text.translatable("widgets.widgets.playerCount.online", online).getString()) : Text.literal(online); + formatAndSetRenderText(showLabel ? literal(translatable("widgets.widgets.playerCount.online", online).getString()) : literal(online)); } @Override public Text getName() { - return Text.translatable("widgets.widgets.playerCount"); + return translatable("widgets.widgets.playerCount"); } @Override public Text getDescription() { - return Text.translatable("widgets.widgets.playerCount.description"); + return translatable("widgets.widgets.playerCount.description"); } @Override diff --git a/src/main/java/de/shiewk/widgets/widgets/ServerIPWidget.java b/src/main/java/de/shiewk/widgets/widgets/ServerIPWidget.java index 77d27b8..87b2f2b 100644 --- a/src/main/java/de/shiewk/widgets/widgets/ServerIPWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/ServerIPWidget.java @@ -10,11 +10,14 @@ import net.minecraft.util.Identifier; import java.util.List; +import static net.minecraft.text.Text.literal; +import static net.minecraft.text.Text.translatable; + public class ServerIPWidget extends BasicTextWidget { public ServerIPWidget(Identifier id) { super(id, List.of( - new ToggleWidgetSetting("dynamicwidth", Text.translatable("widgets.widgets.serverIP.dynamicWidth"), true), - new ToggleWidgetSetting("hide_in_singleplayer", Text.translatable("widgets.widgets.common.hideInSingleplayer"), false) + new ToggleWidgetSetting("dynamicwidth", translatable("widgets.widgets.serverIP.dynamicWidth"), true), + new ToggleWidgetSetting("hide_in_singleplayer", translatable("widgets.widgets.common.hideInSingleplayer"), false) )); getSettings().optionById("width").setShowCondition(() -> !this.dynamicWidth); } @@ -31,12 +34,12 @@ public class ServerIPWidget extends BasicTextWidget { if (!shouldRender) return; final ServerInfo serverEntry = MinecraftClient.getInstance().getCurrentServerEntry(); if (serverEntry != null){ - this.renderText = Text.of(serverEntry.address); + formatAndSetRenderText(literal(serverEntry.address)); } else { - this.renderText = Text.translatable("menu.singleplayer"); + formatAndSetRenderText(translatable("menu.singleplayer")); } t++; - if (t >= 20){ + if (dynamicWidth && t >= 20){ t = 0; this.width = MinecraftClient.getInstance().textRenderer.getWidth(this.renderText) + 20; } @@ -49,12 +52,12 @@ public class ServerIPWidget extends BasicTextWidget { @Override public Text getName() { - return Text.translatable("widgets.widgets.serverIP"); + return translatable("widgets.widgets.serverIP"); } @Override public Text getDescription() { - return Text.translatable("widgets.widgets.serverIP.description"); + return translatable("widgets.widgets.serverIP.description"); } @Override diff --git a/src/main/java/de/shiewk/widgets/widgets/SpeedWidget.java b/src/main/java/de/shiewk/widgets/widgets/SpeedWidget.java index 767dbeb..387adf0 100644 --- a/src/main/java/de/shiewk/widgets/widgets/SpeedWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/SpeedWidget.java @@ -13,6 +13,8 @@ import net.minecraft.util.math.Vec3d; import java.util.List; +import static net.minecraft.text.Text.literal; + public class SpeedWidget extends BasicTextWidget { public enum Unit { @@ -80,7 +82,7 @@ public class SpeedWidget extends BasicTextWidget { avg += v; } avg /= averagingWindow.length; - renderText = Text.of(reduceDigits(avg) + unit.displayName); + formatAndSetRenderText(literal(reduceDigits(avg) + unit.displayName)); } private String reduceDigits(double v) { diff --git a/src/main/java/de/shiewk/widgets/widgets/TPSWidget.java b/src/main/java/de/shiewk/widgets/widgets/TPSWidget.java index 6b97d9a..4ce2334 100644 --- a/src/main/java/de/shiewk/widgets/widgets/TPSWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/TPSWidget.java @@ -10,11 +10,14 @@ import net.minecraft.util.Identifier; import java.util.List; +import static net.minecraft.text.Text.literal; +import static net.minecraft.text.Text.translatable; + public class TPSWidget extends BasicTextWidget { public TPSWidget(Identifier id) { super(id, List.of( - new ToggleWidgetSetting("show_label", Text.translatable("widgets.widgets.common.showLabel"), true), - new ToggleWidgetSetting("dynamic_color", Text.translatable("widgets.widgets.tps.dynamicColor"), true) + new ToggleWidgetSetting("show_label", translatable("widgets.widgets.common.showLabel"), true), + new ToggleWidgetSetting("dynamic_color", translatable("widgets.widgets.tps.dynamicColor"), true) )); getSettings().optionById("textcolor").setShowCondition(() -> !this.dynamicColor); INSTANCE = this; @@ -75,17 +78,17 @@ public class TPSWidget extends BasicTextWidget { private void updateTPS(float tps, float targetTickRate, boolean loadingFinished) { if (!loadingFinished){ if (showLabel){ - this.renderText = Text.literal(Text.translatable("widgets.widgets.tps.tps", "???").getString()); + formatAndSetRenderText(literal(translatable("widgets.widgets.tps.tps", "???").getString())); } else { - this.renderText = Text.literal("???"); + formatAndSetRenderText(literal("???")); } if (dynamicColor) this.textColor = 0xff00ff00; } else { tps = Math.round(tps * 10f) / 10f; if (showLabel){ - this.renderText = Text.literal(Text.translatable("widgets.widgets.tps.tps", tps).getString()); + formatAndSetRenderText(literal(translatable("widgets.widgets.tps.tps", tps).getString())); } else { - this.renderText = Text.literal(String.valueOf(tps)); + formatAndSetRenderText(literal(String.valueOf(tps))); } if (dynamicColor){ if (tps >= targetTickRate * 0.990){ @@ -106,12 +109,12 @@ public class TPSWidget extends BasicTextWidget { @Override public Text getName() { - return Text.translatable("widgets.widgets.tps"); + return translatable("widgets.widgets.tps"); } @Override public Text getDescription() { - return Text.translatable("widgets.widgets.tps.description"); + return translatable("widgets.widgets.tps.description"); } @Override diff --git a/src/main/resources/assets/widgets/lang/de_de.json b/src/main/resources/assets/widgets/lang/de_de.json index d6e877e..a107ee3 100644 --- a/src/main/resources/assets/widgets/lang/de_de.json +++ b/src/main/resources/assets/widgets/lang/de_de.json @@ -32,6 +32,7 @@ "widgets.widgets.basictext.paddingY": "Textabstand Y", "widgets.widgets.basictext.textcolor": "Textfarbe", "widgets.widgets.basictext.textshadow": "Textschatten", + "widgets.widgets.basictext.textstyle": "Textstil", "widgets.widgets.basictext.width": "Widget Breite", "widgets.widgets.biome": "Biom", "widgets.widgets.biome.description": "Zeigt das Biom an, in dem du dich befindest.", @@ -110,5 +111,8 @@ "widgets.widgets.tps": "TPS", "widgets.widgets.tps.description": "Zeigt die TPS im Einzelspielermodus an oder schätzt die TPS im Mehrspielermodus", "widgets.widgets.tps.dynamicColor": "Farbe dynamisch anzeigen", - "widgets.widgets.tps.tps": "%s TPS" + "widgets.widgets.tps.tps": "%s TPS", + "widgets.widgets.basictext.style.parentheses": "Mit runden Klammern", + "widgets.widgets.basictext.style.plain": "Normal", + "widgets.widgets.basictext.style.squareBrackets": "Mit eckigen Klammern" } \ No newline at end of file diff --git a/src/main/resources/assets/widgets/lang/en_us.json b/src/main/resources/assets/widgets/lang/en_us.json index a4f7b28..a4bbf3f 100644 --- a/src/main/resources/assets/widgets/lang/en_us.json +++ b/src/main/resources/assets/widgets/lang/en_us.json @@ -30,8 +30,12 @@ "widgets.widgets.basictext.padding": "Text padding", "widgets.widgets.basictext.paddingX": "Text padding X", "widgets.widgets.basictext.paddingY": "Text padding Y", + "widgets.widgets.basictext.style.parentheses": "With parentheses", + "widgets.widgets.basictext.style.plain": "Normal", + "widgets.widgets.basictext.style.squareBrackets": "With square brackets", "widgets.widgets.basictext.textcolor": "Text color", "widgets.widgets.basictext.textshadow": "Text shadow", + "widgets.widgets.basictext.textstyle": "Text style", "widgets.widgets.basictext.width": "Widget width", "widgets.widgets.biome": "Biome", "widgets.widgets.biome.description": "Shows the biome you're currently in.",