diff --git a/gradle.properties b/gradle.properties index 47f5d74..89510ac 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ yarn_mappings=1.19+build.1 loader_version=0.14.7 # Mod Properties -mod_version = 1.2.1 +mod_version = 1.2.2 maven_group = eu.midnightdust archives_base_name = midnightcontrols modrinth_id=bXX9h73M diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java index 1da7e1e..2a5c56b 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java @@ -65,7 +65,7 @@ public class MidnightControlsClient extends MidnightControls implements ClientMo public static final KeyBinding BINDING_LOOK_LEFT = InputManager.makeKeyBinding(new Identifier(MidnightControlsConstants.NAMESPACE, "look_left"), InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_KP_4, "key.categories.movement"); public static final KeyBinding BINDING_RING = InputManager.makeKeyBinding(new Identifier(MidnightControlsConstants.NAMESPACE, "ring"), - InputUtil.Type.MOUSE, 0, "key.categories.misc"); + InputUtil.Type.KEYSYM, InputUtil.UNKNOWN_KEY.getCode(), "key.categories.misc"); public static final Identifier CONTROLLER_BUTTONS = new Identifier(MidnightControlsConstants.NAMESPACE, "textures/gui/controller_buttons.png"); public static final Identifier CONTROLLER_EXPANDED = new Identifier(MidnightControlsConstants.NAMESPACE, "textures/gui/controller_expanded.png"); public static final Identifier CONTROLLER_AXIS = new Identifier(MidnightControlsConstants.NAMESPACE, "textures/gui/controller_axis.png"); diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java index c457a4b..e67e787 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java @@ -31,40 +31,40 @@ import static org.lwjgl.glfw.GLFW.GLFW_GAMEPAD_AXIS_LEFT_Y; */ public class MidnightControlsConfig extends MidnightConfig { // General - @Entry public static ControlsMode controlsMode = ControlsMode.DEFAULT; - @Entry public static boolean autoSwitchMode = true; - @Entry public static boolean debug = false; + @Entry(name = "midnightcontrols.menu.controls_mode") public static ControlsMode controlsMode = ControlsMode.DEFAULT; + @Entry(name = "midnightcontrols.menu.auto_switch_mode") public static boolean autoSwitchMode = true; + @Entry(name = "Debug") public static boolean debug = false; // HUD - @Entry public static boolean hudEnable = true; - @Entry public static HudSide hudSide = HudSide.LEFT; + @Entry(name = "midnightcontrols.menu.hud_enable") public static boolean hudEnable = true; + @Entry(name = "midnightcontrols.menu.hud_side") public static HudSide hudSide = HudSide.LEFT; // Gameplay - @Entry public static boolean analogMovement = true; - @Entry public static boolean doubleTapToSprint = true; - @Entry public static boolean fastBlockPlacing = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers. - @Entry public static boolean flyDrifting = true; // Enabled by default as disabling this behaviour can be considered cheating on multiplayer servers. It can also conflict with some other mods. - @Entry public static boolean verticalFlyDrifting = true; // Enabled by default as disabling this behaviour can be considered cheating on multiplayer servers. - @Entry public static boolean horizontalReacharound = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers. - @Entry public static boolean verticalReacharound = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers. - @Entry public static boolean shouldRenderReacharoundOutline = true; - @Entry public static int[] reacharoundOutlineColor = new int[]{255, 255, 255, 102}; - @Entry public static double rightDeadZone = 0.25; - @Entry public static double leftDeadZone = 0.25; - @Entry public static boolean invertRightYAxis = false; - @Entry public static boolean invertRightXAxis = false; - @Entry public static double DEFAULT_MAX_VALUE = 1; - @Entry public static double rotationSpeed = 40.0; - @Entry public static double mouseSpeed = 25.0; - @Entry public static boolean unfocusedInput = false; - @Entry public static boolean virtualMouse = false; - @Entry public static VirtualMouseSkin virtualMouseSkin = VirtualMouseSkin.DEFAULT_LIGHT; - @Entry public static Object controllerID = 0; - @Entry public static Object secondControllerID = -1; - @Entry public static ControllerType controllerType = ControllerType.DEFAULT; - @Entry public static List mouseScreens = List.of("me.jellysquid.mods.sodium.client.gui","net.coderbot.iris.gui","net.minecraft.client.gui.screen.advancement", "net.minecraft.client.gui.screen.pack.PackScreen", "net.minecraft.class_5375", "net.minecraft.class_457", "net.minecraft.class_408", "me.flashyreese.mods.reeses_sodium_options.client.gui"); - @Entry public static Map BINDINGS = Map.of(); + @Entry(name = "midnightcontrols.menu.analog_movement") public static boolean analogMovement = true; + @Entry(name = "midnightcontrols.menu.double_tap_to_sprint") public static boolean doubleTapToSprint = true; + @Entry(name = "midnightcontrols.menu.fast_block_placing") public static boolean fastBlockPlacing = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers. + @Entry(name = "midnightcontrols.menu.fly_drifting") public static boolean flyDrifting = true; // Enabled by default as disabling this behaviour can be considered cheating on multiplayer servers. It can also conflict with some other mods. + @Entry(name = "midnightcontrols.menu.fly_drifting_vertical") public static boolean verticalFlyDrifting = true; // Enabled by default as disabling this behaviour can be considered cheating on multiplayer servers. + @Entry(name = "midnightcontrols.menu.reacharound.horizontal") public static boolean horizontalReacharound = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers. + @Entry(name = "midnightcontrols.menu.reacharound.vertical") public static boolean verticalReacharound = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers. + @Entry(name = "Reacharound Outline") public static boolean shouldRenderReacharoundOutline = true; + @Entry(name = "Reacharound Outline Color") public static int[] reacharoundOutlineColor = new int[]{255, 255, 255, 102}; + @Entry(name = "midnightcontrols.menu.right_dead_zone") public static double rightDeadZone = 0.25; + @Entry(name = "midnightcontrols.menu.left_dead_zone") public static double leftDeadZone = 0.25; + @Entry(name = "midnightcontrols.menu.invert_right_y_axis") public static boolean invertRightYAxis = false; + @Entry(name = "midnightcontrols.menu.invert_right_x_axis") public static boolean invertRightXAxis = false; + public static double DEFAULT_MAX_VALUE = 1; + @Entry(name = "midnightcontrols.menu.right_dead_zone") public static double rotationSpeed = 40.0; + @Entry(name = "midnightcontrols.menu.mouse_speed") public static double mouseSpeed = 25.0; + @Entry(name = "midnightcontrols.menu.unfocused_input") public static boolean unfocusedInput = false; + @Entry(name = "midnightcontrols.menu.virtual_mouse") public static boolean virtualMouse = false; + @Entry(name = "midnightcontrols.menu.virtual_mouse.skin") public static VirtualMouseSkin virtualMouseSkin = VirtualMouseSkin.DEFAULT_LIGHT; + @Entry(name = "Controller ID") public static Object controllerID = 0; + @Entry(name = "2nd Controller ID") public static Object secondControllerID = -1; + @Entry(name = "midnightcontrols.menu.controller_type") public static ControllerType controllerType = ControllerType.DEFAULT; + @Entry(name = "Mouse screens") public static List mouseScreens = List.of("me.jellysquid.mods.sodium.client.gui","net.coderbot.iris.gui","net.minecraft.client.gui.screen.advancement", "net.minecraft.client.gui.screen.pack.PackScreen", "net.minecraft.class_5375", "net.minecraft.class_457", "net.minecraft.class_408", "me.flashyreese.mods.reeses_sodium_options.client.gui"); + @Entry(name = "Keybindings") public static Map BINDINGS = Map.of(); private static final Pattern BUTTON_BINDING_PATTERN = Pattern.compile("(-?\\d+)\\+?"); - @Entry public static double[] maxAnalogValues = new double[]{DEFAULT_MAX_VALUE, DEFAULT_MAX_VALUE, DEFAULT_MAX_VALUE, DEFAULT_MAX_VALUE}; + @Entry(name = "Max analog values") public static double[] maxAnalogValues = new double[]{DEFAULT_MAX_VALUE, DEFAULT_MAX_VALUE, DEFAULT_MAX_VALUE, DEFAULT_MAX_VALUE}; /** * Loads the configuration diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsHud.java b/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsHud.java index 127bc8f..36067ae 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsHud.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsHud.java @@ -83,6 +83,7 @@ public class MidnightControlsHud extends Hud { */ @Override public void render(MatrixStack matrices, float tickDelta) { + if (this.client == null) return; if (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER && this.client.currentScreen == null) { int y = bottom(2); if (scale != 1f) matrices.scale(scale,scale,scale);