using System; using System.Collections.Generic; using UnityEngine; namespace MU3 { // Token: 0x020004E4 RID: 1252 [AddComponentMenu("MU3/SwingJoint/Manager", 1)] public class SwingJointManager : MonoBehaviour { // Token: 0x17000375 RID: 885 // (get) Token: 0x06001EE9 RID: 7913 RVA: 0x000C3414 File Offset: 0x000C3414 public SwingJointCollider[] colliders { get { return this._colliders; } } // Token: 0x17000376 RID: 886 // (get) Token: 0x06001EEA RID: 7914 RVA: 0x000C341C File Offset: 0x000C341C public bool overwriteRadius { get { return this._overwriteRadius; } } // Token: 0x17000377 RID: 887 // (get) Token: 0x06001EEB RID: 7915 RVA: 0x000C3424 File Offset: 0x000C3424 public float collisionRadius { get { return this._collisionRadius; } } // Token: 0x17000378 RID: 888 // (get) Token: 0x06001EEC RID: 7916 RVA: 0x000C342C File Offset: 0x000C342C public bool overwriteDynamic { get { return this._overwriteDynamic; } } // Token: 0x17000379 RID: 889 // (get) Token: 0x06001EED RID: 7917 RVA: 0x000C3434 File Offset: 0x000C3434 public float childPullForce { get { return this._childPullForce; } } // Token: 0x1700037A RID: 890 // (get) Token: 0x06001EEE RID: 7918 RVA: 0x000C343C File Offset: 0x000C343C public float inertialForce { get { return this._inertialForce; } } // Token: 0x1700037B RID: 891 // (get) Token: 0x06001EEF RID: 7919 RVA: 0x000C3444 File Offset: 0x000C3444 public bool overwriteStatic { get { return this._overwriteStatic; } } // Token: 0x1700037C RID: 892 // (get) Token: 0x06001EF0 RID: 7920 RVA: 0x000C344C File Offset: 0x000C344C public Vector3 staticForce { get { return this._staticForce; } } // Token: 0x06001EF1 RID: 7921 RVA: 0x000C3454 File Offset: 0x000C3454 public SwingJointColliderInformation[] getCollideCandidates(out int start, out int end, Vector3 position, float radius) { return this._simpleKDTree.getCollideCandidates(out start, out end, position, radius); } // Token: 0x06001EF2 RID: 7922 RVA: 0x000C3468 File Offset: 0x000C3468 private void Awake() { Transform transform = base.transform; List temporary = new List(4); this.searchNode(transform, temporary); this._colliders = transform.root.GetComponentsInChildren(); this._colliderInformation = new SwingJointColliderInformation[this._colliders.Length]; this._simpleKDTree.initialize(this._colliderInformation); } // Token: 0x06001EF3 RID: 7923 RVA: 0x000C34C0 File Offset: 0x000C34C0 private void OnEnable() { this._centerNode = null; for (int i = 0; i < this._colliders.Length; i++) { if (this._colliders[i].gameObject.name.StartsWith("spine")) { this._centerNode = this._colliders[i].transform; break; } } if (null == this._centerNode) { this._centerNode = base.transform; } } // Token: 0x06001EF4 RID: 7924 RVA: 0x000C3544 File Offset: 0x000C3544 private void LateUpdate() { for (int i = 0; i < this._colliders.Length; i++) { this._colliders[i].updateCache(ref this._colliderInformation[i]); } this._simpleKDTree.update(this._centerNode); for (int j = 0; j < this._joints.Count; j++) { if (this._joints[j].gameObject.activeInHierarchy) { this._joints[j].update(); } } } // Token: 0x06001EF5 RID: 7925 RVA: 0x000C35DC File Offset: 0x000C35DC private void searchNode(Transform t, List temporary) { temporary.Clear(); t.GetComponents(temporary); this._joints.AddRange(temporary); for (int i = 0; i < t.childCount; i++) { Transform child = t.GetChild(i); if (child.gameObject.GetComponent() == null) { this.searchNode(child, temporary); } } } // Token: 0x040048FF RID: 18687 public bool _overwriteRadius; // Token: 0x04004900 RID: 18688 public float _collisionRadius = 0.05f; // Token: 0x04004901 RID: 18689 public bool _overwriteDynamic; // Token: 0x04004902 RID: 18690 public float _childPullForce = 0.01f; // Token: 0x04004903 RID: 18691 public float _inertialForce = 0.4f; // Token: 0x04004904 RID: 18692 public bool _overwriteStatic; // Token: 0x04004905 RID: 18693 public Vector3 _staticForce = new Vector3(0f, -0.0001f, 0f); // Token: 0x04004906 RID: 18694 private List _joints = new List(); // Token: 0x04004907 RID: 18695 private SwingJointCollider[] _colliders; // Token: 0x04004908 RID: 18696 private SwingJointColliderInformation[] _colliderInformation; // Token: 0x04004909 RID: 18697 private Transform _centerNode; // Token: 0x0400490A RID: 18698 private SimpleKDTree _simpleKDTree; } }