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:
@@ -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"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user