diff --git a/common/src/main/java/eu/midnightdust/core/mixin/MixinOptionsScreen.java b/common/src/main/java/eu/midnightdust/core/mixin/MixinOptionsScreen.java index 1e37bf1..90eedf3 100644 --- a/common/src/main/java/eu/midnightdust/core/mixin/MixinOptionsScreen.java +++ b/common/src/main/java/eu/midnightdust/core/mixin/MixinOptionsScreen.java @@ -3,12 +3,17 @@ package eu.midnightdust.core.mixin; import eu.midnightdust.core.config.MidnightLibConfig; import eu.midnightdust.core.screen.MidnightConfigOverviewScreen; import eu.midnightdust.lib.util.PlatformFunctions; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.option.OptionsScreen; import net.minecraft.client.gui.widget.TextIconButtonWidget; +import net.minecraft.client.gui.widget.ThreePartsLayoutWidget; import net.minecraft.text.Text; import net.minecraft.util.Identifier; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -17,17 +22,27 @@ import java.util.Objects; @Mixin(OptionsScreen.class) public class MixinOptionsScreen extends Screen { - protected MixinOptionsScreen(Text title) {super(title);} + @Shadow @Final private ThreePartsLayoutWidget layout; + @Unique TextIconButtonWidget button = TextIconButtonWidget.builder(Text.translatable("midnightlib.overview.title"), ( + buttonWidget) -> Objects.requireNonNull(client).setScreen(new MidnightConfigOverviewScreen(this)), true) + .texture(new Identifier("midnightlib","icon/midnightlib"), 16, 16).dimension(20, 20).build(); - @Inject(at = @At("HEAD"),method = "init") - private void midnightlib$init(CallbackInfo ci) { + protected MixinOptionsScreen(Text title) {super(title);} + @Inject(at = @At("HEAD"), method = "init") + public void midnightlib$onInit(CallbackInfo ci) { + this.midnightlib$setupButton(); + this.addDrawableChild(button); + } + + @Override + public void resize(MinecraftClient client, int width, int height) { + super.resize(client, width, height); + this.midnightlib$setupButton(); + } + @Unique + public void midnightlib$setupButton() { if (MidnightLibConfig.config_screen_list.equals(MidnightLibConfig.ConfigButton.TRUE) || (MidnightLibConfig.config_screen_list.equals(MidnightLibConfig.ConfigButton.MODMENU) && !PlatformFunctions.isModLoaded("modmenu"))) { - TextIconButtonWidget button = TextIconButtonWidget.builder(Text.translatable("midnightlib.overview.title"), ( - buttonWidget) -> Objects.requireNonNull(client).setScreen(new MidnightConfigOverviewScreen(this)), true) - .texture(new Identifier("midnightlib","icon/midnightlib"), 16, 16).dimension(20, 20).build(); - //button.setPosition(this.width / 2 + 158, this.height / 6 - 17); - button.setPosition(this.width / 2 + 158, this.height / 2 - 105); - this.addDrawableChild(button); + button.setPosition(layout.getWidth() / 2 + 158, layout.getY() + layout.getFooterHeight() - 4); } } } \ No newline at end of file diff --git a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java index 68392bb..3ff5d76 100755 --- a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java +++ b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java @@ -19,7 +19,6 @@ import net.minecraft.client.gui.tab.Tab; import net.minecraft.client.gui.tab.TabManager; import net.minecraft.client.gui.tooltip.Tooltip; import net.minecraft.client.gui.widget.*; -import net.minecraft.client.render.RenderLayer; import net.minecraft.client.resource.language.I18n; import net.minecraft.screen.ScreenTexts; import net.minecraft.text.OrderedText; @@ -393,7 +392,7 @@ public abstract class MidnightConfig { super(client, width, height, y, itemHeight); } @Override - public int getScrollbarPositionX() { return this.width -7; } + public int getScrollbarX() { return this.width -7; } public void addButton(List buttons, Text text, EntryInfo info) { this.addEntry(new ButtonEntry(buttons, text, info)); diff --git a/gradle.properties b/gradle.properties index 0bd450e..020a147 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,15 +1,15 @@ org.gradle.jvmargs=-Xmx4096M -minecraft_version=24w09a -yarn_mappings=24w09a+build.11 +minecraft_version=24w13a +yarn_mappings=24w13a+build.5 enabled_platforms=fabric archives_base_name=midnightlib -mod_version=1.5.3 +mod_version=1.5.4 maven_group=eu.midnightdust -fabric_loader_version=0.15.7 -fabric_api_version=0.96.7+1.20.5 +fabric_loader_version=0.15.9 +fabric_api_version=0.96.13+1.20.5 neoforge_version=20.4.12-beta