diff --git a/README.md b/README.md index f429a88..091d964 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Merged set of MelonLoader mods for ChilloutVR. | [Leap Motion Extension](/ml_lme/README.md)| ml_lme | 1.4.1 [:arrow_down:](../../releases/latest/download/ml_lme.dll)| ✔ Yes | | [Pickup Arm Movement](/ml_pam/README.md)| ml_pam | 1.0.6 [:arrow_down:](../../releases/latest/download/ml_pam.dll)| ✔ Yes | | [Player Movement Copycat](/ml_pmc/README.md)| ml_pmc | 1.0.2 [:arrow_down:](../../releases/latest/download/ml_pmc.dll)| ✔ Yes | -| [Player Ragdoll Mod](/ml_prm/README.md)| ml_prm | 1.0.8 [:arrow_down:](../../releases/latest/download/ml_prm.dll)| ✔ Yes | +| [Player Ragdoll Mod](/ml_prm/README.md)| ml_prm | 1.0.9 [:arrow_down:](../../releases/latest/download/ml_prm.dll)| ✔ Yes
:hourglass_flowing_sand: Update review | | [Game Main Fixes](/ml_gmf/README.md) | ml_gmf | 1.0.0 [:arrow_down:](../../releases/latest/download/ml_gmf.dll)| ❔ No | **Archived mods:** diff --git a/ml_amt/Main.cs b/ml_amt/Main.cs index 2d7aafe..eabc99f 100644 --- a/ml_amt/Main.cs +++ b/ml_amt/Main.cs @@ -41,9 +41,6 @@ namespace ml_amt new HarmonyLib.HarmonyMethod(typeof(AvatarMotionTweaker).GetMethod(nameof(OnPlayspaceScale_Postfix), BindingFlags.Static | BindingFlags.NonPublic)) ); - // Overhauls - Overhauls.JumpHeight.Init(HarmonyInstance); - ModSupporter.Init(); MelonLoader.MelonCoroutines.Start(WaitForLocalPlayer()); } diff --git a/ml_amt/Properties/AssemblyInfo.cs b/ml_amt/Properties/AssemblyInfo.cs index 9087be9..38903a2 100644 --- a/ml_amt/Properties/AssemblyInfo.cs +++ b/ml_amt/Properties/AssemblyInfo.cs @@ -2,4 +2,4 @@ [assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonOptionalDependencies("ml_prm", "ml_pmc")] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] -[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] \ No newline at end of file +[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] diff --git a/ml_amt/README.md b/ml_amt/README.md index 20149d3..b3186c7 100644 --- a/ml_amt/README.md +++ b/ml_amt/README.md @@ -21,9 +21,6 @@ Available mod's settings in `Settings - IK - Avatar Motion Tweaker`: * Note: Created as example for [propoused game feature](https://feedback.abinteractive.net/p/disabling-vr-ik-for-emotes-via-animator-state-tag-7b80d963-053a-41c0-86ac-e3d53c61c1e2). * **Adjusted locomotion mass center:** automatically changes IK locomotion center if avatar has toe bones; default value - `true`. * Note: Compatible with [DesktopVRIK](https://github.com/NotAKidOnSteam/DesktopVRIK) and [FuckToes](https://github.com/NotAKidOnSteam/FuckToes). -#### Fixes/overhauls options -* **Scaled locomotion jump:** scales locomotion jump according to relation between your player settings height and current avatar height (includes avatar scale); default value - `false`. - * Note: Disabled in worlds that don't allow flight. Available additional parameters for AAS animator: * **`Upright`:** defines linear coefficient between current viewpoint height and avatar's viewpoint height; float, range - [0.0, 1.0]. diff --git a/ml_amt/Settings.cs b/ml_amt/Settings.cs index dda2ac9..25ab756 100644 --- a/ml_amt/Settings.cs +++ b/ml_amt/Settings.cs @@ -1,5 +1,4 @@ using ABI_RC.Core.InteractionSystem; -using cohtml; using System; using System.Collections.Generic; @@ -15,7 +14,6 @@ namespace ml_amt IKOverrideJump, DetectEmotes, FollowHips, - ScaledJump, MassCenter }; @@ -26,7 +24,6 @@ namespace ml_amt public static bool DetectEmotes { get; private set; } = true; public static bool FollowHips { get; private set; } = true; public static bool MassCenter { get; private set; } = true; - public static bool ScaledJump { get; private set; } = false; static MelonLoader.MelonPreferences_Category ms_category = null; static List ms_entries = null; @@ -38,8 +35,6 @@ namespace ml_amt static public event Action DetectEmotesChange; static public event Action FollowHipsChange; static public event Action MassCenterChange; - static public event Action ScaledJumpChange; - static public event Action OverrideFixChange; internal static void Init() { @@ -53,7 +48,6 @@ namespace ml_amt ms_category.CreateEntry(ModSetting.IKOverrideJump.ToString(), IKOverrideJump), ms_category.CreateEntry(ModSetting.DetectEmotes.ToString(), DetectEmotes), ms_category.CreateEntry(ModSetting.FollowHips.ToString(), FollowHips), - ms_category.CreateEntry(ModSetting.ScaledJump.ToString(), ScaledJump), ms_category.CreateEntry(ModSetting.MassCenter.ToString(), MassCenter) }; @@ -64,7 +58,6 @@ namespace ml_amt DetectEmotes = (bool)ms_entries[(int)ModSetting.DetectEmotes].BoxedValue; FollowHips = (bool)ms_entries[(int)ModSetting.FollowHips].BoxedValue; MassCenter = (bool)ms_entries[(int)ModSetting.MassCenter].BoxedValue; - ScaledJump = (bool)ms_entries[(int)ModSetting.ScaledJump].BoxedValue; MelonLoader.MelonCoroutines.Start(WaitMainMenuUi()); } @@ -156,13 +149,6 @@ namespace ml_amt MassCenterChange?.Invoke(MassCenter); } break; - - case ModSetting.ScaledJump: - { - ScaledJump = bool.Parse(p_value); - ScaledJumpChange?.Invoke(ScaledJump); - } - break; } ms_entries[(int)l_setting].BoxedValue = bool.Parse(p_value); diff --git a/ml_amt/Utils.cs b/ml_amt/Utils.cs index 7b272f2..149f66a 100644 --- a/ml_amt/Utils.cs +++ b/ml_amt/Utils.cs @@ -21,13 +21,6 @@ namespace ml_amt public static bool HasToes(this IKSolverVR p_instance) => (bool)ms_hasToes.GetValue(p_instance); public static bool IsWorldSafe() => ((CVRWorld.Instance != null) && CVRWorld.Instance.allowFlying); - public static float GetWorldJumpHeight() - { - float l_result = 1f; - if(CVRWorld.Instance != null) - l_result = CVRWorld.Instance.jumpHeight; - return l_result; - } public static float GetWorldMovementLimit() { float l_result = 1f; diff --git a/ml_amt/resources/menu.js b/ml_amt/resources/menu.js index 5b15ac9..6df4b72 100644 --- a/ml_amt/resources/menu.js +++ b/ml_amt/resources/menu.js @@ -228,15 +228,6 @@ function inp_toggle_mod_amt(_obj, _callbackName) {
- -

Avatar independent game fixes/overhauls


- -
-
Scaled locomotion jump:
-
-
-
-
`; document.getElementById('settings-ik').appendChild(l_block); diff --git a/ml_drs/Properties/AssemblyInfo.cs b/ml_drs/Properties/AssemblyInfo.cs index b7b5255..627e372 100644 --- a/ml_drs/Properties/AssemblyInfo.cs +++ b/ml_drs/Properties/AssemblyInfo.cs @@ -1,6 +1,4 @@ -using System.Reflection; - -[assembly: MelonLoader.MelonInfo(typeof(ml_drs.DesktopReticleSwitch), "DesktopReticleSwitch", "1.0.1", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] +[assembly: MelonLoader.MelonInfo(typeof(ml_drs.DesktopReticleSwitch), "DesktopReticleSwitch", "1.0.1", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] -[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] \ No newline at end of file +[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] diff --git a/ml_egn/Properties/AssemblyInfo.cs b/ml_egn/Properties/AssemblyInfo.cs index 0e062d0..5b1b103 100644 --- a/ml_egn/Properties/AssemblyInfo.cs +++ b/ml_egn/Properties/AssemblyInfo.cs @@ -1,6 +1,4 @@ -using System.Reflection; - -[assembly: MelonLoader.MelonInfo(typeof(ml_egn.ExtendedGameNotifications), "ExtendedGameNotifications", "1.0.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] +[assembly: MelonLoader.MelonInfo(typeof(ml_egn.ExtendedGameNotifications), "ExtendedGameNotifications", "1.0.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] -[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] \ No newline at end of file +[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] diff --git a/ml_gmf/Properties/AssemblyInfo.cs b/ml_gmf/Properties/AssemblyInfo.cs index 090e44c..9fa7d85 100644 --- a/ml_gmf/Properties/AssemblyInfo.cs +++ b/ml_gmf/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ [assembly: MelonLoader.MelonInfo(typeof(ml_gmf.GameMainFixes), "GameMainFixes", "1.0.0", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] -[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] \ No newline at end of file +[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] diff --git a/ml_gmf/README.md b/ml_gmf/README.md index 5357f2b..54b323b 100644 --- a/ml_gmf/README.md +++ b/ml_gmf/README.md @@ -14,4 +14,4 @@ This mod fixes some issues that are present in game * Fix of animation replacement (chairs, etc.) that leads to broken avatar animator ([feedback post](https://feedback.abinteractive.net/p/gestures-getting-stuck-locally-upon-entering-vehicles-chairs)) # Notes -Some of fixes will be implemented natively in game after 2023r172ex3 +All these fixes are implemented natively in 2023r172ex4 build. diff --git a/ml_lme/DependenciesHandler.cs b/ml_lme/DependenciesHandler.cs index 0dd928b..dec1bdd 100644 --- a/ml_lme/DependenciesHandler.cs +++ b/ml_lme/DependenciesHandler.cs @@ -20,7 +20,7 @@ namespace ml_lme foreach(string l_library in ms_libraries) { - Stream l_libraryStream = l_assembly.GetManifestResourceStream(l_assemblyName + "." + l_library); + Stream l_libraryStream = l_assembly.GetManifestResourceStream(l_assemblyName + ".resources." + l_library); if(!File.Exists(l_library)) { diff --git a/ml_lme/ml_lme.csproj b/ml_lme/ml_lme.csproj index c872df0..53485ed 100644 --- a/ml_lme/ml_lme.csproj +++ b/ml_lme/ml_lme.csproj @@ -33,7 +33,7 @@ - LeapC.dll + resources/LeapC.dll diff --git a/ml_pam/Properties/AssemblyInfo.cs b/ml_pam/Properties/AssemblyInfo.cs index f44d90c..98b6c8a 100644 --- a/ml_pam/Properties/AssemblyInfo.cs +++ b/ml_pam/Properties/AssemblyInfo.cs @@ -1,7 +1,5 @@ -using System.Reflection; - -[assembly: MelonLoader.MelonInfo(typeof(ml_pam.PickupArmMovement), "PickupArmMovement", "1.0.6", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] +[assembly: MelonLoader.MelonInfo(typeof(ml_pam.PickupArmMovement), "PickupArmMovement", "1.0.6", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonPriority(1)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] -[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] \ No newline at end of file +[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] diff --git a/ml_pam/Utils.cs b/ml_pam/Utils.cs index fc1a2ab..a9131bb 100644 --- a/ml_pam/Utils.cs +++ b/ml_pam/Utils.cs @@ -6,12 +6,8 @@ namespace ml_pam { static class Utils { - static FieldInfo ms_cohtmlView = typeof(CohtmlControlledViewDisposable).GetField("_view", BindingFlags.NonPublic | BindingFlags.Instance); - public static bool IsInVR() => ((ABI_RC.Core.Savior.CheckVR.Instance != null) && ABI_RC.Core.Savior.CheckVR.Instance.hasVrDeviceLoaded); - public static void ExecuteScript(this CohtmlControlledViewDisposable p_instance, string p_script) => ((cohtml.Net.View)ms_cohtmlView.GetValue(p_instance))?.ExecuteScript(p_script); - // Extensions public static Matrix4x4 GetMatrix(this Transform p_transform, bool p_pos = true, bool p_rot = true, bool p_scl = false) { diff --git a/ml_pmc/Properties/AssemblyInfo.cs b/ml_pmc/Properties/AssemblyInfo.cs index 77e070e..13a64db 100644 --- a/ml_pmc/Properties/AssemblyInfo.cs +++ b/ml_pmc/Properties/AssemblyInfo.cs @@ -1,8 +1,6 @@ -using System.Reflection; - -[assembly: MelonLoader.MelonInfo(typeof(ml_pmc.PlayerMovementCopycat), "PlayerMovementCopycat", "1.0.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] +[assembly: MelonLoader.MelonInfo(typeof(ml_pmc.PlayerMovementCopycat), "PlayerMovementCopycat", "1.0.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonPriority(3)] [assembly: MelonLoader.MelonAdditionalDependencies("BTKUILib")] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] -[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] \ No newline at end of file +[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] diff --git a/ml_prm/Properties/AssemblyInfo.cs b/ml_prm/Properties/AssemblyInfo.cs index a38953e..4f802c3 100644 --- a/ml_prm/Properties/AssemblyInfo.cs +++ b/ml_prm/Properties/AssemblyInfo.cs @@ -1,7 +1,7 @@ -[assembly: MelonLoader.MelonInfo(typeof(ml_prm.PlayerRagdollMod), "PlayerRagdollMod", "1.0.8", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] +[assembly: MelonLoader.MelonInfo(typeof(ml_prm.PlayerRagdollMod), "PlayerRagdollMod", "1.0.9", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonPriority(2)] [assembly: MelonLoader.MelonOptionalDependencies("BTKUILib")] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] -[assembly: MelonLoader.MelonAdditionalCredits("kafeijao, NotAKidOnSteam")] \ No newline at end of file +[assembly: MelonLoader.MelonAdditionalCredits("kafeijao, NotAKidOnSteam")] diff --git a/ml_prm/README.md b/ml_prm/README.md index d9c649f..96c6aa3 100644 --- a/ml_prm/README.md +++ b/ml_prm/README.md @@ -34,6 +34,9 @@ Optional mod's settings page with [BTKUILib](https://github.com/BTK-Development/ * **Recover delay:** time delay for enabled `Auto recover` in seconds; `3.0` by default. * **Reset settings:** resets mod settings to default. +Optional mod's settings in [UIExpansionKit](https://github.com/ddakebono/ChilloutMods): +* **Hotkey:** system key that is used to switch ragdoll state; `R` by default. + Available additional parameters for AAS animator: * **`Ragdolled`:** defines current ragdoll state; boolean. * Note: Can be set as local-only (not synced) if starts with `#` character. diff --git a/ml_prm/RagdollController.cs b/ml_prm/RagdollController.cs index bc2a664..129a1ac 100644 --- a/ml_prm/RagdollController.cs +++ b/ml_prm/RagdollController.cs @@ -15,6 +15,8 @@ namespace ml_prm [DisallowMultipleComponent] public class RagdollController : MonoBehaviour { + const float c_defaultFriction = 0.6f; + public static RagdollController Instance { get; private set; } = null; VRIK m_vrIK = null; @@ -56,8 +58,8 @@ namespace ml_prm m_jointAnchors = new List>(); m_physicsMaterial = new PhysicMaterial("Ragdoll"); - m_physicsMaterial.dynamicFriction = 0.5f; - m_physicsMaterial.staticFriction = 0.5f; + m_physicsMaterial.dynamicFriction = c_defaultFriction; + m_physicsMaterial.staticFriction = c_defaultFriction; m_physicsMaterial.frictionCombine = PhysicMaterialCombine.Average; m_physicsMaterial.bounciness = 0f; m_physicsMaterial.bounceCombine = PhysicMaterialCombine.Average; @@ -145,7 +147,7 @@ namespace ml_prm if((m_customTrigger != null) && m_customTrigger.GetStateWithReset() && m_avatarReady && !m_enabled && Settings.PointersReaction) SwitchRagdoll(); - if(Settings.Hotkey && Input.GetKeyDown(KeyCode.R) && !ViewManager.Instance.isGameMenuOpen()) + if(Settings.Hotkey && Input.GetKeyDown(Settings.HotkeyKey) && !ViewManager.Instance.isGameMenuOpen()) SwitchRagdoll(); if(m_avatarReady && m_enabled && CVRInputManager.Instance.jump && Settings.JumpRecover) @@ -415,8 +417,8 @@ namespace ml_prm { bool l_slipperiness = (Settings.Slipperiness && Utils.IsWorldSafe()); bool l_bounciness = (Settings.Bounciness && Utils.IsWorldSafe()); - m_physicsMaterial.dynamicFriction = (l_slipperiness ? 0f : 0.5f); - m_physicsMaterial.staticFriction = (l_slipperiness ? 0f : 0.5f); + m_physicsMaterial.dynamicFriction = (l_slipperiness ? 0f : c_defaultFriction); + m_physicsMaterial.staticFriction = (l_slipperiness ? 0f : c_defaultFriction); m_physicsMaterial.frictionCombine = (l_slipperiness ? PhysicMaterialCombine.Minimum : PhysicMaterialCombine.Average); m_physicsMaterial.bounciness = (l_bounciness ? 1f : 0f); m_physicsMaterial.bounceCombine = (l_bounciness ? PhysicMaterialCombine.Maximum : PhysicMaterialCombine.Average); diff --git a/ml_prm/Settings.cs b/ml_prm/Settings.cs index e5d92f7..d4e8f1d 100644 --- a/ml_prm/Settings.cs +++ b/ml_prm/Settings.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; using UnityEngine; namespace ml_prm @@ -10,6 +9,7 @@ namespace ml_prm public enum ModSetting { Hotkey = 0, + HotkeyKey, VelocityMultiplier, MovementDrag, AngularDrag, @@ -26,6 +26,7 @@ namespace ml_prm } public static bool Hotkey { get; private set; } = true; + public static KeyCode HotkeyKey { get; private set; } = KeyCode.R; public static float VelocityMultiplier { get; private set; } = 2f; public static float MovementDrag { get; private set; } = 2f; public static float AngularDrag { get; private set; } = 2f; @@ -41,6 +42,7 @@ namespace ml_prm public static bool JumpRecover { get; private set; } = false; static public event Action HotkeyChange; + static public event Action HotkeyKeyChange; static public event Action VelocityMultiplierChange; static public event Action MovementDragChange; static public event Action AngularDragChange; @@ -60,26 +62,31 @@ namespace ml_prm internal static void Init() { - ms_category = MelonLoader.MelonPreferences.CreateCategory("PRM", null, true); + ms_category = MelonLoader.MelonPreferences.CreateCategory("PRM", "Player Ragdoll Mod"); + ms_entries = new List() { - ms_category.CreateEntry(ModSetting.Hotkey.ToString(), Hotkey), - ms_category.CreateEntry(ModSetting.VelocityMultiplier.ToString(), VelocityMultiplier), - ms_category.CreateEntry(ModSetting.MovementDrag.ToString(), MovementDrag), - ms_category.CreateEntry(ModSetting.AngularDrag.ToString(), AngularDrag), - ms_category.CreateEntry(ModSetting.Gravity.ToString(), Gravity), - ms_category.CreateEntry(ModSetting.PointersReaction.ToString(), PointersReaction), - ms_category.CreateEntry(ModSetting.IgnoreLocal.ToString(), IgnoreLocal), - ms_category.CreateEntry(ModSetting.CombatReaction.ToString(), CombatReaction), - ms_category.CreateEntry(ModSetting.AutoRecover.ToString(), AutoRecover), - ms_category.CreateEntry(ModSetting.RecoverDelay.ToString(), RecoverDelay), - ms_category.CreateEntry(ModSetting.Slipperiness.ToString(), Slipperiness), - ms_category.CreateEntry(ModSetting.Bounciness.ToString(), Bounciness), - ms_category.CreateEntry(ModSetting.ViewVelocity.ToString(), ViewVelocity), - ms_category.CreateEntry(ModSetting.JumpRecover.ToString(), JumpRecover) + ms_category.CreateEntry(ModSetting.Hotkey.ToString(), Hotkey, null, null, true), + ms_category.CreateEntry(ModSetting.HotkeyKey.ToString(), HotkeyKey, "Hotkey"), + ms_category.CreateEntry(ModSetting.VelocityMultiplier.ToString(), VelocityMultiplier, null, null, true), + ms_category.CreateEntry(ModSetting.MovementDrag.ToString(), MovementDrag, null, null, true), + ms_category.CreateEntry(ModSetting.AngularDrag.ToString(), AngularDrag, null, null, true), + ms_category.CreateEntry(ModSetting.Gravity.ToString(), Gravity, null, null, true), + ms_category.CreateEntry(ModSetting.PointersReaction.ToString(), PointersReaction, null, null, true), + ms_category.CreateEntry(ModSetting.IgnoreLocal.ToString(), IgnoreLocal, null, null, true), + ms_category.CreateEntry(ModSetting.CombatReaction.ToString(), CombatReaction, null, null, true), + ms_category.CreateEntry(ModSetting.AutoRecover.ToString(), AutoRecover, null, null, true), + ms_category.CreateEntry(ModSetting.RecoverDelay.ToString(), RecoverDelay, null, null, true), + ms_category.CreateEntry(ModSetting.Slipperiness.ToString(), Slipperiness, null, null, true), + ms_category.CreateEntry(ModSetting.Bounciness.ToString(), Bounciness, null, null, true), + ms_category.CreateEntry(ModSetting.ViewVelocity.ToString(), ViewVelocity, null, null, true), + ms_category.CreateEntry(ModSetting.JumpRecover.ToString(), JumpRecover, null, null, true) }; + ms_entries[(int)ModSetting.HotkeyKey].OnEntryValueChangedUntyped.Subscribe(OnMelonSettingSave_HotkeyKey); + Hotkey = (bool)ms_entries[(int)ModSetting.Hotkey].BoxedValue; + HotkeyKey = (KeyCode)ms_entries[(int)ModSetting.HotkeyKey].BoxedValue; VelocityMultiplier = Mathf.Clamp((float)ms_entries[(int)ModSetting.VelocityMultiplier].BoxedValue, 1f, 50f); MovementDrag = Mathf.Clamp((float)ms_entries[(int)ModSetting.MovementDrag].BoxedValue, 0f, 50f); AngularDrag = Mathf.Clamp((float)ms_entries[(int)ModSetting.AngularDrag].BoxedValue, 0f, 50f); @@ -95,6 +102,15 @@ namespace ml_prm JumpRecover = (bool)ms_entries[(int)ModSetting.JumpRecover].BoxedValue; } + static void OnMelonSettingSave_HotkeyKey(object p_oldValue, object p_newValue) + { + if(p_newValue is KeyCode) + { + HotkeyKey = (KeyCode)p_newValue; + HotkeyKeyChange?.Invoke(HotkeyKey); + } + } + public static void SetSetting(ModSetting p_settings, object p_value) { switch(p_settings) diff --git a/ml_prm/ml_prm.csproj b/ml_prm/ml_prm.csproj index ffb3458..f850914 100644 --- a/ml_prm/ml_prm.csproj +++ b/ml_prm/ml_prm.csproj @@ -4,7 +4,7 @@ netstandard2.1 x64 PlayerRagdollMod - 1.0.8 + 1.0.9 SDraw None PlayerRagdollMod