using System; using System.Collections.Generic; using System.Runtime.InteropServices; using Cpp2IlInjected; using RecRoom; using Unity.Collections; using UnityEngine; namespace ClusterLOD { // Token: 0x02000C85 RID: 3205 [Token(Token = "0x2000C85")] [StructLayout(3)] public class ClusterMesh : IDisposable { // Token: 0x17000D63 RID: 3427 // (get) Token: 0x06004D26 RID: 19750 RVA: 0x0011EFF4 File Offset: 0x0011D1F4 // (set) Token: 0x06004D27 RID: 19751 RVA: 0x0011F008 File Offset: 0x0011D208 [Token(Token = "0x17000D63")] public Mesh Mesh { [Token(Token = "0x6004D26")] [Address(RVA = "0x3C1230", Offset = "0x3BFC30", VA = "0x1803C1230")] get; [Token(Token = "0x6004D27")] [Address(RVA = "0x3C1270", Offset = "0x3BFC70", VA = "0x1803C1270")] private set; } // Token: 0x17000D64 RID: 3428 // (get) Token: 0x06004D28 RID: 19752 RVA: 0x0011F01C File Offset: 0x0011D21C // (set) Token: 0x06004D29 RID: 19753 RVA: 0x0011F030 File Offset: 0x0011D230 [Token(Token = "0x17000D64")] public bool Dirty { [Token(Token = "0x6004D28")] [Address(RVA = "0x421DE0", Offset = "0x4207E0", VA = "0x180421DE0")] get; [Token(Token = "0x6004D29")] [Address(RVA = "0x421DF0", Offset = "0x4207F0", VA = "0x180421DF0")] private set; } // Token: 0x17000D65 RID: 3429 // (get) Token: 0x06004D2A RID: 19754 RVA: 0x0011F044 File Offset: 0x0011D244 [Token(Token = "0x17000D65")] public int MaxNumLOD1Indices { [Token(Token = "0x6004D2A")] [Address(RVA = "0x1B354A0", Offset = "0x1B33EA0", VA = "0x181B354A0")] get { ClusterMeshUpdateJobData clusterMeshUpdateJobData = this.updateData; throw new NullReferenceException(); } } // Token: 0x06004D2B RID: 19755 RVA: 0x0011F060 File Offset: 0x0011D260 [Token(Token = "0x6004D2B")] [Address(RVA = "0x1B34260", Offset = "0x1B32C60", VA = "0x181B34260", Slot = "4")] public void Dispose() { int num; do { num = 0; SafeDestroy.Asset(this.k__BackingField); this.k__BackingField = num; List clusters = this.Clusters; List.Enumerator enumerator; if (enumerator != 0) { } if (num != -1) { } } while (num != 0); this.Clusters.Clear(); this.updateData.Dispose(); } // Token: 0x06004D2C RID: 19756 RVA: 0x0011F0B8 File Offset: 0x0011D2B8 [Token(Token = "0x6004D2C")] [Address(RVA = "0x1B34D00", Offset = "0x1B33700", VA = "0x181B34D00")] public int GetLod(int clusterIdx) { NativeArray componentLod = this.updateData.componentLod; throw new NullReferenceException(); } // Token: 0x06004D2D RID: 19757 RVA: 0x0011F0D8 File Offset: 0x0011D2D8 [Token(Token = "0x6004D2D")] [Address(RVA = "0x1B34140", Offset = "0x1B32B40", VA = "0x181B34140")] public void AddClusterNode(ClusterNode ownerNode) { ClusterMesh.ClusterInfo clusterInfo = new ClusterMesh.ClusterInfo(); List list = new List(); clusterInfo.components = list; NativeClusterMesh nativeClusterMesh = new NativeClusterMesh(); clusterInfo.nativeMesh = nativeClusterMesh; 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); } // Token: 0x06004D2E RID: 19758 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6004D2E")] [Address(RVA = "0x1B345C0", Offset = "0x1B32FC0", VA = "0x181B345C0")] public void GenerateLODMesh(Transform root, bool dynamicCluster) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06004D2F RID: 19759 RVA: 0x0011F150 File Offset: 0x0011D350 [Token(Token = "0x6004D2F")] [Address(RVA = "0x1B343E0", Offset = "0x1B32DE0", VA = "0x181B343E0")] 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; int num2 = 0; int num3 = 0; List list; mesh2.SetTriangles(list, num3, num2 != 0); if (setOrigIndices) { NativeList origIndices = clusterMeshUpdateJobData.origIndices; Mesh mesh3 = this.k__BackingField; int num4 = 0; List list2; mesh3.SetTriangles(list2, 1, num4 != 0); } } throw new NullReferenceException(); } // Token: 0x06004D30 RID: 19760 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6004D30")] [Address(RVA = "0x1B34FB0", Offset = "0x1B339B0", VA = "0x181B34FB0")] public void UpdateMesh(Transform root, bool dynamicCluster) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06004D31 RID: 19761 RVA: 0x0011F1E4 File Offset: 0x0011D3E4 [Token(Token = "0x6004D31")] [Address(RVA = "0x1B34D30", Offset = "0x1B33730", VA = "0x181B34D30")] public bool Remove(IClusterLODComponent component) { int num; do { num = 0; List clusters = this.Clusters; List.Enumerator enumerator; if (enumerator != 0) { int num2; while (num2 == -1) { } this.updateData.k__BackingField = false; this.k__BackingField = true; } if (num != -1) { } } while (num != 0); throw new NullReferenceException(); } // Token: 0x06004D32 RID: 19762 RVA: 0x0011F258 File Offset: 0x0011D458 [Token(Token = "0x6004D32")] [Address(RVA = "0x1B35420", Offset = "0x1B33E20", VA = "0x181B35420")] public ClusterMesh() { List list = new List(); this.Clusters = list; ClusterMeshUpdateJobData clusterMeshUpdateJobData = new ClusterMeshUpdateJobData(); this.updateData = clusterMeshUpdateJobData; base..ctor(); } // Token: 0x04003929 RID: 14633 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4003929")] public Bounds bounds; // Token: 0x0400392B RID: 14635 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x400392B")] public List Clusters; // Token: 0x0400392C RID: 14636 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x400392C")] public ClusterMeshUpdateJobData updateData; // Token: 0x0400392E RID: 14638 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x400392E")] public ClusterMeshRenderer owner; // Token: 0x02000C86 RID: 3206 [Token(Token = "0x2000C86")] public class ClusterInfo : IDisposable { // Token: 0x17000D66 RID: 3430 // (get) Token: 0x06004D33 RID: 19763 RVA: 0x0011F288 File Offset: 0x0011D488 // (set) Token: 0x06004D34 RID: 19764 RVA: 0x0011F29C File Offset: 0x0011D49C [Token(Token = "0x17000D66")] public Mesh RequestedMesh { [Token(Token = "0x6004D33")] [Address(RVA = "0x3C1250", Offset = "0x3BFC50", VA = "0x1803C1250")] get; [Token(Token = "0x6004D34")] [Address(RVA = "0x3C1290", Offset = "0x3BFC90", VA = "0x1803C1290")] private set; } // Token: 0x17000D67 RID: 3431 // (get) Token: 0x06004D35 RID: 19765 RVA: 0x0011F2B0 File Offset: 0x0011D4B0 // (set) Token: 0x06004D36 RID: 19766 RVA: 0x0011F2C4 File Offset: 0x0011D4C4 [Token(Token = "0x17000D67")] public Mesh ActiveMesh { [Token(Token = "0x6004D35")] [Address(RVA = "0x3EE8E0", Offset = "0x3ED2E0", VA = "0x1803EE8E0")] get; [Token(Token = "0x6004D36")] [Address(RVA = "0x421E00", Offset = "0x420800", VA = "0x180421E00")] set; } // Token: 0x06004D37 RID: 19767 RVA: 0x0011F2D8 File Offset: 0x0011D4D8 [Token(Token = "0x6004D37")] [Address(RVA = "0x1B2C160", Offset = "0x1B2AB60", VA = "0x181B2C160")] public void RequestNewMesh(Mesh mesh) { Mesh mesh2 = this.k__BackingField; Mesh mesh3 = this.k__BackingField; if (mesh2 != mesh3) { SafeDestroy.Asset(this.k__BackingField); } this.k__BackingField = mesh; } // Token: 0x06004D38 RID: 19768 RVA: 0x0011F310 File Offset: 0x0011D510 [Token(Token = "0x6004D38")] [Address(RVA = "0x1B2C200", Offset = "0x1B2AC00", VA = "0x181B2C200")] public void RequestRemoveMesh() { Mesh mesh = this.k__BackingField; Mesh mesh2 = this.k__BackingField; if (mesh != mesh2) { SafeDestroy.Asset(this.k__BackingField); } this.k__BackingField = (ulong)0L; } // Token: 0x06004D39 RID: 19769 RVA: 0x0011F34C File Offset: 0x0011D54C [Token(Token = "0x6004D39")] [Address(RVA = "0x1B2C0A0", Offset = "0x1B2AAA0", VA = "0x181B2C0A0", Slot = "4")] public void Dispose() { Mesh mesh = this.k__BackingField; Mesh mesh2 = this.k__BackingField; if (mesh != mesh2) { SafeDestroy.Asset(this.k__BackingField); } SafeDestroy.Asset(this.k__BackingField); NativeClusterMesh nativeClusterMesh = this.nativeMesh; int num = 0; this.k__BackingField = num; this.k__BackingField = num; nativeClusterMesh.Dispose(); this.subdivideMeshData.Dispose(); } // Token: 0x06004D3A RID: 19770 RVA: 0x0011F3B8 File Offset: 0x0011D5B8 [Token(Token = "0x6004D3A")] [Address(RVA = "0x1B2C290", Offset = "0x1B2AC90", VA = "0x181B2C290")] public ClusterInfo() { List list = new List(); this.components = list; NativeClusterMesh nativeClusterMesh = new NativeClusterMesh(); this.nativeMesh = nativeClusterMesh; SubdivideMeshData subdivideMeshData = new SubdivideMeshData(); this.subdivideMeshData = subdivideMeshData; base..ctor(); } // Token: 0x0400392F RID: 14639 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x400392F")] public Bounds bounds; // Token: 0x04003930 RID: 14640 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x4003930")] public List components; // Token: 0x04003933 RID: 14643 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x4003933")] public Vector3 closestPos; // Token: 0x04003934 RID: 14644 [global::Cpp2IlInjected.FieldOffset(Offset = "0x4C")] [Token(Token = "0x4003934")] public float closestDist; // Token: 0x04003935 RID: 14645 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x4003935")] public byte requestedLod; // Token: 0x04003936 RID: 14646 [global::Cpp2IlInjected.FieldOffset(Offset = "0x54")] [Token(Token = "0x4003936")] public Vector3 prevUpdatedEyePos; // Token: 0x04003937 RID: 14647 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x4003937")] public int numLOD0Verts; // Token: 0x04003938 RID: 14648 [global::Cpp2IlInjected.FieldOffset(Offset = "0x64")] [Token(Token = "0x4003938")] public int numLOD1Verts; // Token: 0x04003939 RID: 14649 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x4003939")] public int numAdditionalVerts; // Token: 0x0400393A RID: 14650 [global::Cpp2IlInjected.FieldOffset(Offset = "0x70")] [Token(Token = "0x400393A")] public NativeClusterMesh nativeMesh; // Token: 0x0400393B RID: 14651 [global::Cpp2IlInjected.FieldOffset(Offset = "0x78")] [Token(Token = "0x400393B")] public SubdivideMeshData subdivideMeshData; // Token: 0x0400393C RID: 14652 [global::Cpp2IlInjected.FieldOffset(Offset = "0x80")] [Token(Token = "0x400393C")] public Transform root; } } }