forked from Clones/Controlify
✏️ Minor refactoring of mixins
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user