using System; using System.Collections.Generic; using System.Collections.ObjectModel; using UnityEngine; // Token: 0x02000F5D RID: 3933 [RequireComponent(typeof(Collider))] public abstract class RecRoomCollider : MonoBehaviour { // Token: 0x17000F32 RID: 3890 // (get) Token: 0x06020C43 RID: 134211 RVA: 0x008E9134 File Offset: 0x008E7334 public float JAAJEOMLCLJ { get { return this.kinematicBounciness; } } // Token: 0x17000F33 RID: 3891 // (get) Token: 0x06020C44 RID: 134212 RVA: 0x008E913C File Offset: 0x008E733C public IMJAKCEIGEN HCBJKABCFDI { get { return this.impactType; } } // Token: 0x17000F34 RID: 3892 // (get) Token: 0x06020C45 RID: 134213 RVA: 0x008E9144 File Offset: 0x008E7344 public ReadOnlyCollection AANJEILBGDP { get { return this.LGNAOHPEGBC.AsReadOnly(); } } // Token: 0x17000F35 RID: 3893 // (get) Token: 0x06020C46 RID: 134214 RVA: 0x008E9154 File Offset: 0x008E7354 public Bounds NMKNMHNEHKC { get { Bounds bounds; if (this.LGNAOHPEGBC == null || this.LGNAOHPEGBC.Count == 0) { bounds = default(Bounds); } else { bounds = this.LGNAOHPEGBC[0].bounds; for (int i = 1; i < this.LGNAOHPEGBC.Count; i++) { bounds.Encapsulate(this.LGNAOHPEGBC[i].bounds); } } return bounds; } } // Token: 0x17000F36 RID: 3894 // (get) Token: 0x06020C47 RID: 134215 RVA: 0x008E91D0 File Offset: 0x008E73D0 // (set) Token: 0x06020C48 RID: 134216 RVA: 0x008E9248 File Offset: 0x008E7448 public bool GJPHILMECKE { get { bool flag = false; if (this.LGNAOHPEGBC != null) { foreach (Collider collider in this.LGNAOHPEGBC) { if (collider.isTrigger) { flag = true; break; } } } return flag; } set { if (this.LGNAOHPEGBC != null) { foreach (Collider collider in this.LGNAOHPEGBC) { collider.isTrigger = value; } } } } // Token: 0x06020C49 RID: 134217 RVA: 0x008E92B0 File Offset: 0x008E74B0 protected virtual void Awake() { this.LGNAOHPEGBC.AddRange(base.GetComponents()); } // Token: 0x06020C4A RID: 134218 RVA: 0x008E92C4 File Offset: 0x008E74C4 protected virtual void OnEnable() { if (this.LGNAOHPEGBC != null && this.LGNAOHPEGBC.Count > 0) { foreach (Collider collider in this.LGNAOHPEGBC) { collider.enabled = true; } } } // Token: 0x06020C4B RID: 134219 RVA: 0x008E933C File Offset: 0x008E753C protected virtual void OnDisable() { if (this.LGNAOHPEGBC != null && this.LGNAOHPEGBC.Count > 0) { foreach (Collider collider in this.LGNAOHPEGBC) { collider.enabled = false; } } } // Token: 0x06020C4C RID: 134220 RVA: 0x008E93B4 File Offset: 0x008E75B4 public void IgnoreCollision(RecRoomCollider[] JCIMICOFKDD, bool KIMJICHGKHE) { foreach (RecRoomCollider recRoomCollider in JCIMICOFKDD) { this.IgnoreCollision(recRoomCollider.LGNAOHPEGBC, KIMJICHGKHE); } } // Token: 0x06020C4D RID: 134221 RVA: 0x008E93E8 File Offset: 0x008E75E8 public void IgnoreCollision(RecRoomCollider LCDHGLHJEMO, bool KIMJICHGKHE) { this.IgnoreCollision(LCDHGLHJEMO.LGNAOHPEGBC, KIMJICHGKHE); } // Token: 0x06020C4E RID: 134222 RVA: 0x008E93F8 File Offset: 0x008E75F8 public void IgnoreCollision(IEnumerable FHIIFNKCIII, bool KIMJICHGKHE) { if (this.LGNAOHPEGBC != null) { foreach (Collider collider in this.LGNAOHPEGBC) { foreach (Collider collider2 in FHIIFNKCIII) { Physics.IgnoreCollision(collider, collider2, KIMJICHGKHE); } } } } // Token: 0x06020C4F RID: 134223 RVA: 0x008E949C File Offset: 0x008E769C public void AddCollider(Collider CINAFOGLFIB) { if (CINAFOGLFIB.gameObject == base.gameObject) { this.LGNAOHPEGBC.Add(CINAFOGLFIB); } } // Token: 0x06020C50 RID: 134224 RVA: 0x008E94C0 File Offset: 0x008E76C0 public virtual Vector3 GetCollisionNormal(Collision PDCJEBJGFNF) { Vector3 vector = Vector3.zero; if (this.ThisRigidbodyEx != null) { vector = this.ThisRigidbodyEx.IGOFELJMFOF; } if (vector.sqrMagnitude < Mathf.Epsilon) { vector = PDCJEBJGFNF.relativeVelocity.normalized; } else { vector.Normalize(); } Vector3 vector2 = Vector3.zero; if (PDCJEBJGFNF.contacts != null && PDCJEBJGFNF.contacts.Length > 0) { ContactPoint contactPoint = PDCJEBJGFNF.contacts[0]; vector2 = contactPoint.normal; Vector3 vector3 = -vector2; Vector3 vector4 = contactPoint.point - vector3; RaycastHit raycastHit; if (Physics.Raycast(vector4, vector3, out raycastHit, 2f, 1 << base.gameObject.layer) && Vector3.Dot(raycastHit.normal, vector2) >= 0f) { vector2 = raycastHit.normal; } } if (vector.sqrMagnitude > Mathf.Epsilon && Vector3.Dot(vector2, vector) < 0.3f) { vector2 = vector; } return vector2; } // Token: 0x06020C51 RID: 134225 RVA: 0x008E95D8 File Offset: 0x008E77D8 public bool IsOverlapping(RigidbodyEx MKDJCEPGHNP) { int num = Physics.OverlapSphereNonAlloc(this.NMKNMHNEHKC.center, this.NMKNMHNEHKC.extents.magnitude, RecRoomCollider.AJDJKDELMKL, 1 << MKDJCEPGHNP.gameObject.layer); for (int i = 0; i < num; i++) { if (RecRoomCollider.AJDJKDELMKL[i].gameObject == MKDJCEPGHNP.gameObject) { return true; } } return false; } // Token: 0x04005536 RID: 21814 [SerializeField] private float kinematicBounciness = 0.6f; // Token: 0x04005537 RID: 21815 [SerializeField] private IMJAKCEIGEN impactType; // Token: 0x04005538 RID: 21816 [NonSerialized] public RigidbodyEx ThisRigidbodyEx; // Token: 0x04005539 RID: 21817 private const int NCNEKENPBFD = 256; // Token: 0x0400553A RID: 21818 private static Collider[] AJDJKDELMKL = new Collider[256]; // Token: 0x0400553B RID: 21819 private List LGNAOHPEGBC = new List(); }