mirror of
https://github.com/TeamMidnightDust/MidnightControls.git
synced 2025-12-13 23:25:10 +01:00
Merge branch 'feat/virtual-keyboard' into feat/virtual-keyboard
This commit is contained in:
10
.github/workflows/build.yml
vendored
10
.github/workflows/build.yml
vendored
@@ -8,8 +8,10 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout Repository
|
- name: Checkout Repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Validate Gradle Wrapper
|
with:
|
||||||
uses: gradle/actions/wrapper-validation@v3
|
persist-credentials: false
|
||||||
|
- name: Set up Gradle
|
||||||
|
uses: gradle/actions/setup-gradle@v4
|
||||||
- name: Set up JDK 21
|
- name: Set up JDK 21
|
||||||
uses: actions/setup-java@v4
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
@@ -22,4 +24,6 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: MidnightControls-Artifacts
|
name: MidnightControls-Artifacts
|
||||||
path: /build/libs/
|
path: |
|
||||||
|
fabric/build/libs/
|
||||||
|
neoforge/build/libs/
|
||||||
|
|||||||
6
.github/workflows/publish.yml
vendored
6
.github/workflows/publish.yml
vendored
@@ -11,8 +11,10 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout Repository
|
- name: Checkout Repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Validate Gradle Wrapper
|
with:
|
||||||
uses: gradle/actions/wrapper-validation@v3
|
persist-credentials: false
|
||||||
|
- name: Set up Gradle
|
||||||
|
uses: gradle/actions/setup-gradle@v4
|
||||||
- name: Set up JDK 21
|
- name: Set up JDK 21
|
||||||
uses: actions/setup-java@v4
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id "architectury-plugin" version "3.4-SNAPSHOT"
|
id "architectury-plugin" version "3.4-SNAPSHOT"
|
||||||
id "dev.architectury.loom" version "1.7-SNAPSHOT" apply false
|
id "dev.architectury.loom" version "1.10-SNAPSHOT" apply false
|
||||||
id "me.shedaniel.unified-publishing" version "0.1.+" apply false
|
id "me.shedaniel.unified-publishing" version "0.1.+" apply false
|
||||||
id 'com.github.johnrengelman.shadow' version '8.1.1' apply false
|
id 'com.github.johnrengelman.shadow' version '8.1.1' apply false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,8 +91,8 @@ public class MidnightControlsClient extends MidnightControls {
|
|||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
if (lateInitDone && client.isRunning()) {
|
if (lateInitDone && client.isRunning()) {
|
||||||
if (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER && (client.isWindowFocused() || MidnightControlsConfig.unfocusedInput)) {
|
if (MidnightControlsConfig.controlsMode != ControlsMode.DEFAULT && (client.isWindowFocused() || MidnightControlsConfig.unfocusedInput)) {
|
||||||
input.tickCameraStick();
|
if (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER) input.tickCameraStick();
|
||||||
input.updateCamera();
|
input.updateCamera();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ package eu.midnightdust.midnightcontrols.client;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.mojang.blaze3d.platform.GlDebugInfo;
|
import com.mojang.blaze3d.platform.GLX;
|
||||||
import eu.midnightdust.lib.config.MidnightConfig;
|
import eu.midnightdust.lib.config.MidnightConfig;
|
||||||
import eu.midnightdust.midnightcontrols.ControlsMode;
|
import eu.midnightdust.midnightcontrols.ControlsMode;
|
||||||
import eu.midnightdust.midnightcontrols.MidnightControls;
|
import eu.midnightdust.midnightcontrols.MidnightControls;
|
||||||
@@ -52,79 +52,107 @@ public class MidnightControlsConfig extends MidnightConfig {
|
|||||||
public static boolean isEditing = false;
|
public static boolean isEditing = false;
|
||||||
@Hidden @Entry public static int configVersion = 2;
|
@Hidden @Entry public static int configVersion = 2;
|
||||||
// General
|
// General
|
||||||
|
@Comment(category = CONTROLLER, centered = true, name="\uD83C\uDFAE General") public static Comment _general;
|
||||||
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.controls_mode") public static ControlsMode controlsMode = ControlsMode.DEFAULT;
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.controls_mode") public static ControlsMode controlsMode = ControlsMode.DEFAULT;
|
||||||
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.auto_switch_mode") public static boolean autoSwitchMode = true;
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.auto_switch_mode") public static boolean autoSwitchMode = true;
|
||||||
@Entry(category = MISC, name = "Debug") public static boolean debug = false;
|
|
||||||
// HUD
|
// HUD
|
||||||
|
@Comment(category = VISUAL, centered = true, name="\uD83D\uDDB9 Hud") public static Comment _hud;
|
||||||
@Entry(category = VISUAL, name = "midnightcontrols.menu.hud_enable") public static boolean hudEnable = true;
|
@Entry(category = VISUAL, name = "midnightcontrols.menu.hud_enable") public static boolean hudEnable = true;
|
||||||
@Entry(category = VISUAL, name = "midnightcontrols.menu.hud_side") public static HudSide hudSide = HudSide.LEFT;
|
@Entry(category = VISUAL, name = "midnightcontrols.menu.hud_side") public static HudSide hudSide = HudSide.LEFT;
|
||||||
@Entry(category = SCREENS, name = "midnightcontrols.menu.move_chat") public static boolean moveChat = false;
|
@Entry(category = VISUAL, name = "midnightcontrols.menu.controller_type") public static ControllerType controllerType = ControllerType.DEFAULT;
|
||||||
// Gameplay
|
// Gameplay
|
||||||
|
@Comment(category = GAMEPLAY, centered = true, name="\uD83D\uDECB Comfort") public static Comment _comfort;
|
||||||
|
@Entry(category = GAMEPLAY, name = "Enable Hints") public static boolean enableHints = true;
|
||||||
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.analog_movement") public static boolean analogMovement = true;
|
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.analog_movement") public static boolean analogMovement = true;
|
||||||
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.double_tap_to_sprint") public static boolean doubleTapToSprint = true;
|
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.double_tap_to_sprint") public static boolean doubleTapToSprint = true;
|
||||||
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.controller_toggle_sneak") public static boolean controllerToggleSneak = MinecraftClient.getInstance().options.getSneakToggled().getValue();
|
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.controller_toggle_sneak") public static boolean controllerToggleSneak = MinecraftClient.getInstance().options.getSneakToggled().getValue();
|
||||||
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.controller_toggle_sprint") public static boolean controllerToggleSprint = MinecraftClient.getInstance().options.getSprintToggled().getValue();
|
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.controller_toggle_sprint") public static boolean controllerToggleSprint = MinecraftClient.getInstance().options.getSprintToggled().getValue();
|
||||||
|
|
||||||
|
@Condition(requiredModId = "midnightcontrols-extra")
|
||||||
|
@Comment(category = GAMEPLAY, centered = true, name="✨ Extras") public static Comment _extras;
|
||||||
|
@Condition(requiredModId = "midnightcontrols-extra")
|
||||||
@Entry(category = GAMEPLAY, 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(category = GAMEPLAY, name = "midnightcontrols.menu.fast_block_placing") public static boolean fastBlockPlacing = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers.
|
||||||
|
@Condition(requiredModId = "midnightcontrols-extra")
|
||||||
@Entry(category = GAMEPLAY, 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(category = GAMEPLAY, 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.
|
||||||
|
@Condition(requiredModId = "midnightcontrols-extra")
|
||||||
@Entry(category = GAMEPLAY, 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(category = GAMEPLAY, 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.
|
||||||
|
@Condition(requiredModId = "midnightcontrols-extra")
|
||||||
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.reacharound.horizontal") public static boolean horizontalReacharound = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers.
|
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.reacharound.horizontal") public static boolean horizontalReacharound = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers.
|
||||||
|
@Condition(requiredModId = "midnightcontrols-extra")
|
||||||
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.reacharound.vertical") public static boolean verticalReacharound = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers.
|
@Entry(category = GAMEPLAY, name = "midnightcontrols.menu.reacharound.vertical") public static boolean verticalReacharound = false; // Disabled by default as this behaviour can be considered cheating on multiplayer servers.
|
||||||
|
@Condition(requiredModId = "midnightcontrols-extra")
|
||||||
|
@Comment(category = VISUAL, centered = true, name="⊽ Reacharound") public static Comment _reacharoundOutline;
|
||||||
|
@Condition(requiredModId = "midnightcontrols-extra")
|
||||||
@Entry(category = VISUAL, name = "Reacharound Outline") public static boolean shouldRenderReacharoundOutline = true;
|
@Entry(category = VISUAL, name = "Reacharound Outline") public static boolean shouldRenderReacharoundOutline = true;
|
||||||
|
@Condition(requiredModId = "midnightcontrols-extra", requiredOption = "shouldRenderReacharoundOutline")
|
||||||
@Entry(category = VISUAL, name = "Reacharound Outline Color", isColor = true) public static String reacharoundOutlineColorHex = "#ffffff";
|
@Entry(category = VISUAL, name = "Reacharound Outline Color", isColor = true) public static String reacharoundOutlineColorHex = "#ffffff";
|
||||||
|
@Condition(requiredModId = "midnightcontrols-extra", requiredOption = "shouldRenderReacharoundOutline")
|
||||||
@Entry(category = VISUAL, name = "Reacharound Outline Alpha", isSlider = true, min = 0, max = 255) public static int reacharoundOutlineColorAlpha = 102;
|
@Entry(category = VISUAL, name = "Reacharound Outline Alpha", isSlider = true, min = 0, max = 255) public static int reacharoundOutlineColorAlpha = 102;
|
||||||
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.right_dead_zone", isSlider = true, min = 0.05, max = 1) public static double rightDeadZone = 0.25;
|
@Comment(category = CONTROLLER, centered = true, name="\uD83D\uDCF7 Camera Settings") public static Comment _cameraSettings;
|
||||||
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.left_dead_zone", isSlider = true, min = 0.05, max = 1) public static double leftDeadZone = 0.25;
|
|
||||||
@Entry(category = CONTROLLER, name = "Trigger Dead-Zone", isSlider = true, min = 0.05, max = 1) public static double triggerDeadZone = 0.1;
|
|
||||||
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.invert_right_y_axis") public static boolean invertRightYAxis = false;
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.invert_right_y_axis") public static boolean invertRightYAxis = false;
|
||||||
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.invert_right_x_axis") public static boolean invertRightXAxis = false;
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.invert_right_x_axis") public static boolean invertRightXAxis = false;
|
||||||
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.rotation_speed", isSlider = true, min = 0, max = 100, precision = 10) public static double rotationSpeed = 35.0; //used for x-axis, name kept for compatibility
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.rotation_speed", isSlider = true, min = 0, max = 100, precision = 10) public static double rotationSpeed = 35.0; //used for x-axis, name kept for compatibility
|
||||||
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.y_axis_rotation_speed", isSlider = true, min = 0, max = 100, precision = 10) public static double yAxisRotationSpeed = rotationSpeed;
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.y_axis_rotation_speed", isSlider = true, min = 0, max = 100, precision = 10) public static double yAxisRotationSpeed = rotationSpeed;
|
||||||
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.camera_mode") public static CameraMode cameraMode = CameraMode.FLAT;
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.camera_mode") public static CameraMode cameraMode = CameraMode.FLAT;
|
||||||
|
@Comment(category = SCREENS, centered = true, name="\uD83D\uDDB1 Mouse Behaviour") public static Comment _mouseBehaviour;
|
||||||
@Entry(category = SCREENS, name = "midnightcontrols.menu.mouse_speed", isSlider = true, min = 0, max = 150, precision = 10) public static double mouseSpeed = 25.0;
|
@Entry(category = SCREENS, name = "midnightcontrols.menu.mouse_speed", isSlider = true, min = 0, max = 150, precision = 10) public static double mouseSpeed = 25.0;
|
||||||
@Entry(category = SCREENS, name = "midnightcontrols.menu.joystick_as_mouse") public static boolean joystickAsMouse = false;
|
@Entry(category = SCREENS, name = "midnightcontrols.menu.joystick_as_mouse") public static boolean joystickAsMouse = false;
|
||||||
@Entry(category = SCREENS, name = "midnightcontrols.menu.eye_tracker_as_mouse") public static boolean eyeTrackerAsMouse = false;
|
|
||||||
@Entry(category = SCREENS, name = "midnightcontrols.menu.eye_tracker_deadzone", isSlider = true, min = 0, max = 0.4) public static double eyeTrackerDeadzone = 0.05;
|
|
||||||
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.unfocused_input") public static boolean unfocusedInput = 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.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 = "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 = SCREENS, name = "Mouse screens") public static List<String> mouseScreens = Lists.newArrayList("net.minecraft.client.gui.screen.advancement",
|
@Entry(category = SCREENS, name = "Mouse screens") public static List<String> mouseScreens = Lists.newArrayList("net.minecraft.client.gui.screen.advancement",
|
||||||
"net.minecraft.class_457", "net.minecraft.class_408", "net.minecraft.class_3872", "me.flashyreese.mods.reeses_sodium_options.client.gui", "dev.emi.emi.screen",
|
"net.minecraft.class_457", "net.minecraft.class_408", "net.minecraft.class_3872", "me.flashyreese.mods.reeses_sodium_options.client.gui", "dev.emi.emi.screen",
|
||||||
"hardcorequesting.client.interfaces.GuiQuestBook", "hardcorequesting.client.interfaces.GuiReward", "hardcorequesting.client.interfaces.EditTrackerScreen",
|
"hardcorequesting.client.interfaces.GuiQuestBook", "hardcorequesting.client.interfaces.GuiReward", "hardcorequesting.client.interfaces.EditTrackerScreen",
|
||||||
"me.shedaniel.clothconfig2.gui.ClothConfigScreen", "com.mamiyaotaru.voxelmap.gui.GuiWaypoints", "com.mamiyaotaru.voxelmap.gui.GuiPersistentMap");
|
"me.shedaniel.clothconfig2.gui.ClothConfigScreen", "com.mamiyaotaru.voxelmap.gui.GuiWaypoints", "com.mamiyaotaru.voxelmap.gui.GuiPersistentMap");
|
||||||
@Entry(category = SCREENS, name = "Arrow screens") public static List<String> arrowScreens = Lists.newArrayList(ChatScreen.class.getCanonicalName());
|
@Entry(category = SCREENS, name = "Arrow screens") public static List<String> arrowScreens = Lists.newArrayList(ChatScreen.class.getCanonicalName());
|
||||||
@Entry(category = SCREENS, name = "WASD screens") public static List<String> wasdScreens = Lists.newArrayList("com.ultreon.devices.core.Laptop");
|
@Entry(category = SCREENS, name = "WASD screens") public static List<String> wasdScreens = Lists.newArrayList("com.ultreon.devices.core.Laptop");
|
||||||
@Entry(category = TOUCH, name = "Screens with close button") public static List<String> closeButtonScreens = Lists.newArrayList(ChatScreen.class.getCanonicalName(), AdvancementsScreen.class.getCanonicalName(), RingScreen.class.getCanonicalName());
|
@Comment(category = CONTROLLER, centered = true, name="\uD83D\uDC40 Eye Tracking") public static Comment _eyeTracker;
|
||||||
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.eye_tracker_as_mouse") public static boolean eyeTrackerAsMouse = false;
|
||||||
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.eye_tracker_deadzone", isSlider = true, min = 0, max = 0.4) public static double eyeTrackerDeadzone = 0.05;
|
||||||
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.unfocused_input") public static boolean unfocusedInput = false;
|
||||||
|
@Comment(category = SCREENS, centered = true, name="\uD83D\uDC46 Virtual Mouse") public static Comment _virtualMouse;
|
||||||
|
@Entry(category = SCREENS, name = "midnightcontrols.menu.virtual_mouse") public static boolean virtualMouse = false;
|
||||||
|
@Condition(requiredOption = "virtualMouse", visibleButLocked = true)
|
||||||
|
@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.virtual_keyboard") public static boolean virtualKeyboard = false;
|
||||||
|
@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;
|
||||||
|
@Comment(category = TOUCH, centered = true, name="\uD83E\uDE84 Behaviour") public static Comment _touchBehaviour;
|
||||||
@Entry(category = TOUCH, name = "midnightcontrols.menu.touch_with_controller") public static boolean touchInControllerMode = false;
|
@Entry(category = TOUCH, name = "midnightcontrols.menu.touch_with_controller") public static boolean touchInControllerMode = false;
|
||||||
@Entry(category = TOUCH, name = "midnightcontrols.menu.touch_speed", isSlider = true, min = 0, max = 150, precision = 10) public static double touchSpeed = 50.0;
|
@Entry(category = TOUCH, name = "midnightcontrols.menu.touch_speed", isSlider = true, min = 0, max = 150, precision = 10) public static double touchSpeed = 50.0;
|
||||||
@Entry(category = TOUCH, name = "midnightcontrols.menu.invert_touch") public static boolean invertTouch = false;
|
@Entry(category = TOUCH, name = "midnightcontrols.menu.invert_touch") public static boolean invertTouch = false;
|
||||||
@Entry(category = TOUCH, name = "midnightcontrols.menu.touch_mode") public static TouchMode touchMode = TouchMode.CROSSHAIR;
|
@Entry(category = TOUCH, name = "midnightcontrols.menu.touch_mode") public static TouchMode touchMode = TouchMode.CROSSHAIR;
|
||||||
@Entry(category = TOUCH, name = "midnightcontrols.menu.touch_break_delay", isSlider = true, min = 50, max = 500) public static int touchBreakDelay = 120;
|
@Entry(category = TOUCH, name = "midnightcontrols.menu.touch_break_delay", isSlider = true, min = 50, max = 500) public static int touchBreakDelay = 120;
|
||||||
|
@Comment(category = TOUCH, centered = true, name="\uD83D\uDCA1 Visuals") public static Comment _visuals;
|
||||||
@Entry(category = TOUCH, name = "midnightcontrols.menu.touch_transparency", isSlider = true, min = 0, max = 100) public static int touchTransparency = 75;
|
@Entry(category = TOUCH, name = "midnightcontrols.menu.touch_transparency", isSlider = true, min = 0, max = 100) public static int touchTransparency = 75;
|
||||||
@Entry(category = TOUCH, name = "Touch Outline Color", isColor = true) public static String touchOutlineColorHex = "#ffffff";
|
@Entry(category = TOUCH, name = "Touch Outline Color", isColor = true) public static String touchOutlineColorHex = "#ffffff";
|
||||||
@Entry(category = TOUCH, name = "Touch Outline Alpha", isSlider = true, min = 0, max = 255) public static int touchOutlineColorAlpha = 150;
|
@Entry(category = TOUCH, name = "Touch Outline Alpha", isSlider = true, min = 0, max = 255) public static int touchOutlineColorAlpha = 150;
|
||||||
|
@Comment(category = TOUCH, centered = true, name="\uD83E\uDDEA Advanced") public static Comment _advanced;
|
||||||
|
@Entry(category = TOUCH, name = "Screens with close button") public static List<String> closeButtonScreens = Lists.newArrayList(ChatScreen.class.getCanonicalName(), AdvancementsScreen.class.getCanonicalName(), RingScreen.class.getCanonicalName());
|
||||||
@Entry(category = TOUCH, name = "Left Touch button bindings") public static List<String> leftTouchBinds = Lists.newArrayList("debug_screen", "screenshot","toggle_perspective");
|
@Entry(category = TOUCH, name = "Left Touch button bindings") public static List<String> leftTouchBinds = Lists.newArrayList("debug_screen", "screenshot","toggle_perspective");
|
||||||
@Entry(category = TOUCH, name = "Right Touch button bindings") public static List<String> rightTouchBinds = Lists.newArrayList("screenshot","toggle_perspective", "use");
|
@Entry(category = TOUCH, name = "Right Touch button bindings") public static List<String> rightTouchBinds = Lists.newArrayList("screenshot","toggle_perspective", "use");
|
||||||
|
|
||||||
@Entry @Hidden public static Map<String, String> BINDING = new HashMap<>();
|
@Entry @Hidden public static Map<String, String> BINDING = new HashMap<>();
|
||||||
|
|
||||||
private static final Pattern BUTTON_BINDING_PATTERN = Pattern.compile("(-?\\d+)\\+?");
|
private static final Pattern BUTTON_BINDING_PATTERN = Pattern.compile("(-?\\d+)\\+?");
|
||||||
|
@Comment(category = CONTROLLER, centered = true, name="\uD83D\uDD79 Max Analog Stick Values") public static Comment _maxAnalogValues;
|
||||||
@Entry(category = CONTROLLER, name = "Max analog value: Left X", isSlider = true, min = .25f, max = 1.f) public static double maxAnalogValueLeftX = 1;
|
@Entry(category = CONTROLLER, name = "Max analog value: Left X", isSlider = true, min = .25f, max = 1.f) public static double maxAnalogValueLeftX = 1;
|
||||||
@Entry(category = CONTROLLER, name = "Max analog value: Left Y", isSlider = true, min = .25f, max = 1.f) public static double maxAnalogValueLeftY = 1;
|
@Entry(category = CONTROLLER, name = "Max analog value: Left Y", isSlider = true, min = .25f, max = 1.f) public static double maxAnalogValueLeftY = 1;
|
||||||
@Entry(category = CONTROLLER, name = "Max analog value: Right X", isSlider = true, min = .25f, max = 1.f) public static double maxAnalogValueRightX = 1;
|
@Entry(category = CONTROLLER, name = "Max analog value: Right X", isSlider = true, min = .25f, max = 1.f) public static double maxAnalogValueRightX = 1;
|
||||||
@Entry(category = CONTROLLER, name = "Max analog value: Right Y", isSlider = true, min = .25f, max = 1.f) public static double maxAnalogValueRightY = 1;
|
@Entry(category = CONTROLLER, name = "Max analog value: Right Y", isSlider = true, min = .25f, max = 1.f) public static double maxAnalogValueRightY = 1;
|
||||||
|
@Comment(category = CONTROLLER, centered = true, name="☠ Dead Zones") public static Comment _deadZones;
|
||||||
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.right_dead_zone", isSlider = true, min = 0.05, max = 1) public static double rightDeadZone = 0.25;
|
||||||
|
@Entry(category = CONTROLLER, name = "midnightcontrols.menu.left_dead_zone", isSlider = true, min = 0.05, max = 1) public static double leftDeadZone = 0.25;
|
||||||
|
@Entry(category = CONTROLLER, name = "Trigger Dead-Zone", isSlider = true, min = 0.05, max = 1) public static double triggerDeadZone = 0.1;
|
||||||
|
@Comment(category = CONTROLLER, centered = true, name="☆ Other Options") public static Comment _otherOptions;
|
||||||
@Entry(category = CONTROLLER, name = "Trigger button fix") public static boolean triggerFix = true;
|
@Entry(category = CONTROLLER, name = "Trigger button fix") public static boolean triggerFix = true;
|
||||||
@Entry(category = CONTROLLER, name = "Excluded Controllers (Name Regex)") public static List<String> excludedControllers = Lists.newArrayList(".*(Keyboard)$", ".*(Touchpad)$", ".*(Pen)$", ".*(Finger)$");
|
@Entry(category = CONTROLLER, name = "Excluded Controllers (Name Regex)") public static List<String> excludedControllers = Lists.newArrayList(".*(Keyboard)$", ".*(Touchpad)$", ".*(Pen)$", ".*(Finger)$");
|
||||||
|
@Comment(category = SCREENS, centered = true, name="\uD83D\uDD27 UI Modifications") public static Comment _uiMods;
|
||||||
|
@Entry(category = SCREENS, name = "midnightcontrols.menu.move_chat") public static boolean moveChat = false;
|
||||||
|
@Entry(category = SCREENS, name = "Enable Shortcut in Controls Options") public static boolean shortcutInControls = true;
|
||||||
|
@Entry(category = MISC, name = "Debug") public static boolean debug = false;
|
||||||
@Entry(category = MISC, name = "Excluded Keybindings") public static List<String> excludedKeybindings = Lists.newArrayList("key.forward", "key.left", "key.back", "key.right", "key.jump", "key.sneak", "key.sprint", "key.inventory",
|
@Entry(category = MISC, name = "Excluded Keybindings") public static List<String> excludedKeybindings = Lists.newArrayList("key.forward", "key.left", "key.back", "key.right", "key.jump", "key.sneak", "key.sprint", "key.inventory",
|
||||||
"key.swapOffhand", "key.drop", "key.use", "key.attack", "key.chat", "key.playerlist", "key.screenshot", "key.togglePerspective", "key.smoothCamera", "key.fullscreen", "key.saveToolbarActivator", "key.loadToolbarActivator",
|
"key.swapOffhand", "key.drop", "key.use", "key.attack", "key.chat", "key.playerlist", "key.screenshot", "key.togglePerspective", "key.smoothCamera", "key.fullscreen", "key.saveToolbarActivator", "key.loadToolbarActivator",
|
||||||
"key.pickItem", "key.hotbar.1", "key.hotbar.2", "key.hotbar.3", "key.hotbar.4", "key.hotbar.5", "key.hotbar.6", "key.hotbar.7", "key.hotbar.8", "key.hotbar.9");
|
"key.pickItem", "key.hotbar.1", "key.hotbar.2", "key.hotbar.3", "key.hotbar.4", "key.hotbar.5", "key.hotbar.6", "key.hotbar.7", "key.hotbar.8", "key.hotbar.9");
|
||||||
@Entry(category = GAMEPLAY, name = "Enable Hints") public static boolean enableHints = true;
|
@Entry(category = MISC, name = "Ring Bindings (WIP)") @Hidden public static List<String> ringBindings = new ArrayList<>();
|
||||||
@Entry(category = SCREENS, name = "Enable Shortcut in Controls Options") public static boolean shortcutInControls = true;
|
|
||||||
@Entry(category = MISC, name = "Ring Bindings (WIP)") public static List<String> ringBindings = new ArrayList<>();
|
|
||||||
@Entry(category = MISC, name = "Ignored Unbound Keys") public static List<String> ignoredUnboundKeys = Lists.newArrayList("inventorytabs.key.next_tab");
|
@Entry(category = MISC, name = "Ignored Unbound Keys") public static List<String> ignoredUnboundKeys = Lists.newArrayList("inventorytabs.key.next_tab");
|
||||||
@Entry @Hidden public static Map<String, Map<String, String>> controllerBindingProfiles = new HashMap<>();
|
@Entry @Hidden public static Map<String, Map<String, String>> controllerBindingProfiles = new HashMap<>();
|
||||||
private static Map<String, String> currentBindingProfile = new HashMap<>();
|
private static Map<String, String> currentBindingProfile = new HashMap<>();
|
||||||
@@ -402,7 +430,7 @@ public class MidnightControlsConfig extends MidnightConfig {
|
|||||||
String controller = getController().getName().toLowerCase();
|
String controller = getController().getName().toLowerCase();
|
||||||
if (controller.contains("xbox 360")) return ControllerType.XBOX_360;
|
if (controller.contains("xbox 360")) return ControllerType.XBOX_360;
|
||||||
else if (controller.contains("xbox") || controller.contains("afterglow")) return ControllerType.XBOX;
|
else if (controller.contains("xbox") || controller.contains("afterglow")) return ControllerType.XBOX;
|
||||||
else if (controller.contains("steam") && GlDebugInfo.getCpuInfo().contains("AMD Custom APU")) return ControllerType.STEAM_DECK;
|
else if (controller.contains("steam") && GLX._getCpuInfo().contains("AMD Custom APU")) return ControllerType.STEAM_DECK;
|
||||||
else if (controller.contains("steam")) return ControllerType.STEAM_CONTROLLER;
|
else if (controller.contains("steam")) return ControllerType.STEAM_CONTROLLER;
|
||||||
else if (controller.contains("dualsense") || controller.contains("ps5")) return ControllerType.DUALSENSE;
|
else if (controller.contains("dualsense") || controller.contains("ps5")) return ControllerType.DUALSENSE;
|
||||||
else if (controller.contains("dualshock") || controller.contains("ps4") || controller.contains("sony")) return ControllerType.DUALSHOCK;
|
else if (controller.contains("dualshock") || controller.contains("ps4") || controller.contains("sony")) return ControllerType.DUALSHOCK;
|
||||||
|
|||||||
@@ -214,10 +214,10 @@ public class MidnightInput {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (this.targetYaw != 0.f || this.targetPitch != 0.f) {
|
if (this.targetYaw != 0.f || this.targetPitch != 0.f) {
|
||||||
float rotationYaw = (float) (client.player.prevYaw + (this.targetYaw * 0.175));
|
float rotationYaw = (float) (client.player.lastYaw + (this.targetYaw * 0.175));
|
||||||
float rotationPitch = (float) (client.player.prevPitch + (this.targetPitch * 0.175));
|
float rotationPitch = (float) (client.player.lastPitch + (this.targetPitch * 0.175));
|
||||||
client.player.prevYaw = rotationYaw;
|
client.player.lastYaw = rotationYaw;
|
||||||
client.player.prevPitch = MathHelper.clamp(rotationPitch, -90.f, 90.f);
|
client.player.lastPitch = MathHelper.clamp(rotationPitch, -90.f, 90.f);
|
||||||
client.player.setYaw(rotationYaw);
|
client.player.setYaw(rotationYaw);
|
||||||
client.player.setPitch(MathHelper.clamp(rotationPitch, -90.f, 90.f));
|
client.player.setPitch(MathHelper.clamp(rotationPitch, -90.f, 90.f));
|
||||||
if (client.player.isRiding() && client.player.getVehicle() != null) {
|
if (client.player.isRiding() && client.player.getVehicle() != null) {
|
||||||
|
|||||||
@@ -62,9 +62,9 @@ public class InputHandlers {
|
|||||||
if (!client.player.isSpectator()) {
|
if (!client.player.isSpectator()) {
|
||||||
var inv = client.player.getInventory();
|
var inv = client.player.getInventory();
|
||||||
if (next)
|
if (next)
|
||||||
inv.setSelectedSlot(inv.selectedSlot < 8 ? inv.selectedSlot + 1 : inv.selectedSlot - 8);
|
inv.setSelectedSlot(inv.getSelectedSlot() < 8 ? inv.getSelectedSlot() + 1 : inv.getSelectedSlot() - 8);
|
||||||
else
|
else
|
||||||
inv.setSelectedSlot(inv.selectedSlot > 0 ? inv.selectedSlot - 1 : inv.selectedSlot + 8);
|
inv.setSelectedSlot(inv.getSelectedSlot() > 0 ? inv.getSelectedSlot() - 1 : inv.getSelectedSlot() + 8);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (client.inGameHud.getSpectatorHud().isOpen()) {
|
if (client.inGameHud.getSpectatorHud().isOpen()) {
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ public class InputManager {
|
|||||||
public void updateMousePosition(@NotNull MinecraftClient client) {
|
public void updateMousePosition(@NotNull MinecraftClient client) {
|
||||||
Objects.requireNonNull(client, "Client instance cannot be null.");
|
Objects.requireNonNull(client, "Client instance cannot be null.");
|
||||||
if (this.prevTargetMouseX != this.targetMouseX || this.prevTargetMouseY != this.targetMouseY) {
|
if (this.prevTargetMouseX != this.targetMouseX || this.prevTargetMouseY != this.targetMouseY) {
|
||||||
double mouseX = this.prevTargetMouseX + (this.targetMouseX - this.prevTargetMouseX) * client.getRenderTickCounter().getTickDelta(true) + 0.5;
|
double mouseX = this.prevTargetMouseX + (this.targetMouseX - this.prevTargetMouseX) * client.getRenderTickCounter().getTickProgress(true) + 0.5;
|
||||||
double mouseY = this.prevTargetMouseY + (this.targetMouseY - this.prevTargetMouseY) * client.getRenderTickCounter().getTickDelta(true) + 0.5;
|
double mouseY = this.prevTargetMouseY + (this.targetMouseY - this.prevTargetMouseY) * client.getRenderTickCounter().getTickProgress(true) + 0.5;
|
||||||
if (!MidnightControlsConfig.virtualMouse)
|
if (!MidnightControlsConfig.virtualMouse)
|
||||||
GLFW.glfwSetCursorPos(client.getWindow().getHandle(), mouseX, mouseY);
|
GLFW.glfwSetCursorPos(client.getWindow().getHandle(), mouseX, mouseY);
|
||||||
((MouseAccessor) client.mouse).midnightcontrols$onCursorPos(client.getWindow().getHandle(), mouseX, mouseY);
|
((MouseAccessor) client.mouse).midnightcontrols$onCursorPos(client.getWindow().getHandle(), mouseX, mouseY);
|
||||||
|
|||||||
@@ -11,12 +11,14 @@ package eu.midnightdust.midnightcontrols.client.controller;
|
|||||||
|
|
||||||
import eu.midnightdust.midnightcontrols.client.enums.ButtonState;
|
import eu.midnightdust.midnightcontrols.client.enums.ButtonState;
|
||||||
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
|
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
|
||||||
|
import eu.midnightdust.midnightcontrols.client.mixin.InputAccessor;
|
||||||
import eu.midnightdust.midnightcontrols.client.util.MathUtil;
|
import eu.midnightdust.midnightcontrols.client.util.MathUtil;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.network.ClientPlayerEntity;
|
import net.minecraft.client.network.ClientPlayerEntity;
|
||||||
import net.minecraft.entity.attribute.EntityAttributes;
|
import net.minecraft.entity.attribute.EntityAttributes;
|
||||||
import net.minecraft.util.PlayerInput;
|
import net.minecraft.util.PlayerInput;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.util.math.Vec2f;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,8 +55,8 @@ public final class MovementHandler implements PressAction {
|
|||||||
player.input.playerInput.jump(), player.input.playerInput.sneak(), player.input.playerInput.sprint());
|
player.input.playerInput.jump(), player.input.playerInput.sneak(), player.input.playerInput.sprint());
|
||||||
|
|
||||||
polarUtil.calculate(this.movementSideways, this.movementForward, this.slowdownFactor);
|
polarUtil.calculate(this.movementSideways, this.movementForward, this.slowdownFactor);
|
||||||
player.input.movementForward = polarUtil.polarY;
|
Vec2f inputVector = new Vec2f(polarUtil.polarX, polarUtil.polarY);
|
||||||
player.input.movementSideways = polarUtil.polarX;
|
((InputAccessor)player.input).setMovementVector(inputVector);
|
||||||
|
|
||||||
this.shouldOverrideMovement = false;
|
this.shouldOverrideMovement = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public class MidnightControlsHud extends Hud {
|
|||||||
var window = this.client.getWindow();
|
var window = this.client.getWindow();
|
||||||
var text = "[ ]";
|
var text = "[ ]";
|
||||||
|
|
||||||
float scale = Math.min(5, this.ticksDisplayedCrosshair + tickCounter.getTickDelta(true)) / 5F;
|
float scale = Math.min(5, this.ticksDisplayedCrosshair + tickCounter.getTickProgress(true)) / 5F;
|
||||||
scale *= scale;
|
scale *= scale;
|
||||||
int opacity = ((int) (255 * scale)) << 24;
|
int opacity = ((int) (255 * scale)) << 24;
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
|
|
||||||
package eu.midnightdust.midnightcontrols.client.gui;
|
package eu.midnightdust.midnightcontrols.client.gui;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.opengl.GlStateManager;
|
||||||
|
import com.mojang.blaze3d.platform.GLX;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import eu.midnightdust.midnightcontrols.ControlsMode;
|
import eu.midnightdust.midnightcontrols.ControlsMode;
|
||||||
import eu.midnightdust.midnightcontrols.client.enums.ControllerType;
|
import eu.midnightdust.midnightcontrols.client.enums.ControllerType;
|
||||||
@@ -169,7 +171,7 @@ public class MidnightControlsRenderer {
|
|||||||
case GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER + 100, GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER + 200 -> buttonOffset = 10 * 15;
|
case GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER + 100, GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER + 200 -> buttonOffset = 10 * 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderSystem.disableDepthTest();
|
GlStateManager._disableDepthTest();
|
||||||
|
|
||||||
int assetSize = axis || (button >= 15 && button <= 18) ? AXIS_SIZE : BUTTON_SIZE;
|
int assetSize = axis || (button >= 15 && button <= 18) ? AXIS_SIZE : BUTTON_SIZE;
|
||||||
|
|
||||||
@@ -179,7 +181,7 @@ public class MidnightControlsRenderer {
|
|||||||
(float) buttonOffset, (float) (controllerType * assetSize),
|
(float) buttonOffset, (float) (controllerType * assetSize),
|
||||||
assetSize, assetSize,
|
assetSize, assetSize,
|
||||||
256, 256);
|
256, 256);
|
||||||
RenderSystem.enableDepthTest();
|
GlStateManager._enableDepthTest();
|
||||||
|
|
||||||
return ICON_SIZE;
|
return ICON_SIZE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
package eu.midnightdust.midnightcontrols.client.gui;
|
package eu.midnightdust.midnightcontrols.client.gui;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.opengl.GlStateManager;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import eu.midnightdust.midnightcontrols.MidnightControlsConstants;
|
import eu.midnightdust.midnightcontrols.MidnightControlsConstants;
|
||||||
import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
|
import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
|
||||||
@@ -516,13 +517,13 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
|
|||||||
float g = (float)(color.getGreen()) / 255.0F;
|
float g = (float)(color.getGreen()) / 255.0F;
|
||||||
float b = (float)(color.getBlue()) / 255.0F;
|
float b = (float)(color.getBlue()) / 255.0F;
|
||||||
float t = (float)(transparency) / 255.0F;
|
float t = (float)(transparency) / 255.0F;
|
||||||
RenderSystem.enableBlend();
|
GlStateManager._enableBlend();
|
||||||
RenderSystem.defaultBlendFunc();
|
//GlStateManager._defaultBlendFunc();
|
||||||
vertexConsumer.vertex((float)x1, (float)y2, 0.0F).color(r, g, b, t);
|
vertexConsumer.vertex((float)x1, (float)y2, 0.0F).color(r, g, b, t);
|
||||||
vertexConsumer.vertex((float)x2, (float)y2, 0.0F).color(r, g, b, t);
|
vertexConsumer.vertex((float)x2, (float)y2, 0.0F).color(r, g, b, t);
|
||||||
vertexConsumer.vertex((float)x2, (float)y1, 0.0F).color(r, g, b, t);
|
vertexConsumer.vertex((float)x2, (float)y1, 0.0F).color(r, g, b, t);
|
||||||
vertexConsumer.vertex((float)x1, (float)y1, 0.0F).color(r, g, b, t);
|
vertexConsumer.vertex((float)x1, (float)y1, 0.0F).color(r, g, b, t);
|
||||||
RenderSystem.disableBlend();
|
GlStateManager._disableBlend();
|
||||||
context.draw();
|
context.draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package eu.midnightdust.midnightcontrols.client.mixin;
|
||||||
|
|
||||||
|
import net.minecraft.block.AbstractBlock;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.WorldView;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.gen.Invoker;
|
||||||
|
|
||||||
|
@Mixin(AbstractBlock.class)
|
||||||
|
public interface AbstractBlockAccessor {
|
||||||
|
@Invoker("canPlaceAt")
|
||||||
|
boolean midnightcontrols$canPlaceAt(BlockState state, WorldView world, BlockPos pos);
|
||||||
|
}
|
||||||
@@ -30,9 +30,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|||||||
|
|
||||||
@Mixin(GameRenderer.class)
|
@Mixin(GameRenderer.class)
|
||||||
public abstract class GameRendererMixin {
|
public abstract class GameRendererMixin {
|
||||||
@Shadow @Final MinecraftClient client;
|
@Shadow @Final private MinecraftClient client;
|
||||||
|
|
||||||
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Mouse;getX()D", shift = At.Shift.BEFORE))
|
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Mouse;getScaledX(Lnet/minecraft/client/util/Window;)D", shift = At.Shift.BEFORE))
|
||||||
private void midnightcontrols$onRender(RenderTickCounter tickCounter, boolean tick, CallbackInfo ci) {
|
private void midnightcontrols$onRender(RenderTickCounter tickCounter, boolean tick, CallbackInfo ci) {
|
||||||
if (this.client.currentScreen != null && MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER)
|
if (this.client.currentScreen != null && MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER)
|
||||||
MidnightControlsClient.input.onPreRenderScreen(this.client.currentScreen);
|
MidnightControlsClient.input.onPreRenderScreen(this.client.currentScreen);
|
||||||
@@ -44,7 +44,7 @@ public abstract class GameRendererMixin {
|
|||||||
drawContext.draw();
|
drawContext.draw();
|
||||||
}
|
}
|
||||||
@Inject(at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/GameRenderer;renderHand:Z"), method = "renderWorld")
|
@Inject(at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/GameRenderer;renderHand:Z"), method = "renderWorld")
|
||||||
private void midnigtcontrols$captureMatrices(RenderTickCounter tickCounter, CallbackInfo ci, @Local(ordinal = 1) Matrix4f matrices) {
|
private void midnigtcontrols$captureMatrices(RenderTickCounter tickCounter, CallbackInfo ci, @Local(ordinal = 2) Matrix4f matrices) {
|
||||||
TouchUtils.lastProjMat.set(RenderSystem.getProjectionMatrix());
|
TouchUtils.lastProjMat.set(RenderSystem.getProjectionMatrix());
|
||||||
TouchUtils.lastModMat.set(RenderSystem.getModelViewMatrix());
|
TouchUtils.lastModMat.set(RenderSystem.getModelViewMatrix());
|
||||||
TouchUtils.lastWorldSpaceMatrix.set(matrices);
|
TouchUtils.lastWorldSpaceMatrix.set(matrices);
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package eu.midnightdust.midnightcontrols.client.mixin;
|
||||||
|
|
||||||
|
import net.minecraft.client.input.Input;
|
||||||
|
import net.minecraft.util.math.Vec2f;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||||
|
|
||||||
|
@Mixin(Input.class)
|
||||||
|
public interface InputAccessor {
|
||||||
|
@Accessor
|
||||||
|
void setMovementVector(Vec2f input);
|
||||||
|
}
|
||||||
@@ -28,6 +28,7 @@ import net.minecraft.util.hit.HitResult;
|
|||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.Vec3d;
|
||||||
|
import net.minecraft.util.profiler.Profiler;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
@@ -38,6 +39,7 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
import static eu.midnightdust.midnightcontrols.client.MidnightControlsClient.client;
|
||||||
import static eu.midnightdust.midnightcontrols.client.MidnightControlsClient.reacharound;
|
import static eu.midnightdust.midnightcontrols.client.MidnightControlsClient.reacharound;
|
||||||
|
|
||||||
@Mixin(MinecraftClient.class)
|
@Mixin(MinecraftClient.class)
|
||||||
@@ -54,6 +56,10 @@ public abstract class MinecraftClientMixin {
|
|||||||
|
|
||||||
@Shadow public abstract void setScreen(Screen screen);
|
@Shadow public abstract void setScreen(Screen screen);
|
||||||
|
|
||||||
|
@Shadow public int attackCooldown;
|
||||||
|
|
||||||
|
@Shadow protected abstract void handleInputEvents();
|
||||||
|
|
||||||
@Unique private BlockPos midnightcontrols$lastTargetPos;
|
@Unique private BlockPos midnightcontrols$lastTargetPos;
|
||||||
@Unique private Vec3d midnightcontrols$lastPos;
|
@Unique private Vec3d midnightcontrols$lastPos;
|
||||||
@Unique private Direction midnightcontrols$lastTargetSide;
|
@Unique private Direction midnightcontrols$lastTargetSide;
|
||||||
@@ -81,7 +87,7 @@ public abstract class MinecraftClientMixin {
|
|||||||
var side = hitResult.getSide();
|
var side = hitResult.getSide();
|
||||||
|
|
||||||
boolean sidewaysBlockPlacing = this.midnightcontrols$lastTargetPos == null || !targetPos.equals(this.midnightcontrols$lastTargetPos.offset(this.midnightcontrols$lastTargetSide));
|
boolean sidewaysBlockPlacing = this.midnightcontrols$lastTargetPos == null || !targetPos.equals(this.midnightcontrols$lastTargetPos.offset(this.midnightcontrols$lastTargetSide));
|
||||||
boolean backwardsBlockPlacing = this.player.input.movementForward < 0.0f && (this.midnightcontrols$lastTargetPos == null || targetPos.equals(this.midnightcontrols$lastTargetPos.offset(this.midnightcontrols$lastTargetSide)));
|
boolean backwardsBlockPlacing = this.player.input.getMovementInput().y < 0.0f && (this.midnightcontrols$lastTargetPos == null || targetPos.equals(this.midnightcontrols$lastTargetPos.offset(this.midnightcontrols$lastTargetSide)));
|
||||||
|
|
||||||
if (cooldown > 1
|
if (cooldown > 1
|
||||||
&& !targetPos.equals(this.midnightcontrols$lastTargetPos)
|
&& !targetPos.equals(this.midnightcontrols$lastTargetPos)
|
||||||
@@ -129,7 +135,7 @@ public abstract class MinecraftClientMixin {
|
|||||||
if (result.isAccepted()) {
|
if (result.isAccepted()) {
|
||||||
//if (result.shouldSwingHand()) {
|
//if (result.shouldSwingHand()) {
|
||||||
this.player.swingHand(hand);
|
this.player.swingHand(hand);
|
||||||
if (!stackInHand.isEmpty() && (stackInHand.getCount() != previousStackCount || this.interactionManager.hasCreativeInventory())) {
|
if (!stackInHand.isEmpty() && (stackInHand.getCount() != previousStackCount || this.player.isInCreativeMode())) {
|
||||||
this.gameRenderer.firstPersonRenderer.resetEquipProgress(hand);
|
this.gameRenderer.firstPersonRenderer.resetEquipProgress(hand);
|
||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
@@ -144,10 +150,21 @@ public abstract class MinecraftClientMixin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// This is always supposed to be located at before the line 'this.profiler.swap("Keybindings");'
|
// TODO: Replace this with MixinExtras' Expressions once that's officially released
|
||||||
// @Redirect(method = "tick", at = @At(value = "FIELD",target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;", ordinal = 6))
|
@Inject(method = "tick", at = @At(value = "INVOKE",target = "Lnet/minecraft/client/gui/hud/DebugHud;shouldShowDebugHud()Z"))
|
||||||
// private Screen midnightcontrols$ignoreTouchOverlay(MinecraftClient instance) {
|
private void midnightcontrols$handleKeybindsWithTouchOverlay(CallbackInfo ci, @Local Profiler profiler) {
|
||||||
// if (instance.currentScreen instanceof TouchscreenOverlay) return null;
|
if (client.currentScreen instanceof TouchscreenOverlay) {
|
||||||
// return instance.currentScreen;
|
profiler.swap("Keybindings");
|
||||||
// }
|
this.handleInputEvents();
|
||||||
|
if (this.attackCooldown > 0) {
|
||||||
|
--this.attackCooldown;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Needed, as it will cause item actions not to work in touchscreen mode otherwise with the above method
|
||||||
|
@Inject(method = "handleInputEvents", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;isUsingItem()Z"), cancellable = true)
|
||||||
|
private void midnightcontrols$dontHandleItemAndBlockInteractions(CallbackInfo ci) {
|
||||||
|
if (client.currentScreen instanceof TouchscreenOverlay) ci.cancel();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,8 @@ public abstract class MouseMixin implements MouseAccessor {
|
|||||||
for (int slot = 0; slot < 9; ++slot) {
|
for (int slot = 0; slot < 9; ++slot) {
|
||||||
int slotX = centerX - 90 + slot * 20 + 2;
|
int slotX = centerX - 90 + slot * 20 + 2;
|
||||||
if (mouseX >= (double) slotX && mouseX <= (double) (slotX + 20)) {
|
if (mouseX >= (double) slotX && mouseX <= (double) (slotX + 20)) {
|
||||||
client.player.getInventory().selectedSlot = slot;
|
client.player.getInventory().setSelectedSlot(slot);
|
||||||
|
TouchInput.clickStartTime = -1;
|
||||||
ci.cancel();
|
ci.cancel();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ public class TouchInput {
|
|||||||
if (interaction.isAccepted()) {
|
if (interaction.isAccepted()) {
|
||||||
//if (interaction.shouldSwingHand()) {
|
//if (interaction.shouldSwingHand()) {
|
||||||
client.player.swingHand(client.player.preferredHand);
|
client.player.swingHand(client.player.preferredHand);
|
||||||
if (!stackInHand.isEmpty() && (stackInHand.getCount() != previousStackCount || client.interactionManager.hasCreativeInventory())) {
|
if (!stackInHand.isEmpty() && (stackInHand.getCount() != previousStackCount || client.player.isInCreativeMode())) {
|
||||||
client.gameRenderer.firstPersonRenderer.resetEquipProgress(client.player.preferredHand);
|
client.gameRenderer.firstPersonRenderer.resetEquipProgress(client.player.preferredHand);
|
||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class TouchUtils {
|
|||||||
|
|
||||||
if (entityCast != null && entityCast.getType() == HitResult.Type.ENTITY) return entityCast;
|
if (entityCast != null && entityCast.getType() == HitResult.Type.ENTITY) return entityCast;
|
||||||
|
|
||||||
BlockHitResult result = client.world.raycast(new RaycastContext(near, far, RaycastContext.ShapeType.OUTLINE, RaycastContext.FluidHandling.ANY, client.player));
|
BlockHitResult result = client.world.raycast(new RaycastContext(near, far, RaycastContext.ShapeType.OUTLINE, RaycastContext.FluidHandling.NONE, client.player));
|
||||||
|
|
||||||
if (client.player.getPos().distanceTo(result.getPos()) > playerRange) return null;
|
if (client.player.getPos().distanceTo(result.getPos()) > playerRange) return null;
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package eu.midnightdust.midnightcontrols.client.touch.gui;
|
package eu.midnightdust.midnightcontrols.client.touch.gui;
|
||||||
|
|
||||||
|
import net.minecraft.component.DataComponentTypes;
|
||||||
import net.minecraft.item.consume.UseAction;
|
import net.minecraft.item.consume.UseAction;
|
||||||
import org.thinkingstudio.obsidianui.Position;
|
import org.thinkingstudio.obsidianui.Position;
|
||||||
import org.thinkingstudio.obsidianui.widget.SpruceButtonWidget;
|
import org.thinkingstudio.obsidianui.widget.SpruceButtonWidget;
|
||||||
import eu.midnightdust.midnightcontrols.MidnightControlsConstants;
|
import eu.midnightdust.midnightcontrols.MidnightControlsConstants;
|
||||||
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
|
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
|
||||||
import net.minecraft.item.ArmorItem;
|
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
|
|
||||||
public class ItemUseButtonWidget extends SpruceButtonWidget {
|
public class ItemUseButtonWidget extends SpruceButtonWidget {
|
||||||
@@ -30,7 +30,7 @@ public class ItemUseButtonWidget extends SpruceButtonWidget {
|
|||||||
this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.eat"));
|
this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.eat"));
|
||||||
} else if (action == UseAction.DRINK) {
|
} else if (action == UseAction.DRINK) {
|
||||||
this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.drink"));
|
this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.drink"));
|
||||||
} else if (client.player.getMainHandStack().getItem() instanceof ArmorItem) {
|
} else if (client.player.getMainHandStack().getComponents().contains(DataComponentTypes.EQUIPPABLE)) {
|
||||||
this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.equip"));
|
this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.equip"));
|
||||||
} else if (!action.equals(UseAction.NONE)) {
|
} else if (!action.equals(UseAction.NONE)) {
|
||||||
this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.use"));
|
this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.use"));
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package eu.midnightdust.midnightcontrols.client.touch.gui;
|
package eu.midnightdust.midnightcontrols.client.touch.gui;
|
||||||
|
|
||||||
|
import eu.midnightdust.midnightcontrols.client.touch.TouchInput;
|
||||||
import org.thinkingstudio.obsidianui.Position;
|
import org.thinkingstudio.obsidianui.Position;
|
||||||
import org.thinkingstudio.obsidianui.widget.SpruceTexturedButtonWidget;
|
import org.thinkingstudio.obsidianui.widget.SpruceTexturedButtonWidget;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
@@ -34,6 +35,7 @@ public class SilentTexturedButtonWidget extends SpruceTexturedButtonWidget {
|
|||||||
public void onClick(double mouseX, double mouseY) {
|
public void onClick(double mouseX, double mouseY) {
|
||||||
this.setActive(true);
|
this.setActive(true);
|
||||||
super.onClick(mouseX, mouseY);
|
super.onClick(mouseX, mouseY);
|
||||||
|
TouchInput.clickStartTime = -1;
|
||||||
this.setActive(false);
|
this.setActive(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,12 +9,14 @@
|
|||||||
|
|
||||||
package eu.midnightdust.midnightcontrols.client.touch.gui;
|
package eu.midnightdust.midnightcontrols.client.touch.gui;
|
||||||
|
|
||||||
|
import eu.midnightdust.midnightcontrols.client.mixin.KeyBindingIDAccessor;
|
||||||
import eu.midnightdust.midnightcontrols.client.touch.TouchInput;
|
import eu.midnightdust.midnightcontrols.client.touch.TouchInput;
|
||||||
import eu.midnightdust.midnightcontrols.client.util.storage.AxisStorage;
|
import eu.midnightdust.midnightcontrols.client.util.storage.AxisStorage;
|
||||||
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.screen.ChatScreen;
|
import net.minecraft.client.gui.screen.ChatScreen;
|
||||||
import net.minecraft.client.gui.screen.GameMenuScreen;
|
import net.minecraft.client.gui.screen.GameMenuScreen;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.item.ArmorItem;
|
import net.minecraft.component.DataComponentTypes;
|
||||||
import net.minecraft.item.consume.UseAction;
|
import net.minecraft.item.consume.UseAction;
|
||||||
import net.minecraft.util.Arm;
|
import net.minecraft.util.Arm;
|
||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
@@ -298,7 +300,13 @@ public class TouchscreenOverlay extends Screen {
|
|||||||
if (binding == null) continue;
|
if (binding == null) continue;
|
||||||
boolean hasTexture = client.getGuiAtlasManager().getSprite(id("binding/"+bindName)) != missingSprite;
|
boolean hasTexture = client.getGuiAtlasManager().getSprite(id("binding/"+bindName)) != missingSprite;
|
||||||
if (MidnightControlsConfig.debug) System.out.println(left +" "+id("binding/"+bindName)+" "+ hasTexture);
|
if (MidnightControlsConfig.debug) System.out.println(left +" "+id("binding/"+bindName)+" "+ hasTexture);
|
||||||
var button = TextIconButtonWidget.builder(Text.translatable(binding.getTranslationKey()), b -> binding.handle(client, 1, ButtonState.PRESS), hasTexture)
|
var button = TextIconButtonWidget.builder(Text.translatable(binding.getTranslationKey()), b -> {
|
||||||
|
binding.handle(client, 1.0f, ButtonState.PRESS);
|
||||||
|
if (binding.asKeyBinding().isPresent()) {
|
||||||
|
binding.asKeyBinding().get().setPressed(true);
|
||||||
|
((KeyBindingAccessor)binding.asKeyBinding().get()).midnightcontrols$press();
|
||||||
|
}
|
||||||
|
}, hasTexture)
|
||||||
.texture(hasTexture ? id("binding/"+bindName) : emptySprite, 20, 20).dimension(20, 20).build();
|
.texture(hasTexture ? id("binding/"+bindName) : emptySprite, 20, 20).dimension(20, 20).build();
|
||||||
button.setPosition(left ? (3+(i*23)) : this.width-(23+(i*23)), 3);
|
button.setPosition(left ? (3+(i*23)) : this.width-(23+(i*23)), 3);
|
||||||
button.setAlpha(MidnightControlsConfig.touchTransparency / 100f);
|
button.setAlpha(MidnightControlsConfig.touchTransparency / 100f);
|
||||||
@@ -340,7 +348,7 @@ public class TouchscreenOverlay extends Screen {
|
|||||||
this.forwardLeftButton.setVisible(false);
|
this.forwardLeftButton.setVisible(false);
|
||||||
this.forwardRightButton.setVisible(false);
|
this.forwardRightButton.setVisible(false);
|
||||||
}
|
}
|
||||||
this.useButton.setVisible(client.player.getMainHandStack() != null && (client.player.getMainHandStack().getUseAction() != UseAction.NONE || client.player.getMainHandStack().getItem() instanceof ArmorItem) && !TouchUtils.hasInWorldUseAction(client.player.getMainHandStack()));
|
this.useButton.setVisible(client.player.getMainHandStack() != null && (client.player.getMainHandStack().getUseAction() != UseAction.NONE || client.player.getMainHandStack().getComponents().contains(DataComponentTypes.EQUIPPABLE)) && !TouchUtils.hasInWorldUseAction(client.player.getMainHandStack()));
|
||||||
this.updateJumpButtons();
|
this.updateJumpButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -359,10 +367,4 @@ public class TouchscreenOverlay extends Screen {
|
|||||||
}
|
}
|
||||||
return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY);
|
return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY);
|
||||||
}
|
}
|
||||||
@Override
|
|
||||||
public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
|
|
||||||
KeyBinding.onKeyPressed(InputUtil.fromKeyCode(keyCode, scanCode));
|
|
||||||
super.keyPressed(keyCode,scanCode,modifiers);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ public class InventoryUtil {
|
|||||||
|
|
||||||
if (closestSlot.isPresent() && client.player != null) {
|
if (closestSlot.isPresent() && client.player != null) {
|
||||||
var slot = closestSlot.get().getLeft();
|
var slot = closestSlot.get().getLeft();
|
||||||
if (slot.hasStack() || !client.player.getInventory().getMainHandStack().isEmpty()) {
|
if (slot.hasStack() || !client.player.getInventory().getSelectedStack().isEmpty()) {
|
||||||
int slotCenterXScaled = guiLeft + slot.x + 8;
|
int slotCenterXScaled = guiLeft + slot.x + 8;
|
||||||
int slotCenterYScaled = guiTop + slot.y + 8;
|
int slotCenterYScaled = guiTop + slot.y + 8;
|
||||||
int slotCenterX = (int) (slotCenterXScaled / ((double) client.getWindow().getScaledWidth() / (double) client.getWindow().getWidth()));
|
int slotCenterX = (int) (slotCenterXScaled / ((double) client.getWindow().getScaledWidth() / (double) client.getWindow().getWidth()));
|
||||||
|
|||||||
@@ -0,0 +1,239 @@
|
|||||||
|
{
|
||||||
|
"midnightcontrols.midnightconfig.title": "Pokročilá konfigurace MidnightControls",
|
||||||
|
"midnightcontrols.midnightconfig.enum.VirtualMouseSkin.DEFAULT_LIGHT": "Výchozí světlá",
|
||||||
|
"midnightcontrols.midnightconfig.enum.VirtualMouseSkin.DEFAULT_DARK": "Výchozí tmavá",
|
||||||
|
"midnightcontrols.midnightconfig.enum.VirtualMouseSkin.SECOND_LIGHT": "Druhá světlá",
|
||||||
|
"midnightcontrols.midnightconfig.enum.VirtualMouseSkin.SECOND_DARK": "Druhá tmavá",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControllerType.DEFAULT": "Výchozí",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControllerType.DUALSHOCK": "DualShock",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControllerType.DUALSENSE": "DualSense",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControllerType.SWITCH": "Switch/Wii ovladač",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControllerType.XBOX": "Xbox One/Series ovladač",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControllerType.XBOX_360": "Xbox 360 Controller",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControllerType.STEAM_CONTROLLER": "Steam Controller",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControllerType.STEAM_DECK": "Steam Deck",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControllerType.OUYA": "OUYA ovladač",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControllerType.NUMBERED": "Ovladač s číslicemi",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControlsMode.DEFAULT": "Klávesnice/Myš",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControlsMode.CONTROLLER": "Ovladač",
|
||||||
|
"midnightcontrols.midnightconfig.enum.ControlsMode.TOUCHSCREEN": "Dotyk (Beta)",
|
||||||
|
"midnightcontrols.midnightconfig.enum.HudSide.LEFT": "Levá",
|
||||||
|
"midnightcontrols.midnightconfig.enum.HudSide.RIGHT": "Pravá",
|
||||||
|
"midnightcontrols.midnightconfig.enum.TouchMode.CROSSHAIR": "Crosshair režim",
|
||||||
|
"midnightcontrols.midnightconfig.enum.TouchMode.FINGER_POS": "Pozice prstu",
|
||||||
|
"midnightcontrols.midnightconfig.enum.CameraMode.FLAT": "Plochá",
|
||||||
|
"midnightcontrols.midnightconfig.enum.CameraMode.ADAPTIVE": "Adaptivní",
|
||||||
|
"key.categories.midnightcontrols": "MidnightControls",
|
||||||
|
"key.midnightcontrols.look_down": "Podívat se dolů",
|
||||||
|
"key.midnightcontrols.look_left": "Podívat se doleva",
|
||||||
|
"key.midnightcontrols.look_right": "Podívat se doprava",
|
||||||
|
"key.midnightcontrols.look_up": "Podívat se nahoru",
|
||||||
|
"key.midnightcontrols.ring": "Otevřít ovládací kroužek",
|
||||||
|
"midnightcontrols.action.attack": "Útok",
|
||||||
|
"midnightcontrols.action.back": "Zpět",
|
||||||
|
"midnightcontrols.action.chat": "Otevřít chat",
|
||||||
|
"midnightcontrols.action.controls_ring": "Otevřít ovládací kroužek",
|
||||||
|
"midnightcontrols.action.debug_screen": "Otevřít debugovací HUD (F3)",
|
||||||
|
"midnightcontrols.action.drop_item": "Odhodit věc",
|
||||||
|
"midnightcontrols.action.drink": "Napít se",
|
||||||
|
"midnightcontrols.action.eat": "Najíst se",
|
||||||
|
"midnightcontrols.action.equip": "Vybavit se",
|
||||||
|
"midnightcontrols.action.exit": "Ukončit",
|
||||||
|
"midnightcontrols.action.forward": "Dopředu",
|
||||||
|
"midnightcontrols.action.hit": "Útok",
|
||||||
|
"midnightcontrols.action.hotbar_left": "Hotbar doleva",
|
||||||
|
"midnightcontrols.action.hotbar_right": "Hotbar doprava",
|
||||||
|
"midnightcontrols.action.inventory": "Inventář",
|
||||||
|
"midnightcontrols.action.jump": "Skok",
|
||||||
|
"midnightcontrols.action.left": "Doleva",
|
||||||
|
"midnightcontrols.action.pause_game": "Pozastavit hru",
|
||||||
|
"midnightcontrols.action.pick_block": "Vybrat blok",
|
||||||
|
"midnightcontrols.action.pickup": "Vzít",
|
||||||
|
"midnightcontrols.action.pickup_all": "Vzít vše",
|
||||||
|
"midnightcontrols.action.place": "Položit",
|
||||||
|
"midnightcontrols.action.player_list": "Seznam hráčů",
|
||||||
|
"midnightcontrols.action.quick_move": "Rychlý přesun",
|
||||||
|
"midnightcontrols.action.right": "Doprava",
|
||||||
|
"midnightcontrols.action.screenshot": "Vyfotit snímek obrazovky",
|
||||||
|
"midnightcontrols.action.slot_up": "Přesunout slot nahoru",
|
||||||
|
"midnightcontrols.action.slot_down": "Přesunout slot dolů",
|
||||||
|
"midnightcontrols.action.slot_left": "Přesunout slot doleva",
|
||||||
|
"midnightcontrols.action.slot_right": "Přesunout slot doprava",
|
||||||
|
"midnightcontrols.action.sneak": "Plížit se",
|
||||||
|
"midnightcontrols.action.sprint": "Sprintovat",
|
||||||
|
"midnightcontrols.action.swap_hands": "Vyměnit si ruce",
|
||||||
|
"midnightcontrols.action.toggle_perspective": "Změnit perspektivu",
|
||||||
|
"midnightcontrols.action.toggle_smooth_camera": "Nastavit kinematografickou kameru",
|
||||||
|
"midnightcontrols.action.page_back": "Předchozí stránka",
|
||||||
|
"midnightcontrols.action.page_next": "Následující stránka",
|
||||||
|
"midnightcontrols.action.tab_back": "Předchozí karta",
|
||||||
|
"midnightcontrols.action.tab_next": "Následující karta",
|
||||||
|
"midnightcontrols.action.take": "Vzít věc",
|
||||||
|
"midnightcontrols.action.take_all": "Vzít stack",
|
||||||
|
"midnightcontrols.action.use": "Použít",
|
||||||
|
"midnightcontrols.action.zoom": "Přiblížit",
|
||||||
|
"midnightcontrols.action.zoom_in": "Zvýšit přiblížení",
|
||||||
|
"midnightcontrols.action.zoom_out": "Snížit příblížení",
|
||||||
|
"midnightcontrols.action.zoom_reset": "Resetovat Přiblížení",
|
||||||
|
"midnightcontrols.action.emi_page_left": "Předchozí stránka",
|
||||||
|
"midnightcontrols.action.emi_page_right": "Následující stránka",
|
||||||
|
"midnightcontrols.category.emi": "EMI",
|
||||||
|
"midnightcontrols.button.a": "A",
|
||||||
|
"midnightcontrols.button.b": "B",
|
||||||
|
"midnightcontrols.button.x": "X",
|
||||||
|
"midnightcontrols.button.y": "Y",
|
||||||
|
"midnightcontrols.button.left_bumper": "Levý bumper",
|
||||||
|
"midnightcontrols.button.right_bumper": "Pravý bumper",
|
||||||
|
"midnightcontrols.button.back": "Zpět",
|
||||||
|
"midnightcontrols.button.start": "Start",
|
||||||
|
"midnightcontrols.button.guide": "Guide",
|
||||||
|
"midnightcontrols.button.left_thumb": "Levá páčka",
|
||||||
|
"midnightcontrols.button.right_thumb": "Pravá páčka",
|
||||||
|
"midnightcontrols.button.dpad_up": "DPAD nahoru",
|
||||||
|
"midnightcontrols.button.dpad_right": "DPAD doprava",
|
||||||
|
"midnightcontrols.button.dpad_down": "DPAD dolů",
|
||||||
|
"midnightcontrols.button.dpad_left": "DPAD doleva",
|
||||||
|
"midnightcontrols.button.l4": "L4",
|
||||||
|
"midnightcontrols.button.l5": "L5",
|
||||||
|
"midnightcontrols.button.r4": "R4",
|
||||||
|
"midnightcontrols.button.r5": "L5",
|
||||||
|
"midnightcontrols.axis.left_x+": "Levý X+",
|
||||||
|
"midnightcontrols.axis.left_y+": "Levý Y+",
|
||||||
|
"midnightcontrols.axis.right_x+": "Pravý X+",
|
||||||
|
"midnightcontrols.axis.right_y+": "Pravý Y+",
|
||||||
|
"midnightcontrols.axis.left_trigger": "Levý trigger",
|
||||||
|
"midnightcontrols.axis.right_trigger": "Pravý trigger",
|
||||||
|
"midnightcontrols.axis.left_x-": "Levý X-",
|
||||||
|
"midnightcontrols.axis.left_y-": "Levý Y-",
|
||||||
|
"midnightcontrols.axis.right_x-": "Pravý X-",
|
||||||
|
"midnightcontrols.axis.right_y-": "Pravý Y-",
|
||||||
|
"midnightcontrols.button.unknown": "Neznámý (%d)",
|
||||||
|
"midnightcontrols.controller.tutorial.title": "Hrajte hru s ovladačem!",
|
||||||
|
"midnightcontrols.controller.tutorial.description": "jděte do %s -> %s -> %s",
|
||||||
|
"midnightcontrols.controller.connected": "Ovladač %d připojen.",
|
||||||
|
"midnightcontrols.controller.disconnected": "Ovladač %d odpojen.",
|
||||||
|
"midnightcontrols.controller.mappings.1": "Chcete-li nakonfigurovat mapování ovladače, použijte %s",
|
||||||
|
"midnightcontrols.controller.mappings.3": "a vložte mapování do editoru souboru mapování.",
|
||||||
|
"midnightcontrols.controller.mappings.error": "Chyba při načítání mapování.",
|
||||||
|
"midnightcontrols.controller.mappings.error.write": "Chyba při zápisu mapování do souboru.",
|
||||||
|
"midnightcontrols.controller.mappings.updated": "Aktualizované mapování!",
|
||||||
|
"midnightcontrols.controller_type.default": "Výchozí",
|
||||||
|
"midnightcontrols.controller_type.dualshock": "DualShock",
|
||||||
|
"midnightcontrols.controller_type.dualsense": "DualSense",
|
||||||
|
"midnightcontrols.controller_type.switch": "Switch/Wii ovladač",
|
||||||
|
"midnightcontrols.controller_type.xbox": "Xbox One/Series ovladač",
|
||||||
|
"midnightcontrols.controller_type.xbox_360": "Xbox 360 ovladač",
|
||||||
|
"midnightcontrols.controller_type.steam_controller": "Steam ovladač",
|
||||||
|
"midnightcontrols.controller_type.steam_deck": "Steam Deck",
|
||||||
|
"midnightcontrols.controller_type.ouya": "OUYA ovladač",
|
||||||
|
"midnightcontrols.controller_type.numbered": "Ovladač s číslicemi",
|
||||||
|
"midnightcontrols.controls_mode.default": "Klávesnice/Myš",
|
||||||
|
"midnightcontrols.controls_mode.controller": "Ovladač",
|
||||||
|
"midnightcontrols.controls_mode.touchscreen": "Dotyk (Beta)",
|
||||||
|
"midnightcontrols.hud_side.LEFT": "Levý",
|
||||||
|
"midnightcontrols.hud_side.RIGHT": "Pravý",
|
||||||
|
"midnightcontrols.menu.analog_movement": "Analogový pohyb",
|
||||||
|
"midnightcontrols.menu.analog_movement.tooltip": "Pokud je to možné, umožňuje analogový pohyb.",
|
||||||
|
"midnightcontrols.menu.auto_switch_mode": "Režim automatického přepínání",
|
||||||
|
"midnightcontrols.menu.auto_switch_mode.tooltip": "Zda se má režim ovládání automaticky přepnout na ovladač, pokud je připojen.",
|
||||||
|
"midnightcontrols.menu.camera_mode": "Režim kamery",
|
||||||
|
"midnightcontrols.menu.controller": "Ovladač",
|
||||||
|
"midnightcontrols.menu.controller2": "Druhý ovladač",
|
||||||
|
"midnightcontrols.menu.controller2.tooltip": "Použije druhý ovladač, který umožňuje (například) podporu Joy-Conů.",
|
||||||
|
"midnightcontrols.menu.controller_toggle_sneak": "Přepnutí plížení na ovladači",
|
||||||
|
"midnightcontrols.menu.controller_toggle_sprint": "Přepnutí sprintování na ovladačí",
|
||||||
|
"midnightcontrols.menu.controller_type": "Typ ovladače",
|
||||||
|
"midnightcontrols.menu.controller_type.tooltip": "Typ používaného ovladače (potřebné pro zobrazení správných tlačítek).",
|
||||||
|
"midnightcontrols.menu.controls_mode": "Režim",
|
||||||
|
"midnightcontrols.menu.controls_mode.tooltip": "Režim ovládání.",
|
||||||
|
"midnightcontrols.menu.copy_controller_guid": "Zkopírovat GUID",
|
||||||
|
"midnightcontrols.menu.current_controller_guid": "GUID aktuálního ovladače: %s",
|
||||||
|
"midnightcontrols.menu.double_tap_to_sprint": "Dvojité klepnutí na sprintování",
|
||||||
|
"midnightcontrols.menu.double_tap_to_sprint.tooltip": "Přepíná, zda klávesa chůze vpřed při dvojitém rychlém poklepání umožní hráči sprintovat.",
|
||||||
|
"midnightcontrols.menu.fast_block_placing": "Rychlé pokládání bloků",
|
||||||
|
"midnightcontrols.menu.fast_block_placing.tooltip": "Při letu v kreativním režimu umožňuje rychlé pokládání bloků v závislosti na vaší rychlosti. §cNa některých serverech to může být považováno za podvádění§r.",
|
||||||
|
"midnightcontrols.menu.fly_drifting": "Fly Drifting",
|
||||||
|
"midnightcontrols.menu.fly_drifting.tooltip": "Za letu umožňuje Vanilla driftování/setrvačnost.",
|
||||||
|
"midnightcontrols.menu.fly_drifting_vertical": "Vertikální Fly Drifting",
|
||||||
|
"midnightcontrols.menu.fly_drifting_vertical.tooltip": "Za letu umožňuje Vanilla vertikální driftování/setrvačnost.",
|
||||||
|
"midnightcontrols.menu.hud_enable": "Zapnout HUD",
|
||||||
|
"midnightcontrols.menu.hud_enable.tooltip": "Přepíná indikátor tlačítek ovladače na obrazovce.",
|
||||||
|
"midnightcontrols.menu.hud_side": "Strana HUD",
|
||||||
|
"midnightcontrols.menu.hud_side.tooltip": "Pozice HUD.",
|
||||||
|
"midnightcontrols.menu.invert_right_x_axis": "Invertovat pravý X",
|
||||||
|
"midnightcontrols.menu.invert_right_y_axis": "Invertovat pravý Y",
|
||||||
|
"midnightcontrols.menu.joystick_as_mouse": "Vždy použít levou páčku jako myš",
|
||||||
|
"midnightcontrols.menu.joystick_as_mouse.tooltip": "V každém menu se páčka chová jako myš.",
|
||||||
|
"midnightcontrols.menu.eye_tracker_as_mouse": "Použití eye trackeru jako myši"
|
||||||
|
"midnightcontrols.menu.eye_tracker_as_mouse.tooltip": "Nahraďte myš zařízením pro sledování očí (například Tobii 5).",
|
||||||
|
"midnightcontrols.menu.eye_tracker_deadzone": "Velikost mrtvé zóny eye trackeru",
|
||||||
|
"midnightcontrols.menu.eye_tracker_deadzone.tooltip": "Zastaví pohyb kamery při pohledu do blízkosti crosshair",
|
||||||
|
"midnightcontrols.menu.keyboard_controls": "Ovládání klávesnice...",
|
||||||
|
"midnightcontrols.menu.left_dead_zone": "Mrtvá zóna levé páčky",
|
||||||
|
"midnightcontrols.menu.left_dead_zone.tooltip": "Mrtvá zóna levé analogové páčky ovladače.",
|
||||||
|
"midnightcontrols.menu.mappings.open_input_str": "Otevřít editor souborů mapování",
|
||||||
|
"midnightcontrols.menu.max_left_x_value": "Maximální hodnota levé osy X",
|
||||||
|
"midnightcontrols.menu.max_left_x_value.tooltip": "Změní hodnotu, kterou mod považuje za nejvyšší pro levou osu X. Užitečné, pokud osa nevyužívá celý rozsah a zdá se pomalá.",
|
||||||
|
"midnightcontrols.menu.max_left_y_value": "Maximální hodnota levé osy Y",
|
||||||
|
"midnightcontrols.menu.max_left_y_value.tooltip": "Změní hodnotu, kterou mod považuje za nejvyšší pro levou osu Y. Užitečné, pokud osa nevyužívá celý rozsah a zdá se pomalá.",
|
||||||
|
"midnightcontrols.menu.max_right_x_value": "Maximální hodnota pravé osy X",
|
||||||
|
"midnightcontrols.menu.max_right_x_value.tooltip": "Změní hodnotu, kterou mod považuje za nejvyšší pro pravou osu X. Užitečné, pokud osa nevyužívá celý rozsah a zdá se pomalá.",
|
||||||
|
"midnightcontrols.menu.max_right_y_value": "Maximální hodnota pravé osy Y",
|
||||||
|
"midnightcontrols.menu.max_right_y_value.tooltip": "Změní hodnotu, kterou mod považuje za nejvyšší pro pravou osu Y. Užitečné, pokud osa nevyužívá celý rozsah a zdá se pomalá.",
|
||||||
|
"midnightcontrols.menu.mouse_speed": "Rychlost myši",
|
||||||
|
"midnightcontrols.menu.mouse_speed.tooltip": "Rychlost emulované myši ovladače.",
|
||||||
|
"midnightcontrols.menu.move_chat": "Přesunutí vstupního pole chatu nahoru",
|
||||||
|
"midnightcontrols.menu.move_chat.tooltip": "Přesune pole pro zadávání chatu nahoru, aby se lépe zadávalo na zařízeních s klávesnicí na obrazovce.",
|
||||||
|
"midnightcontrols.menu.multiple_mapping_tip": "(Tip: Můžete také vložit více mapování najednou.)",
|
||||||
|
"midnightcontrols.menu.reacharound.horizontal": "Pokládání předního bloku",
|
||||||
|
"midnightcontrols.menu.reacharound.horizontal.tooltip": "Umožňuje umístění předního bloku, §ccož může být na některých serverech považováno za podvod.§r",
|
||||||
|
"midnightcontrols.menu.reacharound.vertical": "Vertikální dosah",
|
||||||
|
"midnightcontrols.menu.reacharound.vertical.tooltip": "Zapiná vertikální dosah, §ccož může být na některých serverech považováno za podvod.§r",
|
||||||
|
"midnightcontrols.menu.reload_controller_mappings": "Opětovné načíst mapování ovladače",
|
||||||
|
"midnightcontrols.menu.reload_controller_mappings.tooltip": "Znovu načte soubor mapování ovladače.",
|
||||||
|
"midnightcontrols.menu.right_dead_zone": "Mrtvá zóna pravé páčky",
|
||||||
|
"midnightcontrols.menu.right_dead_zone.tooltip": "Mrtvá zóna pravé analogové páčky ovladače.",
|
||||||
|
"midnightcontrols.menu.rotation_speed": "Rychlost otáčení osy X",
|
||||||
|
"midnightcontrols.menu.rotation_speed.tooltip": "Rychlost otáčení osy X v režimu ovladače.",
|
||||||
|
"midnightcontrols.menu.y_axis_rotation_speed": "Rychlost otáčení osy Y",
|
||||||
|
"midnightcontrols.menu.y_axis_rotation_speed.tooltip": "Rychlost otáčení osy Y v režimu ovladače.",
|
||||||
|
"midnightcontrols.menu.separate_controller_profile": "Samostatný profil ovladače",
|
||||||
|
"midnightcontrols.menu.separator.controller": "Ovladač",
|
||||||
|
"midnightcontrols.menu.separator.general": "Obecné",
|
||||||
|
"midnightcontrols.menu.title": "MidnightControls - Nastavení",
|
||||||
|
"midnightcontrols.menu.title.controller": "Nastavení ovladače",
|
||||||
|
"midnightcontrols.menu.title.controller_controls": "Vazby ovladače",
|
||||||
|
"midnightcontrols.menu.title.gameplay": "Herní možnosti",
|
||||||
|
"midnightcontrols.menu.title.general": "Obecné možnosti",
|
||||||
|
"midnightcontrols.menu.title.hud": "Možnosti HUD",
|
||||||
|
"midnightcontrols.menu.title.mappings.string": "Editor souborů mapování",
|
||||||
|
"midnightcontrols.menu.title.touch": "Možnosti dotyku",
|
||||||
|
"midnightcontrols.menu.title.visual": "Možnosti vzhledu",
|
||||||
|
"midnightcontrols.menu.touch_break_delay": "Zpoždění přerušení dotyku",
|
||||||
|
"midnightcontrols.menu.touch_speed": "Rychlost dotyku",
|
||||||
|
"midnightcontrols.menu.invert_touch": "Invertování směru dotyku",
|
||||||
|
"midnightcontrols.menu.touch_mode": "Režim dotykové interakce",
|
||||||
|
"midnightcontrols.menu.touch_transparency": "Průhlednost dotykového HUD",
|
||||||
|
"midnightcontrols.menu.touch_with_controller": "Dotyk v režimu ovladače",
|
||||||
|
"midnightcontrols.menu.unfocused_input": "Nezaostřený vstup",
|
||||||
|
"midnightcontrols.menu.unfocused_input.tooltip": "Umožňuje vstup do ovladače, když okno není zaostřené.",
|
||||||
|
"midnightcontrols.menu.virtual_mouse": "Virtuální myš",
|
||||||
|
"midnightcontrols.menu.virtual_mouse.tooltip": "Povoluje virtuální myš, která je užitečná při rozdělené obrazovce.",
|
||||||
|
"midnightcontrols.menu.virtual_mouse.skin": "Skin virtuální myši",
|
||||||
|
"midnightcontrols.menu.hide_cursor": "Skrytí normálního kurzoru myši",
|
||||||
|
"midnightcontrols.menu.hide_cursor.tooltip": "Skryje normální kurzor myši a ponechá viditelný pouze virtuální kurzor myši.",
|
||||||
|
"midnightcontrols.narrator.unbound": "Zrušení vazby na tlačítko %s",
|
||||||
|
"midnightcontrols.not_bound": "Není vázano",
|
||||||
|
"midnightcontrols.virtual_mouse.skin.default_light": "Výchozí světlá",
|
||||||
|
"midnightcontrols.virtual_mouse.skin.default_dark": "Výchozí tmavá",
|
||||||
|
"midnightcontrols.virtual_mouse.skin.second_light": "Druhá světlá",
|
||||||
|
"midnightcontrols.virtual_mouse.skin.second_dark": "Druhá tmavá",
|
||||||
|
"midnightcontrols.midnightconfig.category.controller": "Ovladač",
|
||||||
|
"midnightcontrols.midnightconfig.category.misc": "Různé",
|
||||||
|
"midnightcontrols.midnightconfig.category.screens": "Obrazovky",
|
||||||
|
"midnightcontrols.midnightconfig.category.gameplay": "Hra",
|
||||||
|
"midnightcontrols.midnightconfig.category.touch": "Dotyk",
|
||||||
|
"midnightcontrols.midnightconfig.category.visual": "Vizuál",
|
||||||
|
"modmenu.descriptionTranslation.midnightcontrols": "Přidává podporu ovladačů a celkově vylepšuje ovládání.\nPřevzato z LambdaControls, jehož vývoj byl ukončen."
|
||||||
|
}
|
||||||
|
|
||||||
@@ -13,6 +13,7 @@
|
|||||||
"GameOptionsScreenMixin",
|
"GameOptionsScreenMixin",
|
||||||
"GameRendererMixin",
|
"GameRendererMixin",
|
||||||
"HandledScreenMixin",
|
"HandledScreenMixin",
|
||||||
|
"InputAccessor",
|
||||||
"InputUtilMixin",
|
"InputUtilMixin",
|
||||||
"KeyBindingIDAccessor",
|
"KeyBindingIDAccessor",
|
||||||
"KeyBindingMixin",
|
"KeyBindingMixin",
|
||||||
@@ -25,7 +26,8 @@
|
|||||||
"ScreenMixin",
|
"ScreenMixin",
|
||||||
"AbstractSignEditScreenAccessor",
|
"AbstractSignEditScreenAccessor",
|
||||||
"TabNavigationWidgetAccessor",
|
"TabNavigationWidgetAccessor",
|
||||||
"WorldRendererMixin"
|
"WorldRendererMixin",
|
||||||
|
"AbstractBlockAccessor"
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
|
|||||||
@@ -2,32 +2,32 @@
|
|||||||
org.gradle.parallel=true
|
org.gradle.parallel=true
|
||||||
org.gradle.jvmargs=-Xmx2048M
|
org.gradle.jvmargs=-Xmx2048M
|
||||||
|
|
||||||
minecraft_version=1.21.4
|
minecraft_version=1.21.5
|
||||||
supported_versions=
|
supported_versions=
|
||||||
yarn_mappings=1.21.4+build.1
|
yarn_mappings=1.21.5+build.1
|
||||||
enabled_platforms=fabric,neoforge
|
enabled_platforms=fabric,neoforge
|
||||||
|
|
||||||
archives_base_name=midnightcontrols
|
archives_base_name=midnightcontrols
|
||||||
mod_version=1.10.5
|
mod_version=1.10.6
|
||||||
maven_group=eu.midnightdust
|
maven_group=eu.midnightdust
|
||||||
release_type=release
|
release_type=release
|
||||||
modrinth_id = bXX9h73M
|
modrinth_id = bXX9h73M
|
||||||
curseforge_id = 621768
|
curseforge_id = 621768
|
||||||
# Configure the IDs here after creating the projects on the websites
|
# Configure the IDs here after creating the projects on the websites
|
||||||
|
|
||||||
midnightlib_version=1.6.8+1.21.4
|
midnightlib_version=1.7.0+1.21.4
|
||||||
|
|
||||||
fabric_loader_version=0.16.9
|
fabric_loader_version=0.16.10
|
||||||
fabric_api_version=0.110.5+1.21.4
|
fabric_api_version=0.119.5+1.21.5
|
||||||
|
|
||||||
neoforge_version=21.4.9-beta
|
neoforge_version=21.5.2-beta
|
||||||
yarn_mappings_patch_neoforge_version = 1.21+build.4
|
yarn_mappings_patch_neoforge_version = 1.21+build.4
|
||||||
|
|
||||||
quilt_loader_version=0.19.0-beta.18
|
quilt_loader_version=0.19.0-beta.18
|
||||||
quilt_fabric_api_version=7.0.1+0.83.0-1.20
|
quilt_fabric_api_version=7.0.1+0.83.0-1.20
|
||||||
|
|
||||||
sodium_version=mc1.21-0.6.0-beta.1
|
sodium_version=mc1.21-0.6.0-beta.1
|
||||||
obsidianui_version=0.2.10+mc1.21.3
|
obsidianui_version=0.2.11+mc1.21.5
|
||||||
modmenu_version=10.0.0-beta.1
|
modmenu_version=10.0.0-beta.1
|
||||||
emotecraft_version=2.5.5+1.21.4-fabric
|
emotecraft_version=2.5.5+1.21.4-fabric
|
||||||
bendylib_version=2.0.+
|
bendylib_version=2.0.+
|
||||||
|
|||||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|||||||
10
gradlew
vendored
10
gradlew
vendored
@@ -15,6 +15,8 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
@@ -55,7 +57,7 @@
|
|||||||
# Darwin, MinGW, and NonStop.
|
# Darwin, MinGW, and NonStop.
|
||||||
#
|
#
|
||||||
# (3) This script is generated from the Groovy template
|
# (3) This script is generated from the Groovy template
|
||||||
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
# within the Gradle project.
|
# within the Gradle project.
|
||||||
#
|
#
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
@@ -84,7 +86,7 @@ done
|
|||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
APP_BASE_NAME=${0##*/}
|
APP_BASE_NAME=${0##*/}
|
||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD=maximum
|
MAX_FD=maximum
|
||||||
@@ -200,10 +202,10 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
DEFAULT_JVM_OPTS='-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Collect all arguments for the java command:
|
# Collect all arguments for the java command:
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
# and any embedded shellness will be escaped.
|
# and any embedded shellness will be escaped.
|
||||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
# treated as '${Hostname}' itself on the command line.
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
|||||||
24
gradlew.bat
vendored
24
gradlew.bat
vendored
@@ -13,6 +13,8 @@
|
|||||||
@rem See the License for the specific language governing permissions and
|
@rem See the License for the specific language governing permissions and
|
||||||
@rem limitations under the License.
|
@rem limitations under the License.
|
||||||
@rem
|
@rem
|
||||||
|
@rem SPDX-License-Identifier: Apache-2.0
|
||||||
|
@rem
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
@if "%DEBUG%"=="" @echo off
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
@@ -34,7 +36,7 @@ set APP_HOME=%DIRNAME%
|
|||||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
set DEFAULT_JVM_OPTS=-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"
|
||||||
|
|
||||||
@rem Find java.exe
|
@rem Find java.exe
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||||
@@ -43,11 +45,11 @@ set JAVA_EXE=java.exe
|
|||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation.
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
@@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation.
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user