VRIK locomotion fix upon unragdoll

This commit is contained in:
SDraw 2023-05-03 21:37:16 +03:00
parent 6c83ea6930
commit 3dceb85037
No known key found for this signature in database
GPG key ID: BB95B4DAB2BB8BB5
2 changed files with 10 additions and 8 deletions

View file

@ -1,10 +1,10 @@
using System.Reflection;
[assembly: AssemblyTitle("PlayerRagdollMod")]
[assembly: AssemblyVersion("1.0.3")]
[assembly: AssemblyFileVersion("1.0.3")]
[assembly: AssemblyVersion("1.0.4")]
[assembly: AssemblyFileVersion("1.0.4")]
[assembly: MelonLoader.MelonInfo(typeof(ml_prm.PlayerRagdollMod), "PlayerRagdollMod", "1.0.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonInfo(typeof(ml_prm.PlayerRagdollMod), "PlayerRagdollMod", "1.0.4", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPriority(2)]
[assembly: MelonLoader.MelonOptionalDependencies("BTKUILib")]

View file

@ -120,7 +120,7 @@ namespace ml_prm
if(m_avatarReady && !m_reachedGround)
m_reachedGround = MovementSystem.Instance.IsGrounded();
if(m_avatarReady && m_enabled && BodySystem.isCalibratedAsFullBody && !BodySystem.isCalibrating)
if(m_avatarReady && m_enabled && !BodySystem.isCalibrating)
BodySystem.TrackingPositionWeight = 0f;
if(m_avatarReady && m_enabled && Settings.AutoRecover)
@ -154,8 +154,7 @@ namespace ml_prm
{
if(!BodySystem.isCalibrating)
{
if(BodySystem.isCalibratedAsFullBody)
BodySystem.TrackingPositionWeight = 0f;
BodySystem.TrackingPositionWeight = 0f;
foreach(var l_link in m_boneLinks)
l_link.Item1.CopyGlobal(l_link.Item2);
@ -448,7 +447,7 @@ namespace ml_prm
MovementSystem.Instance.SetImmobilized(true);
PlayerSetup.Instance.animatorManager.SetAnimatorParameterTrigger("CancelEmote");
m_ragdolledParameter.SetValue(true);
if(BodySystem.isCalibratedAsFullBody)
if(!BodySystem.isCalibrating)
BodySystem.TrackingPositionWeight = 0f;
if(!Utils.IsWorldSafe())
@ -487,7 +486,7 @@ namespace ml_prm
{
MovementSystem.Instance.SetImmobilized(false);
m_ragdolledParameter.SetValue(false);
if(BodySystem.isCalibratedAsFullBody)
if(!BodySystem.isCalibrating)
BodySystem.TrackingPositionWeight = 1f;
m_puppetRoot.gameObject.SetActive(false);
@ -502,6 +501,9 @@ namespace ml_prm
foreach(Collider l_collider in m_colliders)
l_collider.enabled = false;
if(m_vrIK != null)
m_vrIK.solver.Reset();
m_lastPosition = PlayerSetup.Instance.transform.position;
m_velocity = Vector3.zero;
m_downTime = float.MinValue;