diff --git a/README.md b/README.md index 0152fa5..8709f71 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,12 @@ Merged set of MelonLoader mods for ChilloutVR. | Full name | Short name | Latest version | Available in [CVRMA](https://github.com/knah/CVRMelonAssistant) | Current Status | Notes | |-----------|------------|----------------|-----------------------------------------------------------------|----------------|-------| | Avatar Change Info | ml_aci | 1.0.3 | Retired | Retired | Superseded by `Extended Game Notifications` -| Avatar Motion Tweaker | ml_amt | 1.2.5 | Yes, update review | Working | -| Desktop Head Tracking | ml_dht | 1.1.2 | Yes | Working | +| Avatar Motion Tweaker | ml_amt | 1.2.6 | Yes, update review | Working | +| Desktop Head Tracking | ml_dht | 1.1.3 | Yes, update review | Working | | Desktop Reticle Switch | ml_drs | 1.0.0 | Yes | Working | | Extended Game Notifications | ml_egn | 1.0.2 | Yes, update review | Working | Four Point Tracking | ml_fpt | 1.0.9 | Retired | Deprecated | In-game feature since 2022r170 update -| Leap Motion Extension | ml_lme | 1.3.3 | Yes | Working | -| Pickup Arm Movement | ml_pam | 1.0.2 | Yes| Working | -| Player Ragdoll Mod | ml_prm | 1.0.0 | No, publish review | Working | +| Leap Motion Extension | ml_lme | 1.3.4 | Yes, update review | Working | +| Pickup Arm Movement | ml_pam | 1.0.3 | Yes, update review| Working | +| Player Ragdoll Mod | ml_prm | 1.0.0 | Yes | Working | | Server Connection Info | ml_sci | 1.0.2 | Retired | Retired | Superseded by `Extended Game Notifications` diff --git a/ml_amt/Main.cs b/ml_amt/Main.cs index 2c0deab..c6ccd70 100644 --- a/ml_amt/Main.cs +++ b/ml_amt/Main.cs @@ -87,6 +87,7 @@ namespace ml_amt new HarmonyLib.HarmonyMethod(typeof(AvatarMotionTweaker).GetMethod(nameof(OnOverride_Postfix), BindingFlags.Static | BindingFlags.NonPublic)) ); + ModSupporter.Init(); MelonLoader.MelonCoroutines.Start(WaitForLocalPlayer()); } diff --git a/ml_amt/ModSupporter.cs b/ml_amt/ModSupporter.cs new file mode 100644 index 0000000..c5c2ed5 --- /dev/null +++ b/ml_amt/ModSupporter.cs @@ -0,0 +1,32 @@ +using System.Collections; +using System.Linq; + +namespace ml_amt +{ + static class ModSupporter + { + static bool ms_ragdollMod = false; + + public static void Init() + { + if(MelonLoader.MelonMod.RegisteredMelons.FirstOrDefault(m => m.Info.Name == "PlayerRagdollMod") != null) + MelonLoader.MelonCoroutines.Start(WaitForRagdollInstance()); + } + + // PlayerRagdollMod support + static IEnumerator WaitForRagdollInstance() + { + while(ml_prm.RagdollController.Instance == null) + yield return null; + + ms_ragdollMod = true; + } + static bool IsRagdolled() => ml_prm.RagdollController.Instance.IsRagdolled(); + public static bool SkipHipsOverride() + { + bool l_result = false; + l_result |= (ms_ragdollMod && IsRagdolled()); + return l_result; + } + } +} diff --git a/ml_amt/MotionTweaker.cs b/ml_amt/MotionTweaker.cs index 11e9ffb..f205fd2 100644 --- a/ml_amt/MotionTweaker.cs +++ b/ml_amt/MotionTweaker.cs @@ -331,7 +331,7 @@ namespace ml_amt } bool l_solverActive = !Mathf.Approximately(m_vrIk.solver.IKPositionWeight, 0f); - if(l_locomotionOverride && l_solverActive && m_followHips && (!m_moving || (m_poseState == PoseState.Proning)) && m_inVR && !BodySystem.isCalibratedAsFullBody) + if(l_locomotionOverride && l_solverActive && m_followHips && (!m_moving || (m_poseState == PoseState.Proning)) && m_inVR && !BodySystem.isCalibratedAsFullBody && !ModSupporter.SkipHipsOverride()) { m_vrIk.solver.plantFeet = false; IKSystem.VrikRootController.enabled = false; diff --git a/ml_amt/Properties/AssemblyInfo.cs b/ml_amt/Properties/AssemblyInfo.cs index ba6d274..e187bdd 100644 --- a/ml_amt/Properties/AssemblyInfo.cs +++ b/ml_amt/Properties/AssemblyInfo.cs @@ -1,10 +1,11 @@ using System.Reflection; [assembly: AssemblyTitle("AvatarMotionTweaker")] -[assembly: AssemblyVersion("1.2.5")] -[assembly: AssemblyFileVersion("1.2.5")] +[assembly: AssemblyVersion("1.2.6")] +[assembly: AssemblyFileVersion("1.2.6")] -[assembly: MelonLoader.MelonInfo(typeof(ml_amt.AvatarMotionTweaker), "AvatarMotionTweaker", "1.2.5", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] +[assembly: MelonLoader.MelonInfo(typeof(ml_amt.AvatarMotionTweaker), "AvatarMotionTweaker", "1.2.6", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")] +[assembly: MelonLoader.MelonOptionalDependencies("ml_prm")] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] \ No newline at end of file diff --git a/ml_amt/Settings.cs b/ml_amt/Settings.cs index 930a83d..6f60289 100644 --- a/ml_amt/Settings.cs +++ b/ml_amt/Settings.cs @@ -60,7 +60,7 @@ namespace ml_amt internal static void Init() { - ms_category = MelonLoader.MelonPreferences.CreateCategory("AMT"); + ms_category = MelonLoader.MelonPreferences.CreateCategory("AMT", null, true); ms_entries = new List() { diff --git a/ml_amt/ml_amt.csproj b/ml_amt/ml_amt.csproj index cd4e2bc..17bb8f2 100644 --- a/ml_amt/ml_amt.csproj +++ b/ml_amt/ml_amt.csproj @@ -54,6 +54,10 @@ False False + + D:\Games\Steam\steamapps\common\ChilloutVR\Mods\ml_prm.dll + False + @@ -77,6 +81,7 @@ + diff --git a/ml_dht/Properties/AssemblyInfo.cs b/ml_dht/Properties/AssemblyInfo.cs index 6ccf6ab..a434039 100644 --- a/ml_dht/Properties/AssemblyInfo.cs +++ b/ml_dht/Properties/AssemblyInfo.cs @@ -1,10 +1,10 @@ using System.Reflection; [assembly: AssemblyTitle("DesktopHeadTracking")] -[assembly: AssemblyVersion("1.1.2")] -[assembly: AssemblyFileVersion("1.1.2")] +[assembly: AssemblyVersion("1.1.3")] +[assembly: AssemblyFileVersion("1.1.3")] -[assembly: MelonLoader.MelonInfo(typeof(ml_dht.DesktopHeadTracking), "DesktopHeadTracking", "1.1.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] +[assembly: MelonLoader.MelonInfo(typeof(ml_dht.DesktopHeadTracking), "DesktopHeadTracking", "1.1.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 diff --git a/ml_dht/Settings.cs b/ml_dht/Settings.cs index 7251fed..dfaa33f 100644 --- a/ml_dht/Settings.cs +++ b/ml_dht/Settings.cs @@ -39,7 +39,7 @@ namespace ml_dht internal static void Init() { - ms_category = MelonLoader.MelonPreferences.CreateCategory("DHT"); + ms_category = MelonLoader.MelonPreferences.CreateCategory("DHT", null, true); ms_entries = new List() { diff --git a/ml_lme/Properties/AssemblyInfo.cs b/ml_lme/Properties/AssemblyInfo.cs index 2f6a005..892c296 100644 --- a/ml_lme/Properties/AssemblyInfo.cs +++ b/ml_lme/Properties/AssemblyInfo.cs @@ -1,10 +1,10 @@ using System.Reflection; [assembly: AssemblyTitle("LeapMotionExtension")] -[assembly: AssemblyVersion("1.3.3")] -[assembly: AssemblyFileVersion("1.3.3")] +[assembly: AssemblyVersion("1.3.4")] +[assembly: AssemblyFileVersion("1.3.4")] -[assembly: MelonLoader.MelonInfo(typeof(ml_lme.LeapMotionExtension), "LeapMotionExtension", "1.3.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] +[assembly: MelonLoader.MelonInfo(typeof(ml_lme.LeapMotionExtension), "LeapMotionExtension", "1.3.4", "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)] diff --git a/ml_lme/Settings.cs b/ml_lme/Settings.cs index a28ee48..56ff521 100644 --- a/ml_lme/Settings.cs +++ b/ml_lme/Settings.cs @@ -68,7 +68,7 @@ namespace ml_lme internal static void Init() { - ms_category = MelonLoader.MelonPreferences.CreateCategory("LME"); + ms_category = MelonLoader.MelonPreferences.CreateCategory("LME", null, true); ms_entries = new List() { diff --git a/ml_pam/Properties/AssemblyInfo.cs b/ml_pam/Properties/AssemblyInfo.cs index 54ba674..e7bee17 100644 --- a/ml_pam/Properties/AssemblyInfo.cs +++ b/ml_pam/Properties/AssemblyInfo.cs @@ -1,10 +1,10 @@ using System.Reflection; [assembly: AssemblyTitle("PickupArmMovement")] -[assembly: AssemblyVersion("1.0.2")] -[assembly: AssemblyFileVersion("1.0.2")] +[assembly: AssemblyVersion("1.0.3")] +[assembly: AssemblyFileVersion("1.0.3")] -[assembly: MelonLoader.MelonInfo(typeof(ml_pam.PickupArmMovement), "PickupArmMovement", "1.0.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] +[assembly: MelonLoader.MelonInfo(typeof(ml_pam.PickupArmMovement), "PickupArmMovement", "1.0.3", "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)] diff --git a/ml_pam/Settings.cs b/ml_pam/Settings.cs index 488f2df..433cdab 100644 --- a/ml_pam/Settings.cs +++ b/ml_pam/Settings.cs @@ -24,7 +24,7 @@ namespace ml_pam internal static void Init() { - ms_category = MelonLoader.MelonPreferences.CreateCategory("PAM"); + ms_category = MelonLoader.MelonPreferences.CreateCategory("PAM", null, true); ms_entries = new List() { diff --git a/ml_prm/README.md b/ml_prm/README.md index 515a371..4596181 100644 --- a/ml_prm/README.md +++ b/ml_prm/README.md @@ -53,7 +53,6 @@ Available methods: * ```void SwitchRagdoll()``` # Notes -* Slightly incompatible with `Follow hips on IK override` option in AvatarMotionTweaker. * Not suggested to activate fly mode with enabled ragdoll state. * If ragdoll state is enabled during emote, remote players see whole emote playing while local player sees ragdolling. It's tied to how game handles remote players, currently can be prevented with (choose one): * Renaming avatar emote animations to not have default name or containing `Emote` substring.