From be2badeee39aaf281012e325129cb7f4f5acba12 Mon Sep 17 00:00:00 2001 From: Patrick <147879351+WinniePatGG@users.noreply.github.com> Date: Sat, 20 Jun 2026 22:10:10 +0200 Subject: [PATCH] New Info stuff --- .../de/winniepat/parrotmod/Parrotmod.java | 2 + .../parrotmod/ui/GeneralTabFragment.java | 43 ++----------- .../parrotmod/ui/InfoTabFragment.java | 61 +++++++++++++++++++ .../de/winniepat/parrotmod/ui/MyConfig.java | 7 --- .../parrotmod/ui/SettingsFragment.java | 3 +- 5 files changed, 70 insertions(+), 46 deletions(-) create mode 100644 src/main/java/de/winniepat/parrotmod/ui/InfoTabFragment.java delete mode 100644 src/main/java/de/winniepat/parrotmod/ui/MyConfig.java diff --git a/src/main/java/de/winniepat/parrotmod/Parrotmod.java b/src/main/java/de/winniepat/parrotmod/Parrotmod.java index 23a6291..67b2a67 100644 --- a/src/main/java/de/winniepat/parrotmod/Parrotmod.java +++ b/src/main/java/de/winniepat/parrotmod/Parrotmod.java @@ -4,6 +4,8 @@ import net.fabricmc.api.ModInitializer; public class Parrotmod implements ModInitializer { + public static String BUILD = "1"; + @Override public void onInitialize() { diff --git a/src/main/java/de/winniepat/parrotmod/ui/GeneralTabFragment.java b/src/main/java/de/winniepat/parrotmod/ui/GeneralTabFragment.java index 7ebd746..822d579 100644 --- a/src/main/java/de/winniepat/parrotmod/ui/GeneralTabFragment.java +++ b/src/main/java/de/winniepat/parrotmod/ui/GeneralTabFragment.java @@ -1,48 +1,21 @@ package de.winniepat.parrotmod.ui; +import de.winniepat.parrotmod.Parrotmod; import icyllis.modernui.fragment.Fragment; import icyllis.modernui.util.DataSet; import icyllis.modernui.view.*; import icyllis.modernui.widget.*; +import net.minecraft.client.Minecraft; public class GeneralTabFragment extends Fragment { @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, DataSet savedInstanceState) { + public View onCreateView(LayoutInflater inflater, ViewGroup container, DataSet savedInstanceData) { LinearLayout layout = new LinearLayout(getContext()); layout.setOrientation(LinearLayout.VERTICAL); layout.setPadding(dp(12), dp(12), dp(12), dp(12)); - // --- A toggle/switch setting --- - layout.addView(makeLabel("Enable feature X")); - Switch toggleX = new Switch(getContext()); - toggleX.setChecked(true); // load from your config - toggleX.setOnCheckedChangeListener((v, checked) -> { - // save to config - MyConfig.enableFeatureX = checked; - }); - layout.addView(toggleX, rowParams()); - - // --- Another toggle --- - layout.addView(makeLabel("Show HUD overlay")); - Switch toggleHUD = new Switch(getContext()); - toggleHUD.setChecked(MyConfig.showHud); - toggleHUD.setOnCheckedChangeListener((v, checked) -> MyConfig.showHud = checked); - layout.addView(toggleHUD, rowParams()); - - // --- A slider --- - layout.addView(makeLabel("Opacity")); - SeekBar slider = new SeekBar(getContext()); - slider.setMax(100); - slider.setProgress((int)(MyConfig.opacity * 100)); - slider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { - public void onProgressChanged(SeekBar bar, int progress, boolean fromUser) { - if (fromUser) MyConfig.opacity = progress / 100f; - } - public void onStartTrackingTouch(SeekBar bar) {} - public void onStopTrackingTouch(SeekBar bar) {} - }); - layout.addView(slider, rowParams()); + layout.addView(makeLabel("Minecraft Version: " + Minecraft.getInstance().getLaunchedVersion())); return layout; } @@ -52,19 +25,13 @@ public class GeneralTabFragment extends Fragment { tv.setText(text); tv.setTextSize(12); tv.setTextColor(0xFFCCCCCC); - var p = new LinearLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + var p = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); p.topMargin = dp(8); p.bottomMargin = dp(2); tv.setLayoutParams(p); return tv; } - private LinearLayout.LayoutParams rowParams() { - return new LinearLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, dp(28)); - } - private int dp(float dp) { return (int) (dp * getContext().getResources().getDisplayMetrics().density); } diff --git a/src/main/java/de/winniepat/parrotmod/ui/InfoTabFragment.java b/src/main/java/de/winniepat/parrotmod/ui/InfoTabFragment.java new file mode 100644 index 0000000..efd1b84 --- /dev/null +++ b/src/main/java/de/winniepat/parrotmod/ui/InfoTabFragment.java @@ -0,0 +1,61 @@ +package de.winniepat.parrotmod.ui; + +import de.winniepat.parrotmod.Parrotmod; +import icyllis.modernui.fragment.Fragment; +import icyllis.modernui.util.DataSet; +import icyllis.modernui.view.LayoutInflater; +import icyllis.modernui.view.View; +import icyllis.modernui.view.ViewGroup; +import icyllis.modernui.widget.LinearLayout; +import icyllis.modernui.widget.TextView; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.Minecraft; + +public class InfoTabFragment extends Fragment { + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, DataSet savedInstanceData) { + LinearLayout layout = new LinearLayout(getContext()); + layout.setOrientation(LinearLayout.VERTICAL); + layout.setPadding(dp(12), dp(12), dp(12), dp(12)); + + String parrotVersion = FabricLoader.getInstance().getModContainer("parrotmod").orElseThrow().getMetadata().getVersion().getFriendlyString(); + layout.addView(makeLabel("Parrotmod version: " + parrotVersion + " (Build " + Parrotmod.BUILD + ")")); + + String mcVersion = FabricLoader.getInstance().getModContainer("minecraft").orElseThrow().getMetadata().getVersion().getFriendlyString(); + layout.addView(makeLabel("Minecraft Version: " + Minecraft.getInstance().getLaunchedVersion() + " (" + mcVersion + ")")); + + String loaderVersion = FabricLoader.getInstance().getModContainer("fabricloader").orElseThrow().getMetadata().getVersion().getFriendlyString(); + layout.addView(makeLabel("Fabric Loader Version: " + loaderVersion)); + + int modCount = FabricLoader.getInstance().getAllMods().size(); + layout.addView(makeLabel("Loaded Mods: " + modCount)); + + layout.addView(makeLabel("Java Version: " + System.getProperty("java.version") + " (" + System.getProperty("os.arch") + ")")); + layout.addView(makeLabel("OS: " + System.getProperty("os.name") + " (" + System.getProperty("os.version") + ")")); + + long maxMemory = Runtime.getRuntime().maxMemory(); + long totalMemory = Runtime.getRuntime().totalMemory(); + long freeMemory = Runtime.getRuntime().freeMemory(); + long usedMemory = totalMemory - freeMemory; + layout.addView(makeLabel(String.format("Memory: %dMB / %dMB", usedMemory / 1024 / 1024, maxMemory / 1024 / 1024))); + + return layout; + } + + private TextView makeLabel(String text) { + TextView tv = new TextView(getContext()); + tv.setText(text); + tv.setTextSize(12); + tv.setTextColor(0xFFCCCCCC); + var p = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + p.topMargin = dp(8); + p.bottomMargin = dp(2); + tv.setLayoutParams(p); + return tv; + } + + private int dp(float dp) { + return (int) (dp * getContext().getResources().getDisplayMetrics().density); + } +} diff --git a/src/main/java/de/winniepat/parrotmod/ui/MyConfig.java b/src/main/java/de/winniepat/parrotmod/ui/MyConfig.java deleted file mode 100644 index a8eefdd..0000000 --- a/src/main/java/de/winniepat/parrotmod/ui/MyConfig.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.winniepat.parrotmod.ui; - -public class MyConfig { - public static boolean enableFeatureX = true; - public static boolean showHud = true; - public static float opacity = 0.5f; -} diff --git a/src/main/java/de/winniepat/parrotmod/ui/SettingsFragment.java b/src/main/java/de/winniepat/parrotmod/ui/SettingsFragment.java index 8918079..545a7c9 100644 --- a/src/main/java/de/winniepat/parrotmod/ui/SettingsFragment.java +++ b/src/main/java/de/winniepat/parrotmod/ui/SettingsFragment.java @@ -37,8 +37,9 @@ public class SettingsFragment extends Fragment { contentParams.leftMargin = dp(6); root.addView(contentArea, contentParams); - String[] tabNames = {"General", "Graphics", "Audio", "Keybinds"}; + String[] tabNames = {"Info", "General"}; Fragment[] tabFragments = { + new InfoTabFragment(), new GeneralTabFragment() };