Files
BepInEx/Projects/BanquetForFools/Source/Assembly-CSharp/LOS/LOSManager.cs
2025-05-21 20:40:04 +02:00

128 lines
3.2 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
namespace LOS
{
// Token: 0x02000108 RID: 264
public class LOSManager
{
// Token: 0x06001603 RID: 5635 RVA: 0x0019D056 File Offset: 0x0019B256
private LOSManager()
{
}
// Token: 0x1700002B RID: 43
// (get) Token: 0x06001604 RID: 5636 RVA: 0x0019D084 File Offset: 0x0019B284
public static LOSManager Instance
{
get
{
if (LOSManager.m_Instance == null)
{
LOSManager.m_Instance = new LOSManager();
}
return LOSManager.m_Instance;
}
}
// Token: 0x1700002C RID: 44
// (get) Token: 0x06001605 RID: 5637 RVA: 0x0019D09C File Offset: 0x0019B29C
public List<LOSSource> LOSSources
{
get
{
return this.m_LOSSources;
}
}
// Token: 0x1700002D RID: 45
// (get) Token: 0x06001606 RID: 5638 RVA: 0x0019D0A4 File Offset: 0x0019B2A4
public int ActiveCameraCount
{
get
{
int num = 0;
using (List<LOSSource>.Enumerator enumerator = this.m_LOSSources.GetEnumerator())
{
while (enumerator.MoveNext())
{
if (((ILOSSource)enumerator.Current).IsVisible)
{
num++;
}
}
}
return num;
}
}
// Token: 0x1700002E RID: 46
// (get) Token: 0x06001607 RID: 5639 RVA: 0x0019D100 File Offset: 0x0019B300
public int CameraCount
{
get
{
return this.m_LOSSources.Count;
}
}
// Token: 0x06001608 RID: 5640 RVA: 0x0019D10D File Offset: 0x0019B30D
public void AddLOSSource(LOSSource source)
{
this.m_LOSSources.Add(source);
}
// Token: 0x06001609 RID: 5641 RVA: 0x0019D11B File Offset: 0x0019B31B
public void RemoveLOSSource(LOSSource source)
{
this.m_LOSSources.Remove(source);
}
// Token: 0x0600160A RID: 5642 RVA: 0x0019D12C File Offset: 0x0019B32C
public CullingGroup AddCullingGroup(Camera targetCamera)
{
if (!this.m_CullingGroups.ContainsKey(targetCamera))
{
CullingGroup cullingGroup = new CullingGroup();
cullingGroup.targetCamera = targetCamera;
cullingGroup.SetBoundingSpheres(this.m_BoundingSpheres);
this.m_CullingGroups.Add(targetCamera, cullingGroup);
}
return this.m_CullingGroups[targetCamera];
}
// Token: 0x0600160B RID: 5643 RVA: 0x0019D179 File Offset: 0x0019B379
public void RemoveCullingGroup(Camera targetCamera)
{
if (this.m_CullingGroups.ContainsKey(targetCamera))
{
CullingGroup cullingGroup = this.m_CullingGroups[targetCamera];
cullingGroup.onStateChanged = null;
cullingGroup.Dispose();
this.m_CullingGroups.Remove(targetCamera);
}
}
// Token: 0x0600160C RID: 5644 RVA: 0x0019D1B0 File Offset: 0x0019B3B0
private CullingGroup GetCullingGroup(Camera targetCamera)
{
CullingGroup cullingGroup;
this.m_CullingGroups.TryGetValue(targetCamera, out cullingGroup);
return cullingGroup;
}
// Token: 0x0400261C RID: 9756
private static LOSManager m_Instance;
// Token: 0x0400261D RID: 9757
private List<LOSSource> m_LOSSources = new List<LOSSource>();
// Token: 0x0400261E RID: 9758
private BoundingSphere[] m_BoundingSpheres = new BoundingSphere[512];
// Token: 0x0400261F RID: 9759
private Dictionary<Camera, CullingGroup> m_CullingGroups = new Dictionary<Camera, CullingGroup>();
}
}