From 6406b3e818250c4b5e3ad8fa2cc832df8a9b0f58 Mon Sep 17 00:00:00 2001 From: isXander Date: Wed, 17 May 2023 18:18:53 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20Minor=20refactoring=20of?= =?UTF-8?q?=20mixins?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/accessibility/LocalPlayerMixin.java | 8 +++++--- .../mixins/feature/chatkbheight/ChatScreenMixin.java | 11 ++++++----- .../guide/ingame/ClientPacketListenerMixin.java | 2 +- .../mixins/feature/guide/ingame/GuiMixin.java | 1 - .../feature/guide/screen/AbstractButtonMixin.java | 2 +- .../feature/guide/screen/TabNavigationBarMixin.java | 9 +++++---- 6 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/main/java/dev/isxander/controlify/mixins/feature/accessibility/LocalPlayerMixin.java b/src/main/java/dev/isxander/controlify/mixins/feature/accessibility/LocalPlayerMixin.java index a1a8a24..ca4f0d8 100644 --- a/src/main/java/dev/isxander/controlify/mixins/feature/accessibility/LocalPlayerMixin.java +++ b/src/main/java/dev/isxander/controlify/mixins/feature/accessibility/LocalPlayerMixin.java @@ -1,8 +1,8 @@ package dev.isxander.controlify.mixins.feature.accessibility; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import dev.isxander.controlify.Controlify; import dev.isxander.controlify.InputMode; +import dev.isxander.controlify.api.ControlifyApi; import net.minecraft.client.player.LocalPlayer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -11,8 +11,10 @@ import org.spongepowered.asm.mixin.injection.At; public class LocalPlayerMixin { @ModifyExpressionValue(method = "sendPosition", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/OptionInstance;get()Ljava/lang/Object;")) private Object shouldUseAutoJump(Object keyboardAutoJump) { - if (Controlify.instance().currentInputMode() == InputMode.CONTROLLER) { - return Controlify.instance().currentController().config().autoJump; + if (ControlifyApi.get().currentInputMode() == InputMode.CONTROLLER) { + return ControlifyApi.get().getCurrentController() + .map(controller -> controller.config().autoJump) + .orElse(false); } return keyboardAutoJump; } diff --git a/src/main/java/dev/isxander/controlify/mixins/feature/chatkbheight/ChatScreenMixin.java b/src/main/java/dev/isxander/controlify/mixins/feature/chatkbheight/ChatScreenMixin.java index 2268ed9..0324808 100644 --- a/src/main/java/dev/isxander/controlify/mixins/feature/chatkbheight/ChatScreenMixin.java +++ b/src/main/java/dev/isxander/controlify/mixins/feature/chatkbheight/ChatScreenMixin.java @@ -1,7 +1,7 @@ package dev.isxander.controlify.mixins.feature.chatkbheight; import dev.isxander.controlify.Controlify; -import dev.isxander.controlify.controller.Controller; +import dev.isxander.controlify.api.ControlifyApi; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.ChatScreen; import net.minecraft.client.gui.screens.Screen; @@ -22,8 +22,9 @@ public abstract class ChatScreenMixin extends Screen { private void translateRender(GuiGraphics graphics, int mouseX, int mouseY, float delta, CallbackInfo ci) { graphics.pose().pushPose(); - Controller controller = Controlify.instance().currentController(); - graphics.pose().translate(0, -controller.config().chatKeyboardHeight * this.height, 0); + Controlify.instance().getCurrentController().ifPresent(c -> { + graphics.pose().translate(0, -c.config().chatKeyboardHeight * this.height, 0); + }); } @Inject(method = "render", at = @At("TAIL")) @@ -33,7 +34,7 @@ public abstract class ChatScreenMixin extends Screen { @ModifyVariable(method = "mouseClicked", at = @At("HEAD"), ordinal = 1, argsOnly = true) private double modifyClickY(double original) { - Controller controller = Controlify.instance().currentController(); - return original + controller.config().chatKeyboardHeight * this.height; + float yOffset = ControlifyApi.get().getCurrentController().map(c -> c.config().chatKeyboardHeight * this.height).orElse(0f); + return original + yOffset; } } diff --git a/src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/ClientPacketListenerMixin.java b/src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/ClientPacketListenerMixin.java index 274bb48..c9848fa 100644 --- a/src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/ClientPacketListenerMixin.java +++ b/src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/ClientPacketListenerMixin.java @@ -31,6 +31,6 @@ public class ClientPacketListenerMixin { private void initButtonGuide() { if (Controlify.instance().currentInputMode() == InputMode.CONTROLLER && minecraft.player != null) - Controlify.instance().inGameButtonGuide = new InGameButtonGuide(Controlify.instance().currentController(), minecraft.player); + Controlify.instance().inGameButtonGuide = new InGameButtonGuide(Controlify.instance().getCurrentController().orElseThrow(), minecraft.player); } } diff --git a/src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/GuiMixin.java b/src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/GuiMixin.java index d1faf8b..5eed7d5 100644 --- a/src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/GuiMixin.java +++ b/src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/GuiMixin.java @@ -1,6 +1,5 @@ package dev.isxander.controlify.mixins.feature.guide.ingame; -import com.mojang.blaze3d.vertex.PoseStack; import dev.isxander.controlify.Controlify; import dev.isxander.controlify.gui.guide.InGameButtonGuide; import net.minecraft.client.Minecraft; diff --git a/src/main/java/dev/isxander/controlify/mixins/feature/guide/screen/AbstractButtonMixin.java b/src/main/java/dev/isxander/controlify/mixins/feature/guide/screen/AbstractButtonMixin.java index ba7f42e..94f99fa 100644 --- a/src/main/java/dev/isxander/controlify/mixins/feature/guide/screen/AbstractButtonMixin.java +++ b/src/main/java/dev/isxander/controlify/mixins/feature/guide/screen/AbstractButtonMixin.java @@ -67,7 +67,7 @@ public abstract class AbstractButtonMixin extends AbstractWidgetMixin implements return renderData != null && this.isActive() && Controlify.instance().currentInputMode() == InputMode.CONTROLLER - && Controlify.instance().currentController().config().showScreenGuide + && Controlify.instance().getCurrentController().map(c -> c.config().showScreenGuide).orElse(false) && !renderData.binding().apply(Controlify.instance().currentController().bindings()).isUnbound() && renderData.renderPredicate().shouldDisplay((AbstractButton) (Object) this); } diff --git a/src/main/java/dev/isxander/controlify/mixins/feature/guide/screen/TabNavigationBarMixin.java b/src/main/java/dev/isxander/controlify/mixins/feature/guide/screen/TabNavigationBarMixin.java index c3d0533..8046fa5 100644 --- a/src/main/java/dev/isxander/controlify/mixins/feature/guide/screen/TabNavigationBarMixin.java +++ b/src/main/java/dev/isxander/controlify/mixins/feature/guide/screen/TabNavigationBarMixin.java @@ -26,10 +26,11 @@ public class TabNavigationBarMixin { @Inject(method = "render", at = @At("RETURN")) private void renderControllerButtonOverlay(GuiGraphics graphics, int mouseX, int mouseY, float delta, CallbackInfo ci) { if (Controlify.instance().currentInputMode() == InputMode.CONTROLLER) { - var controller = Controlify.instance().currentController(); - if (controller.config().showScreenGuide) { - this.renderControllerButtonOverlay(graphics, controller); - } + Controlify.instance().getCurrentController().ifPresent(c -> { + if (c.config().showScreenGuide) { + this.renderControllerButtonOverlay(graphics, c); + } + }); } }