497 lines
14 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|