This commit is contained in:
NotAKidoS 2023-04-25 15:04:09 -05:00
parent dc577c3a2f
commit a468487850
24 changed files with 484 additions and 121 deletions

View file

@ -1,5 +1,6 @@
using ABI.CCK.Components;
using UnityEngine;
using ABI_RC.Core.Player;
namespace NAK.CCK.CustomComponents;
@ -16,6 +17,7 @@ public class NAKPointerTracker : MonoBehaviour
public string parameterName;
// Internal stuff
bool isLocal;
float initialAngle;
CVRPointer trackedPointer;
@ -46,6 +48,7 @@ public class NAKPointerTracker : MonoBehaviour
Vector3 direction = (transform.TransformPoint(offset) - referenceTransform.position);
Vector3 projectedDirection = Vector3.ProjectOnPlane(direction, referenceTransform.up);
initialAngle = Vector3.SignedAngle(referenceTransform.forward, projectedDirection, referenceTransform.up);
isLocal = gameObject.layer == 8;
}
void OnDrawGizmosSelected()
@ -88,8 +91,13 @@ public class NAKPointerTracker : MonoBehaviour
{
if (animator != null)
{
float angle = GetAngleFromPosition(trackedPointer.transform.position, initialAngle);
animator.SetFloat(parameterName + "_Angle", angle / 360);
float angle = GetAngleFromPosition(trackedPointer.transform.position, initialAngle) / 360;
if (!isLocal)
{
animator.SetFloat(parameterName + "_Angle", angle);
return;
}
PlayerSetup.Instance.changeAnimatorParam(parameterName + "_Angle", angle);
}
}

View file

@ -9,7 +9,7 @@ public class CustomComponents : MelonMod
public override void OnInitializeMelon()
{
// Add our CCK component to the prop whitelist
var propWhitelist = SharedFilter._spawnableWhitelist;
var propWhitelist = SharedFilter._avatarWhitelist;
propWhitelist.Add(typeof(NAKPointerTracker));
}
}