diff --git a/src/main/java/dev/isxander/controlify/config/gui/YACLHelper.java b/src/main/java/dev/isxander/controlify/config/gui/YACLHelper.java index b2027d7..23275a4 100644 --- a/src/main/java/dev/isxander/controlify/config/gui/YACLHelper.java +++ b/src/main/java/dev/isxander/controlify/config/gui/YACLHelper.java @@ -65,6 +65,12 @@ public class YACLHelper { .binding(def.verticalLookSensitivity, () -> config.verticalLookSensitivity, v -> config.verticalLookSensitivity = v) .controller(opt -> new FloatSliderController(opt, 0.1f, 2f, 0.05f, v -> Component.literal(String.format("%.0f%%", v*100)))) .build()) + .option(Option.createBuilder(float.class) + .name(Component.translatable("controlify.gui.vmouse_sensitivity")) + .tooltip(Component.translatable("controlify.gui.vmouse_sensitivity.tooltip")) + .binding(def.virtualMouseSensitivity, () -> config.virtualMouseSensitivity, v -> config.virtualMouseSensitivity = v) + .controller(opt -> new FloatSliderController(opt, 0.1f, 2f, 0.05f, v -> Component.literal(String.format("%.0f%%", v*100)))) + .build()) .option(Option.createBuilder(int.class) .name(Component.translatable("controlify.gui.screen_repeat_navi_delay")) .tooltip(Component.translatable("controlify.gui.screen_repeat_navi_delay.tooltip")) diff --git a/src/main/java/dev/isxander/controlify/virtualmouse/VirtualMouseHandler.java b/src/main/java/dev/isxander/controlify/virtualmouse/VirtualMouseHandler.java index a2d78e9..a8b17d9 100644 --- a/src/main/java/dev/isxander/controlify/virtualmouse/VirtualMouseHandler.java +++ b/src/main/java/dev/isxander/controlify/virtualmouse/VirtualMouseHandler.java @@ -45,8 +45,8 @@ public class VirtualMouseHandler { // quadratic function to make small movements smaller // abs to keep sign - targetX += leftStickX * Mth.abs(leftStickX) * 20f; - targetY += leftStickY * Mth.abs(leftStickY) * 20f; + targetX += leftStickX * Mth.abs(leftStickX) * 20f * controller.config().virtualMouseSensitivity; + targetY += leftStickY * Mth.abs(leftStickY) * 20f * controller.config().virtualMouseSensitivity; targetX = Mth.clamp(targetX, 0, minecraft.getWindow().getWidth()); targetY = Mth.clamp(targetY, 0, minecraft.getWindow().getHeight()); @@ -153,12 +153,6 @@ public class VirtualMouseHandler { } ControlifyEvents.VIRTUAL_MOUSE_TOGGLED.invoker().onVirtualMouseToggled(true); - minecraft.getToasts().addToast(SystemToast.multiline( - minecraft, - SystemToast.SystemToastIds.PERIODIC_NOTIFICATION, - Component.translatable("controlify.toast.vmouse_enabled.title"), - Component.translatable("controlify.toast.vmouse_enabled.description") - )); } public void disableVirtualMouse() { @@ -171,12 +165,6 @@ public class VirtualMouseHandler { targetY = currentY = minecraft.mouseHandler.ypos(); ControlifyEvents.VIRTUAL_MOUSE_TOGGLED.invoker().onVirtualMouseToggled(false); - minecraft.getToasts().addToast(SystemToast.multiline( - minecraft, - SystemToast.SystemToastIds.PERIODIC_NOTIFICATION, - Component.translatable("controlify.toast.vmouse_disabled.title"), - Component.translatable("controlify.toast.vmouse_disabled.description") - )); } private void setMousePosition() { @@ -204,9 +192,23 @@ public class VirtualMouseHandler { screens.remove(screenName); disableVirtualMouse(); Controlify.instance().hideMouse(true); + + minecraft.getToasts().addToast(SystemToast.multiline( + minecraft, + SystemToast.SystemToastIds.PERIODIC_NOTIFICATION, + Component.translatable("controlify.toast.vmouse_disabled.title"), + Component.translatable("controlify.toast.vmouse_disabled.description") + )); } else { screens.add(screenName); enableVirtualMouse(); + + minecraft.getToasts().addToast(SystemToast.multiline( + minecraft, + SystemToast.SystemToastIds.PERIODIC_NOTIFICATION, + Component.translatable("controlify.toast.vmouse_enabled.title"), + Component.translatable("controlify.toast.vmouse_enabled.description") + )); } Controlify.instance().config().save(); diff --git a/src/main/resources/assets/controlify/lang/en_us.json b/src/main/resources/assets/controlify/lang/en_us.json index 8fbc019..93eeb77 100644 --- a/src/main/resources/assets/controlify/lang/en_us.json +++ b/src/main/resources/assets/controlify/lang/en_us.json @@ -12,6 +12,8 @@ "controlify.gui.horizontal_look_sensitivity.tooltip": "How fast the camera moves horizontally when looking around.", "controlify.gui.vertical_look_sensitivity": "Vertical Look Sensitivity", "controlify.gui.vertical_look_sensitivity.tooltip": "How fast the camera moves vertically when looking around.", + "controlify.gui.vmouse_sensitivity": "Virtual Mouse Sensitivity", + "controlify.gui.vmouse_sensitivity.tooltip": "How fast the virtual mouse moves.", "controlify.gui.screen_repeat_navi_delay": "Screen Repeat Navigation Delay", "controlify.gui.screen_repeat_navi_delay.tooltip": "How the delay is for navigation to start repeating if you hold the stick.", "controlify.gui.left_stick_deadzone": "Left Stick Deadzone", @@ -30,6 +32,8 @@ "controlify.gui.format.ticks": "%s ticks", + "controlify.gui.button": "Controller Settings...", + "controlify.toast.vmouse_enabled.title": "Virtual Mouse Enabled", "controlify.toast.vmouse_enabled.description": "Controlify virtual mouse is now enabled for this screen.", "controlify.toast.vmouse_disabled.title": "Virtual Mouse Disabled", @@ -56,5 +60,6 @@ "controlify.binding.controlify.vmouse_lclick": "Virtual Mouse LClick", "controlify.binding.controlify.vmouse_rclick": "Virtual Mouse RClick", "controlify.binding.controlify.vmouse_mclick": "Virtual Mouse MClick", - "controlify.binding.controlify.vmouse_escape": "Virtual Mouse Key Escape" + "controlify.binding.controlify.vmouse_escape": "Virtual Mouse Key Escape", + "controlify.binding.controlify.vmouse_toggle": "Toggle Virtual Mouse" } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index dd103aa..ed0c907 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -27,7 +27,10 @@ ], "depends": { "fabricloader": ">=0.14.0", - "minecraft": "1.19.x", + "minecraft": "~1.19.4-", "java": ">=17" + }, + "breaks": { + "midnightcontrols": "*" } }