mirror of
https://github.com/Shiewk/Widgets.git
synced 2026-04-28 11:34:17 +02:00
Add different text styles (#3)
This commit is contained in:
@@ -12,6 +12,8 @@ import net.minecraft.util.profiler.MultiValueDebugSampleLogImpl;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.LongFunction;
|
import java.util.function.LongFunction;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
|
||||||
public class BandwidthWidget extends BasicTextWidget {
|
public class BandwidthWidget extends BasicTextWidget {
|
||||||
|
|
||||||
public enum Unit {
|
public enum Unit {
|
||||||
@@ -46,7 +48,7 @@ public class BandwidthWidget extends BasicTextWidget {
|
|||||||
super(id, List.of(
|
super(id, List.of(
|
||||||
new ToggleWidgetSetting("dynamic_color", Text.translatable("widgets.widgets.bandwidth.dynamicColor"), true),
|
new ToggleWidgetSetting("dynamic_color", Text.translatable("widgets.widgets.bandwidth.dynamicColor"), true),
|
||||||
new ToggleWidgetSetting("hide_in_singleplayer", Text.translatable("widgets.widgets.common.hideInSingleplayer"), false),
|
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);
|
getSettings().optionById("textcolor").setShowCondition(() -> !this.dynamicColor);
|
||||||
}
|
}
|
||||||
@@ -65,7 +67,7 @@ public class BandwidthWidget extends BasicTextWidget {
|
|||||||
if (t >= tickRate){
|
if (t >= tickRate){
|
||||||
t = 0;
|
t = 0;
|
||||||
long avgBytesPerSecond = getAvgBytesPerSecond(MinecraftClient.getInstance(), tickRate);
|
long avgBytesPerSecond = getAvgBytesPerSecond(MinecraftClient.getInstance(), tickRate);
|
||||||
this.renderText = Text.of(unit.sizeFormatter.apply(avgBytesPerSecond));
|
formatAndSetRenderText(literal(unit.sizeFormatter.apply(avgBytesPerSecond)));
|
||||||
if (this.dynamicColor){
|
if (this.dynamicColor){
|
||||||
if (avgBytesPerSecond < 100000){
|
if (avgBytesPerSecond < 100000){
|
||||||
this.textColor = 0xff00ff00;
|
this.textColor = 0xff00ff00;
|
||||||
|
|||||||
@@ -14,6 +14,9 @@ import net.minecraft.util.Identifier;
|
|||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.function.UnaryOperator;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.*;
|
||||||
|
|
||||||
public abstract class BasicTextWidget extends ResizableWidget {
|
public abstract class BasicTextWidget extends ResizableWidget {
|
||||||
|
|
||||||
@@ -28,12 +31,34 @@ public abstract class BasicTextWidget extends ResizableWidget {
|
|||||||
this.key = key;
|
this.key = key;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Text text(){
|
public Text displayText(){
|
||||||
return Text.translatable("widgets.widgets.basictext.alignment." + key);
|
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<Text> operator;
|
||||||
|
|
||||||
|
TextStyle(String key, UnaryOperator<Text> 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;
|
protected boolean shouldRender = true;
|
||||||
private int textX = 0;
|
private int textX = 0;
|
||||||
private int textY = 0;
|
private int textY = 0;
|
||||||
@@ -43,13 +68,14 @@ public abstract class BasicTextWidget extends ResizableWidget {
|
|||||||
|
|
||||||
private static ObjectArrayList<WidgetSettingOption> getCustomSettings(List<WidgetSettingOption> otherCustomOptions) {
|
private static ObjectArrayList<WidgetSettingOption> getCustomSettings(List<WidgetSettingOption> otherCustomOptions) {
|
||||||
final ObjectArrayList<WidgetSettingOption> list = new ObjectArrayList<>(otherCustomOptions);
|
final ObjectArrayList<WidgetSettingOption> list = new ObjectArrayList<>(otherCustomOptions);
|
||||||
list.add(new RGBAColorWidgetSetting("backgroundcolor", Text.translatable("widgets.widgets.basictext.background"), 0, 0, 0, 80));
|
list.add(new RGBAColorWidgetSetting("backgroundcolor", 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 RGBAColorWidgetSetting("textcolor", 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("width", 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 IntSliderWidgetSetting("height", translatable("widgets.widgets.basictext.height"), 9, DEFAULT_HEIGHT, 80));
|
||||||
list.add(new ToggleWidgetSetting("shadow", Text.translatable("widgets.widgets.basictext.textshadow"), true));
|
list.add(new ToggleWidgetSetting("shadow", 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 EnumWidgetSetting<>("alignment", translatable("widgets.widgets.basictext.alignment"), TextAlignment.class, TextAlignment.CENTER, TextAlignment::displayText));
|
||||||
list.add(new IntSliderWidgetSetting("padding", Text.translatable("widgets.widgets.basictext.padding"), 0, 5, 20));
|
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;
|
return list;
|
||||||
}
|
}
|
||||||
protected BasicTextWidget(Identifier id, List<WidgetSettingOption> otherCustomOptions) {
|
protected BasicTextWidget(Identifier id, List<WidgetSettingOption> 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 int backgroundColor = DEFAULT_BACKGROUND_COLOR, textColor = DEFAULT_TEXT_COLOR, width = DEFAULT_WIDTH, height = DEFAULT_HEIGHT;
|
||||||
protected TextAlignment textAlignment = TextAlignment.CENTER;
|
protected TextAlignment textAlignment = TextAlignment.CENTER;
|
||||||
|
protected TextStyle textStyle = TextStyle.PLAIN;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int width() {
|
public int width() {
|
||||||
@@ -98,6 +125,14 @@ public abstract class BasicTextWidget extends ResizableWidget {
|
|||||||
textY = (height-9) / 2;
|
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();
|
public abstract void tickWidget();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -110,5 +145,6 @@ public abstract class BasicTextWidget extends ResizableWidget {
|
|||||||
this.textAlignment = (TextAlignment) ((EnumWidgetSetting<?>) settings.optionById("alignment")).getValue();
|
this.textAlignment = (TextAlignment) ((EnumWidgetSetting<?>) settings.optionById("alignment")).getValue();
|
||||||
this.padding = ((IntSliderWidgetSetting) settings.optionById("padding")).getValue();
|
this.padding = ((IntSliderWidgetSetting) settings.optionById("padding")).getValue();
|
||||||
this.textShadow = ((ToggleWidgetSetting) settings.optionById("shadow")).getValue();
|
this.textShadow = ((ToggleWidgetSetting) settings.optionById("shadow")).getValue();
|
||||||
|
this.textStyle = (TextStyle) ((EnumWidgetSetting<?>) settings.optionById("text_style")).getValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,11 +12,14 @@ import net.minecraft.world.biome.Biome;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
import static net.minecraft.text.Text.translatable;
|
||||||
|
|
||||||
public class BiomeWidget extends BasicTextWidget {
|
public class BiomeWidget extends BasicTextWidget {
|
||||||
|
|
||||||
public BiomeWidget(Identifier id) {
|
public BiomeWidget(Identifier id) {
|
||||||
super(id, List.of(
|
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(
|
String text = biome.getKeyOrValue().map(
|
||||||
(biomeKey) -> {
|
(biomeKey) -> {
|
||||||
if (showLabel){
|
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 {
|
} else {
|
||||||
return Text.translatable(biomeKey.getValue().toTranslationKey("biome")).getString();
|
return translatable(biomeKey.getValue().toTranslationKey("biome")).getString();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
(b) -> "[unregistered " + b + "]"
|
(b) -> "[unregistered " + b + "]"
|
||||||
);
|
);
|
||||||
this.renderText = Text.literal(text);
|
formatAndSetRenderText(literal(text));
|
||||||
} else {
|
} else {
|
||||||
if (showLabel){
|
if (showLabel){
|
||||||
this.renderText = Text.translatable("widgets.widgets.biome.label", "?");
|
formatAndSetRenderText(translatable("widgets.widgets.biome.label", "?"));
|
||||||
} else {
|
} else {
|
||||||
this.renderText = Text.literal("?");
|
formatAndSetRenderText(literal("?"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -54,12 +57,12 @@ public class BiomeWidget extends BasicTextWidget {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getName() {
|
public Text getName() {
|
||||||
return Text.translatable("widgets.widgets.biome");
|
return translatable("widgets.widgets.biome");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getDescription() {
|
public Text getDescription() {
|
||||||
return Text.translatable("widgets.widgets.biome.description");
|
return translatable("widgets.widgets.biome.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
|
||||||
public class CPSWidget extends BasicTextWidget {
|
public class CPSWidget extends BasicTextWidget {
|
||||||
|
|
||||||
public static class Click {
|
public static class Click {
|
||||||
@@ -100,13 +102,10 @@ public class CPSWidget extends BasicTextWidget {
|
|||||||
middleClicks.removeIf(click -> click.expiresAt <= mtime);
|
middleClicks.removeIf(click -> click.expiresAt <= mtime);
|
||||||
middle = middleClicks.size();
|
middle = middleClicks.size();
|
||||||
}
|
}
|
||||||
switch (appearance){
|
formatAndSetRenderText(switch (appearance){
|
||||||
case UNIFIED -> renderText = Text.literal((left + right + middle) + " CPS");
|
case UNIFIED -> literal((left + right + middle) + " CPS");
|
||||||
case SPLIT_PIPE, SPLIT_SLASH -> {
|
case SPLIT_PIPE, SPLIT_SLASH -> literal(getClickText(left, middle, right) + " CPS");
|
||||||
final StringBuilder sb = getClickText(left, middle, right);
|
});
|
||||||
renderText = Text.literal(sb + " CPS");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private @NotNull StringBuilder getClickText(int left, int middle, int right) {
|
private @NotNull StringBuilder getClickText(int left, int middle, int right) {
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ import java.time.Instant;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
|
||||||
public class ClockWidget extends BasicTextWidget {
|
public class ClockWidget extends BasicTextWidget {
|
||||||
|
|
||||||
public enum TimeOption {
|
public enum TimeOption {
|
||||||
@@ -95,7 +97,7 @@ public class ClockWidget extends BasicTextWidget {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tickWidget() {
|
public void tickWidget() {
|
||||||
renderText = Text.literal(dateFormat.format(Date.from(Instant.now())));
|
formatAndSetRenderText(literal(dateFormat.format(Date.from(Instant.now()))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import net.minecraft.util.Identifier;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
|
||||||
public class FPSWidget extends BasicTextWidget {
|
public class FPSWidget extends BasicTextWidget {
|
||||||
public FPSWidget(Identifier id) {
|
public FPSWidget(Identifier id) {
|
||||||
super(id, List.of());
|
super(id, List.of());
|
||||||
@@ -13,7 +15,7 @@ public class FPSWidget extends BasicTextWidget {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tickWidget() {
|
public void tickWidget() {
|
||||||
this.renderText = Text.literal(MinecraftClient.getInstance().getCurrentFps() + " FPS");
|
formatAndSetRenderText(literal(MinecraftClient.getInstance().getCurrentFps() + " FPS"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ import net.minecraft.util.Identifier;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
import static net.minecraft.text.Text.translatable;
|
||||||
|
|
||||||
public class MemoryUsageWidget extends BasicTextWidget {
|
public class MemoryUsageWidget extends BasicTextWidget {
|
||||||
|
|
||||||
private boolean showPercentage = true;
|
private boolean showPercentage = true;
|
||||||
@@ -14,8 +17,8 @@ public class MemoryUsageWidget extends BasicTextWidget {
|
|||||||
|
|
||||||
public MemoryUsageWidget(Identifier id) {
|
public MemoryUsageWidget(Identifier id) {
|
||||||
super(id, List.of(
|
super(id, List.of(
|
||||||
new ToggleWidgetSetting("percentage", Text.translatable("widgets.widgets.memory.showPercentage"), true),
|
new ToggleWidgetSetting("percentage", translatable("widgets.widgets.memory.showPercentage"), true),
|
||||||
new ToggleWidgetSetting("label", Text.translatable("widgets.widgets.common.showLabel"), 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 (" + memUsagePercent + "%)" :
|
||||||
mib(memUsed) + "MiB / " + mib(memTotal) + "MiB";
|
mib(memUsed) + "MiB / " + mib(memTotal) + "MiB";
|
||||||
if (showLabel){
|
if (showLabel){
|
||||||
renderText = Text.literal(Text.translatable("widgets.widgets.memory.withLabel", memUsageString).getString());
|
formatAndSetRenderText(literal(translatable("widgets.widgets.memory.withLabel", memUsageString).getString()));
|
||||||
} else {
|
} else {
|
||||||
renderText = Text.literal(memUsageString);
|
formatAndSetRenderText(literal(memUsageString));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -44,12 +47,12 @@ public class MemoryUsageWidget extends BasicTextWidget {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getName() {
|
public Text getName() {
|
||||||
return Text.translatable("widgets.widgets.memory");
|
return translatable("widgets.widgets.memory");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getDescription() {
|
public Text getDescription() {
|
||||||
return Text.translatable("widgets.widgets.memory.description");
|
return translatable("widgets.widgets.memory.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ import net.minecraft.util.profiler.MultiValueDebugSampleLogImpl;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
|
||||||
public class PingWidget extends BasicTextWidget {
|
public class PingWidget extends BasicTextWidget {
|
||||||
|
|
||||||
public PingWidget(Identifier id) {
|
public PingWidget(Identifier id) {
|
||||||
@@ -48,12 +50,12 @@ public class PingWidget extends BasicTextWidget {
|
|||||||
valuesRead++;
|
valuesRead++;
|
||||||
}
|
}
|
||||||
if (valuesRead == 0){
|
if (valuesRead == 0){
|
||||||
this.renderText = Text.literal("??? ms");
|
formatAndSetRenderText(literal("??? ms"));
|
||||||
if (this.dynamicColor) this.textColor = 0xff00ff00;
|
if (this.dynamicColor) this.textColor = 0xff00ff00;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
long avgPing = ping / valuesRead;
|
long avgPing = ping / valuesRead;
|
||||||
this.renderText = Text.literal(avgPing + " ms");
|
formatAndSetRenderText(literal(avgPing + " ms"));
|
||||||
if (this.dynamicColor){
|
if (this.dynamicColor){
|
||||||
if (avgPing < 50){
|
if (avgPing < 50){
|
||||||
this.textColor = 0xff00ff00;
|
this.textColor = 0xff00ff00;
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import net.minecraft.util.Identifier;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
|
||||||
public class PlainTextWidget extends BasicTextWidget {
|
public class PlainTextWidget extends BasicTextWidget {
|
||||||
public PlainTextWidget(Identifier id) {
|
public PlainTextWidget(Identifier id) {
|
||||||
super(id, List.of(
|
super(id, List.of(
|
||||||
@@ -30,6 +32,6 @@ public class PlainTextWidget extends BasicTextWidget {
|
|||||||
@Override
|
@Override
|
||||||
public void onSettingsChanged(WidgetSettings settings) {
|
public void onSettingsChanged(WidgetSettings settings) {
|
||||||
super.onSettingsChanged(settings);
|
super.onSettingsChanged(settings);
|
||||||
renderText = Text.literal(((TextFieldWidgetSettingOption) settings.optionById("text")).getValue());
|
formatAndSetRenderText(literal(((TextFieldWidgetSettingOption) settings.optionById("text")).getValue()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ import net.minecraft.util.Identifier;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
import static net.minecraft.text.Text.translatable;
|
||||||
|
|
||||||
public class PlayTimeWidget extends BasicTextWidget {
|
public class PlayTimeWidget extends BasicTextWidget {
|
||||||
|
|
||||||
private static final long startTime = System.nanoTime();
|
private static final long startTime = System.nanoTime();
|
||||||
@@ -27,18 +30,18 @@ public class PlayTimeWidget extends BasicTextWidget {
|
|||||||
|
|
||||||
public PlayTimeWidget(Identifier id) {
|
public PlayTimeWidget(Identifier id) {
|
||||||
super(id, List.of(
|
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
|
@Override
|
||||||
public void tickWidget() {
|
public void tickWidget() {
|
||||||
long timePlayedMs = getPlayedMs();
|
long timePlayedMs = getPlayedMs();
|
||||||
switch (labelStyle){
|
formatAndSetRenderText(switch (labelStyle){
|
||||||
case NO_LABEL -> renderText = Text.literal(msToTimeStr(timePlayedMs));
|
case NO_LABEL -> literal(msToTimeStr(timePlayedMs));
|
||||||
case PLAYTIME -> renderText = Text.literal(Text.translatable("widgets.widgets.playtime.playtime", msToTimeStr(timePlayedMs)).getString());
|
case PLAYTIME -> literal(translatable("widgets.widgets.playtime.playtime", msToTimeStr(timePlayedMs)).getString());
|
||||||
case PLAYED -> renderText = Text.literal(Text.translatable("widgets.widgets.playtime.played", msToTimeStr(timePlayedMs)).getString());
|
case PLAYED -> literal(translatable("widgets.widgets.playtime.played", msToTimeStr(timePlayedMs)).getString());
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static long getPlayedMs() {
|
private static long getPlayedMs() {
|
||||||
@@ -59,12 +62,12 @@ public class PlayTimeWidget extends BasicTextWidget {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getName() {
|
public Text getName() {
|
||||||
return Text.translatable("widgets.widgets.playtime");
|
return translatable("widgets.widgets.playtime");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getDescription() {
|
public Text getDescription() {
|
||||||
return Text.translatable("widgets.widgets.playtime.description");
|
return translatable("widgets.widgets.playtime.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -10,11 +10,14 @@ import net.minecraft.util.Identifier;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
import static net.minecraft.text.Text.translatable;
|
||||||
|
|
||||||
public class PlayerCountWidget extends BasicTextWidget{
|
public class PlayerCountWidget extends BasicTextWidget{
|
||||||
public PlayerCountWidget(Identifier id) {
|
public PlayerCountWidget(Identifier id) {
|
||||||
super(id, List.of(
|
super(id, List.of(
|
||||||
new ToggleWidgetSetting("showlabel", Text.translatable("widgets.widgets.common.showLabel"), true),
|
new ToggleWidgetSetting("showlabel", translatable("widgets.widgets.common.showLabel"), true),
|
||||||
new ToggleWidgetSetting("hide_in_singleplayer", Text.translatable("widgets.widgets.common.hideInSingleplayer"), false)
|
new ToggleWidgetSetting("hide_in_singleplayer", translatable("widgets.widgets.common.hideInSingleplayer"), false)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,17 +30,17 @@ public class PlayerCountWidget extends BasicTextWidget{
|
|||||||
if (!shouldRender) return;
|
if (!shouldRender) return;
|
||||||
final ClientPlayNetworkHandler networkHandler = MinecraftClient.getInstance().getNetworkHandler();
|
final ClientPlayNetworkHandler networkHandler = MinecraftClient.getInstance().getNetworkHandler();
|
||||||
String online = networkHandler == null ? "?" : String.valueOf(networkHandler.getListedPlayerListEntries().size());
|
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
|
@Override
|
||||||
public Text getName() {
|
public Text getName() {
|
||||||
return Text.translatable("widgets.widgets.playerCount");
|
return translatable("widgets.widgets.playerCount");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getDescription() {
|
public Text getDescription() {
|
||||||
return Text.translatable("widgets.widgets.playerCount.description");
|
return translatable("widgets.widgets.playerCount.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -10,11 +10,14 @@ import net.minecraft.util.Identifier;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
import static net.minecraft.text.Text.translatable;
|
||||||
|
|
||||||
public class ServerIPWidget extends BasicTextWidget {
|
public class ServerIPWidget extends BasicTextWidget {
|
||||||
public ServerIPWidget(Identifier id) {
|
public ServerIPWidget(Identifier id) {
|
||||||
super(id, List.of(
|
super(id, List.of(
|
||||||
new ToggleWidgetSetting("dynamicwidth", Text.translatable("widgets.widgets.serverIP.dynamicWidth"), true),
|
new ToggleWidgetSetting("dynamicwidth", translatable("widgets.widgets.serverIP.dynamicWidth"), true),
|
||||||
new ToggleWidgetSetting("hide_in_singleplayer", Text.translatable("widgets.widgets.common.hideInSingleplayer"), false)
|
new ToggleWidgetSetting("hide_in_singleplayer", translatable("widgets.widgets.common.hideInSingleplayer"), false)
|
||||||
));
|
));
|
||||||
getSettings().optionById("width").setShowCondition(() -> !this.dynamicWidth);
|
getSettings().optionById("width").setShowCondition(() -> !this.dynamicWidth);
|
||||||
}
|
}
|
||||||
@@ -31,12 +34,12 @@ public class ServerIPWidget extends BasicTextWidget {
|
|||||||
if (!shouldRender) return;
|
if (!shouldRender) return;
|
||||||
final ServerInfo serverEntry = MinecraftClient.getInstance().getCurrentServerEntry();
|
final ServerInfo serverEntry = MinecraftClient.getInstance().getCurrentServerEntry();
|
||||||
if (serverEntry != null){
|
if (serverEntry != null){
|
||||||
this.renderText = Text.of(serverEntry.address);
|
formatAndSetRenderText(literal(serverEntry.address));
|
||||||
} else {
|
} else {
|
||||||
this.renderText = Text.translatable("menu.singleplayer");
|
formatAndSetRenderText(translatable("menu.singleplayer"));
|
||||||
}
|
}
|
||||||
t++;
|
t++;
|
||||||
if (t >= 20){
|
if (dynamicWidth && t >= 20){
|
||||||
t = 0;
|
t = 0;
|
||||||
this.width = MinecraftClient.getInstance().textRenderer.getWidth(this.renderText) + 20;
|
this.width = MinecraftClient.getInstance().textRenderer.getWidth(this.renderText) + 20;
|
||||||
}
|
}
|
||||||
@@ -49,12 +52,12 @@ public class ServerIPWidget extends BasicTextWidget {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getName() {
|
public Text getName() {
|
||||||
return Text.translatable("widgets.widgets.serverIP");
|
return translatable("widgets.widgets.serverIP");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getDescription() {
|
public Text getDescription() {
|
||||||
return Text.translatable("widgets.widgets.serverIP.description");
|
return translatable("widgets.widgets.serverIP.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import net.minecraft.util.math.Vec3d;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
|
||||||
public class SpeedWidget extends BasicTextWidget {
|
public class SpeedWidget extends BasicTextWidget {
|
||||||
|
|
||||||
public enum Unit {
|
public enum Unit {
|
||||||
@@ -80,7 +82,7 @@ public class SpeedWidget extends BasicTextWidget {
|
|||||||
avg += v;
|
avg += v;
|
||||||
}
|
}
|
||||||
avg /= averagingWindow.length;
|
avg /= averagingWindow.length;
|
||||||
renderText = Text.of(reduceDigits(avg) + unit.displayName);
|
formatAndSetRenderText(literal(reduceDigits(avg) + unit.displayName));
|
||||||
}
|
}
|
||||||
|
|
||||||
private String reduceDigits(double v) {
|
private String reduceDigits(double v) {
|
||||||
|
|||||||
@@ -10,11 +10,14 @@ import net.minecraft.util.Identifier;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static net.minecraft.text.Text.literal;
|
||||||
|
import static net.minecraft.text.Text.translatable;
|
||||||
|
|
||||||
public class TPSWidget extends BasicTextWidget {
|
public class TPSWidget extends BasicTextWidget {
|
||||||
public TPSWidget(Identifier id) {
|
public TPSWidget(Identifier id) {
|
||||||
super(id, List.of(
|
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),
|
||||||
new ToggleWidgetSetting("dynamic_color", Text.translatable("widgets.widgets.tps.dynamicColor"), true)
|
new ToggleWidgetSetting("dynamic_color", translatable("widgets.widgets.tps.dynamicColor"), true)
|
||||||
));
|
));
|
||||||
getSettings().optionById("textcolor").setShowCondition(() -> !this.dynamicColor);
|
getSettings().optionById("textcolor").setShowCondition(() -> !this.dynamicColor);
|
||||||
INSTANCE = this;
|
INSTANCE = this;
|
||||||
@@ -75,17 +78,17 @@ public class TPSWidget extends BasicTextWidget {
|
|||||||
private void updateTPS(float tps, float targetTickRate, boolean loadingFinished) {
|
private void updateTPS(float tps, float targetTickRate, boolean loadingFinished) {
|
||||||
if (!loadingFinished){
|
if (!loadingFinished){
|
||||||
if (showLabel){
|
if (showLabel){
|
||||||
this.renderText = Text.literal(Text.translatable("widgets.widgets.tps.tps", "???").getString());
|
formatAndSetRenderText(literal(translatable("widgets.widgets.tps.tps", "???").getString()));
|
||||||
} else {
|
} else {
|
||||||
this.renderText = Text.literal("???");
|
formatAndSetRenderText(literal("???"));
|
||||||
}
|
}
|
||||||
if (dynamicColor) this.textColor = 0xff00ff00;
|
if (dynamicColor) this.textColor = 0xff00ff00;
|
||||||
} else {
|
} else {
|
||||||
tps = Math.round(tps * 10f) / 10f;
|
tps = Math.round(tps * 10f) / 10f;
|
||||||
if (showLabel){
|
if (showLabel){
|
||||||
this.renderText = Text.literal(Text.translatable("widgets.widgets.tps.tps", tps).getString());
|
formatAndSetRenderText(literal(translatable("widgets.widgets.tps.tps", tps).getString()));
|
||||||
} else {
|
} else {
|
||||||
this.renderText = Text.literal(String.valueOf(tps));
|
formatAndSetRenderText(literal(String.valueOf(tps)));
|
||||||
}
|
}
|
||||||
if (dynamicColor){
|
if (dynamicColor){
|
||||||
if (tps >= targetTickRate * 0.990){
|
if (tps >= targetTickRate * 0.990){
|
||||||
@@ -106,12 +109,12 @@ public class TPSWidget extends BasicTextWidget {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getName() {
|
public Text getName() {
|
||||||
return Text.translatable("widgets.widgets.tps");
|
return translatable("widgets.widgets.tps");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Text getDescription() {
|
public Text getDescription() {
|
||||||
return Text.translatable("widgets.widgets.tps.description");
|
return translatable("widgets.widgets.tps.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
"widgets.widgets.basictext.paddingY": "Textabstand Y",
|
"widgets.widgets.basictext.paddingY": "Textabstand Y",
|
||||||
"widgets.widgets.basictext.textcolor": "Textfarbe",
|
"widgets.widgets.basictext.textcolor": "Textfarbe",
|
||||||
"widgets.widgets.basictext.textshadow": "Textschatten",
|
"widgets.widgets.basictext.textshadow": "Textschatten",
|
||||||
|
"widgets.widgets.basictext.textstyle": "Textstil",
|
||||||
"widgets.widgets.basictext.width": "Widget Breite",
|
"widgets.widgets.basictext.width": "Widget Breite",
|
||||||
"widgets.widgets.biome": "Biom",
|
"widgets.widgets.biome": "Biom",
|
||||||
"widgets.widgets.biome.description": "Zeigt das Biom an, in dem du dich befindest.",
|
"widgets.widgets.biome.description": "Zeigt das Biom an, in dem du dich befindest.",
|
||||||
@@ -110,5 +111,8 @@
|
|||||||
"widgets.widgets.tps": "TPS",
|
"widgets.widgets.tps": "TPS",
|
||||||
"widgets.widgets.tps.description": "Zeigt die TPS im Einzelspielermodus an oder schätzt die TPS im Mehrspielermodus",
|
"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.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"
|
||||||
}
|
}
|
||||||
@@ -30,8 +30,12 @@
|
|||||||
"widgets.widgets.basictext.padding": "Text padding",
|
"widgets.widgets.basictext.padding": "Text padding",
|
||||||
"widgets.widgets.basictext.paddingX": "Text padding X",
|
"widgets.widgets.basictext.paddingX": "Text padding X",
|
||||||
"widgets.widgets.basictext.paddingY": "Text padding Y",
|
"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.textcolor": "Text color",
|
||||||
"widgets.widgets.basictext.textshadow": "Text shadow",
|
"widgets.widgets.basictext.textshadow": "Text shadow",
|
||||||
|
"widgets.widgets.basictext.textstyle": "Text style",
|
||||||
"widgets.widgets.basictext.width": "Widget width",
|
"widgets.widgets.basictext.width": "Widget width",
|
||||||
"widgets.widgets.biome": "Biome",
|
"widgets.widgets.biome": "Biome",
|
||||||
"widgets.widgets.biome.description": "Shows the biome you're currently in.",
|
"widgets.widgets.biome.description": "Shows the biome you're currently in.",
|
||||||
|
|||||||
Reference in New Issue
Block a user