Files
Dec2017-Script-Dump/ProBuilderCore-Unity5/pb_MeshRenderer.cs
T
2026-06-04 11:42:34 +02:00

86 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
namespace ProBuilder2.Common
{
// Token: 0x02000031 RID: 49
[ExecuteInEditMode]
[AddComponentMenu("")]
public class pb_MeshRenderer : pb_MonoBehaviourSingleton<pb_MeshRenderer>
{
// Token: 0x06000144 RID: 324 RVA: 0x00013C47 File Offset: 0x00012047
private int clamp(int val, int min, int max)
{
return (val >= min) ? ((val <= max) ? val : max) : min;
}
// Token: 0x06000145 RID: 325 RVA: 0x00013C64 File Offset: 0x00012064
public static void Add(pb_Renderable renderable)
{
pb_MonoBehaviourSingleton<pb_MeshRenderer>.instance.m_Renderables.Add(renderable);
}
// Token: 0x06000146 RID: 326 RVA: 0x00013C77 File Offset: 0x00012077
public static void Remove(pb_Renderable renderable)
{
if (pb_MonoBehaviourSingleton<pb_MeshRenderer>.instance.m_Renderables.Contains(renderable))
{
pb_MonoBehaviourSingleton<pb_MeshRenderer>.instance.m_Renderables.Remove(renderable);
}
}
// Token: 0x06000147 RID: 327 RVA: 0x00013CA0 File Offset: 0x000120A0
private void OnRenderObject()
{
if ((Camera.current.gameObject.hideFlags & this.SceneCameraHideFlags) != this.SceneCameraHideFlags || Camera.current.name != "SceneCamera")
{
return;
}
foreach (pb_Renderable pb_Renderable in this.m_Renderables)
{
if (pb_Renderable.materials == null)
{
Debug.Log("renderable.materials == null -> " + base.name);
}
Material[] materials = pb_Renderable.materials;
if (pb_Renderable.mesh == null)
{
Debug.Log("renderable mesh is null");
}
else
{
for (int i = 0; i < pb_Renderable.mesh.subMeshCount; i++)
{
int num = this.clamp(i, 0, materials.Length - 1);
if (materials[num] == null || !materials[num].SetPass(0))
{
Debug.Log("material is null");
}
else
{
Graphics.DrawMeshNow(pb_Renderable.mesh, (!(pb_Renderable.transform != null)) ? Matrix4x4.identity : pb_Renderable.transform.localToWorldMatrix, i);
}
}
}
}
}
// Token: 0x06000148 RID: 328 RVA: 0x00013E08 File Offset: 0x00012208
private void OnDestroy()
{
foreach (pb_Renderable pb_Renderable in this.m_Renderables)
{
global::UnityEngine.Object.DestroyImmediate(pb_Renderable);
}
}
// Token: 0x0400012E RID: 302
[SerializeField]
private HashSet<pb_Renderable> m_Renderables = new HashSet<pb_Renderable>();
// Token: 0x0400012F RID: 303
private readonly HideFlags SceneCameraHideFlags = HideFlags.HideInHierarchy | HideFlags.DontSaveInEditor | HideFlags.NotEditable;
}
}