Files
27Aug2021-Cpp2IL-Dump/Assembly-CSharp/ClusterLOD/ClusterMesh.cs
T
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

503 lines
14 KiB
C#

using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;
namespace ClusterLOD
{
// Token: 0x0200134D RID: 4941
[Token(Token = "0x200134D")]
public class ClusterMesh : IDisposable
{
// Token: 0x170011D8 RID: 4568
// (get) Token: 0x06006EDF RID: 28383 RVA: 0x00185934 File Offset: 0x00183B34
// (set) Token: 0x06006EE0 RID: 28384 RVA: 0x00185948 File Offset: 0x00183B48
[Token(Token = "0x170011D8")]
public Mesh Mesh
{
[Token(Token = "0x6006EDF")]
[Address(RVA = "0x4157D0", Offset = "0x4147D0", VA = "0x1804157D0")]
get;
[Token(Token = "0x6006EE0")]
[Address(RVA = "0x415820", Offset = "0x414820", VA = "0x180415820")]
private set;
}
// Token: 0x170011D9 RID: 4569
// (get) Token: 0x06006EE1 RID: 28385 RVA: 0x0018595C File Offset: 0x00183B5C
// (set) Token: 0x06006EE2 RID: 28386 RVA: 0x00185970 File Offset: 0x00183B70
[Token(Token = "0x170011D9")]
public bool Dirty
{
[Token(Token = "0x6006EE1")]
[Address(RVA = "0x41CF00", Offset = "0x41BF00", VA = "0x18041CF00")]
get;
[Token(Token = "0x6006EE2")]
[Address(RVA = "0x41D000", Offset = "0x41C000", VA = "0x18041D000")]
private set;
}
// Token: 0x170011DA RID: 4570
// (get) Token: 0x06006EE3 RID: 28387 RVA: 0x00185984 File Offset: 0x00183B84
[Token(Token = "0x170011DA")]
public int MaxNumLOD1Indices
{
[Token(Token = "0x6006EE3")]
[Address(RVA = "0x1F44BA0", Offset = "0x1F43BA0", VA = "0x181F44BA0")]
get
{
ClusterMeshUpdateJobData clusterMeshUpdateJobData = this.updateData;
int num;
return num;
}
}
// Token: 0x06006EE4 RID: 28388 RVA: 0x001859A0 File Offset: 0x00183BA0
[Token(Token = "0x6006EE4")]
[Address(RVA = "0x1F43A50", Offset = "0x1F42A50", VA = "0x181F43A50", Slot = "4")]
public void Dispose()
{
int num;
do
{
num = 0;
OMCHJHPFBDN.KBFLHNONOHF(this.<Mesh>k__BackingField);
this.<Mesh>k__BackingField = num;
List<ClusterMesh.ClusterInfo> clusters = this.Clusters;
bool flag;
if (flag)
{
}
}
while (num != 0);
this.Clusters.Clear();
this.updateData.Dispose();
}
// Token: 0x06006EE5 RID: 28389 RVA: 0x001859F4 File Offset: 0x00183BF4
[Token(Token = "0x6006EE5")]
[Address(RVA = "0x1F44410", Offset = "0x1F43410", VA = "0x181F44410")]
public int GetLod(int clusterIdx)
{
NativeArray<int> componentLod = this.updateData.componentLod;
throw new NullReferenceException();
}
// Token: 0x06006EE6 RID: 28390 RVA: 0x00185A14 File Offset: 0x00183C14
[Token(Token = "0x6006EE6")]
[Address(RVA = "0x1F43900", Offset = "0x1F42900", VA = "0x181F43900")]
public void AddClusterNode(ClusterNode ownerNode)
{
ClusterMesh.ClusterInfo clusterInfo = new ClusterMesh.ClusterInfo();
List<IClusterLODComponent> list = new List();
clusterInfo.components = list;
PCIKHFEIHGO pcikhfeihgo = new PCIKHFEIHGO();
clusterInfo.nativeMesh = pcikhfeihgo;
SubdivideMeshData subdivideMeshData = new SubdivideMeshData();
clusterInfo.subdivideMeshData = subdivideMeshData;
List<IClusterLODComponent> components = ownerNode.components;
clusterInfo.components = components;
Bounds bounds = ownerNode.bounds;
clusterInfo.bounds = bounds;
clusterInfo.requestedLod = (byte)((ulong)1L);
this.Clusters.Add(clusterInfo);
int num = this.componentCount;
int num2 = clusterInfo.components._size;
num2 += num;
this.componentCount = num2;
}
// Token: 0x06006EE7 RID: 28391 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6006EE7")]
[Address(RVA = "0x1F43D40", Offset = "0x1F42D40", VA = "0x181F43D40")]
public void GenerateLODMesh(Transform rootTransform, bool dynamicCluster)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06006EE8 RID: 28392 RVA: 0x00185AB0 File Offset: 0x00183CB0
[Token(Token = "0x6006EE8")]
[Address(RVA = "0x1F43B90", Offset = "0x1F42B90", VA = "0x181F43B90")]
public bool FinalizeUpdate(bool setOrigIndices)
{
ClusterMeshUpdateJobData clusterMeshUpdateJobData = this.updateData;
if (!clusterMeshUpdateJobData.<IsActive>k__BackingField)
{
}
clusterMeshUpdateJobData.<IsActive>k__BackingField = false;
Mesh mesh = this.<Mesh>k__BackingField;
int num = 0;
if (!(mesh == num))
{
this.<Mesh>k__BackingField.subMeshCount = 2;
NativeList<int> indices = clusterMeshUpdateJobData.indices;
Mesh mesh2 = this.<Mesh>k__BackingField;
if (setOrigIndices)
{
NativeList<int> origIndices = clusterMeshUpdateJobData.origIndices;
Mesh mesh3 = this.<Mesh>k__BackingField;
}
}
throw new NullReferenceException();
}
// Token: 0x06006EE9 RID: 28393 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6006EE9")]
[Address(RVA = "0x1F446C0", Offset = "0x1F436C0", VA = "0x181F446C0")]
public void UpdateMesh(Transform root, bool dynamicCluster)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06006EEA RID: 28394 RVA: 0x00185B20 File Offset: 0x00183D20
[Token(Token = "0x6006EEA")]
[Address(RVA = "0x1F44440", Offset = "0x1F43440", VA = "0x181F44440")]
public bool Remove(IClusterLODComponent component)
{
int num;
do
{
num = 0;
List<ClusterMesh.ClusterInfo> clusters = this.Clusters;
bool flag;
if (flag)
{
int num2;
while (num2 == -1)
{
}
this.updateData.<IsActive>k__BackingField = false;
this.<Dirty>k__BackingField = true;
int num3 = this.componentCount;
this.componentCount = num3;
}
}
while (num != 0);
if (num != -1)
{
}
throw new NullReferenceException();
}
// Token: 0x06006EEB RID: 28395 RVA: 0x00185BA8 File Offset: 0x00183DA8
[Token(Token = "0x6006EEB")]
[Address(RVA = "0x1F44B20", Offset = "0x1F43B20", VA = "0x181F44B20")]
public ClusterMesh()
{
List<ClusterMesh.ClusterInfo> list = new List();
this.Clusters = list;
ClusterMeshUpdateJobData clusterMeshUpdateJobData = new ClusterMeshUpdateJobData();
this.updateData = clusterMeshUpdateJobData;
base..ctor();
}
// Token: 0x0400495C RID: 18780
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400495C")]
public Bounds bounds;
// Token: 0x0400495E RID: 18782
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400495E")]
public List<ClusterMesh.ClusterInfo> Clusters;
// Token: 0x0400495F RID: 18783
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400495F")]
public ClusterMeshUpdateJobData updateData;
// Token: 0x04004961 RID: 18785
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4004961")]
public ClusterMeshRenderer owner;
// Token: 0x04004962 RID: 18786
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4004962")]
private int componentCount;
// Token: 0x0200134E RID: 4942
[Token(Token = "0x200134E")]
public class ClusterInfo : IDisposable
{
// Token: 0x06006EEC RID: 28396 RVA: 0x00185BD8 File Offset: 0x00183DD8
[Token(Token = "0x6006EEC")]
[Address(RVA = "0x1F3C820", Offset = "0x1F3B820", VA = "0x181F3C820")]
public void GetRequiredCounts(NPBPPKDLKDN lod, out int vertexCount, out int indexCount)
{
int num;
do
{
num = 0;
vertexCount.m_value = num;
indexCount.m_value = num;
List<IClusterLODComponent> list = this.components;
bool flag;
if (flag)
{
num += num;
num++;
vertexCount.m_value = (flag ? 1 : 0);
uint num2;
if (num < (int)num2)
{
num += num;
num++;
}
indexCount.m_value = num;
int num3 = (int)(lod + (int)lod);
num++;
num += 19;
num3 += num3;
num += 2;
num += 19;
}
}
while (num != 0);
}
// Token: 0x06006EED RID: 28397 RVA: 0x00185C4C File Offset: 0x00183E4C
[Token(Token = "0x6006EED")]
[Address(RVA = "0x1F3BF70", Offset = "0x1F3AF70", VA = "0x181F3BF70")]
public JobHandle AppendToMesh(NPBPPKDLKDN lod, PCIKHFEIHGO destMesh, int startVertex, int startIndex, Transform rootTransform, OCCMLFOBCEM optimizationData, NativeList<CJJFNIHNLBD> occlusion)
{
int num;
do
{
num = 0;
bool flag;
if (flag)
{
num += num;
num++;
uint num2;
if (num < (int)num2)
{
num += num;
num++;
}
uint num3;
if (num < (int)num3)
{
num += num;
num++;
}
num += num;
num++;
bool flag2;
if (flag2)
{
}
int num4 = 0;
JobHandle.ScheduleBatchedJobs();
num4 += num4;
num4 += num4;
num4 += num4;
num4 += num4;
}
}
while (num != 0);
throw new NullReferenceException();
}
// Token: 0x06006EEE RID: 28398 RVA: 0x00185CCC File Offset: 0x00183ECC
[Token(Token = "0x6006EEE")]
[Address(RVA = "0x1F3BC70", Offset = "0x1F3AC70", VA = "0x181F3BC70")]
public void AppendOcclusionData(NativeList<CJJFNIHNLBD> occlusion, Transform rootTransform)
{
int num;
do
{
num = 0;
List<IClusterLODComponent> list = this.components;
bool flag;
if (flag)
{
num += num;
num++;
int num2 = 0;
bool flag2;
while (!flag2)
{
}
occlusion.Add(num2);
num2 += num2;
}
}
while (num != 0);
}
// Token: 0x170011DB RID: 4571
// (get) Token: 0x06006EEF RID: 28399 RVA: 0x00185D10 File Offset: 0x00183F10
[Token(Token = "0x170011DB")]
public int ComponentCount
{
[Token(Token = "0x6006EEF")]
[Address(RVA = "0x1F3CC20", Offset = "0x1F3BC20", VA = "0x181F3CC20")]
get
{
return this.components._size;
}
}
// Token: 0x170011DC RID: 4572
// (get) Token: 0x06006EF0 RID: 28400 RVA: 0x00185D30 File Offset: 0x00183F30
// (set) Token: 0x06006EF1 RID: 28401 RVA: 0x00185D44 File Offset: 0x00183F44
[Token(Token = "0x170011DC")]
public Mesh RequestedMesh
{
[Token(Token = "0x6006EF0")]
[Address(RVA = "0x4157E0", Offset = "0x4147E0", VA = "0x1804157E0")]
get;
[Token(Token = "0x6006EF1")]
[Address(RVA = "0x415830", Offset = "0x414830", VA = "0x180415830")]
private set;
}
// Token: 0x170011DD RID: 4573
// (get) Token: 0x06006EF2 RID: 28402 RVA: 0x00185D58 File Offset: 0x00183F58
// (set) Token: 0x06006EF3 RID: 28403 RVA: 0x00185D6C File Offset: 0x00183F6C
[Token(Token = "0x170011DD")]
public Mesh ActiveMesh
{
[Token(Token = "0x6006EF2")]
[Address(RVA = "0x41CEF0", Offset = "0x41BEF0", VA = "0x18041CEF0")]
get;
[Token(Token = "0x6006EF3")]
[Address(RVA = "0x41CFF0", Offset = "0x41BFF0", VA = "0x18041CFF0")]
set;
}
// Token: 0x06006EF4 RID: 28404 RVA: 0x00185D80 File Offset: 0x00183F80
[Token(Token = "0x6006EF4")]
[Address(RVA = "0x1F3CA50", Offset = "0x1F3BA50", VA = "0x181F3CA50")]
public void RequestNewMesh(Mesh mesh)
{
Mesh mesh2 = this.<RequestedMesh>k__BackingField;
Mesh mesh3 = this.<ActiveMesh>k__BackingField;
if (mesh2 != mesh3)
{
OMCHJHPFBDN.KBFLHNONOHF(this.<RequestedMesh>k__BackingField);
}
this.<RequestedMesh>k__BackingField = mesh;
}
// Token: 0x06006EF5 RID: 28405 RVA: 0x00185DB8 File Offset: 0x00183FB8
[Token(Token = "0x6006EF5")]
[Address(RVA = "0x1F3CAF0", Offset = "0x1F3BAF0", VA = "0x181F3CAF0")]
public void RequestRemoveMesh()
{
Mesh mesh = this.<RequestedMesh>k__BackingField;
Mesh mesh2 = this.<ActiveMesh>k__BackingField;
if (mesh != mesh2)
{
OMCHJHPFBDN.KBFLHNONOHF(this.<RequestedMesh>k__BackingField);
}
this.<RequestedMesh>k__BackingField = (ulong)0L;
}
// Token: 0x06006EF6 RID: 28406 RVA: 0x00185DF4 File Offset: 0x00183FF4
[Token(Token = "0x6006EF6")]
[Address(RVA = "0x1F3C610", Offset = "0x1F3B610", VA = "0x181F3C610", Slot = "4")]
public void Dispose()
{
ClusterLODManager instance = ClusterLODManager._instance;
int num = 0;
if (instance != num)
{
ClusterLODManager._instance.ClusterMeshAssetCache.Remove(this);
}
Mesh mesh = this.<RequestedMesh>k__BackingField;
Mesh mesh2 = this.<ActiveMesh>k__BackingField;
if (mesh != mesh2)
{
OMCHJHPFBDN.KBFLHNONOHF(this.<RequestedMesh>k__BackingField);
}
OMCHJHPFBDN.KBFLHNONOHF(this.<ActiveMesh>k__BackingField);
PCIKHFEIHGO pcikhfeihgo = this.nativeMesh;
int num2 = 0;
this.<RequestedMesh>k__BackingField = num2;
this.<ActiveMesh>k__BackingField = num2;
pcikhfeihgo.Dispose();
this.subdivideMeshData.Dispose();
}
// Token: 0x06006EF7 RID: 28407 RVA: 0x00185E84 File Offset: 0x00184084
[Token(Token = "0x6006EF7")]
[Address(RVA = "0x1F3CB80", Offset = "0x1F3BB80", VA = "0x181F3CB80")]
public ClusterInfo()
{
List<IClusterLODComponent> list = new List();
this.components = list;
PCIKHFEIHGO pcikhfeihgo = new PCIKHFEIHGO();
this.nativeMesh = pcikhfeihgo;
SubdivideMeshData subdivideMeshData = new SubdivideMeshData();
this.subdivideMeshData = subdivideMeshData;
base..ctor();
}
// Token: 0x04004963 RID: 18787
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4004963")]
public Bounds bounds;
// Token: 0x04004964 RID: 18788
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4004964")]
public List<IClusterLODComponent> components;
// Token: 0x04004967 RID: 18791
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4004967")]
public Vector3 closestPos;
// Token: 0x04004968 RID: 18792
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4004968")]
public float closestDist;
// Token: 0x04004969 RID: 18793
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4004969")]
public byte requestedLod;
// Token: 0x0400496A RID: 18794
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x400496A")]
public Vector3 prevUpdatedEyePos;
// Token: 0x0400496B RID: 18795
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x400496B")]
public int numLOD0Verts;
// Token: 0x0400496C RID: 18796
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x400496C")]
public int numLOD1Verts;
// Token: 0x0400496D RID: 18797
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400496D")]
public int numAdditionalVerts;
// Token: 0x0400496E RID: 18798
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400496E")]
public PCIKHFEIHGO nativeMesh;
// Token: 0x0400496F RID: 18799
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400496F")]
public SubdivideMeshData subdivideMeshData;
// Token: 0x04004970 RID: 18800
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4004970")]
public Transform root;
}
}
}