94 lines
2.6 KiB
C#
94 lines
2.6 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
namespace OctoCore
|
|
{
|
|
[DefaultExecutionOrder(-101)]
|
|
public class OctoEvents : MonoBehaviour
|
|
{
|
|
public static OctoEvents Instance { get; private set; }
|
|
|
|
[SerializeField] private UnityEvent _onPlatformInitialized;
|
|
[SerializeField] private UnityEvent _onSaveInitialized;
|
|
[SerializeField] private UnityEvent _onInputsInitialized;
|
|
[SerializeField] private UnityEvent _onLocalizationInitialized;
|
|
[SerializeField] private UnityEvent _onScenesInitialized;
|
|
[SerializeField] private UnityEvent _onUiInitialized;
|
|
[SerializeField] private UnityEvent _onOctoCoreInitialized;
|
|
|
|
bool _platformInitialized;
|
|
bool _saveInitialized;
|
|
bool _inputsInitialized;
|
|
bool _localizationInitialized;
|
|
bool _scenesInitialized;
|
|
bool _uiInitialized;
|
|
|
|
void Awake()
|
|
{
|
|
Instance = this;
|
|
}
|
|
|
|
void OnDestroy()
|
|
{
|
|
if (Instance == this)
|
|
Instance = null;
|
|
}
|
|
|
|
private void SetOctoCoreInitialized()
|
|
{
|
|
if (_platformInitialized &&
|
|
_saveInitialized &&
|
|
_inputsInitialized &&
|
|
_localizationInitialized &&
|
|
_scenesInitialized &&
|
|
_uiInitialized)
|
|
{
|
|
Debug.Log($"[OctoCore] OctoCore Initialized");
|
|
_onOctoCoreInitialized?.Invoke();
|
|
}
|
|
}
|
|
|
|
public void SetPlatformInitialized()
|
|
{
|
|
_onPlatformInitialized?.Invoke();
|
|
_platformInitialized = true;
|
|
SetOctoCoreInitialized();
|
|
}
|
|
|
|
public void SetSaveInitialized()
|
|
{
|
|
_onSaveInitialized?.Invoke();
|
|
_saveInitialized = true;
|
|
SetOctoCoreInitialized();
|
|
}
|
|
|
|
public void SetInputsInitialized()
|
|
{
|
|
_onInputsInitialized?.Invoke();
|
|
_inputsInitialized = true;
|
|
SetOctoCoreInitialized();
|
|
}
|
|
|
|
public void SetLocalizationInitialized()
|
|
{
|
|
_onLocalizationInitialized?.Invoke();
|
|
_localizationInitialized = true;
|
|
SetOctoCoreInitialized();
|
|
}
|
|
|
|
public void SetScenesInitialized()
|
|
{
|
|
_onScenesInitialized?.Invoke();
|
|
_scenesInitialized = true;
|
|
SetOctoCoreInitialized();
|
|
}
|
|
|
|
public void SetUiInitialized()
|
|
{
|
|
_onUiInitialized?.Invoke();
|
|
_uiInitialized = true;
|
|
SetOctoCoreInitialized();
|
|
}
|
|
}
|
|
}
|