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

Add option to set widget width dynamically on Server IP widget

This commit is contained in:
Shy
2024-10-19 12:33:11 +02:00
parent 564b268b46
commit 526a304f4a
3 changed files with 19 additions and 4 deletions
@@ -1,5 +1,7 @@
package de.shiewk.widgets.widgets; package de.shiewk.widgets.widgets;
import de.shiewk.widgets.WidgetSettings;
import de.shiewk.widgets.widgets.settings.ToggleWidgetSetting;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ServerInfo; import net.minecraft.client.network.ServerInfo;
import net.minecraft.text.Text; import net.minecraft.text.Text;
@@ -9,12 +11,17 @@ import java.util.List;
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)
));
getSettings().optionById("width").setShowCondition(() -> !this.dynamicWidth);
} }
private int width; private int width;
private int t = 0; private int t = 0;
private boolean dynamicWidth = true;
@Override @Override
public void tickWidget() { public void tickWidget() {
final ServerInfo serverEntry = MinecraftClient.getInstance().getCurrentServerEntry(); final ServerInfo serverEntry = MinecraftClient.getInstance().getCurrentServerEntry();
@@ -32,7 +39,7 @@ public class ServerIPWidget extends BasicTextWidget {
@Override @Override
public int width() { public int width() {
return Math.max(super.width(), this.width); return dynamicWidth ? this.width : super.width();
} }
@Override @Override
@@ -44,4 +51,10 @@ public class ServerIPWidget extends BasicTextWidget {
public Text getDescription() { public Text getDescription() {
return Text.translatable("widgets.widgets.serverIP.description"); return Text.translatable("widgets.widgets.serverIP.description");
} }
@Override
public void onSettingsChanged(WidgetSettings settings) {
super.onSettingsChanged(settings);
this.dynamicWidth = ((ToggleWidgetSetting) settings.optionById("dynamicwidth")).getValue();
}
} }
@@ -71,5 +71,6 @@
"widgets.widgets.memory.description": "Zeigt die momentane Arbeitsspeicherauslastung des Spiels an.", "widgets.widgets.memory.description": "Zeigt die momentane Arbeitsspeicherauslastung des Spiels an.",
"widgets.widgets.memory.withLabel": "Arbeitsspeicher: %s", "widgets.widgets.memory.withLabel": "Arbeitsspeicher: %s",
"widgets.widgets.memory.showPercentage": "Prozentsatz anzeigen", "widgets.widgets.memory.showPercentage": "Prozentsatz anzeigen",
"widgets.widgets.memory.showLabel": "Beschriftung anzeigen" "widgets.widgets.memory.showLabel": "Beschriftung anzeigen",
"widgets.widgets.serverIP.dynamicWidth": "Widget-Breite dynamisch festlegen"
} }
@@ -71,5 +71,6 @@
"widgets.widgets.memory.description": "Shows the current memory usage of the game.", "widgets.widgets.memory.description": "Shows the current memory usage of the game.",
"widgets.widgets.memory.withLabel": "Memory: %s", "widgets.widgets.memory.withLabel": "Memory: %s",
"widgets.widgets.memory.showPercentage": "Show percentage", "widgets.widgets.memory.showPercentage": "Show percentage",
"widgets.widgets.memory.showLabel": "Show label" "widgets.widgets.memory.showLabel": "Show label",
"widgets.widgets.serverIP.dynamicWidth": "Dynamically set widget width"
} }