using System; using System.Collections.Generic; using System.Runtime.InteropServices; using Cpp2IlInjected; using RecRoom.Core.Rendering; using Unity.Collections; using UnityEngine; namespace ClusterLOD { // Token: 0x02000C92 RID: 3218 [Token(Token = "0x2000C92")] [StructLayout(3)] public class ClusterMeshRenderer : MonoBehaviour { // Token: 0x06004D6F RID: 19823 RVA: 0x00120880 File Offset: 0x0011EA80 [Token(Token = "0x6004D6F")] [Address(RVA = "0x1B31A80", Offset = "0x1B30480", VA = "0x181B31A80")] public static ClusterMeshRenderer Create(ClusterMesh mesh, ClusterMeshRenderer clusterMeshRendererPrefab, MeshFilter clusterPrefab, Transform root, bool dynamic) { ClusterMeshRenderer clusterMeshRenderer = global::UnityEngine.Object.Instantiate(clusterMeshRendererPrefab, root); MeshRenderer component = clusterMeshRenderer.GetComponent(); Material meshMaterial = ClusterLODManager._instance.GetMeshMaterial(); component.SetMaterial(meshMaterial); clusterMeshRenderer.k__BackingField = false; clusterMeshRenderer.Init(mesh, clusterPrefab); return clusterMeshRenderer; } // Token: 0x06004D70 RID: 19824 RVA: 0x001208C4 File Offset: 0x0011EAC4 [Token(Token = "0x6004D70")] [Address(RVA = "0x1B32090", Offset = "0x1B30A90", VA = "0x181B32090")] private void OnDestroy() { this.k__BackingField.Clear(); this.k__BackingField.Dispose(); } // Token: 0x17000D6F RID: 3439 // (get) Token: 0x06004D71 RID: 19825 RVA: 0x001208F0 File Offset: 0x0011EAF0 // (set) Token: 0x06004D72 RID: 19826 RVA: 0x00120904 File Offset: 0x0011EB04 [Token(Token = "0x17000D6F")] public List Clusters { [Token(Token = "0x6004D71")] [Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240")] get; [Token(Token = "0x6004D72")] [Address(RVA = "0x3C1280", Offset = "0x3BFC80", VA = "0x1803C1280")] private set; } // Token: 0x17000D70 RID: 3440 // (get) Token: 0x06004D73 RID: 19827 RVA: 0x00120918 File Offset: 0x0011EB18 // (set) Token: 0x06004D74 RID: 19828 RVA: 0x0012092C File Offset: 0x0011EB2C [Token(Token = "0x17000D70")] public ClusterMesh Mesh { [Token(Token = "0x6004D73")] [Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220")] get; [Token(Token = "0x6004D74")] [Address(RVA = "0x3C1260", Offset = "0x3BFC60", VA = "0x1803C1260")] private set; } // Token: 0x17000D71 RID: 3441 // (get) Token: 0x06004D75 RID: 19829 RVA: 0x00120940 File Offset: 0x0011EB40 // (set) Token: 0x06004D76 RID: 19830 RVA: 0x00120954 File Offset: 0x0011EB54 [Token(Token = "0x17000D71")] public bool Dynamic { [Token(Token = "0x6004D75")] [Address(RVA = "0x651230", Offset = "0x64FC30", VA = "0x180651230")] get; [Token(Token = "0x6004D76")] [Address(RVA = "0x6C60C0", Offset = "0x6C4AC0", VA = "0x1806C60C0")] private set; } // Token: 0x06004D77 RID: 19831 RVA: 0x00120968 File Offset: 0x0011EB68 [Token(Token = "0x6004D77")] [Address(RVA = "0x1B31D90", Offset = "0x1B30790", VA = "0x181B31D90")] public void Init(ClusterMesh mesh, MeshFilter clusterPrefab) { for (;;) { int num = 0; mesh.owner = this; this.k__BackingField = mesh; List list = new List(mesh.Clusters._size); this.k__BackingField = list; List clusters = mesh.Clusters; if (list.GetEnumerator() != 0) { break; } if (num != -1) { } if (num == 0) { return; } } Transform transform = base.transform; MeshFilter meshFilter = global::UnityEngine.Object.Instantiate(clusterPrefab, transform); MeshRenderer component = meshFilter.GetComponent(); Material[] sharedMaterialArray = meshFilter.GetComponent().GetSharedMaterialArray(); throw new ArrayTypeMismatchException(); } // Token: 0x06004D78 RID: 19832 RVA: 0x00120A40 File Offset: 0x0011EC40 [Token(Token = "0x6004D78")] [Address(RVA = "0x1B31BE0", Offset = "0x1B305E0", VA = "0x181B31BE0")] public void GenerateLOD() { int num; do { num = 0; ClusterMesh clusterMesh = this.k__BackingField; Transform transform = base.transform; bool flag = this.k__BackingField; clusterMesh.GenerateLODMesh(transform, flag); MeshFilter component = base.GetComponent(); Mesh mesh = this.k__BackingField.k__BackingField; component.sharedMesh = mesh; List list = this.k__BackingField; List.Enumerator enumerator; if (enumerator != 0) { GameObject gameObject = component.gameObject; int num2 = 0; gameObject.SetActive(num2 != 0); } if (num != -1) { } } while (num != 0); } // Token: 0x06004D79 RID: 19833 RVA: 0x00120AC0 File Offset: 0x0011ECC0 [Token(Token = "0x6004D79")] [Address(RVA = "0x1B32460", Offset = "0x1B30E60", VA = "0x181B32460")] public void UpdateClusterDistances(Vector3 pos) { int num; do { num = 0; if ((this.k__BackingField ? 1 : 0) != num) { Transform transform = base.transform; Vector3 vector; float z = vector.z; pos.z = z; } List clusters = this.k__BackingField.Clusters; List.Enumerator enumerator; if (enumerator != 0) { float z2 = pos.z; } if (num != -1) { } } while (num != 0); } // Token: 0x06004D7A RID: 19834 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6004D7A")] [Address(RVA = "0x1B326B0", Offset = "0x1B310B0", VA = "0x181B326B0")] public bool UpdateVisibility() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06004D7B RID: 19835 RVA: 0x00120B18 File Offset: 0x0011ED18 [Token(Token = "0x6004D7B")] [Address(RVA = "0x1B32110", Offset = "0x1B30B10", VA = "0x181B32110")] public void RenderOutline(OutlineRendererEffect.HLEDHCIGMPJ outlineType) { OEIHLPKBJKH nextOutlineRenderHandle = OutlineRendererEffect.GetNextOutlineRenderHandle(); List list = this.k__BackingField; int num = 0; NativeArray componentLod = this.k__BackingField.updateData.componentLod; GameObject gameObject; Renderer component = gameObject.GetComponent(); num++; num += 4; } // Token: 0x06004D7C RID: 19836 RVA: 0x00120B60 File Offset: 0x0011ED60 [Token(Token = "0x6004D7C")] [Address(RVA = "0x1B32280", Offset = "0x1B30C80", VA = "0x181B32280")] public void SetupTagAndLayer(string tag, int layer) { int num; do { num = 0; base.gameObject.layer = layer; base.gameObject.tag = tag; List list = this.k__BackingField; List.Enumerator enumerator; if (enumerator != 0) { base.gameObject.layer = layer; base.gameObject.tag = tag; } if (num != -1) { } } while (num != 0); } // Token: 0x06004D7D RID: 19837 RVA: 0x00120BC4 File Offset: 0x0011EDC4 [Token(Token = "0x6004D7D")] [Address(RVA = "0x1B320F0", Offset = "0x1B30AF0", VA = "0x181B320F0")] public bool Remove(IClusterLODComponent component) { return this.k__BackingField.Remove(component); } // Token: 0x06004D7E RID: 19838 RVA: 0x00120BE4 File Offset: 0x0011EDE4 [Token(Token = "0x6004D7E")] [Address(RVA = "0x3C1210", Offset = "0x3BFC10", VA = "0x1803C1210")] public ClusterMeshRenderer() { } } }