scripts
This commit is contained in:
@@ -0,0 +1,236 @@
|
||||
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<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: 0x06004D70 RID: 19824 RVA: 0x001208C4 File Offset: 0x0011EAC4
|
||||
[Token(Token = "0x6004D70")]
|
||||
[Address(RVA = "0x1B32090", Offset = "0x1B30A90", VA = "0x181B32090")]
|
||||
private void OnDestroy()
|
||||
{
|
||||
this.<Clusters>k__BackingField.Clear();
|
||||
this.<Mesh>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<MeshFilter> 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.<Mesh>k__BackingField = mesh;
|
||||
List<MeshFilter> list = new List(mesh.Clusters._size);
|
||||
this.<Clusters>k__BackingField = list;
|
||||
List<ClusterMesh.ClusterInfo> 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<MeshFilter>(clusterPrefab, transform);
|
||||
MeshRenderer component = meshFilter.GetComponent<MeshRenderer>();
|
||||
Material[] sharedMaterialArray = meshFilter.GetComponent<MeshRenderer>().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.<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;
|
||||
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.<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;
|
||||
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<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: 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<MeshFilter> list = this.<Clusters>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.<Mesh>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()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user