From 5639436197128fc235632ae4f93991b960f12c7d Mon Sep 17 00:00:00 2001 From: isXander Date: Tue, 30 May 2023 14:22:24 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=9D=20Re-add=20compatibility=20with=20?= =?UTF-8?q?YACL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/icon.png | Bin 0 -> 1630 bytes .../yacl/YACLScreenProcessor.java | 9 +++---- .../yacl/YACLScreenCategoryTabAccessor.java | 12 +++++++++ .../yacl/YACLScreenCategoryTabMixin.java | 24 ++++++++++++++++++ src/main/resources/controlify.mixins.json | 2 ++ 5 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 assets/icon.png create mode 100644 src/main/java/dev/isxander/controlify/mixins/compat/yacl/YACLScreenCategoryTabAccessor.java create mode 100644 src/main/java/dev/isxander/controlify/mixins/compat/yacl/YACLScreenCategoryTabMixin.java diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..171157c5c1916e7f77272b074aeb251e17ce9101 GIT binary patch literal 1630 zcmbtVZD`zN98bmiQY=y`LpE6-(g_<~k|(*BUP5En-F5bgSG)GcZbGNeCC}Z3Uh>2w zy_ZgKp0#B#2Su$i7<8b+FDoc^g0pCclvO%G{jd)r8-gFkWGYSuqTrKzW0R^l14*7F zzvuV=|9}6N92*^Zvb}9<8^bW|@uAoly?6TO1NYIZGaBBYw+HQ^LoUPc-Tv89dZ)j@ zFs(a`WXek=o>DYo@<=CX%$H1?q8X;IzhonA5_=$xvxcRzKc4@D1%|G&2SW*%u%kF< z3{5+De0n6QO;2jF&h|e6`br8VFtLX~$;?}>Qc~F}uR_=UYk>t-h&QRS1HM6!N{oUi zaWIg1$Y~IYpjYNKD8XP_+6^Qq1q3JwQ08D*k-~}?1oeZZ<{UkvjK%iVjnOBS&3T@! z2tu(~E{N9=-T8ZF%kk0_lf~o-vz+VgNCJ(qPy!hE*wK1R#|@&2SZ!{CPh(^A_|Q3 zKv99P22Bv%$dosO1|=mR-2tWLq$3agD_GZ*3~@|EwJ=PS#e!{RS&-HbpRcd-2B;Q@f;7MIRaWyej&-*F z+PG^4YP7{1rlkLn?i$P`8Lx;OJdmYo{hvw`Xk3Edy|oa9zeZpEc3Y=6;BvmVImaD1@az2hOFfr<*wpcjiKL&u<-{w`|v19!Y&2)Q`t2&fAOl(8Xtt%&K2* z-`6%Xym)jE^U4cy;8DA@?6zK9=zeVF(!D9Rbv?X%EwbfWS8_||{^VDyr>{6d^x;#5 zal4|vb@atK)G_zP^*7F~u650}d^|HSad~}f<;L`h_g?01s6T95VJ^RP;oBqPnK}Ot N5FZ?gE$w}-@+Z-t6Vw0z literal 0 HcmV?d00001 diff --git a/src/main/java/dev/isxander/controlify/compatibility/yacl/YACLScreenProcessor.java b/src/main/java/dev/isxander/controlify/compatibility/yacl/YACLScreenProcessor.java index e25c93c..cbe5cb8 100644 --- a/src/main/java/dev/isxander/controlify/compatibility/yacl/YACLScreenProcessor.java +++ b/src/main/java/dev/isxander/controlify/compatibility/yacl/YACLScreenProcessor.java @@ -1,9 +1,7 @@ package dev.isxander.controlify.compatibility.yacl; -import dev.isxander.controlify.api.buttonguide.ButtonGuideApi; -import dev.isxander.controlify.api.buttonguide.ButtonGuidePredicate; -import dev.isxander.controlify.api.buttonguide.ButtonRenderPosition; import dev.isxander.controlify.controller.Controller; +import dev.isxander.controlify.mixins.compat.yacl.YACLScreenCategoryTabAccessor; import dev.isxander.controlify.screenop.ScreenProcessor; import dev.isxander.yacl.gui.YACLScreen; @@ -15,9 +13,10 @@ public class YACLScreenProcessor extends ScreenProcessor { @Override protected void handleButtons(Controller controller) { if (controller.bindings().GUI_ABSTRACT_ACTION_1.justPressed()) { + if (screen.tabManager.getCurrentTab() instanceof YACLScreen.CategoryTab categoryTab) { + ((YACLScreenCategoryTabAccessor) categoryTab).getSaveFinishedButton().onPress(); + } playClackSound(); -// if (screen.tabManager.getCurrentTab() instanceof ) -// screen.finishedSaveButton.onPress(); } super.handleButtons(controller); diff --git a/src/main/java/dev/isxander/controlify/mixins/compat/yacl/YACLScreenCategoryTabAccessor.java b/src/main/java/dev/isxander/controlify/mixins/compat/yacl/YACLScreenCategoryTabAccessor.java new file mode 100644 index 0000000..367520f --- /dev/null +++ b/src/main/java/dev/isxander/controlify/mixins/compat/yacl/YACLScreenCategoryTabAccessor.java @@ -0,0 +1,12 @@ +package dev.isxander.controlify.mixins.compat.yacl; + +import dev.isxander.yacl.gui.YACLScreen; +import net.minecraft.client.gui.components.Button; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(YACLScreen.CategoryTab.class) +public interface YACLScreenCategoryTabAccessor { + @Accessor + Button getSaveFinishedButton(); +} diff --git a/src/main/java/dev/isxander/controlify/mixins/compat/yacl/YACLScreenCategoryTabMixin.java b/src/main/java/dev/isxander/controlify/mixins/compat/yacl/YACLScreenCategoryTabMixin.java new file mode 100644 index 0000000..442d5ed --- /dev/null +++ b/src/main/java/dev/isxander/controlify/mixins/compat/yacl/YACLScreenCategoryTabMixin.java @@ -0,0 +1,24 @@ +package dev.isxander.controlify.mixins.compat.yacl; + +import dev.isxander.controlify.api.buttonguide.ButtonGuideApi; +import dev.isxander.controlify.api.buttonguide.ButtonGuidePredicate; +import dev.isxander.controlify.api.buttonguide.ButtonRenderPosition; +import dev.isxander.yacl.api.ConfigCategory; +import dev.isxander.yacl.gui.YACLScreen; +import net.minecraft.client.gui.components.Button; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(YACLScreen.CategoryTab.class) +public class YACLScreenCategoryTabMixin { + @Shadow @Final private Button saveFinishedButton; + + @Inject(method = "", at = @At("RETURN")) + private void onConstructCategory(YACLScreen this$0, ConfigCategory category, CallbackInfo ci) { + ButtonGuideApi.addGuideToButton(saveFinishedButton, bindings -> bindings.GUI_ABSTRACT_ACTION_1, ButtonRenderPosition.TEXT, ButtonGuidePredicate.ALWAYS); + } +} diff --git a/src/main/resources/controlify.mixins.json b/src/main/resources/controlify.mixins.json index 20836c1..55c00f5 100644 --- a/src/main/resources/controlify.mixins.json +++ b/src/main/resources/controlify.mixins.json @@ -24,6 +24,8 @@ "compat.sodium.SodiumOptionsGUIMixin", "compat.yacl.CyclingControllerElementMixin", "compat.yacl.SliderControllerElementMixin", + "compat.yacl.YACLScreenCategoryTabAccessor", + "compat.yacl.YACLScreenCategoryTabMixin", "compat.yacl.YACLScreenMixin", "core.ClientPacketListenerMixin", "core.GuiMixin",