mirror of
https://github.com/TeamMidnightDust/MidnightControls.git
synced 2025-12-14 07:35:10 +01:00
Add virtual keyboard config option
This commit is contained in:
@@ -88,6 +88,7 @@ public class MidnightControlsConfig extends MidnightConfig {
|
|||||||
@Entry(category = SCREENS, name = "midnightcontrols.menu.virtual_mouse") public static boolean virtualMouse = false;
|
@Entry(category = SCREENS, name = "midnightcontrols.menu.virtual_mouse") public static boolean virtualMouse = false;
|
||||||
@Entry(category = SCREENS, name = "midnightcontrols.menu.virtual_mouse.skin") public static VirtualMouseSkin virtualMouseSkin = VirtualMouseSkin.DEFAULT_LIGHT;
|
@Entry(category = SCREENS, name = "midnightcontrols.menu.virtual_mouse.skin") public static VirtualMouseSkin virtualMouseSkin = VirtualMouseSkin.DEFAULT_LIGHT;
|
||||||
@Entry(category = SCREENS, name = "midnightcontrols.menu.hide_cursor") public static boolean hideNormalMouse = false;
|
@Entry(category = SCREENS, name = "midnightcontrols.menu.hide_cursor") public static boolean hideNormalMouse = false;
|
||||||
|
@Entry(category = SCREENS, name = "midnightcontrols.menu.virtual_keyboard") public static boolean virtualKeyboard = false;
|
||||||
@Entry(category = CONTROLLER, name = "Controller ID") @Hidden public static Object controllerID = 0;
|
@Entry(category = CONTROLLER, name = "Controller ID") @Hidden public static Object controllerID = 0;
|
||||||
@Entry(category = CONTROLLER, name = "2nd Controller ID") @Hidden public static Object secondControllerID = -1;
|
@Entry(category = CONTROLLER, name = "2nd Controller ID") @Hidden public static Object secondControllerID = -1;
|
||||||
@Entry(category = VISUAL, name = "midnightcontrols.menu.controller_type") public static ControllerType controllerType = ControllerType.DEFAULT;
|
@Entry(category = VISUAL, name = "midnightcontrols.menu.controller_type") public static ControllerType controllerType = ControllerType.DEFAULT;
|
||||||
@@ -374,6 +375,7 @@ public class MidnightControlsConfig extends MidnightConfig {
|
|||||||
unfocusedInput = false;
|
unfocusedInput = false;
|
||||||
virtualMouse = false;
|
virtualMouse = false;
|
||||||
virtualMouseSkin = VirtualMouseSkin.DEFAULT_LIGHT;
|
virtualMouseSkin = VirtualMouseSkin.DEFAULT_LIGHT;
|
||||||
|
virtualKeyboard = false;
|
||||||
controllerID = 0;
|
controllerID = 0;
|
||||||
secondControllerID = -1;
|
secondControllerID = -1;
|
||||||
controllerType = ControllerType.DEFAULT;
|
controllerType = ControllerType.DEFAULT;
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
|
|||||||
private final SpruceOption eyeTrackingAsMouseOption;
|
private final SpruceOption eyeTrackingAsMouseOption;
|
||||||
private final SpruceOption eyeTrackingDeadzone;
|
private final SpruceOption eyeTrackingDeadzone;
|
||||||
private final SpruceOption virtualMouseOption;
|
private final SpruceOption virtualMouseOption;
|
||||||
|
private final SpruceOption virtualKeyboardOption;
|
||||||
private final SpruceOption hideCursorOption;
|
private final SpruceOption hideCursorOption;
|
||||||
private final SpruceOption resetOption;
|
private final SpruceOption resetOption;
|
||||||
private final SpruceOption advancedConfigOption;
|
private final SpruceOption advancedConfigOption;
|
||||||
@@ -299,6 +300,8 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
|
|||||||
value -> MidnightControlsConfig.unfocusedInput = value, Text.translatable("midnightcontrols.menu.unfocused_input.tooltip"));
|
value -> MidnightControlsConfig.unfocusedInput = value, Text.translatable("midnightcontrols.menu.unfocused_input.tooltip"));
|
||||||
this.virtualMouseOption = new SpruceToggleBooleanOption("midnightcontrols.menu.virtual_mouse", () -> MidnightControlsConfig.virtualMouse,
|
this.virtualMouseOption = new SpruceToggleBooleanOption("midnightcontrols.menu.virtual_mouse", () -> MidnightControlsConfig.virtualMouse,
|
||||||
value -> MidnightControlsConfig.virtualMouse = value, Text.translatable("midnightcontrols.menu.virtual_mouse.tooltip"));
|
value -> MidnightControlsConfig.virtualMouse = value, Text.translatable("midnightcontrols.menu.virtual_mouse.tooltip"));
|
||||||
|
this.virtualKeyboardOption = new SpruceToggleBooleanOption("midnightcontrols.menu.virtual_keyboard", () -> MidnightControlsConfig.virtualMouse,
|
||||||
|
value -> MidnightControlsConfig.virtualMouse = value, Text.translatable("midnightcontrols.menu.virtual_keyboard.tooltip"));
|
||||||
this.hideCursorOption = new SpruceToggleBooleanOption("midnightcontrols.menu.hide_cursor", () -> MidnightControlsConfig.hideNormalMouse,
|
this.hideCursorOption = new SpruceToggleBooleanOption("midnightcontrols.menu.hide_cursor", () -> MidnightControlsConfig.hideNormalMouse,
|
||||||
value -> MidnightControlsConfig.hideNormalMouse = value, Text.translatable("midnightcontrols.menu.hide_cursor.tooltip"));
|
value -> MidnightControlsConfig.hideNormalMouse = value, Text.translatable("midnightcontrols.menu.hide_cursor.tooltip"));
|
||||||
// Touch options
|
// Touch options
|
||||||
@@ -390,6 +393,7 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
|
|||||||
list.addSingleOptionEntry(this.yAxisRotationSpeedOption);
|
list.addSingleOptionEntry(this.yAxisRotationSpeedOption);
|
||||||
list.addSingleOptionEntry(this.mouseSpeedOption);
|
list.addSingleOptionEntry(this.mouseSpeedOption);
|
||||||
list.addSingleOptionEntry(this.virtualMouseOption);
|
list.addSingleOptionEntry(this.virtualMouseOption);
|
||||||
|
list.addSingleOptionEntry(this.virtualKeyboardOption);
|
||||||
list.addSingleOptionEntry(this.hideCursorOption);
|
list.addSingleOptionEntry(this.hideCursorOption);
|
||||||
list.addSingleOptionEntry(this.joystickAsMouseOption);
|
list.addSingleOptionEntry(this.joystickAsMouseOption);
|
||||||
list.addSingleOptionEntry(this.eyeTrackingAsMouseOption);
|
list.addSingleOptionEntry(this.eyeTrackingAsMouseOption);
|
||||||
|
|||||||
@@ -220,6 +220,8 @@
|
|||||||
"midnightcontrols.menu.virtual_mouse": "Virtual Mouse",
|
"midnightcontrols.menu.virtual_mouse": "Virtual Mouse",
|
||||||
"midnightcontrols.menu.virtual_mouse.tooltip": "Enables the virtual mouse, which is useful during splitscreen.",
|
"midnightcontrols.menu.virtual_mouse.tooltip": "Enables the virtual mouse, which is useful during splitscreen.",
|
||||||
"midnightcontrols.menu.virtual_mouse.skin": "Virtual Mouse Skin",
|
"midnightcontrols.menu.virtual_mouse.skin": "Virtual Mouse Skin",
|
||||||
|
"midnightcontrols.menu.virtual_keyboard": "Virtual Keyboard",
|
||||||
|
"midnightcontrols.menu.virtual_keyboard_tooltip": "Enables a virtual on-screen keyboard",
|
||||||
"midnightcontrols.menu.hide_cursor": "Hide Normal Mouse Cursor",
|
"midnightcontrols.menu.hide_cursor": "Hide Normal Mouse Cursor",
|
||||||
"midnightcontrols.menu.hide_cursor.tooltip": "Hides the normal mouse cursor, leaving only the virtual mouse visible.",
|
"midnightcontrols.menu.hide_cursor.tooltip": "Hides the normal mouse cursor, leaving only the virtual mouse visible.",
|
||||||
"midnightcontrols.narrator.unbound": "Unbound %s",
|
"midnightcontrols.narrator.unbound": "Unbound %s",
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
package eu.midnightdust.midnightcontrols.fabric.event;
|
package eu.midnightdust.midnightcontrols.fabric.event;
|
||||||
|
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
|
||||||
import net.fabricmc.fabric.api.client.screen.v1.ScreenMouseEvents;
|
import net.fabricmc.fabric.api.client.screen.v1.ScreenMouseEvents;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
|
|
||||||
@@ -13,7 +14,9 @@ public class MouseClickListener implements ScreenMouseEvents.AllowMouseClick {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean allowMouseClick(Screen screen, double mouseX, double mouseY, int button) {
|
public boolean allowMouseClick(Screen screen, double mouseX, double mouseY, int button) {
|
||||||
clickInterceptor.intercept(screen, mouseX, mouseY);
|
if(MidnightControlsConfig.virtualKeyboard) {
|
||||||
|
clickInterceptor.intercept(screen, mouseX, mouseY);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ public class MidnightControlsClientNeoforge {
|
|||||||
}
|
}
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onMouseButtonPressed(ScreenEvent.MouseButtonPressed.Pre event) {
|
public static void onMouseButtonPressed(ScreenEvent.MouseButtonPressed.Pre event) {
|
||||||
if (!event.isCanceled()) {
|
if (MidnightControlsConfig.virtualKeyboard && !event.isCanceled()) {
|
||||||
Screen screen = event.getScreen();
|
Screen screen = event.getScreen();
|
||||||
double mouseX = event.getMouseX();
|
double mouseX = event.getMouseX();
|
||||||
double mouseY = event.getMouseY();
|
double mouseY = event.getMouseY();
|
||||||
|
|||||||
Reference in New Issue
Block a user