using System; using System.Collections.Generic; using Cpp2IlInjected; using RecRoom.Core.Rendering; using Unity.Collections; using UnityEngine; namespace ClusterLOD { // Token: 0x02001282 RID: 4738 [Token(Token = "0x2001282")] public class ClusterMeshRenderer : MonoBehaviour { // Token: 0x06006B99 RID: 27545 RVA: 0x0017DF28 File Offset: 0x0017C128 [Token(Token = "0x6006B99")] [Address(RVA = "0x1465B80", Offset = "0x1464980", VA = "0x181465B80")] 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: 0x06006B9A RID: 27546 RVA: 0x0017DF6C File Offset: 0x0017C16C [Token(Token = "0x6006B9A")] [Address(RVA = "0x1466140", Offset = "0x1464F40", VA = "0x181466140")] private void OnDestroy() { this.k__BackingField.Clear(); this.k__BackingField.Dispose(); } // Token: 0x17001163 RID: 4451 // (get) Token: 0x06006B9B RID: 27547 RVA: 0x0017DF98 File Offset: 0x0017C198 // (set) Token: 0x06006B9C RID: 27548 RVA: 0x0017DFAC File Offset: 0x0017C1AC [Token(Token = "0x17001163")] public List Clusters { [Token(Token = "0x6006B9B")] [Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40")] get; [Token(Token = "0x6006B9C")] [Address(RVA = "0x3F7210", Offset = "0x3F6010", VA = "0x1803F7210")] private set; } // Token: 0x17001164 RID: 4452 // (get) Token: 0x06006B9D RID: 27549 RVA: 0x0017DFC0 File Offset: 0x0017C1C0 // (set) Token: 0x06006B9E RID: 27550 RVA: 0x0017DFD4 File Offset: 0x0017C1D4 [Token(Token = "0x17001164")] public ClusterMesh Mesh { [Token(Token = "0x6006B9D")] [Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400")] get; [Token(Token = "0x6006B9E")] [Address(RVA = "0x460F90", Offset = "0x45FD90", VA = "0x180460F90")] private set; } // Token: 0x17001165 RID: 4453 // (get) Token: 0x06006B9F RID: 27551 RVA: 0x0017DFE8 File Offset: 0x0017C1E8 // (set) Token: 0x06006BA0 RID: 27552 RVA: 0x0017DFFC File Offset: 0x0017C1FC [Token(Token = "0x17001165")] public bool Dynamic { [Token(Token = "0x6006B9F")] [Address(RVA = "0x494270", Offset = "0x493070", VA = "0x180494270")] get; [Token(Token = "0x6006BA0")] [Address(RVA = "0x494500", Offset = "0x493300", VA = "0x180494500")] private set; } // Token: 0x06006BA1 RID: 27553 RVA: 0x0017E010 File Offset: 0x0017C210 [Token(Token = "0x6006BA1")] [Address(RVA = "0x1465E70", Offset = "0x1464C70", VA = "0x181465E70")] 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: 0x06006BA2 RID: 27554 RVA: 0x0017E0EC File Offset: 0x0017C2EC [Token(Token = "0x6006BA2")] [Address(RVA = "0x1465CE0", Offset = "0x1464AE0", VA = "0x181465CE0")] 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: 0x06006BA3 RID: 27555 RVA: 0x0017E168 File Offset: 0x0017C368 [Token(Token = "0x6006BA3")] [Address(RVA = "0x14664E0", Offset = "0x14652E0", VA = "0x1814664E0")] 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: 0x06006BA4 RID: 27556 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6006BA4")] [Address(RVA = "0x1466720", Offset = "0x1465520", VA = "0x181466720")] public bool UpdateVisibility() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06006BA5 RID: 27557 RVA: 0x0017E1C4 File Offset: 0x0017C3C4 [Token(Token = "0x6006BA5")] [Address(RVA = "0x14661C0", Offset = "0x1464FC0", VA = "0x1814661C0")] 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: 0x06006BA6 RID: 27558 RVA: 0x0017E20C File Offset: 0x0017C40C [Token(Token = "0x6006BA6")] [Address(RVA = "0x1466330", Offset = "0x1465130", VA = "0x181466330")] 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: 0x06006BA7 RID: 27559 RVA: 0x0017E26C File Offset: 0x0017C46C [Token(Token = "0x6006BA7")] [Address(RVA = "0x14661A0", Offset = "0x1464FA0", VA = "0x1814661A0")] public bool Remove(IClusterLODComponent component) { return this.k__BackingField.Remove(component); } // Token: 0x06006BA8 RID: 27560 RVA: 0x0017E28C File Offset: 0x0017C48C [Token(Token = "0x6006BA8")] [Address(RVA = "0x74EA40", Offset = "0x74D840", VA = "0x18074EA40")] public ClusterMeshRenderer() { } } }