1
mirror of https://github.com/Shiewk/Widgets.git synced 2026-04-28 11:34:17 +02:00

Support latest changes for 1.21.6 (2.1.0)

This commit is contained in:
Shy
2025-12-05 17:54:12 +01:00
parent 2fb2537da0
commit c41e126704
11 changed files with 57 additions and 31 deletions
@@ -65,11 +65,11 @@ public class WidgetsModClient implements ClientModInitializer {
WidgetManager.register(new MemoryUsageWidget(Identifier.of(WidgetsMod.MOD_ID, "memory")));
WidgetManager.register(new KeyStrokesWidget(Identifier.of(WidgetsMod.MOD_ID, "keystrokes")));
WidgetManager.register(new PlainTextWidget(Identifier.of(WidgetsMod.MOD_ID, "plaintext")));
WidgetManager.register(new TPSWidget(Identifier.of(WidgetsMod.MOD_ID, "tps")));
WidgetManager.register(new BiomeWidget(Identifier.of(WidgetsMod.MOD_ID, "biome")));
WidgetManager.register(new SpeedWidget(Identifier.of(WidgetsMod.MOD_ID, "speed")));
WidgetManager.register(new ArmorHudWidget(Identifier.of(WidgetsMod.MOD_ID, "armor")));
WidgetManager.register(new InventoryWidget(Identifier.of(WidgetsMod.MOD_ID, "inventory")));
WidgetManager.register(TPSWidget.INSTANCE);
ComboWidget comboWidget = new ComboWidget(Identifier.of(WidgetsMod.MOD_ID, "combo"));
WidgetManager.register(comboWidget);
@@ -18,6 +18,7 @@ import org.joml.Vector2i;
import java.awt.*;
import java.util.List;
import java.util.Locale;
import java.util.function.Consumer;
public class EditWidgetPositionsScreen extends AnimatedScreen {
@@ -273,7 +274,7 @@ public class EditWidgetPositionsScreen extends AnimatedScreen {
List<ContextMenuScreen.Option> options = new ObjectArrayList<>(Anchor.values().length);
for (Anchor anchor : Anchor.values()) {
options.add(new ContextMenuScreen.Option(
Text.translatable("widgets.ui.anchor." + anchor.name().toLowerCase()),
Text.translatable("widgets.ui.anchor." + anchor.name().toLowerCase(Locale.ROOT)),
hovered.getSettings().anchor == anchor,
() -> {
hovered.setPos(
@@ -64,6 +64,7 @@ public class WidgetConfigScreen extends Screen {
this.addDrawableChild(widgetList);
this.addDrawableChild(searchField);
setInitialFocus(searchField);
// Left side
GridWidget gw = new GridWidget(0, 0);
@@ -17,7 +17,9 @@ import net.minecraft.text.Text;
import org.joml.Matrix3x2fStack;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.function.Consumer;
public class WidgetListWidget extends ScrollableWidget {
@@ -30,6 +32,7 @@ public class WidgetListWidget extends ScrollableWidget {
private final Consumer<ModWidget> onEdit;
public static boolean searchQueryMatches(String search, ModWidget widget) {
if (search == null) return true;
return widget.getName().getString().contains(search) || widget.getDescription().getString().contains(search) || widget.getId().toString().contains(search);
}
@@ -43,11 +46,11 @@ public class WidgetListWidget extends ScrollableWidget {
}
private List<ModWidget> loadWidgets(String search) {
if (search == null) {
return WidgetManager.getAllWidgets();
} else {
return WidgetManager.getAllWidgets().stream().filter(w -> searchQueryMatches(search, w)).toList();
}
return WidgetManager.getAllWidgets()
.stream()
.filter(w -> searchQueryMatches(search, w))
.sorted(Comparator.comparing(w -> w.getName().getString().toLowerCase(Locale.ROOT)))
.toList();
}
private void init(){
@@ -16,6 +16,7 @@ import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import java.util.List;
import java.util.Locale;
import static net.minecraft.text.Text.translatable;
@@ -41,7 +42,7 @@ public class ArmorHudWidget extends ResizableWidget {
PERCENT;
public Text getDisplayName() {
return translatable("widgets.widgets.armorHud.durabilityStyle." + name().toLowerCase());
return translatable("widgets.widgets.armorHud.durabilityStyle." + name().toLowerCase(Locale.ROOT));
}
}
@@ -12,6 +12,7 @@ import org.jetbrains.annotations.NotNull;
import java.util.List;
import static net.minecraft.text.Text.literal;
import static net.minecraft.text.Text.translatable;
public class CPSWidget extends BasicTextWidget {
@@ -44,6 +45,7 @@ public class CPSWidget extends BasicTextWidget {
}
private Appearance appearance = Appearance.UNIFIED;
private boolean showLabel = true;
public enum Appearance {
SPLIT_PIPE("pipe"),
@@ -59,10 +61,11 @@ public class CPSWidget extends BasicTextWidget {
public CPSWidget(Identifier id) {
super(id, List.of(
new EnumWidgetSetting<>("appearance", Text.translatable("widgets.widgets.cps.appearance"), Appearance.class, Appearance.UNIFIED, appearance -> Text.translatable("widgets.widgets.cps.appearance."+appearance.key)),
new ToggleWidgetSetting("left", Text.translatable("widgets.widgets.cps.left"), true),
new ToggleWidgetSetting("middle", Text.translatable("widgets.widgets.cps.middle"), false),
new ToggleWidgetSetting("right", Text.translatable("widgets.widgets.cps.right"), true)
new ToggleWidgetSetting("show_label", translatable("widgets.widgets.common.showLabel"), true),
new EnumWidgetSetting<>("appearance", translatable("widgets.widgets.cps.appearance"), Appearance.class, Appearance.UNIFIED, appearance -> translatable("widgets.widgets.cps.appearance."+appearance.key)),
new ToggleWidgetSetting("left", translatable("widgets.widgets.cps.left"), true),
new ToggleWidgetSetting("middle", translatable("widgets.widgets.cps.middle"), false),
new ToggleWidgetSetting("right", translatable("widgets.widgets.cps.right"), true)
));
}
@@ -102,10 +105,17 @@ public class CPSWidget extends BasicTextWidget {
middleClicks.removeIf(click -> click.expiresAt <= mtime);
middle = middleClicks.size();
}
formatAndSetRenderText(switch (appearance){
case UNIFIED -> literal((left + right + middle) + " CPS");
case SPLIT_PIPE, SPLIT_SLASH -> literal(getClickText(left, middle, right) + " CPS");
});
if (showLabel){
formatAndSetRenderText(switch (appearance){
case UNIFIED -> literal((left + right + middle) + " CPS");
case SPLIT_PIPE, SPLIT_SLASH -> literal(getClickText(left, middle, right) + " CPS");
});
} else {
formatAndSetRenderText(switch (appearance){
case UNIFIED -> literal(""+(left + right + middle));
case SPLIT_PIPE, SPLIT_SLASH -> literal(getClickText(left, middle, right).toString());
});
}
}
private @NotNull StringBuilder getClickText(int left, int middle, int right) {
@@ -135,15 +145,16 @@ public class CPSWidget extends BasicTextWidget {
countMiddleClicks = ((ToggleWidgetSetting) settings.optionById("middle")).getValue();
countRightClicks = ((ToggleWidgetSetting) settings.optionById("right")).getValue();
appearance = (Appearance) ((EnumWidgetSetting<?>) settings.optionById("appearance")).getValue();
showLabel = ((ToggleWidgetSetting) settings.optionById("show_label")).getValue();
}
@Override
public Text getName() {
return Text.translatable("widgets.widgets.cps");
}
return translatable("widgets.widgets.cps");
}
@Override
public Text getDescription() {
return Text.translatable("widgets.widgets.cps.description");
return translatable("widgets.widgets.cps.description");
}
}
}
@@ -16,6 +16,7 @@ import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import java.util.List;
import java.util.Locale;
import static net.minecraft.text.Text.translatable;
@@ -42,7 +43,7 @@ public class InventoryWidget extends ResizableWidget {
}
public Text display() {
return translatable("widgets.widgets.inventory.mode." + name().toLowerCase());
return translatable("widgets.widgets.inventory.mode." + name().toLowerCase(Locale.ROOT));
}
}
@@ -1,6 +1,8 @@
package de.shiewk.widgets.widgets;
import de.shiewk.widgets.WidgetSettings;
import de.shiewk.widgets.WidgetsMod;
import de.shiewk.widgets.widgets.settings.IntSliderWidgetSetting;
import de.shiewk.widgets.widgets.settings.ToggleWidgetSetting;
import net.minecraft.client.MinecraftClient;
import net.minecraft.server.ServerTickManager;
@@ -14,21 +16,20 @@ import static net.minecraft.text.Text.literal;
import static net.minecraft.text.Text.translatable;
public class TPSWidget extends BasicTextWidget {
public TPSWidget(Identifier id) {
private TPSWidget(Identifier id) {
super(id, List.of(
new ToggleWidgetSetting("show_label", translatable("widgets.widgets.common.showLabel"), true),
new ToggleWidgetSetting("dynamic_color", translatable("widgets.widgets.tps.dynamicColor"), true)
new ToggleWidgetSetting("dynamic_color", translatable("widgets.widgets.tps.dynamicColor"), true),
new IntSliderWidgetSetting("window_size", translatable("widgets.widgets.tps.windowSize"), 2, 5, 20)
));
getSettings().optionById("textcolor").setShowCondition(() -> !this.dynamicColor && !this.rainbow);
getSettings().optionById("rainbow").setShowCondition(() -> !this.dynamicColor);
getSettings().optionById("rainbow_speed").setShowCondition(() -> !this.dynamicColor && this.rainbow);
if (INSTANCE != null) throw new IllegalStateException("Instance already initialized");
INSTANCE = this;
}
private static TPSWidget INSTANCE;
public static final TPSWidget INSTANCE = new TPSWidget(Identifier.of(WidgetsMod.MOD_ID, "tps"));
private static final long[] lastUpdates = new long[5];
private static long[] lastUpdates = new long[5];
private static int updatePointer = 0;
private static int updatesSinceWorldChange = 0;
@@ -69,7 +70,7 @@ public class TPSWidget extends BasicTextWidget {
float mspt = avgDifference / 20000000f;
float ticksPerSecond = 1000f / mspt;
boolean loadingFinished = updatesSinceWorldChange > 5;
boolean loadingFinished = updatesSinceWorldChange > lastUpdates.length;
if (client.world != null) {
INSTANCE.updateTPS(ticksPerSecond, client.world.getTickManager().getTickRate(), loadingFinished);
} else {
@@ -125,5 +126,10 @@ public class TPSWidget extends BasicTextWidget {
super.onSettingsChanged(settings);
this.dynamicColor = ((ToggleWidgetSetting) settings.optionById("dynamic_color")).getValue();
this.showLabel = ((ToggleWidgetSetting) settings.optionById("show_label")).getValue();
int windowSize = ((IntSliderWidgetSetting) settings.optionById("window_size")).getValue();
updatePointer = 0;
updatesSinceWorldChange = 0;
lastUpdates = new long[windowSize];
}
}
@@ -146,5 +146,6 @@
"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.tps.windowSize": "Durchschnittsfenstergröße (Sekunden)"
}
@@ -146,5 +146,6 @@
"widgets.widgets.tps": "TPS",
"widgets.widgets.tps.description": "Shows the current TPS when in singleplayer and estimates server TPS when in multiplayer.",
"widgets.widgets.tps.dynamicColor": "Dynamic Color",
"widgets.widgets.tps.tps": "%s TPS"
"widgets.widgets.tps.tps": "%s TPS",
"widgets.widgets.tps.windowSize": "Averaging window size (seconds)"
}