1
0
forked from Clones/Controlify

🐛 Fix issues with 'out of focus input' option (close #58)

This commit is contained in:
isXander
2023-05-05 17:40:16 +01:00
parent 3969d9312e
commit 740ae1c77a
3 changed files with 19 additions and 1 deletions

View File

@ -1,5 +1,6 @@
package dev.isxander.controlify.ingame; package dev.isxander.controlify.ingame;
import dev.isxander.controlify.Controlify;
import dev.isxander.controlify.InputMode; import dev.isxander.controlify.InputMode;
import dev.isxander.controlify.api.ingameinput.LookInputModifier; import dev.isxander.controlify.api.ingameinput.LookInputModifier;
import dev.isxander.controlify.controller.Controller; import dev.isxander.controlify.controller.Controller;
@ -116,7 +117,7 @@ public class InGameInputHandler {
impulseX = lookInputModifier.modifyX(impulseX, controller); impulseX = lookInputModifier.modifyX(impulseX, controller);
impulseY = lookInputModifier.modifyY(impulseY, controller); impulseY = lookInputModifier.modifyY(impulseY, controller);
if (minecraft.mouseHandler.isMouseGrabbed() && minecraft.isWindowActive() && player != null) { if (minecraft.mouseHandler.isMouseGrabbed() && (minecraft.isWindowActive() || Controlify.instance().config().globalSettings().outOfFocusInput) && player != null) {
lookInputX = impulseX * controller.config().horizontalLookSensitivity * 65f; lookInputX = impulseX * controller.config().horizontalLookSensitivity * 65f;
lookInputY = impulseY * controller.config().verticalLookSensitivity * 65f; lookInputY = impulseY * controller.config().verticalLookSensitivity * 65f;
} else { } else {

View File

@ -0,0 +1,16 @@
package dev.isxander.controlify.mixins.feature.oofinput;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import dev.isxander.controlify.Controlify;
import net.minecraft.client.renderer.GameRenderer;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@Mixin(GameRenderer.class)
public class GameRendererMixin {
@ModifyExpressionValue(method = "render", at = @At(value = "FIELD", target = "Lnet/minecraft/client/Options;pauseOnLostFocus:Z", opcode = Opcodes.GETFIELD))
private boolean shouldPauseOnLossFocus(boolean original) {
return original && !(Controlify.instance().config().globalSettings().outOfFocusInput && Controlify.instance().getCurrentController().isPresent());
}
}

View File

@ -37,6 +37,7 @@
"feature.guide.screen.AbstractButtonMixin", "feature.guide.screen.AbstractButtonMixin",
"feature.guide.screen.AbstractWidgetMixin", "feature.guide.screen.AbstractWidgetMixin",
"feature.guide.screen.TabNavigationBarMixin", "feature.guide.screen.TabNavigationBarMixin",
"feature.oofinput.GameRendererMixin",
"feature.reacharound.GameRendererMixin", "feature.reacharound.GameRendererMixin",
"feature.rumble.blockbreak.MultiPlayerGameModeMixin", "feature.rumble.blockbreak.MultiPlayerGameModeMixin",
"feature.rumble.damage.LocalPlayerMixin", "feature.rumble.damage.LocalPlayerMixin",