m
This commit is contained in:
@@ -0,0 +1,226 @@
|
||||
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<ClusterMeshRenderer>(clusterMeshRendererPrefab, root);
|
||||
MeshRenderer component = clusterMeshRenderer.GetComponent<MeshRenderer>();
|
||||
Material meshMaterial = ClusterLODManager._instance.GetMeshMaterial();
|
||||
component.SetMaterial(meshMaterial);
|
||||
clusterMeshRenderer.<Dynamic>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.<Clusters>k__BackingField.Clear();
|
||||
this.<Mesh>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<MeshFilter> 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.<Mesh>k__BackingField = mesh;
|
||||
List<MeshFilter> list = new List(mesh.Clusters._size);
|
||||
this.<Clusters>k__BackingField = list;
|
||||
List<ClusterMesh.ClusterInfo> clusters = mesh.Clusters;
|
||||
List<MeshFilter>.Enumerator enumerator = list.GetEnumerator();
|
||||
bool flag;
|
||||
if (flag)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (num == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
Transform transform = base.transform;
|
||||
MeshFilter meshFilter = global::UnityEngine.Object.Instantiate<MeshFilter>(clusterPrefab, transform);
|
||||
MeshRenderer component = meshFilter.GetComponent<MeshRenderer>();
|
||||
Material[] sharedMaterialArray = meshFilter.GetComponent<MeshRenderer>().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.<Mesh>k__BackingField;
|
||||
Transform transform = base.transform;
|
||||
bool flag = this.<Dynamic>k__BackingField;
|
||||
clusterMesh.GenerateLODMesh(transform, flag);
|
||||
MeshFilter component = base.GetComponent<MeshFilter>();
|
||||
Mesh mesh = this.<Mesh>k__BackingField.<Mesh>k__BackingField;
|
||||
component.sharedMesh = mesh;
|
||||
List<MeshFilter> list = this.<Clusters>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.<Dynamic>k__BackingField ? 1 : 0) != num)
|
||||
{
|
||||
Transform transform = base.transform;
|
||||
Vector3 vector;
|
||||
float z = vector.z;
|
||||
pos.z = z;
|
||||
}
|
||||
List<ClusterMesh.ClusterInfo> clusters = this.<Mesh>k__BackingField.Clusters;
|
||||
bool flag;
|
||||
if (flag)
|
||||
{
|
||||
List<ClusterMesh.ClusterInfo>.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<MeshFilter> list = this.<Clusters>k__BackingField;
|
||||
int num = 0;
|
||||
NativeArray<int> componentLod = this.<Mesh>k__BackingField.updateData.componentLod;
|
||||
GameObject gameObject;
|
||||
Renderer component = gameObject.GetComponent<Renderer>();
|
||||
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<MeshFilter> list = this.<Clusters>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.<Mesh>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()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user