public static void DeInitializeHooks()
 {
     if (_instance == null)
     {
         return;
     }
     Destroy(_instance.gameObject);
     _instance = null;
 }
            public static void InitializeHooks()
            {
                var go = new GameObject("[Touchless.Design Hooks]");

                DontDestroyOnLoad(go);
                _instance = go.AddComponent <MonoBehaviourHooks>();
                lock (SyncLock) {
                    _unityThreadId = Thread.CurrentThread.ManagedThreadId;
                }
            }
 public static void DeInitialize()
 {
     if (!_isInitialized)
     {
         return;
     }
     _isInitialized = false;
     DeInitializeNetworking();
     MonoBehaviourHooks.DeInitializeHooks();
 }
 public virtual void AssignBaseData(BaseParsedModData other)
 {
     m_strId             = other.Base_Id;
     m_strName           = other.Base_Name;
     m_strGameId         = other.Base_GameId;
     m_strAuthor         = other.Base_Author;
     m_rgDependencies    = other.Base_Dependencies;
     m_strEntryPoint     = other.Base_EntryPoint;
     m_bIsCheat          = other.Base_IsCheat;
     m_strMinGameVersion = other.Base_MinGameVersion;
     m_strModVersion     = other.Base_ModVersion;
     m_strAssemblyName   = other.Base_AssemblyName;
     m_MonoHooks         = new MonoBehaviourHooks();
 }
 public static void Initialize(string dataDir = null)
 {
     if (_isInitialized)
     {
         return;
     }
     _isInitialized = true;
     if (string.IsNullOrEmpty(dataDir))
     {
         dataDir = DefaultDirectory;
     }
     dataDir = Environment.ExpandEnvironmentVariables(dataDir);
     MonoBehaviourHooks.InitializeHooks();
     InitializeNetworking(dataDir);
 }