Files
niko 8fc35183db a
2026-04-11 22:19:20 +02:00

497 lines
14 KiB
C#

using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;
namespace ClusterLOD
{
// Token: 0x0200127D RID: 4733
[Token(Token = "0x200127D")]
public class ClusterMesh : IDisposable
{
// Token: 0x1700115C RID: 4444
// (get) Token: 0x06006B6C RID: 27500 RVA: 0x0017D3B8 File Offset: 0x0017B5B8
// (set) Token: 0x06006B6D RID: 27501 RVA: 0x0017D3CC File Offset: 0x0017B5CC
[Token(Token = "0x1700115C")]
public Mesh Mesh
{
[Token(Token = "0x6006B6C")]
[Address(RVA = "0x3F63E0", Offset = "0x3F51E0", VA = "0x1803F63E0")]
get;
[Token(Token = "0x6006B6D")]
[Address(RVA = "0x409C60", Offset = "0x408A60", VA = "0x180409C60")]
private set;
}
// Token: 0x1700115D RID: 4445
// (get) Token: 0x06006B6E RID: 27502 RVA: 0x0017D3E0 File Offset: 0x0017B5E0
// (set) Token: 0x06006B6F RID: 27503 RVA: 0x0017D3F4 File Offset: 0x0017B5F4
[Token(Token = "0x1700115D")]
public bool Dirty
{
[Token(Token = "0x6006B6E")]
[Address(RVA = "0x4363F0", Offset = "0x4351F0", VA = "0x1804363F0")]
get;
[Token(Token = "0x6006B6F")]
[Address(RVA = "0x4366B0", Offset = "0x4354B0", VA = "0x1804366B0")]
private set;
}
// Token: 0x1700115E RID: 4446
// (get) Token: 0x06006B70 RID: 27504 RVA: 0x0017D408 File Offset: 0x0017B608
[Token(Token = "0x1700115E")]
public int MaxNumLOD1Indices
{
[Token(Token = "0x6006B70")]
[Address(RVA = "0x1469770", Offset = "0x1468570", VA = "0x181469770")]
get
{
ClusterMeshUpdateJobData clusterMeshUpdateJobData = this.updateData;
int num;
return num;
}
}
// Token: 0x06006B71 RID: 27505 RVA: 0x0017D424 File Offset: 0x0017B624
[Token(Token = "0x6006B71")]
[Address(RVA = "0x1468620", Offset = "0x1467420", VA = "0x181468620", 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: 0x06006B72 RID: 27506 RVA: 0x0017D478 File Offset: 0x0017B678
[Token(Token = "0x6006B72")]
[Address(RVA = "0x1468FE0", Offset = "0x1467DE0", VA = "0x181468FE0")]
public int GetLod(int clusterIdx)
{
NativeArray<int> componentLod = this.updateData.componentLod;
throw new NullReferenceException();
}
// Token: 0x06006B73 RID: 27507 RVA: 0x0017D498 File Offset: 0x0017B698
[Token(Token = "0x6006B73")]
[Address(RVA = "0x14684D0", Offset = "0x14672D0", VA = "0x1814684D0")]
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: 0x06006B74 RID: 27508 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6006B74")]
[Address(RVA = "0x1468910", Offset = "0x1467710", VA = "0x181468910")]
public void GenerateLODMesh(Transform rootTransform, bool dynamicCluster)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06006B75 RID: 27509 RVA: 0x0017D534 File Offset: 0x0017B734
[Token(Token = "0x6006B75")]
[Address(RVA = "0x1468760", Offset = "0x1467560", VA = "0x181468760")]
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: 0x06006B76 RID: 27510 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6006B76")]
[Address(RVA = "0x1469290", Offset = "0x1468090", VA = "0x181469290")]
public void UpdateMesh(Transform root, bool dynamicCluster)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06006B77 RID: 27511 RVA: 0x0017D5A4 File Offset: 0x0017B7A4
[Token(Token = "0x6006B77")]
[Address(RVA = "0x1469010", Offset = "0x1467E10", VA = "0x181469010")]
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: 0x06006B78 RID: 27512 RVA: 0x0017D62C File Offset: 0x0017B82C
[Token(Token = "0x6006B78")]
[Address(RVA = "0x14696F0", Offset = "0x14684F0", VA = "0x1814696F0")]
public ClusterMesh()
{
List<ClusterMesh.ClusterInfo> list = new List();
this.Clusters = list;
ClusterMeshUpdateJobData clusterMeshUpdateJobData = new ClusterMeshUpdateJobData();
this.updateData = clusterMeshUpdateJobData;
base..ctor();
}
// Token: 0x040047DA RID: 18394
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40047DA")]
public Bounds bounds;
// Token: 0x040047DC RID: 18396
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40047DC")]
public List<ClusterMesh.ClusterInfo> Clusters;
// Token: 0x040047DD RID: 18397
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40047DD")]
public ClusterMeshUpdateJobData updateData;
// Token: 0x040047DF RID: 18399
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40047DF")]
public ClusterMeshRenderer owner;
// Token: 0x040047E0 RID: 18400
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40047E0")]
private int componentCount;
// Token: 0x0200127E RID: 4734
[Token(Token = "0x200127E")]
public class ClusterInfo : IDisposable
{
// Token: 0x06006B79 RID: 27513 RVA: 0x0017D65C File Offset: 0x0017B85C
[Token(Token = "0x6006B79")]
[Address(RVA = "0x1461730", Offset = "0x1460530", VA = "0x181461730")]
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: 0x06006B7A RID: 27514 RVA: 0x0017D6D0 File Offset: 0x0017B8D0
[Token(Token = "0x6006B7A")]
[Address(RVA = "0x1460FC0", Offset = "0x145FDC0", VA = "0x181460FC0")]
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: 0x06006B7B RID: 27515 RVA: 0x0017D750 File Offset: 0x0017B950
[Token(Token = "0x6006B7B")]
[Address(RVA = "0x1460CC0", Offset = "0x145FAC0", VA = "0x181460CC0")]
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: 0x1700115F RID: 4447
// (get) Token: 0x06006B7C RID: 27516 RVA: 0x0017D794 File Offset: 0x0017B994
[Token(Token = "0x1700115F")]
public int ComponentCount
{
[Token(Token = "0x6006B7C")]
[Address(RVA = "0x1461B30", Offset = "0x1460930", VA = "0x181461B30")]
get
{
return this.components._size;
}
}
// Token: 0x17001160 RID: 4448
// (get) Token: 0x06006B7D RID: 27517 RVA: 0x0017D7B4 File Offset: 0x0017B9B4
// (set) Token: 0x06006B7E RID: 27518 RVA: 0x0017D7C8 File Offset: 0x0017B9C8
[Token(Token = "0x17001160")]
public Mesh RequestedMesh
{
[Token(Token = "0x6006B7D")]
[Address(RVA = "0x3FA180", Offset = "0x3F8F80", VA = "0x1803FA180")]
get;
[Token(Token = "0x6006B7E")]
[Address(RVA = "0x4437E0", Offset = "0x4425E0", VA = "0x1804437E0")]
private set;
}
// Token: 0x17001161 RID: 4449
// (get) Token: 0x06006B7F RID: 27519 RVA: 0x0017D7DC File Offset: 0x0017B9DC
// (set) Token: 0x06006B80 RID: 27520 RVA: 0x0017D7F0 File Offset: 0x0017B9F0
[Token(Token = "0x17001161")]
public Mesh ActiveMesh
{
[Token(Token = "0x6006B7F")]
[Address(RVA = "0x3F63D0", Offset = "0x3F51D0", VA = "0x1803F63D0")]
get;
[Token(Token = "0x6006B80")]
[Address(RVA = "0x5329E0", Offset = "0x5317E0", VA = "0x1805329E0")]
set;
}
// Token: 0x06006B81 RID: 27521 RVA: 0x0017D804 File Offset: 0x0017BA04
[Token(Token = "0x6006B81")]
[Address(RVA = "0x1461960", Offset = "0x1460760", VA = "0x181461960")]
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: 0x06006B82 RID: 27522 RVA: 0x0017D83C File Offset: 0x0017BA3C
[Token(Token = "0x6006B82")]
[Address(RVA = "0x1461A00", Offset = "0x1460800", VA = "0x181461A00")]
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: 0x06006B83 RID: 27523 RVA: 0x0017D878 File Offset: 0x0017BA78
[Token(Token = "0x6006B83")]
[Address(RVA = "0x1461660", Offset = "0x1460460", VA = "0x181461660", Slot = "4")]
public void Dispose()
{
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 num = 0;
this.<RequestedMesh>k__BackingField = num;
this.<ActiveMesh>k__BackingField = num;
pcikhfeihgo.Dispose();
this.subdivideMeshData.Dispose();
}
// Token: 0x06006B84 RID: 27524 RVA: 0x0017D8E4 File Offset: 0x0017BAE4
[Token(Token = "0x6006B84")]
[Address(RVA = "0x1461A90", Offset = "0x1460890", VA = "0x181461A90")]
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: 0x040047E1 RID: 18401
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40047E1")]
public Bounds bounds;
// Token: 0x040047E2 RID: 18402
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40047E2")]
public List<IClusterLODComponent> components;
// Token: 0x040047E5 RID: 18405
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40047E5")]
public Vector3 closestPos;
// Token: 0x040047E6 RID: 18406
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x40047E6")]
public float closestDist;
// Token: 0x040047E7 RID: 18407
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40047E7")]
public byte requestedLod;
// Token: 0x040047E8 RID: 18408
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x40047E8")]
public Vector3 prevUpdatedEyePos;
// Token: 0x040047E9 RID: 18409
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40047E9")]
public int numLOD0Verts;
// Token: 0x040047EA RID: 18410
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x40047EA")]
public int numLOD1Verts;
// Token: 0x040047EB RID: 18411
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40047EB")]
public int numAdditionalVerts;
// Token: 0x040047EC RID: 18412
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x40047EC")]
public PCIKHFEIHGO nativeMesh;
// Token: 0x040047ED RID: 18413
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x40047ED")]
public SubdivideMeshData subdivideMeshData;
// Token: 0x040047EE RID: 18414
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x40047EE")]
public Transform root;
}
}
}