Installed Surge, fixed compile errors, moved a bunch of external stuff into folder
This commit is contained in:
94
Assets/External/Pixelplacement/Surge/Utilities/Initialization.cs
vendored
Normal file
94
Assets/External/Pixelplacement/Surge/Utilities/Initialization.cs
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
/// <summary>
|
||||
/// SURGE FRAMEWORK
|
||||
/// Author: Bob Berkebile
|
||||
/// Email: bobb@pixelplacement.com
|
||||
///
|
||||
/// Utilizes script execution order to run before anything else to avoid order of operation failures so accessing things like singletons at any stage of application startup will never fail.
|
||||
///
|
||||
/// </summary>
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Pixelplacement
|
||||
{
|
||||
public class Initialization : MonoBehaviour
|
||||
{
|
||||
//Private Variables:
|
||||
StateMachine _stateMachine;
|
||||
DisplayObject _displayObject;
|
||||
|
||||
//Init:
|
||||
void Awake()
|
||||
{
|
||||
//singleton initialization:
|
||||
InitializeSingleton();
|
||||
|
||||
//values:
|
||||
_stateMachine = GetComponent<StateMachine>();
|
||||
_displayObject = GetComponent<DisplayObject>();
|
||||
|
||||
//display object initialization:
|
||||
if (_displayObject != null) _displayObject.Register();
|
||||
|
||||
//state machine initialization:
|
||||
if (_stateMachine != null) _stateMachine.Initialize();
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
//state machine start:
|
||||
if (_stateMachine != null) _stateMachine.StartMachine();
|
||||
}
|
||||
|
||||
//Deinit:
|
||||
void OnDisable()
|
||||
{
|
||||
if (_stateMachine != null)
|
||||
{
|
||||
if (!_stateMachine.returnToDefaultOnDisable || _stateMachine.defaultState == null) return;
|
||||
|
||||
if (_stateMachine.currentState == null)
|
||||
{
|
||||
_stateMachine.ChangeState(_stateMachine.defaultState);
|
||||
return;
|
||||
}
|
||||
|
||||
if (_stateMachine.currentState != _stateMachine.defaultState)
|
||||
{
|
||||
_stateMachine.ChangeState(_stateMachine.defaultState);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Private Methods:
|
||||
void InitializeSingleton()
|
||||
{
|
||||
foreach (Component item in GetComponents<Component>())
|
||||
{
|
||||
string baseType;
|
||||
|
||||
#if NETFX_CORE
|
||||
baseType = item.GetType ().GetTypeInfo ().BaseType.ToString ();
|
||||
#else
|
||||
baseType = item.GetType().BaseType.ToString();
|
||||
#endif
|
||||
|
||||
if (baseType.Contains("Singleton") && baseType.Contains("Pixelplacement"))
|
||||
{
|
||||
MethodInfo m;
|
||||
|
||||
#if NETFX_CORE
|
||||
m = item.GetType ().GetTypeInfo ().BaseType.GetMethod ("Initialize", BindingFlags.NonPublic | BindingFlags.Instance);
|
||||
#else
|
||||
m = item.GetType().BaseType.GetMethod("Initialize", BindingFlags.NonPublic | BindingFlags.Instance);
|
||||
#endif
|
||||
|
||||
m.Invoke(item, new Component[] { item });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user