using System; using System.Runtime.InteropServices; using Cpp2IlInjected; using RecRoom.Core.Culling; using UnityEngine; namespace RecRoom.Core.Updates { // Token: 0x02002855 RID: 10325 [Token(Token = "0x2002855")] [StructLayout(3)] public class VisibilityGroup : MonoBehaviour, OFCHBCNPCBH { // Token: 0x170030E4 RID: 12516 // (get) Token: 0x0601213D RID: 74045 RVA: 0x00450FEC File Offset: 0x0044F1EC [Token(Token = "0x170030E4")] public EEDONNAHMFK PMEKAADPMAH { [Token(Token = "0x601213D")] [Address(RVA = "0x3D3FF0", Offset = "0x3D29F0", VA = "0x1803D3FF0")] get { return this.IHNKANMAFDM; } } // Token: 0x0601213E RID: 74046 RVA: 0x00451000 File Offset: 0x0044F200 [Token(Token = "0x601213E")] [Address(RVA = "0x136F1F0", Offset = "0x136DBF0", VA = "0x18136F1F0")] 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.Instance; int num2 = 0; uint num3; VisibilityGroup.CDDMBBEPIIE = instance.GetOrCreateCullingGroup((int)num3, (ushort)num2); MEFKCIOFGAI cddmbbepiie = VisibilityGroup.CDDMBBEPIIE; num += num; num++; } // Token: 0x0601213F RID: 74047 RVA: 0x00451084 File Offset: 0x0044F284 [Token(Token = "0x601213F")] [Address(RVA = "0x136FB90", Offset = "0x136E590", VA = "0x18136FB90")] private void Start() { this.PJOOKEOGIAA(); } // Token: 0x06012140 RID: 74048 RVA: 0x00451098 File Offset: 0x0044F298 [Token(Token = "0x6012140")] [Address(RVA = "0x136F730", Offset = "0x136E130", VA = "0x18136F730")] private void OnDestroy() { if (VisibilityGroup.CDDMBBEPIIE != 0) { int num = 0; num += num; num++; } } // Token: 0x06012141 RID: 74049 RVA: 0x004510B8 File Offset: 0x0044F2B8 [Token(Token = "0x6012141")] [Address(RVA = "0x136F5A0", Offset = "0x136DFA0", VA = "0x18136F5A0")] private void IONJHHDNPEB(float POGAEJIEPIM) { if (this.IHNKANMAFDM > this.minVisibilityUpdateLod) { bool isVisible = this.visibleInCamera.GDPKBEBEOBA; } if (true != this.IHODDLMHDHP) { this.MLBAOONLBEM(true); this.VisibilityChangedEvent.Invoke(1); this.IHODDLMHDHP = true; } } // Token: 0x06012142 RID: 74050 RVA: 0x00451108 File Offset: 0x0044F308 [Token(Token = "0x6012142")] [Address(RVA = "0x136F440", Offset = "0x136DE40", VA = "0x18136F440")] private bool DIPFBKHEAAI() { return this.IHNKANMAFDM <= this.minVisibilityUpdateLod || this.visibleInCamera.GDPKBEBEOBA; } // Token: 0x06012143 RID: 74051 RVA: 0x00451138 File Offset: 0x0044F338 [Token(Token = "0x6012143")] [Address(RVA = "0x136F640", Offset = "0x136E040", VA = "0x18136F640")] private void MLBAOONLBEM(bool AGILHLJPKPN) { Component[] array = this.trackedComponents; int num = 0; int length = array.Length; if (num < length) { array[num].SetEnabled(AGILHLJPKPN); num++; } GameObject[] array2 = this.trackedObjects; int length2 = array2.Length; if (num < length2) { array2[num].SetActive(AGILHLJPKPN); num++; } } // Token: 0x06012144 RID: 74052 RVA: 0x00451198 File Offset: 0x0044F398 [Token(Token = "0x6012144")] [Address(RVA = "0x136F480", Offset = "0x136DE80", VA = "0x18136F480")] 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: 0x06012145 RID: 74053 RVA: 0x004511E0 File Offset: 0x0044F3E0 [Token(Token = "0x6012145")] [Address(RVA = "0x136F7F0", Offset = "0x136E1F0", VA = "0x18136F7F0")] private void OnDrawGizmosSelected() { CameraRig instance = SingletonMonoBehaviour.Instance; 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.Instance.CHLMFLCFGFL.transform; Vector3 vector2; float z2 = vector2.z; if (vector2 != 0) { } array[1] = vector2; Debug.LogFormat("Distance to {0}: {1}", array); } } // Token: 0x06012146 RID: 74054 RVA: 0x00451274 File Offset: 0x0044F474 [Token(Token = "0x6012146")] [Address(RVA = "0x136FAB0", Offset = "0x136E4B0", VA = "0x18136FAB0")] 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); ActionEvent visibilityChangedEvent = this.VisibilityChangedEvent; int num2 = 0; visibilityChangedEvent.Invoke(num2); this.IHODDLMHDHP = false; return; } } } else if (aeneleocfpj == 0) { Action action = new Action(this.IONJHHDNPEB); IDisposable disposable = ScheduledUpdateMonoBehaviourExtensions.Update10hz(this, action); this.AENELEOCFPJ = disposable; } } // Token: 0x06012147 RID: 74055 RVA: 0x004512FC File Offset: 0x0044F4FC [Token(Token = "0x6012147")] [Address(RVA = "0x136F720", Offset = "0x136E120", VA = "0x18136F720", Slot = "4")] public void OnChangedDistanceBand(EEDONNAHMFK AKMGILKNNCO, EEDONNAHMFK EDEMHOMGFJO) { this.IHNKANMAFDM = EDEMHOMGFJO; this.PJOOKEOGIAA(); } // Token: 0x06012148 RID: 74056 RVA: 0x00451318 File Offset: 0x0044F518 [Token(Token = "0x6012148")] [Address(RVA = "0x136FBA0", Offset = "0x136E5A0", VA = "0x18136FBA0")] public VisibilityGroup() { int num; ActionEvent actionEvent = new ActionEvent(4, num != 0); num = 0; this.VisibilityChangedEvent = actionEvent; this.IHODDLMHDHP = true; base..ctor(); } // Token: 0x0400C159 RID: 49497 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x400C159")] [SerializeField] [Tooltip("Objects within this distance are never disabled, even if they are not visible")] private EEDONNAHMFK minVisibilityUpdateLod = (EEDONNAHMFK)((ulong)1L); // Token: 0x0400C15A RID: 49498 [global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")] [Token(Token = "0x400C15A")] [SerializeField] [Tooltip("Only update if within or equal to this UpdateLOD")] private EEDONNAHMFK maxVisibilityUpdateLod = (EEDONNAHMFK)((ulong)4L); // Token: 0x0400C15B RID: 49499 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x400C15B")] [SerializeField] private Component[] trackedComponents; // Token: 0x0400C15C RID: 49500 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x400C15C")] [SerializeField] private GameObject[] trackedObjects; // Token: 0x0400C15D RID: 49501 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x400C15D")] [SerializeField] [DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)] private VisibleInCamera visibleInCamera; // Token: 0x0400C15E RID: 49502 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x400C15E")] private EEDONNAHMFK IHNKANMAFDM; // Token: 0x0400C15F RID: 49503 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x400C15F")] private IDisposable AENELEOCFPJ; // Token: 0x0400C160 RID: 49504 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x400C160")] public readonly ActionEvent VisibilityChangedEvent; // Token: 0x0400C161 RID: 49505 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x400C161")] private bool IHODDLMHDHP; // Token: 0x0400C162 RID: 49506 [Token(Token = "0x400C162")] private static MEFKCIOFGAI CDDMBBEPIIE; } }