1
0
forked from Clones/Controlify

✏️ Minor refactoring of mixins

This commit is contained in:
isXander
2023-05-17 18:18:53 +01:00
parent 85a6518ed1
commit 6406b3e818
6 changed files with 18 additions and 15 deletions

View File

@ -1,8 +1,8 @@
package dev.isxander.controlify.mixins.feature.accessibility; package dev.isxander.controlify.mixins.feature.accessibility;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import dev.isxander.controlify.Controlify;
import dev.isxander.controlify.InputMode; import dev.isxander.controlify.InputMode;
import dev.isxander.controlify.api.ControlifyApi;
import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.player.LocalPlayer;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
@ -11,8 +11,10 @@ import org.spongepowered.asm.mixin.injection.At;
public class LocalPlayerMixin { public class LocalPlayerMixin {
@ModifyExpressionValue(method = "sendPosition", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/OptionInstance;get()Ljava/lang/Object;")) @ModifyExpressionValue(method = "sendPosition", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/OptionInstance;get()Ljava/lang/Object;"))
private Object shouldUseAutoJump(Object keyboardAutoJump) { private Object shouldUseAutoJump(Object keyboardAutoJump) {
if (Controlify.instance().currentInputMode() == InputMode.CONTROLLER) { if (ControlifyApi.get().currentInputMode() == InputMode.CONTROLLER) {
return Controlify.instance().currentController().config().autoJump; return ControlifyApi.get().getCurrentController()
.map(controller -> controller.config().autoJump)
.orElse(false);
} }
return keyboardAutoJump; return keyboardAutoJump;
} }

View File

@ -1,7 +1,7 @@
package dev.isxander.controlify.mixins.feature.chatkbheight; package dev.isxander.controlify.mixins.feature.chatkbheight;
import dev.isxander.controlify.Controlify; 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.GuiGraphics;
import net.minecraft.client.gui.screens.ChatScreen; import net.minecraft.client.gui.screens.ChatScreen;
import net.minecraft.client.gui.screens.Screen; 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) { private void translateRender(GuiGraphics graphics, int mouseX, int mouseY, float delta, CallbackInfo ci) {
graphics.pose().pushPose(); graphics.pose().pushPose();
Controller<?, ?> controller = Controlify.instance().currentController(); Controlify.instance().getCurrentController().ifPresent(c -> {
graphics.pose().translate(0, -controller.config().chatKeyboardHeight * this.height, 0); graphics.pose().translate(0, -c.config().chatKeyboardHeight * this.height, 0);
});
} }
@Inject(method = "render", at = @At("TAIL")) @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) @ModifyVariable(method = "mouseClicked", at = @At("HEAD"), ordinal = 1, argsOnly = true)
private double modifyClickY(double original) { private double modifyClickY(double original) {
Controller<?, ?> controller = Controlify.instance().currentController(); float yOffset = ControlifyApi.get().getCurrentController().map(c -> c.config().chatKeyboardHeight * this.height).orElse(0f);
return original + controller.config().chatKeyboardHeight * this.height; return original + yOffset;
} }
} }

View File

@ -31,6 +31,6 @@ public class ClientPacketListenerMixin {
private void initButtonGuide() { private void initButtonGuide() {
if (Controlify.instance().currentInputMode() == InputMode.CONTROLLER && minecraft.player != null) 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);
} }
} }

View File

@ -1,6 +1,5 @@
package dev.isxander.controlify.mixins.feature.guide.ingame; package dev.isxander.controlify.mixins.feature.guide.ingame;
import com.mojang.blaze3d.vertex.PoseStack;
import dev.isxander.controlify.Controlify; import dev.isxander.controlify.Controlify;
import dev.isxander.controlify.gui.guide.InGameButtonGuide; import dev.isxander.controlify.gui.guide.InGameButtonGuide;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;

View File

@ -67,7 +67,7 @@ public abstract class AbstractButtonMixin extends AbstractWidgetMixin implements
return renderData != null return renderData != null
&& this.isActive() && this.isActive()
&& Controlify.instance().currentInputMode() == InputMode.CONTROLLER && 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.binding().apply(Controlify.instance().currentController().bindings()).isUnbound()
&& renderData.renderPredicate().shouldDisplay((AbstractButton) (Object) this); && renderData.renderPredicate().shouldDisplay((AbstractButton) (Object) this);
} }

View File

@ -26,10 +26,11 @@ public class TabNavigationBarMixin {
@Inject(method = "render", at = @At("RETURN")) @Inject(method = "render", at = @At("RETURN"))
private void renderControllerButtonOverlay(GuiGraphics graphics, int mouseX, int mouseY, float delta, CallbackInfo ci) { private void renderControllerButtonOverlay(GuiGraphics graphics, int mouseX, int mouseY, float delta, CallbackInfo ci) {
if (Controlify.instance().currentInputMode() == InputMode.CONTROLLER) { if (Controlify.instance().currentInputMode() == InputMode.CONTROLLER) {
var controller = Controlify.instance().currentController(); Controlify.instance().getCurrentController().ifPresent(c -> {
if (controller.config().showScreenGuide) { if (c.config().showScreenGuide) {
this.renderControllerButtonOverlay(graphics, controller); this.renderControllerButtonOverlay(graphics, c);
} }
});
} }
} }