From e909f4b89d2fd4e66f3c562cb6142b2b04c37629 Mon Sep 17 00:00:00 2001 From: Patrick <147879351+WinniePatGG@users.noreply.github.com> Date: Sun, 14 Jun 2026 00:55:44 +0200 Subject: [PATCH] idk --- build.gradle | 3 ++ gradle.properties | 2 +- .../parrotmod/mixin/TitleScreenMixin.java | 30 ++++++++++++++++ .../parrotmod/ui/SettingsScreen.java | 35 +++++++++++++++++++ src/main/resources/fabric.mod.json | 4 ++- src/main/resources/parrotmod.mixins.json | 1 + 6 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 src/main/java/de/winniepat/parrotmod/mixin/TitleScreenMixin.java create mode 100644 src/main/java/de/winniepat/parrotmod/ui/SettingsScreen.java diff --git a/build.gradle b/build.gradle index 47c283b..f0cc49d 100644 --- a/build.gradle +++ b/build.gradle @@ -15,6 +15,7 @@ repositories { maven { url 'https://maven.wispforest.io/releases/' } maven { url 'https://jitpack.io' } maven { url = "https://cursemaven.com" } + maven { url 'https://maven.izzel.io/releases/' } } dependencies { @@ -24,6 +25,8 @@ dependencies { implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" implementation "curse.maven:modern-ui-352491:8206272" + implementation "icyllis.modernui:ModernUI-Fabric:26.1.2-3.13.0.4" + implementation "icyllis.arc3d:arc3d-core:2026.1.0" } processResources { diff --git a/gradle.properties b/gradle.properties index 441b974..217cde9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ org.gradle.jvmargs=-Xmx1G # check these on https://modmuss50.me/fabric.html minecraft_version=26.1.2 # Official mappings are used for 26.1.2 -loader_version=0.18.4 +loader_version=0.19.3 # Mod Properties mod_version=1.0 maven_group=de.winniepat diff --git a/src/main/java/de/winniepat/parrotmod/mixin/TitleScreenMixin.java b/src/main/java/de/winniepat/parrotmod/mixin/TitleScreenMixin.java new file mode 100644 index 0000000..8653cb9 --- /dev/null +++ b/src/main/java/de/winniepat/parrotmod/mixin/TitleScreenMixin.java @@ -0,0 +1,30 @@ +package de.winniepat.parrotmod.mixin; + +import de.winniepat.parrotmod.ui.SettingsScreen; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.components.Button; // Updated import +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.TitleScreen; +import net.minecraft.network.chat.Component; // Replaces Text +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(TitleScreen.class) +public class TitleScreenMixin extends Screen { + + protected TitleScreenMixin(Component title) { + super(title); + } + + @Inject(at = @At("RETURN"), method = "init") + private void addCustomButton(CallbackInfo ci) { + int x = this.width / 2 - 100; + int y = this.height / 4 + 120; + + this.addRenderableWidget(Button.builder(Component.literal("Parrot Mod"), (button) -> { + Minecraft.getInstance().setScreen(new SettingsScreen(Component.literal("Settings"))); + }).bounds(x, y, 200, 20).build()); + } +} \ No newline at end of file diff --git a/src/main/java/de/winniepat/parrotmod/ui/SettingsScreen.java b/src/main/java/de/winniepat/parrotmod/ui/SettingsScreen.java new file mode 100644 index 0000000..81bc147 --- /dev/null +++ b/src/main/java/de/winniepat/parrotmod/ui/SettingsScreen.java @@ -0,0 +1,35 @@ +package de.winniepat.parrotmod.ui; + +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.Renderable; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; + +public class SettingsScreen extends Screen { + private int tabWidth = 100; + private int currentTab = 0; + + public SettingsScreen(Component title) { + super(title); + } + + @Override + protected void init() { + this.addRenderableWidget(Button.builder(Component.literal("General"), (b) -> { + this.currentTab = 0; + this.rebuildWidgets();; + }).bounds(10, 65, tabWidth, 20).build()); + + this.addRenderableWidget(Button.builder(Component.literal("Graphics"), (b) -> { + this.currentTab = 1; + this.rebuildWidgets(); + }).bounds(10, 65, tabWidth, 20).build()); + + if (currentTab == 0) { + this.addRenderableWidget(Button.builder(Component.literal("Enable Mod"), (b) -> { + System.out.println("Enable Mod clicked"); + }).bounds(tabWidth + 30, 40, 150, 20).build()); + } + } + +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index a37171d..bff3c70 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -20,6 +20,8 @@ "depends": { "fabricloader": ">=${loader_version}", "fabric-api": "*", - "minecraft": "${minecraft_version}" + "minecraft": "${minecraft_version}", + "modernui": "3.13.0.4", + "forgeconfigapiport": ">=26.1.0" } } diff --git a/src/main/resources/parrotmod.mixins.json b/src/main/resources/parrotmod.mixins.json index 5f0515e..9a394c8 100644 --- a/src/main/resources/parrotmod.mixins.json +++ b/src/main/resources/parrotmod.mixins.json @@ -4,6 +4,7 @@ "package": "de.winniepat.parrotmod.mixin", "compatibilityLevel": "JAVA_25", "mixins": [ + "TitleScreenMixin" ], "injectors": { "defaultRequire": 1