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.k__BackingField); this.k__BackingField = num; List 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 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 list = new List(); clusterInfo.components = list; PCIKHFEIHGO pcikhfeihgo = new PCIKHFEIHGO(); clusterInfo.nativeMesh = pcikhfeihgo; SubdivideMeshData subdivideMeshData = new SubdivideMeshData(); clusterInfo.subdivideMeshData = subdivideMeshData; List 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.k__BackingField) { } clusterMeshUpdateJobData.k__BackingField = false; Mesh mesh = this.k__BackingField; int num = 0; if (!(mesh == num)) { this.k__BackingField.subMeshCount = 2; NativeList indices = clusterMeshUpdateJobData.indices; Mesh mesh2 = this.k__BackingField; if (setOrigIndices) { NativeList origIndices = clusterMeshUpdateJobData.origIndices; Mesh mesh3 = this.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 clusters = this.Clusters; bool flag; if (flag) { int num2; while (num2 == -1) { } this.updateData.k__BackingField = false; this.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 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 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 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 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 occlusion, Transform rootTransform) { int num; do { num = 0; List 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.k__BackingField; Mesh mesh3 = this.k__BackingField; if (mesh2 != mesh3) { OMCHJHPFBDN.KBFLHNONOHF(this.k__BackingField); } this.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.k__BackingField; Mesh mesh2 = this.k__BackingField; if (mesh != mesh2) { OMCHJHPFBDN.KBFLHNONOHF(this.k__BackingField); } this.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.k__BackingField; Mesh mesh2 = this.k__BackingField; if (mesh != mesh2) { OMCHJHPFBDN.KBFLHNONOHF(this.k__BackingField); } OMCHJHPFBDN.KBFLHNONOHF(this.k__BackingField); PCIKHFEIHGO pcikhfeihgo = this.nativeMesh; int num2 = 0; this.k__BackingField = num2; this.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 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 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; } } }