using System; using System.Collections.Generic; using Cpp2IlInjected; using RecRoom.Core.Rendering; using Unity.Collections; using UnityEngine; namespace ClusterLOD { // Token: 0x02001352 RID: 4946 [Token(Token = "0x2001352")] public class ClusterMeshRenderer : MonoBehaviour { // Token: 0x06006F0C RID: 28428 RVA: 0x001864C8 File Offset: 0x001846C8 [Token(Token = "0x6006F0C")] [Address(RVA = "0x1F40FB0", Offset = "0x1F3FFB0", VA = "0x181F40FB0")] 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: 0x06006F0D RID: 28429 RVA: 0x0018650C File Offset: 0x0018470C [Token(Token = "0x6006F0D")] [Address(RVA = "0x1F41570", Offset = "0x1F40570", VA = "0x181F41570")] private void OnDestroy() { this.k__BackingField.Clear(); this.k__BackingField.Dispose(); } // Token: 0x170011DF RID: 4575 // (get) Token: 0x06006F0E RID: 28430 RVA: 0x00186538 File Offset: 0x00184738 // (set) Token: 0x06006F0F RID: 28431 RVA: 0x0018654C File Offset: 0x0018474C [Token(Token = "0x170011DF")] public List Clusters { [Token(Token = "0x6006F0E")] [Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")] get; [Token(Token = "0x6006F0F")] [Address(RVA = "0x4157F0", Offset = "0x4147F0", VA = "0x1804157F0")] private set; } // Token: 0x170011E0 RID: 4576 // (get) Token: 0x06006F10 RID: 28432 RVA: 0x00186560 File Offset: 0x00184760 // (set) Token: 0x06006F11 RID: 28433 RVA: 0x00186574 File Offset: 0x00184774 [Token(Token = "0x170011E0")] public ClusterMesh Mesh { [Token(Token = "0x6006F10")] [Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0")] get; [Token(Token = "0x6006F11")] [Address(RVA = "0x415810", Offset = "0x414810", VA = "0x180415810")] private set; } // Token: 0x170011E1 RID: 4577 // (get) Token: 0x06006F12 RID: 28434 RVA: 0x00186588 File Offset: 0x00184788 // (set) Token: 0x06006F13 RID: 28435 RVA: 0x0018659C File Offset: 0x0018479C [Token(Token = "0x170011E1")] public bool Dynamic { [Token(Token = "0x6006F12")] [Address(RVA = "0x51F260", Offset = "0x51E260", VA = "0x18051F260")] get; [Token(Token = "0x6006F13")] [Address(RVA = "0x51F2B0", Offset = "0x51E2B0", VA = "0x18051F2B0")] private set; } // Token: 0x06006F14 RID: 28436 RVA: 0x001865B0 File Offset: 0x001847B0 [Token(Token = "0x6006F14")] [Address(RVA = "0x1F412A0", Offset = "0x1F402A0", VA = "0x181F412A0")] 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; List.Enumerator enumerator = list.GetEnumerator(); bool flag; if (flag) { break; } 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: 0x06006F15 RID: 28437 RVA: 0x0018668C File Offset: 0x0018488C [Token(Token = "0x6006F15")] [Address(RVA = "0x1F41110", Offset = "0x1F40110", VA = "0x181F41110")] 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; bool flag2; if (flag2) { GameObject gameObject = component.gameObject; int num2 = 0; gameObject.SetActive(num2 != 0); } } while (num != 0); } // Token: 0x06006F16 RID: 28438 RVA: 0x00186708 File Offset: 0x00184908 [Token(Token = "0x6006F16")] [Address(RVA = "0x1F41910", Offset = "0x1F40910", VA = "0x181F41910")] 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; bool flag; if (flag) { List.Enumerator enumerator; int index = enumerator.index; float z2 = pos.z; } } while (num != 0); } // Token: 0x06006F17 RID: 28439 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6006F17")] [Address(RVA = "0x1F41B50", Offset = "0x1F40B50", VA = "0x181F41B50")] public bool UpdateVisibility() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06006F18 RID: 28440 RVA: 0x00186764 File Offset: 0x00184964 [Token(Token = "0x6006F18")] [Address(RVA = "0x1F415F0", Offset = "0x1F405F0", VA = "0x181F415F0")] 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: 0x06006F19 RID: 28441 RVA: 0x001867AC File Offset: 0x001849AC [Token(Token = "0x6006F19")] [Address(RVA = "0x1F41760", Offset = "0x1F40760", VA = "0x181F41760")] 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; bool flag; if (flag) { base.gameObject.layer = layer; base.gameObject.tag = tag; } } while (num != 0); } // Token: 0x06006F1A RID: 28442 RVA: 0x0018680C File Offset: 0x00184A0C [Token(Token = "0x6006F1A")] [Address(RVA = "0x1F415D0", Offset = "0x1F405D0", VA = "0x181F415D0")] public bool Remove(IClusterLODComponent component) { return this.k__BackingField.Remove(component); } // Token: 0x06006F1B RID: 28443 RVA: 0x0018682C File Offset: 0x00184A2C [Token(Token = "0x6006F1B")] [Address(RVA = "0x428AD0", Offset = "0x427AD0", VA = "0x180428AD0")] public ClusterMeshRenderer() { } } }