mirror of
https://github.com/Shiewk/Widgets.git
synced 2026-04-28 11:34:17 +02:00
Memory usage widget
This commit is contained in:
@@ -55,5 +55,6 @@ public class WidgetsModClient implements ClientModInitializer {
|
|||||||
WidgetManager.register(new PlayerCountWidget(Identifier.of(WidgetsMod.MOD_ID, "player_count")));
|
WidgetManager.register(new PlayerCountWidget(Identifier.of(WidgetsMod.MOD_ID, "player_count")));
|
||||||
WidgetManager.register(new CPSWidget(Identifier.of(WidgetsMod.MOD_ID, "cps")));
|
WidgetManager.register(new CPSWidget(Identifier.of(WidgetsMod.MOD_ID, "cps")));
|
||||||
WidgetManager.register(new PlayTimeWidget(Identifier.of(WidgetsMod.MOD_ID, "playtime")));
|
WidgetManager.register(new PlayTimeWidget(Identifier.of(WidgetsMod.MOD_ID, "playtime")));
|
||||||
|
WidgetManager.register(new MemoryUsageWidget(Identifier.of(WidgetsMod.MOD_ID, "memory")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
package de.shiewk.widgets.widgets;
|
||||||
|
|
||||||
|
import de.shiewk.widgets.WidgetSettings;
|
||||||
|
import de.shiewk.widgets.widgets.settings.ToggleWidgetSetting;
|
||||||
|
import net.minecraft.text.Text;
|
||||||
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class MemoryUsageWidget extends BasicTextWidget {
|
||||||
|
|
||||||
|
private boolean showPercentage = true;
|
||||||
|
private boolean showLabel = true;
|
||||||
|
|
||||||
|
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.memory.showLabel"), true)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tickWidget() {
|
||||||
|
Runtime runtime = Runtime.getRuntime();
|
||||||
|
long memTotal = runtime.maxMemory();
|
||||||
|
long memAllocated = runtime.totalMemory();
|
||||||
|
long memFree = runtime.freeMemory();
|
||||||
|
long memUsed = memAllocated - memFree;
|
||||||
|
short memUsagePercent = (short) (((float) memUsed / memTotal) * 100);
|
||||||
|
String memUsageString = showPercentage ?
|
||||||
|
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());
|
||||||
|
} else {
|
||||||
|
renderText = Text.literal(memUsageString);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private long mib(long bytes) {
|
||||||
|
return bytes / 0x100000;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Text getName() {
|
||||||
|
return Text.translatable("widgets.widgets.memory");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Text getDescription() {
|
||||||
|
return Text.translatable("widgets.widgets.memory.description");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSettingsChanged(WidgetSettings settings) {
|
||||||
|
super.onSettingsChanged(settings);
|
||||||
|
showPercentage = ((ToggleWidgetSetting) settings.optionById("percentage")).getValue();
|
||||||
|
showLabel = ((ToggleWidgetSetting) settings.optionById("label")).getValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -65,5 +65,10 @@
|
|||||||
"widgets.widgets.playtime.labelStyle": "Beschriftungsstil",
|
"widgets.widgets.playtime.labelStyle": "Beschriftungsstil",
|
||||||
"widgets.widgets.playtime.labelStyle.none": "Keine Beschriftung",
|
"widgets.widgets.playtime.labelStyle.none": "Keine Beschriftung",
|
||||||
"widgets.widgets.playtime.labelStyle.playtime": "Spielzeit: Zeit",
|
"widgets.widgets.playtime.labelStyle.playtime": "Spielzeit: Zeit",
|
||||||
"widgets.widgets.playtime.labelStyle.played": "Zeit gespielt"
|
"widgets.widgets.playtime.labelStyle.played": "Zeit gespielt",
|
||||||
|
"widgets.widgets.memory": "Arbeitsspeicher",
|
||||||
|
"widgets.widgets.memory.description": "Zeigt die momentane Arbeitsspeicherauslastung des Spiels an.",
|
||||||
|
"widgets.widgets.memory.withLabel": "Arbeitsspeicher: %s",
|
||||||
|
"widgets.widgets.memory.showPercentage": "Prozentsatz anzeigen",
|
||||||
|
"widgets.widgets.memory.showLabel": "Beschriftung anzeigen"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,5 +65,10 @@
|
|||||||
"widgets.widgets.playtime.labelStyle": "Label Style",
|
"widgets.widgets.playtime.labelStyle": "Label Style",
|
||||||
"widgets.widgets.playtime.labelStyle.none": "No label",
|
"widgets.widgets.playtime.labelStyle.none": "No label",
|
||||||
"widgets.widgets.playtime.labelStyle.playtime": "Playtime: Time",
|
"widgets.widgets.playtime.labelStyle.playtime": "Playtime: Time",
|
||||||
"widgets.widgets.playtime.labelStyle.played": "Time played"
|
"widgets.widgets.playtime.labelStyle.played": "Time played",
|
||||||
|
"widgets.widgets.memory": "Memory usage",
|
||||||
|
"widgets.widgets.memory.description": "Shows the current memory usage of the game.",
|
||||||
|
"widgets.widgets.memory.withLabel": "Memory: %s",
|
||||||
|
"widgets.widgets.memory.showPercentage": "Show percentage",
|
||||||
|
"widgets.widgets.memory.showLabel": "Show label"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user