diff --git a/ml_amt/MotionTweaker.cs b/ml_amt/MotionTweaker.cs index 9c01ef5..cc881c6 100644 --- a/ml_amt/MotionTweaker.cs +++ b/ml_amt/MotionTweaker.cs @@ -114,17 +114,17 @@ namespace ml_amt { Utils.SetAvatarTPose(); - m_vrIk = PlayerSetup.Instance._avatar.GetComponent(); - m_avatarScale = Mathf.Abs(PlayerSetup.Instance._avatar.transform.localScale.y); + m_vrIk = PlayerSetup.Instance.AvatarObject.GetComponent(); + m_avatarScale = Mathf.Abs(PlayerSetup.Instance.AvatarTransform.localScale.y); // Parse animator parameters - m_parameters.Add(new AvatarParameter(AvatarParameter.ParameterType.Moving, PlayerSetup.Instance.animatorManager)); - m_parameters.Add(new AvatarParameter(AvatarParameter.ParameterType.MovementSpeed, PlayerSetup.Instance.animatorManager)); - m_parameters.Add(new AvatarParameter(AvatarParameter.ParameterType.Velocity, PlayerSetup.Instance.animatorManager)); + m_parameters.Add(new AvatarParameter(AvatarParameter.ParameterType.Moving, PlayerSetup.Instance.AnimatorManager)); + m_parameters.Add(new AvatarParameter(AvatarParameter.ParameterType.MovementSpeed, PlayerSetup.Instance.AnimatorManager)); + m_parameters.Add(new AvatarParameter(AvatarParameter.ParameterType.Velocity, PlayerSetup.Instance.AnimatorManager)); m_parameters.RemoveAll(p => !p.IsValid()); // Avatar custom IK limits - m_ikLimits = PlayerSetup.Instance._avatar.transform.Find("[IKLimits]"); + m_ikLimits = PlayerSetup.Instance.AvatarTransform.Find("[IKLimits]"); UpdateIKLimits(); // Apply VRIK tweaks @@ -135,18 +135,18 @@ namespace ml_amt if(m_vrIk.solver.HasToes()) { - Transform l_foot = PlayerSetup.Instance._animator.GetBoneTransform(HumanBodyBones.LeftFoot); + Transform l_foot = PlayerSetup.Instance.Animator.GetBoneTransform(HumanBodyBones.LeftFoot); if(l_foot == null) - l_foot = PlayerSetup.Instance._animator.GetBoneTransform(HumanBodyBones.RightFoot); + l_foot = PlayerSetup.Instance.Animator.GetBoneTransform(HumanBodyBones.RightFoot); - Transform l_toe = PlayerSetup.Instance._animator.GetBoneTransform(HumanBodyBones.LeftToes); + Transform l_toe = PlayerSetup.Instance.Animator.GetBoneTransform(HumanBodyBones.LeftToes); if(l_toe == null) - l_toe = PlayerSetup.Instance._animator.GetBoneTransform(HumanBodyBones.RightToes); + l_toe = PlayerSetup.Instance.Animator.GetBoneTransform(HumanBodyBones.RightToes); if((l_foot != null) && (l_toe != null)) { - Vector3 l_footPos = (PlayerSetup.Instance._avatar.transform.GetMatrix().inverse * l_foot.GetMatrix()).GetPosition(); - Vector3 l_toePos = (PlayerSetup.Instance._avatar.transform.GetMatrix().inverse * l_toe.GetMatrix()).GetPosition(); + Vector3 l_footPos = (PlayerSetup.Instance.AvatarTransform.GetMatrix().inverse * l_foot.GetMatrix()).GetPosition(); + Vector3 l_toePos = (PlayerSetup.Instance.AvatarTransform.GetMatrix().inverse * l_toe.GetMatrix()).GetPosition(); m_massCenter = new Vector3(0f, 0f, l_toePos.z - l_footPos.z); } } @@ -171,7 +171,7 @@ namespace ml_amt // Old VRIK is destroyed by game Utils.SetAvatarTPose(); - m_vrIk = PlayerSetup.Instance._animator.GetComponent(); + m_vrIk = PlayerSetup.Instance.AvatarObject.GetComponent(); if(m_vrIk != null) { m_vrIk.solver.locomotion.offset = (Settings.MassCenter ? m_massCenter : m_locomotionOffset); @@ -241,7 +241,7 @@ namespace ml_amt // Arbitrary float GetRelativeScale() { - return ((m_avatarScale > 0f) ? (PlayerSetup.Instance._avatar.transform.localScale.y / m_avatarScale) : 0f); + return ((m_avatarScale > 0f) ? (PlayerSetup.Instance.AvatarTransform.localScale.y / m_avatarScale) : 0f); } void UpdateIKLimits() @@ -258,7 +258,7 @@ namespace ml_amt public bool IsMoving() => BetterBetterCharacterController.Instance.IsMoving(); public float GetMovementSpeed() { - AvatarAnimatorManager l_animatorManager = PlayerSetup.Instance.animatorManager; + AvatarAnimatorManager l_animatorManager = PlayerSetup.Instance.AnimatorManager; return Mathf.Sqrt(l_animatorManager.MovementX * l_animatorManager.MovementX + l_animatorManager.MovementY * l_animatorManager.MovementY); } public float GetVelocity() => BetterBetterCharacterController.Instance.velocity.magnitude; diff --git a/ml_amt/Utils.cs b/ml_amt/Utils.cs index 79b1130..6cd79d3 100644 --- a/ml_amt/Utils.cs +++ b/ml_amt/Utils.cs @@ -22,11 +22,11 @@ namespace ml_amt public static void SetAvatarTPose() { - if(PlayerSetup.Instance._animator.isHuman) + if(PlayerSetup.Instance.Animator.isHuman) { IKSystem.Instance.SetAvatarPose(IKSystem.AvatarPose.TPose); - PlayerSetup.Instance._avatar.transform.localPosition = Vector3.zero; - PlayerSetup.Instance._avatar.transform.localRotation = Quaternion.identity; + PlayerSetup.Instance.AvatarTransform.localPosition = Vector3.zero; + PlayerSetup.Instance.AvatarTransform.localRotation = Quaternion.identity; } } diff --git a/ml_bft/FingerSystem.cs b/ml_bft/FingerSystem.cs index 3a56cde..6899264 100644 --- a/ml_bft/FingerSystem.cs +++ b/ml_bft/FingerSystem.cs @@ -114,7 +114,7 @@ namespace ml_bft internal void OnAvatarSetup() { - Animator l_animator = PlayerSetup.Instance._animator; + Animator l_animator = PlayerSetup.Instance.Animator; if(l_animator.isHuman) { Utils.SetAvatarTPose(); diff --git a/ml_bft/Utils.cs b/ml_bft/Utils.cs index 688febf..adadeff 100644 --- a/ml_bft/Utils.cs +++ b/ml_bft/Utils.cs @@ -21,8 +21,8 @@ namespace ml_bft public static void SetAvatarTPose() { IKSystem.Instance.SetAvatarPose(IKSystem.AvatarPose.TPose); - PlayerSetup.Instance._avatar.transform.localPosition = Vector3.zero; - PlayerSetup.Instance._avatar.transform.localRotation = Quaternion.identity; + PlayerSetup.Instance.AvatarTransform.localPosition = Vector3.zero; + PlayerSetup.Instance.AvatarTransform.localRotation = Quaternion.identity; } } } diff --git a/ml_dht/HeadTracked.cs b/ml_dht/HeadTracked.cs index 17b9e98..424c326 100644 --- a/ml_dht/HeadTracked.cs +++ b/ml_dht/HeadTracked.cs @@ -131,7 +131,7 @@ namespace ml_dht { m_lastHeadRotation = Quaternion.Slerp(m_lastHeadRotation, m_avatarDescriptor.transform.rotation * (m_headRotation * m_bindRotation), m_smoothing); - if(!PlayerSetup.Instance.IsEmotePlaying()) + if(!PlayerSetup.Instance.IsEmotePlaying) m_headBone.rotation = m_lastHeadRotation; } } @@ -139,20 +139,20 @@ namespace ml_dht // Game events internal void OnAvatarSetup() { - m_camera = PlayerSetup.Instance.GetActiveCamera().transform; - m_avatarDescriptor = PlayerSetup.Instance._avatar.GetComponent(); + m_camera = PlayerSetup.Instance.activeCam.transform; + m_avatarDescriptor = PlayerSetup.Instance.AvatarObject.GetComponent(); - if(PlayerSetup.Instance._animator.isHuman) + if(PlayerSetup.Instance.Animator.isHuman) { IKSystem.Instance.SetAvatarPose(IKSystem.AvatarPose.TPose); - PlayerSetup.Instance._avatar.transform.localPosition = Vector3.zero; - PlayerSetup.Instance._avatar.transform.localRotation = Quaternion.identity; + PlayerSetup.Instance.AvatarTransform.localPosition = Vector3.zero; + PlayerSetup.Instance.AvatarTransform.localRotation = Quaternion.identity; - m_headBone = PlayerSetup.Instance._animator.GetBoneTransform(HumanBodyBones.Head); + m_headBone = PlayerSetup.Instance.Animator.GetBoneTransform(HumanBodyBones.Head); if(m_headBone != null) m_bindRotation = Quaternion.Inverse(m_avatarDescriptor.transform.rotation) * m_headBone.rotation; - m_lookIK = PlayerSetup.Instance._avatar.GetComponent(); + m_lookIK = PlayerSetup.Instance.AvatarObject.GetComponent(); if(m_lookIK != null) m_lookIK.onPostSolverUpdate.AddListener(this.OnLookIKPostUpdate); } @@ -167,9 +167,9 @@ namespace ml_dht } void OnAvatarReuse() { - m_camera = PlayerSetup.Instance.GetActiveCamera().transform; + m_camera = PlayerSetup.Instance.activeCam.transform; - m_lookIK = PlayerSetup.Instance._avatar.GetComponent(); + m_lookIK = PlayerSetup.Instance.AvatarObject.GetComponent(); if(m_lookIK != null) m_lookIK.onPostSolverUpdate.AddListener(this.OnLookIKPostUpdate); } diff --git a/ml_lme/GameEvents.cs b/ml_lme/GameEvents.cs index c3191b5..54c77b3 100644 --- a/ml_lme/GameEvents.cs +++ b/ml_lme/GameEvents.cs @@ -53,7 +53,7 @@ namespace ml_lme ); p_instance.Patch( - typeof(PlayerSetup).GetMethod(nameof(PlayerSetup.SetControllerRayScale), BindingFlags.Instance | BindingFlags.Public), + typeof(PlayerSetup).GetMethod("SetControllerRayScale", BindingFlags.Instance | BindingFlags.NonPublic), null, new HarmonyLib.HarmonyMethod(typeof(GameEvents).GetMethod(nameof(OnRayScale_Postfix), BindingFlags.Static | BindingFlags.NonPublic)) ); diff --git a/ml_lme/LeapTracked.cs b/ml_lme/LeapTracked.cs index 0d9cccb..e9bace1 100644 --- a/ml_lme/LeapTracked.cs +++ b/ml_lme/LeapTracked.cs @@ -281,7 +281,7 @@ namespace ml_lme void OnAvatarSetup() { - Animator l_animator = PlayerSetup.Instance._animator; + Animator l_animator = PlayerSetup.Instance.Animator; if(l_animator.isHuman) { Utils.SetAvatarTPose(); @@ -313,7 +313,7 @@ namespace ml_lme void OnAvatarReuse() { // Old VRIK is destroyed by game - m_vrIK = PlayerSetup.Instance._animator.GetComponent(); + m_vrIK = PlayerSetup.Instance.AvatarObject.GetComponent(); if(Utils.IsInVR()) RemoveArmIK(); @@ -409,7 +409,7 @@ namespace ml_lme void SetupArmIK() { - Animator l_animator = PlayerSetup.Instance._animator; + Animator l_animator = PlayerSetup.Instance.Animator; Transform l_chest = l_animator.GetBoneTransform(HumanBodyBones.UpperChest); if(l_chest == null) l_chest = l_animator.GetBoneTransform(HumanBodyBones.Chest); @@ -472,7 +472,7 @@ namespace ml_lme LeapTracking.Instance.Rebind(PlayerSetup.Instance.transform.rotation); // Align rotations of leap fingers to avatar fingers - Animator l_animator = PlayerSetup.Instance._animator; + Animator l_animator = PlayerSetup.Instance.Animator; LeapHand l_leapLeft = LeapTracking.Instance.GetLeftHand(); LeapHand l_leapRight = LeapTracking.Instance.GetRightHand(); // Try to "fix" rotations, slightly inaccurate after 0YX plane rotation diff --git a/ml_lme/LeapTracking.cs b/ml_lme/LeapTracking.cs index eb96377..8b4aba6 100644 --- a/ml_lme/LeapTracking.cs +++ b/ml_lme/LeapTracking.cs @@ -136,7 +136,7 @@ namespace ml_lme { if(Settings.Enabled) { - Transform l_camera = PlayerSetup.Instance.GetActiveCamera().transform; + Transform l_camera = PlayerSetup.Instance.activeCam.transform; m_root.position = l_camera.position; m_root.rotation = (Settings.HeadAttach ? l_camera.rotation : PlayerSetup.Instance.GetPlayerRotation()); diff --git a/ml_lme/Utils.cs b/ml_lme/Utils.cs index 55b0b8b..e653fde 100644 --- a/ml_lme/Utils.cs +++ b/ml_lme/Utils.cs @@ -59,8 +59,8 @@ namespace ml_lme public static void SetAvatarTPose() { IKSystem.Instance.SetAvatarPose(IKSystem.AvatarPose.TPose); - PlayerSetup.Instance._avatar.transform.localPosition = Vector3.zero; - PlayerSetup.Instance._avatar.transform.localRotation = Quaternion.identity; + PlayerSetup.Instance.AvatarTransform.localPosition = Vector3.zero; + PlayerSetup.Instance.AvatarTransform.localRotation = Quaternion.identity; } public static void Swap(ref T lhs, ref T rhs) diff --git a/ml_pam/ArmMover.cs b/ml_pam/ArmMover.cs index de26757..a4aebf8 100644 --- a/ml_pam/ArmMover.cs +++ b/ml_pam/ArmMover.cs @@ -68,7 +68,7 @@ namespace ml_pam void Start() { - m_camera = PlayerSetup.Instance.GetActiveCamera().transform; + m_camera = PlayerSetup.Instance.activeCam.transform; m_root = new GameObject("Root").transform; m_root.parent = this.transform; @@ -353,14 +353,14 @@ namespace ml_pam void OnAvatarSetup() { - m_camera = PlayerSetup.Instance.GetActiveCamera().transform; + m_camera = PlayerSetup.Instance.activeCam.transform; - if(PlayerSetup.Instance._animator.isHuman) + if(PlayerSetup.Instance.Animator.isHuman) { - m_vrIK = PlayerSetup.Instance._animator.GetComponent(); + m_vrIK = PlayerSetup.Instance.Animator.GetComponent(); Utils.SetAvatarTPose(); - Animator l_animator = PlayerSetup.Instance._animator; + Animator l_animator = PlayerSetup.Instance.Animator; Matrix4x4 l_avatarMatrixInv = l_animator.transform.GetMatrix().inverse; // Animator and avatar are on same game object Transform l_leftHand = l_animator.GetBoneTransform(HumanBodyBones.LeftHand); @@ -395,8 +395,8 @@ namespace ml_pam } } - m_leftHandParameter = new AvatarBoolParameter("LeftHandExtended", PlayerSetup.Instance.animatorManager); - m_rightHandParameter = new AvatarBoolParameter("RightHandExtended", PlayerSetup.Instance.animatorManager); + m_leftHandParameter = new AvatarBoolParameter("LeftHandExtended", PlayerSetup.Instance.AnimatorManager); + m_rightHandParameter = new AvatarBoolParameter("RightHandExtended", PlayerSetup.Instance.AnimatorManager); OnEnabledChanged(Settings.Enabled); OnGrabOffsetChanged(Settings.GrabOffset); @@ -406,7 +406,7 @@ namespace ml_pam void OnAvatarReuse() { // Old VRIK is destroyed by game - m_vrIK = PlayerSetup.Instance._animator.GetComponent(); + m_vrIK = PlayerSetup.Instance.Animator.GetComponent(); if(Utils.IsInVR()) RemoveArmIK(); @@ -470,7 +470,7 @@ namespace ml_pam { try { - m_camera = PlayerSetup.Instance.GetActiveCamera().transform; + m_camera = PlayerSetup.Instance.activeCam.transform; this.enabled = !Utils.IsInVR(); } catch(System.Exception e) @@ -482,7 +482,7 @@ namespace ml_pam // Arbitrary void SetupArmIK() { - Animator l_animator = PlayerSetup.Instance._animator; + Animator l_animator = PlayerSetup.Instance.Animator; Transform l_chest = l_animator.GetBoneTransform(HumanBodyBones.UpperChest); if(l_chest == null) @@ -490,7 +490,7 @@ namespace ml_pam if(l_chest == null) l_chest = l_animator.GetBoneTransform(HumanBodyBones.Spine); - m_armIKLeft = PlayerSetup.Instance._avatar.AddComponent(); + m_armIKLeft = PlayerSetup.Instance.AvatarObject.AddComponent(); m_armIKLeft.solver.isLeft = true; m_armIKLeft.solver.SetChain( l_chest, @@ -507,7 +507,7 @@ namespace ml_pam m_armIKLeft.solver.IKRotationWeight = 0f; m_armIKLeft.enabled = false; - m_armIKRight = PlayerSetup.Instance._avatar.AddComponent(); + m_armIKRight = PlayerSetup.Instance.AvatarObject.AddComponent(); m_armIKRight.solver.isLeft = false; m_armIKRight.solver.SetChain( l_chest, diff --git a/ml_pam/Utils.cs b/ml_pam/Utils.cs index a01906b..6f5faf1 100644 --- a/ml_pam/Utils.cs +++ b/ml_pam/Utils.cs @@ -18,8 +18,8 @@ namespace ml_pam public static void SetAvatarTPose() { IKSystem.Instance.SetAvatarPose(IKSystem.AvatarPose.TPose); - PlayerSetup.Instance._avatar.transform.localPosition = Vector3.zero; - PlayerSetup.Instance._avatar.transform.localRotation = Quaternion.identity; + PlayerSetup.Instance.AvatarTransform.localPosition = Vector3.zero; + PlayerSetup.Instance.AvatarTransform.localRotation = Quaternion.identity; } // Extensions diff --git a/ml_pmc/PoseCopycat.cs b/ml_pmc/PoseCopycat.cs index de9e1c1..6aba068 100644 --- a/ml_pmc/PoseCopycat.cs +++ b/ml_pmc/PoseCopycat.cs @@ -196,9 +196,9 @@ namespace ml_pmc { if(m_inVr) { - Vector3 l_avatarPos = PlayerSetup.Instance._avatar.transform.position; + Vector3 l_avatarPos = PlayerSetup.Instance.AvatarTransform.position; PlayerSetup.Instance.transform.rotation = l_result.rotation; - Vector3 l_dif = l_avatarPos - PlayerSetup.Instance._avatar.transform.position; + Vector3 l_dif = l_avatarPos - PlayerSetup.Instance.AvatarTransform.position; PlayerSetup.Instance.transform.position += l_dif; } else @@ -258,9 +258,9 @@ namespace ml_pmc void OnAvatarSetup() { m_inVr = Utils.IsInVR(); - m_animator = PlayerSetup.Instance._animator; - m_vrIk = PlayerSetup.Instance._avatar.GetComponent(); - m_lookAtIk = PlayerSetup.Instance._avatar.GetComponent(); + m_animator = PlayerSetup.Instance.Animator; + m_vrIk = PlayerSetup.Instance.AvatarObject.GetComponent(); + m_lookAtIk = PlayerSetup.Instance.AvatarObject.GetComponent(); if((m_animator != null) && m_animator.isHuman) { @@ -293,8 +293,8 @@ namespace ml_pmc m_inVr = Utils.IsInVR(); // Old VRIK and LookAtIK are destroyed by game - m_vrIk = PlayerSetup.Instance._avatar.GetComponent(); - m_lookAtIk = PlayerSetup.Instance._avatar.GetComponent(); + m_vrIk = PlayerSetup.Instance.AvatarObject.GetComponent(); + m_lookAtIk = PlayerSetup.Instance.AvatarObject.GetComponent(); if(m_vrIk != null) { @@ -320,10 +320,10 @@ namespace ml_pmc { if(Friends.FriendsWith(p_id)) { - if(CVRPlayerManager.Instance.GetPlayerPuppetMaster(p_id, out PuppetMaster l_puppetMaster)) + if(CVRPlayerManager.Instance.UserIdToPlayerEntity.TryGetValue(p_id, out CVRPlayerEntity l_playerEntity)) { - if(Utils.IsInSight(BetterBetterCharacterController.Instance.KinematicTriggerProxy.Collider, l_puppetMaster.GetComponent(), Utils.GetWorldMovementLimit())) - SetTarget(l_puppetMaster); + if(Utils.IsInSight(BetterBetterCharacterController.Instance.KinematicTriggerProxy.Collider, l_playerEntity.PuppetMaster.GetComponent(), Utils.GetWorldMovementLimit())) + SetTarget(l_playerEntity.PuppetMaster); else ModUi.ShowAlert("Selected player is too far away or obstructed"); } @@ -374,9 +374,9 @@ namespace ml_pmc { if(!m_active) { - if((p_target != null) && (p_target.animatorManager != null) && (p_target.animatorManager.Animator != null) && p_target.animatorManager.Animator.isHuman) + if((p_target != null) && (p_target.AnimatorManager != null) && (p_target.Animator != null) && p_target.Animator.isHuman) { - m_puppetParser = p_target.animatorManager.Animator.gameObject.AddComponent(); + m_puppetParser = p_target.Animator.gameObject.AddComponent(); m_puppetParser.m_puppetMaster = p_target; m_distanceLimit = Utils.GetWorldMovementLimit(); diff --git a/ml_ppu/PickUpManager.cs b/ml_ppu/PickUpManager.cs index 4f32de3..9030588 100644 --- a/ml_ppu/PickUpManager.cs +++ b/ml_ppu/PickUpManager.cs @@ -1,4 +1,5 @@ using ABI.CCK.Components; +using ABI_RC.Core; using ABI_RC.Core.InteractionSystem; using ABI_RC.Core.Player; using ABI_RC.Systems.IK; @@ -81,7 +82,7 @@ namespace ml_ppu } Vector3 l_armsMidPoint = (m_armLeft.position + m_armRight.position) * 0.5f; - Quaternion l_avatarRot = PlayerSetup.Instance._avatar.transform.rotation; + Quaternion l_avatarRot = PlayerSetup.Instance.AvatarTransform.rotation; m_collider.transform.position = Vector3.zero; m_collider.transform.rotation = Quaternion.identity; @@ -127,12 +128,12 @@ namespace ml_ppu void OnAvatarSetup() { - Animator l_animator = PlayerSetup.Instance._animator; + Animator l_animator = PlayerSetup.Instance.Animator; if((l_animator != null) && l_animator.isHuman) { IKSystem.Instance.SetAvatarPose(IKSystem.AvatarPose.TPose); - PlayerSetup.Instance._avatar.transform.localPosition = Vector3.zero; - PlayerSetup.Instance._avatar.transform.localRotation = Quaternion.identity; + PlayerSetup.Instance.AvatarTransform.localPosition = Vector3.zero; + PlayerSetup.Instance.AvatarTransform.localRotation = Quaternion.identity; m_hips = l_animator.GetBoneTransform(HumanBodyBones.Hips); m_armLeft = l_animator.GetBoneTransform(HumanBodyBones.LeftUpperArm); @@ -140,11 +141,12 @@ namespace ml_ppu if((m_hips != null) && (m_armLeft != null) && (m_armRight != null)) { - Matrix4x4 l_avatarMatInv = PlayerSetup.Instance._avatar.transform.GetMatrix().inverse; + Matrix4x4 l_avatarMatInv = PlayerSetup.Instance.AvatarTransform.GetMatrix().inverse; Vector3 l_hipsPos = (l_avatarMatInv * m_hips.GetMatrix()).GetPosition(); Vector3 l_armPos = (l_avatarMatInv * m_armLeft.GetMatrix()).GetPosition(); m_collider = new GameObject("[Collider]").AddComponent(); + m_collider.gameObject.layer = CVRLayers.PlayerClone; m_collider.transform.parent = this.transform; m_collider.isTrigger = true; m_collider.height = Vector3.Distance(l_hipsPos, new Vector3(0f, l_armPos.y, l_armPos.z)); diff --git a/ml_ppu/Utils.cs b/ml_ppu/Utils.cs index de56ef0..4629730 100644 --- a/ml_ppu/Utils.cs +++ b/ml_ppu/Utils.cs @@ -1,5 +1,6 @@ using ABI_RC.Core; using ABI_RC.Core.Player; +using ABI_RC.Core.Savior; using ABI_RC.Systems.Movement; using ABI_RC.Systems.Safety.AdvancedSafety; using UnityEngine; @@ -8,6 +9,8 @@ namespace ml_ppu { static class Utils { + public static bool IsInVR() => ((MetaPort.Instance != null) && MetaPort.Instance.isUsingVr); + public static Matrix4x4 GetMatrix(this Transform p_transform, bool p_pos = true, bool p_rot = true, bool p_scl = false) { return Matrix4x4.TRS(p_pos ? p_transform.position : Vector3.zero, p_rot ? p_transform.rotation : Quaternion.identity, p_scl ? p_transform.lossyScale : Vector3.one); diff --git a/ml_ppu/ml_ppu.csproj b/ml_ppu/ml_ppu.csproj index 4bbe04c..7977ca2 100644 --- a/ml_ppu/ml_ppu.csproj +++ b/ml_ppu/ml_ppu.csproj @@ -5,6 +5,7 @@ x64 PlayerPickUp SDraw + 1.0.0 diff --git a/ml_prm/RagdollController.cs b/ml_prm/RagdollController.cs index b0331c4..0ff7f07 100644 --- a/ml_prm/RagdollController.cs +++ b/ml_prm/RagdollController.cs @@ -195,7 +195,7 @@ namespace ml_prm BodySystem.TrackingPositionWeight = 0f; BetterBetterCharacterController.Instance.PauseGroundConstraint(); BetterBetterCharacterController.Instance.ResetAllForces(); - PlayerSetup.Instance.animatorManager.CancelEmote = true; + PlayerSetup.Instance.AnimatorManager.CancelEmote = true; } if(!m_ragdolled && !m_reachedGround && (BetterBetterCharacterController.Instance.IsOnGround() || BetterBetterCharacterController.Instance.IsInWater() || BetterBetterCharacterController.Instance.IsSitting())) @@ -291,13 +291,13 @@ namespace ml_prm void OnAvatarSetup() { - if(PlayerSetup.Instance._animator.isHuman) + if(PlayerSetup.Instance.Animator.isHuman) { - m_avatarTransform = PlayerSetup.Instance._avatar.transform; - m_hips = PlayerSetup.Instance._animator.GetBoneTransform(HumanBodyBones.Hips); + m_avatarTransform = PlayerSetup.Instance.AvatarTransform; + m_hips = PlayerSetup.Instance.Animator.GetBoneTransform(HumanBodyBones.Hips); Utils.SetAvatarTPose(); - BipedRagdollReferences l_avatarReferences = BipedRagdollReferences.FromAvatar(PlayerSetup.Instance._animator); + BipedRagdollReferences l_avatarReferences = BipedRagdollReferences.FromAvatar(PlayerSetup.Instance.Animator); m_puppetRoot = new GameObject("Root").transform; m_puppetRoot.gameObject.layer = CVRLayers.PlayerClone; @@ -367,12 +367,12 @@ namespace ml_prm } } - m_vrIK = PlayerSetup.Instance._avatar.GetComponent(); + m_vrIK = PlayerSetup.Instance.AvatarObject.GetComponent(); if(m_vrIK != null) m_vrIK.onPostSolverUpdate.AddListener(this.OnIKPostSolverUpdate); - m_avatarRagdollToggle = PlayerSetup.Instance._avatar.GetComponentInChildren(true); - m_ragdolledParameter = new AvatarParameter("Ragdolled", PlayerSetup.Instance.animatorManager); + m_avatarRagdollToggle = PlayerSetup.Instance.AvatarObject.GetComponentInChildren(true); + m_ragdolledParameter = new AvatarParameter("Ragdolled", PlayerSetup.Instance.AnimatorManager); m_initTask = StartCoroutine(WaitForBodyHandlers()); } @@ -410,7 +410,7 @@ namespace ml_prm } void OnAvatarPostReuse() { - m_vrIK = PlayerSetup.Instance._avatar.GetComponent(); + m_vrIK = PlayerSetup.Instance.AvatarObject.GetComponent(); if(m_vrIK != null) m_vrIK.onPostSolverUpdate.AddListener(this.OnIKPostSolverUpdate); @@ -506,10 +506,10 @@ namespace ml_prm // Custom game events void OnRemoteGestureStateChanged(ABI_RC.Core.Player.PuppetMaster p_master, RemoteGesturesManager.GestureHand p_hand, bool p_state) { - if(m_avatarReady && m_ragdolled && Settings.GestureGrab && (p_master.animatorManager.Animator != null)) + if(m_avatarReady && m_ragdolled && Settings.GestureGrab && (p_master.Animator != null)) { - Transform l_hand = p_master.animatorManager.Animator.GetBoneTransform((p_hand == RemoteGesturesManager.GestureHand.Left) ? HumanBodyBones.LeftHand : HumanBodyBones.RightHand); - Transform l_finger = p_master.animatorManager.Animator.GetBoneTransform((p_hand == RemoteGesturesManager.GestureHand.Left) ? HumanBodyBones.LeftMiddleProximal : HumanBodyBones.RightMiddleProximal); + Transform l_hand = p_master.Animator.GetBoneTransform((p_hand == RemoteGesturesManager.GestureHand.Left) ? HumanBodyBones.LeftHand : HumanBodyBones.RightHand); + Transform l_finger = p_master.Animator.GetBoneTransform((p_hand == RemoteGesturesManager.GestureHand.Left) ? HumanBodyBones.LeftMiddleProximal : HumanBodyBones.RightMiddleProximal); if(l_hand != null) { @@ -642,7 +642,7 @@ namespace ml_prm if(Settings.ViewVelocity && WorldManager.IsSafeWorld()) { float l_mag = l_velocity.magnitude; - l_velocity = PlayerSetup.Instance.GetActiveCamera().transform.forward * l_mag; + l_velocity = PlayerSetup.Instance.activeCam.transform.forward * l_mag; } Vector3 l_playerPos = PlayerSetup.Instance.transform.position; @@ -666,7 +666,7 @@ namespace ml_prm m_applyHipsRotation = IKSystem.Instance.applyOriginalHipRotation; IKSystem.Instance.applyOriginalHipRotation = true; - PlayerSetup.Instance.animatorManager.CancelEmote = true; + PlayerSetup.Instance.AnimatorManager.CancelEmote = true; m_ragdolledParameter.SetValue(true); if(!WorldManager.IsSafeWorld()) diff --git a/ml_prm/Utils.cs b/ml_prm/Utils.cs index 39347de..5138c28 100644 --- a/ml_prm/Utils.cs +++ b/ml_prm/Utils.cs @@ -41,8 +41,8 @@ namespace ml_prm public static void SetAvatarTPose() { IKSystem.Instance.SetAvatarPose(IKSystem.AvatarPose.TPose); - PlayerSetup.Instance._avatar.transform.localPosition = Vector3.zero; - PlayerSetup.Instance._avatar.transform.localRotation = Quaternion.identity; + PlayerSetup.Instance.AvatarTransform.localPosition = Vector3.zero; + PlayerSetup.Instance.AvatarTransform.localRotation = Quaternion.identity; } public static bool IsInEnumeration(object p_obj, object[] p_enumeration) => p_enumeration.Contains(p_obj); diff --git a/ml_vet/ml_vet.csproj b/ml_vet/ml_vet.csproj index 9c8fd1e..2b9cbb9 100644 --- a/ml_vet/ml_vet.csproj +++ b/ml_vet/ml_vet.csproj @@ -14,6 +14,7 @@ embedded true + TRACE;NIGHTLY_BUILD