From 9740cf9d762aae2b2e69708a13ebea12cd9fe64f Mon Sep 17 00:00:00 2001 From: "Jeffrey M." Date: Sat, 23 May 2026 15:10:32 -0400 Subject: [PATCH] feat: create access interface for GuiCreateWorldMixin --- .../api/IGuiCreateWorld.java | 12 +++++++++++ .../mixin/client/gui/GuiCreateWorldMixin.java | 20 ++++++++++++++++++- src/main/resources/fml.mod.json | 3 ++- 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/main/java/moddedmite/xylose/bettergamesetting/api/IGuiCreateWorld.java diff --git a/src/main/java/moddedmite/xylose/bettergamesetting/api/IGuiCreateWorld.java b/src/main/java/moddedmite/xylose/bettergamesetting/api/IGuiCreateWorld.java new file mode 100644 index 0000000..feb8a72 --- /dev/null +++ b/src/main/java/moddedmite/xylose/bettergamesetting/api/IGuiCreateWorld.java @@ -0,0 +1,12 @@ +package moddedmite.xylose.bettergamesetting.api; + +import net.minecraft.GuiButton; + +import java.util.List; +import java.util.Map; + +public interface IGuiCreateWorld { + Map bgs$getHoverTexts(); + int bgs$getCurrentTab(); + List bgs$getTabButtons(); +} diff --git a/src/main/java/moddedmite/xylose/bettergamesetting/mixin/client/gui/GuiCreateWorldMixin.java b/src/main/java/moddedmite/xylose/bettergamesetting/mixin/client/gui/GuiCreateWorldMixin.java index 3871dcb..a6610bd 100644 --- a/src/main/java/moddedmite/xylose/bettergamesetting/mixin/client/gui/GuiCreateWorldMixin.java +++ b/src/main/java/moddedmite/xylose/bettergamesetting/mixin/client/gui/GuiCreateWorldMixin.java @@ -1,5 +1,6 @@ package moddedmite.xylose.bettergamesetting.mixin.client.gui; +import moddedmite.xylose.bettergamesetting.api.IGuiCreateWorld; import moddedmite.xylose.bettergamesetting.client.gui.button.GuiTabButton; import moddedmite.xylose.bettergamesetting.client.gui.gamerule.GuiGameRules; import moddedmite.xylose.bettergamesetting.util.ScreenUtil; @@ -15,7 +16,7 @@ @SuppressWarnings("unchecked") @Mixin(GuiCreateWorld.class) -public abstract class GuiCreateWorldMixin extends GuiScreen { +public abstract class GuiCreateWorldMixin extends GuiScreen implements IGuiCreateWorld { @Shadow private GuiScreen parentGuiScreen; @Shadow private boolean isHardcore; @@ -474,4 +475,21 @@ private void drawColoredLine(int y, int width, int topColor, int bottomColor) { drawRect(0, y, width, y + 1, topColor); drawRect(0, y + 1, width, y + 2, bottomColor); } + + // Accessor interface + + @Override + public Map bgs$getHoverTexts() { + return this.hoverTexts; + } + + @Override + public int bgs$getCurrentTab() { + return this.currentTab; + } + + @Override + public List bgs$getTabButtons() { + return this.tabButtons; + } } diff --git a/src/main/resources/fml.mod.json b/src/main/resources/fml.mod.json index 03e9982..b78e7c3 100644 --- a/src/main/resources/fml.mod.json +++ b/src/main/resources/fml.mod.json @@ -53,7 +53,8 @@ "net/minecraft/EnumOptions": ["moddedmite/xylose/bettergamesetting/api/IEnumOptions"], "net/minecraft/KeyBinding": ["moddedmite/xylose/bettergamesetting/api/IKeyBinding", "java/lang/Comparable"], "net/minecraft/GuiButton": ["moddedmite/xylose/bettergamesetting/api/IButton"], - "net/minecraft/GuiTextField": ["moddedmite/xylose/bettergamesetting/api/ITextField"] + "net/minecraft/GuiTextField": ["moddedmite/xylose/bettergamesetting/api/ITextField"], + "net/minecraft/GuiCreateWorld": ["moddedmite/xylose/bettergamesetting/api/IGuiCreateWorld"] }, "modmenu:clientsideOnly": true }