using System; using UnityEngine; namespace ProBuilder2.Common { // Token: 0x02000033 RID: 51 public class pb_MonoBehaviourSingleton : MonoBehaviour where T : MonoBehaviour { // Token: 0x17000017 RID: 23 // (get) Token: 0x06000155 RID: 341 RVA: 0x0000E840 File Offset: 0x0000CC40 public static T instance { get { if (pb_MonoBehaviourSingleton.nullableInstance == null) { pb_MonoBehaviourSingleton._instance = new GameObject { name = typeof(T).ToString() }.AddComponent(); } return (T)((object)pb_MonoBehaviourSingleton._instance); } } // Token: 0x17000018 RID: 24 // (get) Token: 0x06000156 RID: 342 RVA: 0x0000E898 File Offset: 0x0000CC98 public static T nullableInstance { get { if (pb_MonoBehaviourSingleton._instance == null) { T[] array = Resources.FindObjectsOfTypeAll(); if (array != null && array.Length > 0) { pb_MonoBehaviourSingleton._instance = array[0]; for (int i = 1; i < array.Length; i++) { global::UnityEngine.Object.DestroyImmediate(array[i]); } } } return (T)((object)pb_MonoBehaviourSingleton._instance); } } // Token: 0x06000157 RID: 343 RVA: 0x0000E90A File Offset: 0x0000CD0A public static bool Valid() { return pb_MonoBehaviourSingleton.nullableInstance != null; } // Token: 0x06000158 RID: 344 RVA: 0x0000E91C File Offset: 0x0000CD1C public virtual void Awake() { if (pb_MonoBehaviourSingleton._instance == null) { pb_MonoBehaviourSingleton._instance = this; } else { global::UnityEngine.Object.Destroy(this); } } // Token: 0x06000159 RID: 345 RVA: 0x0000E93F File Offset: 0x0000CD3F public virtual void OnEnable() { pb_MonoBehaviourSingleton._instance = this; } // Token: 0x04000131 RID: 305 private static MonoBehaviour _instance; } }