Files
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

299 lines
8.3 KiB
C#

using System;
using Cpp2IlInjected;
using RecRoom.Core.Culling;
using UnityEngine;
namespace RecRoom.Core.Updates
{
// Token: 0x02002E44 RID: 11844
[Token(Token = "0x2002E44")]
public class VisibilityGroup : MonoBehaviour, OFCHBCNPCBH
{
// Token: 0x1700379C RID: 14236
// (get) Token: 0x0601401E RID: 81950 RVA: 0x004A1330 File Offset: 0x0049F530
[Token(Token = "0x1700379C")]
public EEDONNAHMFK PMEKAADPMAH
{
[Token(Token = "0x601401E")]
[Address(RVA = "0x42B830", Offset = "0x42A830", VA = "0x18042B830")]
get
{
return this.IHNKANMAFDM;
}
}
// Token: 0x0601401F RID: 81951 RVA: 0x004A1344 File Offset: 0x0049F544
[Token(Token = "0x601401F")]
[Address(RVA = "0x1610500", Offset = "0x160F500", VA = "0x181610500")]
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<VisibilityGroup>((int)num3, (ushort)num2);
MEFKCIOFGAI<VisibilityGroup> cddmbbepiie = VisibilityGroup.CDDMBBEPIIE;
num += num;
num++;
}
// Token: 0x06014020 RID: 81952 RVA: 0x004A13C8 File Offset: 0x0049F5C8
[Token(Token = "0x6014020")]
[Address(RVA = "0x1610EA0", Offset = "0x160FEA0", VA = "0x181610EA0")]
private void Start()
{
this.PJOOKEOGIAA();
}
// Token: 0x06014021 RID: 81953 RVA: 0x004A13DC File Offset: 0x0049F5DC
[Token(Token = "0x6014021")]
[Address(RVA = "0x1610A40", Offset = "0x160FA40", VA = "0x181610A40")]
private void OnDestroy()
{
if (VisibilityGroup.CDDMBBEPIIE != 0)
{
int num = 0;
num += num;
num++;
}
}
// Token: 0x06014022 RID: 81954 RVA: 0x004A13FC File Offset: 0x0049F5FC
[Token(Token = "0x6014022")]
[Address(RVA = "0x16108B0", Offset = "0x160F8B0", VA = "0x1816108B0")]
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: 0x06014023 RID: 81955 RVA: 0x004A144C File Offset: 0x0049F64C
[Token(Token = "0x6014023")]
[Address(RVA = "0x1610750", Offset = "0x160F750", VA = "0x181610750")]
private bool DIPFBKHEAAI()
{
return this.IHNKANMAFDM <= this.minVisibilityUpdateLod || this.visibleInCamera.GDPKBEBEOBA;
}
// Token: 0x06014024 RID: 81956 RVA: 0x004A147C File Offset: 0x0049F67C
[Token(Token = "0x6014024")]
[Address(RVA = "0x1610950", Offset = "0x160F950", VA = "0x181610950")]
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: 0x06014025 RID: 81957 RVA: 0x004A14DC File Offset: 0x0049F6DC
[Token(Token = "0x6014025")]
[Address(RVA = "0x1610790", Offset = "0x160F790", VA = "0x181610790")]
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: 0x06014026 RID: 81958 RVA: 0x004A1524 File Offset: 0x0049F724
[Token(Token = "0x6014026")]
[Address(RVA = "0x1610B00", Offset = "0x160FB00", VA = "0x181610B00")]
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: 0x06014027 RID: 81959 RVA: 0x004A15B8 File Offset: 0x0049F7B8
[Token(Token = "0x6014027")]
[Address(RVA = "0x1610DC0", Offset = "0x160FDC0", VA = "0x181610DC0")]
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<bool> visibilityChangedEvent = this.VisibilityChangedEvent;
int num2 = 0;
visibilityChangedEvent.CNFDGDEOPPF(num2);
this.IHODDLMHDHP = false;
return;
}
}
}
else if (aeneleocfpj == 0)
{
Action<float> action = new Action(this.IONJHHDNPEB);
IDisposable disposable = ADIFCODGAML.FOFJADGKNJF(this, action);
this.AENELEOCFPJ = disposable;
}
}
// Token: 0x06014028 RID: 81960 RVA: 0x004A1640 File Offset: 0x0049F840
[Token(Token = "0x6014028")]
[Address(RVA = "0x1610A30", Offset = "0x160FA30", VA = "0x181610A30", Slot = "4")]
public void OnChangedDistanceBand(EEDONNAHMFK AKMGILKNNCO, EEDONNAHMFK EDEMHOMGFJO)
{
this.IHNKANMAFDM = EDEMHOMGFJO;
this.PJOOKEOGIAA();
}
// Token: 0x06014029 RID: 81961 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6014029")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "5")]
public void OnChangedVisibility(bool AGILHLJPKPN)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0601402A RID: 81962 RVA: 0x004A165C File Offset: 0x0049F85C
[Token(Token = "0x601402A")]
[Address(RVA = "0x1610EB0", Offset = "0x160FEB0", VA = "0x181610EB0")]
public VisibilityGroup()
{
int num;
int num2;
MFBGLIHGCGO<bool> mfbglihgcgo = new MFBGLIHGCGO(4, num != 0, num2 != 0);
num2 = 0;
num = 0;
this.VisibilityChangedEvent = mfbglihgcgo;
this.IHODDLMHDHP = true;
base..ctor();
}
// Token: 0x0400CF65 RID: 53093
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400CF65")]
[SerializeField]
[Tooltip("Objects within this distance are never disabled, even if they are not visible")]
private EEDONNAHMFK minVisibilityUpdateLod = (EEDONNAHMFK)((ulong)1L);
// Token: 0x0400CF66 RID: 53094
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x400CF66")]
[SerializeField]
[Tooltip("Only update if within or equal to this UpdateLOD")]
private EEDONNAHMFK maxVisibilityUpdateLod = (EEDONNAHMFK)((ulong)4L);
// Token: 0x0400CF67 RID: 53095
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400CF67")]
[SerializeField]
private Component[] trackedComponents;
// Token: 0x0400CF68 RID: 53096
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400CF68")]
[SerializeField]
private GameObject[] trackedObjects;
// Token: 0x0400CF69 RID: 53097
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400CF69")]
[SerializeField]
[NKNLDEIPALE(FHBJCBPFODN.Self, false, false, false)]
private VisibleInCamera visibleInCamera;
// Token: 0x0400CF6A RID: 53098
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400CF6A")]
private EEDONNAHMFK IHNKANMAFDM;
// Token: 0x0400CF6B RID: 53099
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400CF6B")]
private IDisposable AENELEOCFPJ;
// Token: 0x0400CF6C RID: 53100
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400CF6C")]
public readonly MFBGLIHGCGO<bool> VisibilityChangedEvent;
// Token: 0x0400CF6D RID: 53101
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400CF6D")]
private bool IHODDLMHDHP;
// Token: 0x0400CF6E RID: 53102
[Token(Token = "0x400CF6E")]
private static MEFKCIOFGAI<VisibilityGroup> CDDMBBEPIIE;
}
}