using System; using Cpp2IlInjected; using RecRoom.Core.Culling; using UnityEngine; namespace RecRoom.Core.Updates { // Token: 0x02002D5A RID: 11610 [Token(Token = "0x2002D5A")] public class VisibilityGroup : MonoBehaviour, OFCHBCNPCBH { // Token: 0x170036E6 RID: 14054 // (get) Token: 0x06013BD7 RID: 80855 RVA: 0x0049734C File Offset: 0x0049554C [Token(Token = "0x170036E6")] public EEDONNAHMFK PMEKAADPMAH { [Token(Token = "0x6013BD7")] [Address(RVA = "0x40FFE0", Offset = "0x40EDE0", VA = "0x18040FFE0")] get { return this.IHNKANMAFDM; } } // Token: 0x06013BD8 RID: 80856 RVA: 0x00497360 File Offset: 0x00495560 [Token(Token = "0x6013BD8")] [Address(RVA = "0x9C4D40", Offset = "0x9C3B40", VA = "0x1809C4D40")] private void Awake() { int num; Component component; do { Component[] array = this.trackedComponents; num = 0; int length = array.Length; if (num >= length) { goto IL_35; } component = array[num]; } while (component != 0 && component != 0 && component == 0); num++; IL_35: CullingGroupManager instance = SingletonMonoBehaviour.ONCPNMDGGKG; int num2 = 0; uint num3; VisibilityGroup.CDDMBBEPIIE = instance.GetOrCreateCullingGroup((int)num3, (ushort)num2); MEFKCIOFGAI cddmbbepiie = VisibilityGroup.CDDMBBEPIIE; num += num; num++; } // Token: 0x06013BD9 RID: 80857 RVA: 0x004973E4 File Offset: 0x004955E4 [Token(Token = "0x6013BD9")] [Address(RVA = "0x9C56E0", Offset = "0x9C44E0", VA = "0x1809C56E0")] private void Start() { this.PJOOKEOGIAA(); } // Token: 0x06013BDA RID: 80858 RVA: 0x004973F8 File Offset: 0x004955F8 [Token(Token = "0x6013BDA")] [Address(RVA = "0x9C5280", Offset = "0x9C4080", VA = "0x1809C5280")] private void OnDestroy() { if (VisibilityGroup.CDDMBBEPIIE != 0) { int num = 0; num += num; num++; } } // Token: 0x06013BDB RID: 80859 RVA: 0x00497418 File Offset: 0x00495618 [Token(Token = "0x6013BDB")] [Address(RVA = "0x9C50F0", Offset = "0x9C3EF0", VA = "0x1809C50F0")] private void IONJHHDNPEB(float POGAEJIEPIM) { if (this.IHNKANMAFDM > this.minVisibilityUpdateLod) { bool isVisible = this.visibleInCamera.GDPKBEBEOBA; } if (true != this.IHODDLMHDHP) { this.MLBAOONLBEM(true); this.VisibilityChangedEvent.CNFDGDEOPPF(1); this.IHODDLMHDHP = true; } } // Token: 0x06013BDC RID: 80860 RVA: 0x00497468 File Offset: 0x00495668 [Token(Token = "0x6013BDC")] [Address(RVA = "0x9C4F90", Offset = "0x9C3D90", VA = "0x1809C4F90")] private bool DIPFBKHEAAI() { return this.IHNKANMAFDM <= this.minVisibilityUpdateLod || this.visibleInCamera.GDPKBEBEOBA; } // Token: 0x06013BDD RID: 80861 RVA: 0x00497498 File Offset: 0x00495698 [Token(Token = "0x6013BDD")] [Address(RVA = "0x9C5190", Offset = "0x9C3F90", VA = "0x1809C5190")] private void MLBAOONLBEM(bool AGILHLJPKPN) { Component[] array = this.trackedComponents; int num = 0; int length = array.Length; if (num < length) { array[num].OFKIHGPJHJI(AGILHLJPKPN); num++; } GameObject[] array2 = this.trackedObjects; int length2 = array2.Length; if (num < length2) { array2[num].SetActive(AGILHLJPKPN); num++; } } // Token: 0x06013BDE RID: 80862 RVA: 0x004974F8 File Offset: 0x004956F8 [Token(Token = "0x6013BDE")] [Address(RVA = "0x9C4FD0", Offset = "0x9C3DD0", VA = "0x1809C4FD0")] private void EBOKHHOFNDG() { int num; Component component; do { Component[] array = this.trackedComponents; num = 0; int num2 = 0; int length = array.Length; if (num2 >= length) { return; } component = array[num]; } while (component != 0 && component != 0 && component == 0); num++; } // Token: 0x06013BDF RID: 80863 RVA: 0x00497540 File Offset: 0x00495740 [Token(Token = "0x6013BDF")] [Address(RVA = "0x9C5340", Offset = "0x9C4140", VA = "0x1809C5340")] private void OnDrawGizmosSelected() { CameraRig instance = SingletonMonoBehaviour.ONCPNMDGGKG; int num = 0; if (instance != num) { int num2 = 0; if ((this.IHODDLMHDHP ? 1 : 0) == num2) { Color yellow = Color.yellow; } Color green = Color.green; object[] array = new object[2]; array[0] = this; Transform transform = base.transform; Vector3 vector; float z = vector.z; Transform transform2 = SingletonMonoBehaviour.ONCPNMDGGKG.CHLMFLCFGFL.transform; Vector3 vector2; float z2 = vector2.z; if (vector2 != 0) { } array[1] = vector2; Debug.LogFormat("Distance to {0}: {1}", array); } } // Token: 0x06013BE0 RID: 80864 RVA: 0x004975D4 File Offset: 0x004957D4 [Token(Token = "0x6013BE0")] [Address(RVA = "0x9C5600", Offset = "0x9C4400", VA = "0x1809C5600")] private void PJOOKEOGIAA() { EEDONNAHMFK eedonnahmfk = this.maxVisibilityUpdateLod; IDisposable aeneleocfpj = this.AENELEOCFPJ; if (this.IHNKANMAFDM > eedonnahmfk) { if (aeneleocfpj != 0) { this.AENELEOCFPJ = (ulong)0L; if (this.IHODDLMHDHP) { int num = 0; this.MLBAOONLBEM(num != 0); MFBGLIHGCGO visibilityChangedEvent = this.VisibilityChangedEvent; int num2 = 0; visibilityChangedEvent.CNFDGDEOPPF(num2); this.IHODDLMHDHP = false; return; } } } else if (aeneleocfpj == 0) { Action action = new Action(this.IONJHHDNPEB); IDisposable disposable = ADIFCODGAML.FOFJADGKNJF(this, action); this.AENELEOCFPJ = disposable; } } // Token: 0x06013BE1 RID: 80865 RVA: 0x0049765C File Offset: 0x0049585C [Token(Token = "0x6013BE1")] [Address(RVA = "0x9C5270", Offset = "0x9C4070", VA = "0x1809C5270", Slot = "4")] public void OnChangedDistanceBand(EEDONNAHMFK AKMGILKNNCO, EEDONNAHMFK EDEMHOMGFJO) { this.IHNKANMAFDM = EDEMHOMGFJO; this.PJOOKEOGIAA(); } // Token: 0x06013BE2 RID: 80866 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6013BE2")] [Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "5")] public void OnChangedVisibility(bool AGILHLJPKPN) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06013BE3 RID: 80867 RVA: 0x00497678 File Offset: 0x00495878 [Token(Token = "0x6013BE3")] [Address(RVA = "0x9C56F0", Offset = "0x9C44F0", VA = "0x1809C56F0")] public VisibilityGroup() { int num; int num2; MFBGLIHGCGO mfbglihgcgo = new MFBGLIHGCGO(4, num != 0, num2 != 0); num2 = 0; num = 0; this.VisibilityChangedEvent = mfbglihgcgo; this.IHODDLMHDHP = true; base..ctor(); } // Token: 0x0400CD46 RID: 52550 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400CD46")] [SerializeField] [Tooltip("Objects within this distance are never disabled, even if they are not visible")] private EEDONNAHMFK minVisibilityUpdateLod = (EEDONNAHMFK)((ulong)1L); // Token: 0x0400CD47 RID: 52551 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x400CD47")] [SerializeField] [Tooltip("Only update if within or equal to this UpdateLOD")] private EEDONNAHMFK maxVisibilityUpdateLod = (EEDONNAHMFK)((ulong)4L); // Token: 0x0400CD48 RID: 52552 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400CD48")] [SerializeField] private Component[] trackedComponents; // Token: 0x0400CD49 RID: 52553 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400CD49")] [SerializeField] private GameObject[] trackedObjects; // Token: 0x0400CD4A RID: 52554 [FieldOffset(Offset = "0x30")] [Token(Token = "0x400CD4A")] [SerializeField] [DDPIINEJFMD(JIBDPHMGEGO.Self, false, false, false)] private VisibleInCamera visibleInCamera; // Token: 0x0400CD4B RID: 52555 [FieldOffset(Offset = "0x38")] [Token(Token = "0x400CD4B")] private EEDONNAHMFK IHNKANMAFDM; // Token: 0x0400CD4C RID: 52556 [FieldOffset(Offset = "0x40")] [Token(Token = "0x400CD4C")] private IDisposable AENELEOCFPJ; // Token: 0x0400CD4D RID: 52557 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400CD4D")] public readonly MFBGLIHGCGO VisibilityChangedEvent; // Token: 0x0400CD4E RID: 52558 [FieldOffset(Offset = "0x50")] [Token(Token = "0x400CD4E")] private bool IHODDLMHDHP; // Token: 0x0400CD4F RID: 52559 [Token(Token = "0x400CD4F")] private static MEFKCIOFGAI CDDMBBEPIIE; } }