From 71200908a048ac3d24f3695153f8ae7c0c3e4a1b Mon Sep 17 00:00:00 2001 From: fayer3 Date: Sat, 17 Feb 2024 22:11:14 +0100 Subject: [PATCH] add override, to keep roomscale jump always active --- .../client_vr/gameplay/trackers/JumpTracker.java | 9 ++++++--- .../org/vivecraft/client_vr/settings/VRSettings.java | 8 +++++++- .../src/main/resources/assets/vivecraft/lang/de_de.json | 6 ++++-- .../src/main/resources/assets/vivecraft/lang/en_us.json | 3 ++- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/common/src/main/java/org/vivecraft/client_vr/gameplay/trackers/JumpTracker.java b/common/src/main/java/org/vivecraft/client_vr/gameplay/trackers/JumpTracker.java index 978020270..19093e3d2 100644 --- a/common/src/main/java/org/vivecraft/client_vr/gameplay/trackers/JumpTracker.java +++ b/common/src/main/java/org/vivecraft/client_vr/gameplay/trackers/JumpTracker.java @@ -13,6 +13,7 @@ import org.vivecraft.client_vr.extensions.PlayerExtension; import org.vivecraft.client_vr.gameplay.VRPlayer; import org.vivecraft.client_vr.settings.AutoCalibration; +import org.vivecraft.client_vr.settings.VRSettings; public class JumpTracker extends Tracker { public Vec3[] latchStart = new Vec3[]{new Vec3(0.0D, 0.0D, 0.0D), new Vec3(0.0D, 0.0D, 0.0D)}; @@ -38,7 +39,7 @@ public boolean isActive(LocalPlayer p) { return false; } else if (!ClientDataHolderVR.getInstance().vrPlayer.getFreeMove() && !ClientDataHolderVR.getInstance().vrSettings.simulateFalling) { return false; - } else if (!ClientDataHolderVR.getInstance().vrSettings.realisticJumpEnabled) { + } else if (ClientDataHolderVR.getInstance().vrSettings.realisticJumpEnabled == VRSettings.RealisticJump.OFF) { return false; } else if (p != null && p.isAlive()) { if (this.mc.gameMode == null) { @@ -67,7 +68,8 @@ public void reset(LocalPlayer player) { } public void doProcess(LocalPlayer player) { - if (this.isClimbeyJumpEquipped()) { + boolean climbeyEquipped = this.isClimbeyJumpEquipped(); + if (climbeyEquipped) { VRPlayer vrplayer = this.dh.vrPlayer; boolean[] aboolean = new boolean[2]; @@ -155,7 +157,8 @@ public void doProcess(LocalPlayer player) { Vec3 vec36 = this.latchStartOrigin[0].subtract(this.latchStartPlayer[0]).add(this.mc.player.position()).subtract(vec33); this.dh.vrPlayer.setRoomOrigin(vec36.x, vec36.y, vec36.z, false); } - } else if (this.dh.vr.hmdPivotHistory.netMovement(0.25D).y > 0.1D && this.dh.vr.hmdPivotHistory.latest().y - (double) AutoCalibration.getPlayerHeight() > (double) this.dh.vrSettings.jumpThreshold) { + } + if ((!climbeyEquipped || ClientDataHolderVR.getInstance().vrSettings.realisticJumpEnabled == VRSettings.RealisticJump.ON) && this.dh.vr.hmdPivotHistory.netMovement(0.25D).y > 0.1D && this.dh.vr.hmdPivotHistory.latest().y - (double) AutoCalibration.getPlayerHeight() > (double) this.dh.vrSettings.jumpThreshold) { player.jumpFromGround(); } } diff --git a/common/src/main/java/org/vivecraft/client_vr/settings/VRSettings.java b/common/src/main/java/org/vivecraft/client_vr/settings/VRSettings.java index f6c0debca..37f137fb7 100644 --- a/common/src/main/java/org/vivecraft/client_vr/settings/VRSettings.java +++ b/common/src/main/java/org/vivecraft/client_vr/settings/VRSettings.java @@ -110,6 +110,12 @@ public enum FreeMove implements OptionEnum { AUTO // only for flying } + public enum RealisticJump implements OptionEnum { + OFF, + ON, + AUTO + } + public enum MenuWorld implements OptionEnum { BOTH, CUSTOM, @@ -251,7 +257,7 @@ public enum UpdateType implements OptionEnum { @SettingField public float crawlThreshold = 0.82f; @SettingField(VrOptions.REALISTIC_JUMP) - public boolean realisticJumpEnabled = true; + public RealisticJump realisticJumpEnabled = RealisticJump.AUTO; @SettingField(VrOptions.REALISTIC_SNEAK) public boolean realisticSneakEnabled = true; @SettingField(VrOptions.REALISTIC_CLIMB) diff --git a/common/src/main/resources/assets/vivecraft/lang/de_de.json b/common/src/main/resources/assets/vivecraft/lang/de_de.json index 6cc9a44d5..475c3cc06 100644 --- a/common/src/main/resources/assets/vivecraft/lang/de_de.json +++ b/common/src/main/resources/assets/vivecraft/lang/de_de.json @@ -237,7 +237,7 @@ "vivecraft.options.RENDER_SCALEFACTOR.tooltip": "Die interne Rendering-Skala des Spiels, relativ zum nativen HMD-Display. Höhere Werte verbessern die visuelle Qualität auf Kosten der Leistung.", "vivecraft.options.MONO_FOV.tooltip": "Das für den unverzerrten Spiegelmodus verwendete FOV.", "vivecraft.options.MIRROR_CENTER_SMOOTH.tooltip": "Glättet die Position und Richtung des Headsets für die Spiegel Darstellung über die angegebene Zeit. Reduziert abrupte Änderungen und zittern.", - "vivecraft.options.REALISTIC_JUMP.tooltip": "Wenn eingeschaltet, springt Ihr Spieler sobald Sie im wirklichen Leben springen. Aktiviert auch Jump Boots.", + "vivecraft.options.REALISTIC_JUMP.tooltip": "Wenn eingeschaltet, springt Ihr Spieler sobald Sie im wirklichen Leben springen. Aktiviert auch die Sprung-Schuhe.\nAutomatisch deaktiviert das Springen wenn die Sprung-Schuhe ausgerüstet sind, um versehentliches springen zu verhindern.", "vivecraft.options.REALISTIC_SNEAK.tooltip": "Wenn eingeschaltet , wird sich Ihr Spieler sobald Sie sich im wirklichen Leben ducken, auch schleichen.", "vivecraft.options.PHYSICAL_GUI.tooltip": "Wenn sie eingeschaltet ist, werden GUIs durch interaktionsfähige 3D-Modelle ersetzt.\nWenn die Rucksackverfolgung aktiviert ist, bringt ein Griff auf den Rücken den Inventarbeutel zum Vorschein.", "vivecraft.options.REALISTIC_CLIMB.tooltip": "Wenn eingeschaltet, erlauben Sie das Besteigen von Leitern und Ranken, indem Sie diese berühren. Ermöglicht auch das Besteigen von Krallen.", @@ -414,6 +414,7 @@ "vivecraft.options.shaderguirender.aftershader": "Nach Shader", "vivecraft.options.shaderguirender.aftertranslucent": "Transparent", "vivecraft.options.shaderguirender.beforetranslucentsolid": "Undurchsichtig", + "vivecraft.options.freemove.auto": "Automatisch", "vivecraft.options.chatserverpluginmessage.always": "Immer", "vivecraft.options.chatserverpluginmessage.serveronly": "Nur Server", "vivecraft.options.chatserverpluginmessage.never": "Nie", @@ -425,6 +426,7 @@ "vivecraft.options.menuworldfallback.panorama": "Panorama", "vivecraft.options.vrprovider.openvr": "OpenVR/SteamVR", "vivecraft.options.vrprovider.nullvr": "NullVR", + "vivecraft.options.realisticjump.auto": "Automatisch", "_comment_m5": "Option names", "vivecraft.options.LOW_HEALTH_INDICATOR": "Gesundheit Indikator", "vivecraft.options.SHADER_GUI_RENDER": "Shader GUI", @@ -456,7 +458,7 @@ "vivecraft.options.VR_ENABLED.tooltip": "wechsle zwischen VR/NONVR", "vivecraft.options.VR_REMEMBER_ENABLED.tooltip": "Aktiviert VR beim starten des Spiels, wenn es das letzte mal aktiv war.", "vivecraft.options.VR_PLUGIN.tooltip": "Welches VR Plugin genutzt werden soll:\n OpenVR: Benützt SteamVR als Backend.\n NullVR: Benützt keine VR Api und lässt das Spiel im VR Modus laufen ohne Headset.", - "vivecraft.options.FREEMOVE_FLY_MODE.tooltip": "Die Quelle für die Frei Bewegen-Richtung im Flugmodus.\n\n Auto: Verwendet die gleiche richtung wie das normale Frei Bewegen.\n Controller: Richtung des nicht dominanten Controllers.\n HMD: Blickrichtung des Headsets.", + "vivecraft.options.FREEMOVE_FLY_MODE.tooltip": "Die Quelle für die Frei Bewegen-Richtung im Flugmodus.\n\n Automatisch: Verwendet die gleiche richtung wie das normale Frei Bewegen.\n Controller: Richtung des nicht dominanten Controllers.\n HMD: Blickrichtung des Headsets.", "vivecraft.options.SHOW_UPDATES.tooltip": "Wie oft eine Update Nachricht im Chat gezeigt werden soll.\n Immer: zeigt die Nachricht immer, wenn eine Welt geladen wird.\n Einmal: Zeigt die Nachricht einmal, wenn ein neues Update verfügbar ist.", "vivecraft.options.SHOW_PLUGIN.tooltip": "Wann die \"Server Mod erkannt\" Nachricht im Chat gezeigt werden soll.\n Immer: Zeigt die Nachricht in Einzel/Mehrspieler.\n Nur Server: Zeigt die Nachricht nur im Mehrspieler.\n Nie: Zeigt die Nachricht niemals.", "vivecraft.options.UPDATE_TYPE.tooltip": "Gibt an, welche Updates eine Benachrichtigung verursachen.", diff --git a/common/src/main/resources/assets/vivecraft/lang/en_us.json b/common/src/main/resources/assets/vivecraft/lang/en_us.json index 909de8089..5b1cb1b86 100644 --- a/common/src/main/resources/assets/vivecraft/lang/en_us.json +++ b/common/src/main/resources/assets/vivecraft/lang/en_us.json @@ -236,7 +236,7 @@ "vivecraft.options.RENDER_SCALEFACTOR.tooltip": "The internal rendering scale of the game, relative to the native HMD display. Higher values improve visual quality at the cost of performance.", "vivecraft.options.MONO_FOV.tooltip": "The FOV used for the undistorted mirror mode.", "vivecraft.options.MIRROR_CENTER_SMOOTH.tooltip": "Smooths the HMD position and rotation for the mirror over the given time. Reduces sudden changes and jitter.", - "vivecraft.options.REALISTIC_JUMP.tooltip": "If turned on, once you jump in real life your player will also jump. Also enables Jump Boots.", + "vivecraft.options.REALISTIC_JUMP.tooltip": "If turned on, once you jump in real life your player will also jump. Also enables Jump Boots.\nAuto disables jumping when Jump Boots are equipped, to prevent accidental jumps.", "vivecraft.options.REALISTIC_SNEAK.tooltip": "If turned on, once you duck in real life your player will also sneak.", "vivecraft.options.PHYSICAL_GUI.tooltip": "If turned on, GUIs will be replaced with 3d interactable models.\nIf Backpack tracking is enabled, reaching on your back will bring out your inventory bag.", "vivecraft.options.REALISTIC_CLIMB.tooltip": "If turned on, allow climbing ladders and vines by touching them. Also enables Climb Claws.", @@ -428,6 +428,7 @@ "vivecraft.options.menuworldfallback.panorama": "Panorama", "vivecraft.options.vrprovider.openvr": "OpenVR/SteamVR", "vivecraft.options.vrprovider.nullvr": "NullVR", + "vivecraft.options.realisticjump.auto": "Auto", "_comment_m5": "Option names", "vivecraft.options.LOW_HEALTH_INDICATOR": "Health Indicator", "vivecraft.options.SHADER_GUI_RENDER": "Shaders GUI",