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