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;
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;
}

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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);
}

View File

@ -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);
}
});
}
}