mirror of
https://github.com/hanetzer/sdraw_mods_cvr.git
synced 2025-09-03 10:29:22 +00:00
Fix of ragdolling with hips IK override option enabled
Hiding settings from UIExpansionKit
This commit is contained in:
parent
f983f2909c
commit
b36f1009d9
14 changed files with 61 additions and 23 deletions
10
README.md
10
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 |
|
| 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 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 |
|
| Avatar Motion Tweaker | ml_amt | 1.2.6 | Yes, update review | Working |
|
||||||
| Desktop Head Tracking | ml_dht | 1.1.2 | Yes | Working |
|
| Desktop Head Tracking | ml_dht | 1.1.3 | Yes, update review | Working |
|
||||||
| Desktop Reticle Switch | ml_drs | 1.0.0 | Yes | Working |
|
| Desktop Reticle Switch | ml_drs | 1.0.0 | Yes | Working |
|
||||||
| Extended Game Notifications | ml_egn | 1.0.2 | Yes, update review | 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
|
| 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 |
|
| Leap Motion Extension | ml_lme | 1.3.4 | Yes, update review | Working |
|
||||||
| Pickup Arm Movement | ml_pam | 1.0.2 | Yes| Working |
|
| Pickup Arm Movement | ml_pam | 1.0.3 | Yes, update review| Working |
|
||||||
| Player Ragdoll Mod | ml_prm | 1.0.0 | No, publish 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`
|
| Server Connection Info | ml_sci | 1.0.2 | Retired | Retired | Superseded by `Extended Game Notifications`
|
||||||
|
|
|
@ -87,6 +87,7 @@ namespace ml_amt
|
||||||
new HarmonyLib.HarmonyMethod(typeof(AvatarMotionTweaker).GetMethod(nameof(OnOverride_Postfix), BindingFlags.Static | BindingFlags.NonPublic))
|
new HarmonyLib.HarmonyMethod(typeof(AvatarMotionTweaker).GetMethod(nameof(OnOverride_Postfix), BindingFlags.Static | BindingFlags.NonPublic))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
ModSupporter.Init();
|
||||||
MelonLoader.MelonCoroutines.Start(WaitForLocalPlayer());
|
MelonLoader.MelonCoroutines.Start(WaitForLocalPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
32
ml_amt/ModSupporter.cs
Normal file
32
ml_amt/ModSupporter.cs
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -331,7 +331,7 @@ namespace ml_amt
|
||||||
}
|
}
|
||||||
|
|
||||||
bool l_solverActive = !Mathf.Approximately(m_vrIk.solver.IKPositionWeight, 0f);
|
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;
|
m_vrIk.solver.plantFeet = false;
|
||||||
IKSystem.VrikRootController.enabled = false;
|
IKSystem.VrikRootController.enabled = false;
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
[assembly: AssemblyTitle("AvatarMotionTweaker")]
|
[assembly: AssemblyTitle("AvatarMotionTweaker")]
|
||||||
[assembly: AssemblyVersion("1.2.5")]
|
[assembly: AssemblyVersion("1.2.6")]
|
||||||
[assembly: AssemblyFileVersion("1.2.5")]
|
[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.MelonGame(null, "ChilloutVR")]
|
||||||
|
[assembly: MelonLoader.MelonOptionalDependencies("ml_prm")]
|
||||||
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
|
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
|
||||||
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
|
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
|
|
@ -60,7 +60,7 @@ namespace ml_amt
|
||||||
|
|
||||||
internal static void Init()
|
internal static void Init()
|
||||||
{
|
{
|
||||||
ms_category = MelonLoader.MelonPreferences.CreateCategory("AMT");
|
ms_category = MelonLoader.MelonPreferences.CreateCategory("AMT", null, true);
|
||||||
|
|
||||||
ms_entries = new List<MelonLoader.MelonPreferences_Entry>()
|
ms_entries = new List<MelonLoader.MelonPreferences_Entry>()
|
||||||
{
|
{
|
||||||
|
|
|
@ -54,6 +54,10 @@
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<Private>False</Private>
|
<Private>False</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="ml_prm">
|
||||||
|
<HintPath>D:\Games\Steam\steamapps\common\ChilloutVR\Mods\ml_prm.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
@ -77,6 +81,7 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="AnimatorAnalyzer.cs" />
|
<Compile Include="AnimatorAnalyzer.cs" />
|
||||||
<Compile Include="AvatarParameter.cs" />
|
<Compile Include="AvatarParameter.cs" />
|
||||||
|
<Compile Include="ModSupporter.cs" />
|
||||||
<Compile Include="MotionTweaker.cs" />
|
<Compile Include="MotionTweaker.cs" />
|
||||||
<Compile Include="Main.cs" />
|
<Compile Include="Main.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
[assembly: AssemblyTitle("DesktopHeadTracking")]
|
[assembly: AssemblyTitle("DesktopHeadTracking")]
|
||||||
[assembly: AssemblyVersion("1.1.2")]
|
[assembly: AssemblyVersion("1.1.3")]
|
||||||
[assembly: AssemblyFileVersion("1.1.2")]
|
[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.MelonGame(null, "ChilloutVR")]
|
||||||
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
|
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
|
||||||
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
|
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
|
|
@ -39,7 +39,7 @@ namespace ml_dht
|
||||||
|
|
||||||
internal static void Init()
|
internal static void Init()
|
||||||
{
|
{
|
||||||
ms_category = MelonLoader.MelonPreferences.CreateCategory("DHT");
|
ms_category = MelonLoader.MelonPreferences.CreateCategory("DHT", null, true);
|
||||||
|
|
||||||
ms_entries = new List<MelonLoader.MelonPreferences_Entry>()
|
ms_entries = new List<MelonLoader.MelonPreferences_Entry>()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
[assembly: AssemblyTitle("LeapMotionExtension")]
|
[assembly: AssemblyTitle("LeapMotionExtension")]
|
||||||
[assembly: AssemblyVersion("1.3.3")]
|
[assembly: AssemblyVersion("1.3.4")]
|
||||||
[assembly: AssemblyFileVersion("1.3.3")]
|
[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.MelonGame(null, "ChilloutVR")]
|
||||||
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
|
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
|
||||||
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
|
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
|
||||||
|
|
|
@ -68,7 +68,7 @@ namespace ml_lme
|
||||||
|
|
||||||
internal static void Init()
|
internal static void Init()
|
||||||
{
|
{
|
||||||
ms_category = MelonLoader.MelonPreferences.CreateCategory("LME");
|
ms_category = MelonLoader.MelonPreferences.CreateCategory("LME", null, true);
|
||||||
|
|
||||||
ms_entries = new List<MelonLoader.MelonPreferences_Entry>()
|
ms_entries = new List<MelonLoader.MelonPreferences_Entry>()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
[assembly: AssemblyTitle("PickupArmMovement")]
|
[assembly: AssemblyTitle("PickupArmMovement")]
|
||||||
[assembly: AssemblyVersion("1.0.2")]
|
[assembly: AssemblyVersion("1.0.3")]
|
||||||
[assembly: AssemblyFileVersion("1.0.2")]
|
[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.MelonGame(null, "ChilloutVR")]
|
||||||
[assembly: MelonLoader.MelonPriority(1)]
|
[assembly: MelonLoader.MelonPriority(1)]
|
||||||
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
|
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace ml_pam
|
||||||
|
|
||||||
internal static void Init()
|
internal static void Init()
|
||||||
{
|
{
|
||||||
ms_category = MelonLoader.MelonPreferences.CreateCategory("PAM");
|
ms_category = MelonLoader.MelonPreferences.CreateCategory("PAM", null, true);
|
||||||
|
|
||||||
ms_entries = new List<MelonLoader.MelonPreferences_Entry>()
|
ms_entries = new List<MelonLoader.MelonPreferences_Entry>()
|
||||||
{
|
{
|
||||||
|
|
|
@ -53,7 +53,6 @@ Available methods:
|
||||||
* ```void SwitchRagdoll()```
|
* ```void SwitchRagdoll()```
|
||||||
|
|
||||||
# Notes
|
# Notes
|
||||||
* Slightly incompatible with `Follow hips on IK override` option in AvatarMotionTweaker.
|
|
||||||
* Not suggested to activate fly mode with enabled ragdoll state.
|
* 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):
|
* 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.
|
* Renaming avatar emote animations to not have default name or containing `Emote` substring.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue