Stuck falling state fix

This commit is contained in:
SDraw 2024-01-28 14:37:07 +03:00
parent 56686834d0
commit e84bbacb8d
No known key found for this signature in database
GPG key ID: BB95B4DAB2BB8BB5

View file

@ -43,6 +43,7 @@ namespace ml_prm
Vector3 m_lastPosition = Vector3.zero; Vector3 m_lastPosition = Vector3.zero;
Vector3 m_velocity = Vector3.zero; Vector3 m_velocity = Vector3.zero;
Vector3 m_ragdollLastPos = Vector3.zero; Vector3 m_ragdollLastPos = Vector3.zero;
bool m_wasSwimming = false;
RagdollToggle m_avatarRagdollToggle = null; RagdollToggle m_avatarRagdollToggle = null;
RagdollTrigger m_ragdollTrigger = null; RagdollTrigger m_ragdollTrigger = null;
@ -277,6 +278,7 @@ namespace ml_prm
m_puppetRoot.localScale = Vector3.one; m_puppetRoot.localScale = Vector3.one;
m_inAir = false; m_inAir = false;
m_inAirDistance = 0f; m_inAirDistance = 0f;
m_wasSwimming = false;
} }
internal void OnAvatarSetup() internal void OnAvatarSetup()
@ -608,6 +610,8 @@ namespace ml_prm
{ {
if(CanRagdoll()) if(CanRagdoll())
{ {
m_wasSwimming = BetterBetterCharacterController.Instance.IsSwimming();
if(BetterBetterCharacterController.Instance.IsFlying()) if(BetterBetterCharacterController.Instance.IsFlying())
BetterBetterCharacterController.Instance.ChangeFlight(false,true); BetterBetterCharacterController.Instance.ChangeFlight(false,true);
BetterBetterCharacterController.Instance.SetImmobilized(true); BetterBetterCharacterController.Instance.SetImmobilized(true);
@ -690,6 +694,10 @@ namespace ml_prm
OnMovementDragChange(Settings.MovementDrag); OnMovementDragChange(Settings.MovementDrag);
OnAngularDragChange(Settings.AngularDrag); OnAngularDragChange(Settings.AngularDrag);
// Restore movement if was ragdolled in water and left it
if(m_wasSwimming)
BetterBetterCharacterController.Instance.SetMovementMode(EasyCharacterMovement.MovementMode.Swimming);
m_enabled = false; m_enabled = false;
} }
} }