using System;
namespace Funique.Manager
{
///
/// Base class for manager class, easy to manage worker
/// ------------------------------------------------
/// 管理基礎類別, 簡單管理
///
/// Config data
public abstract class ManagerBase : ManagerBase where T : struct
{
///
/// Configuration
/// ------------------------------------------------
/// 設定資料
///
public T config { private set; get; }
///
/// Set config
/// ------------------------------------------------
/// 註冊設定資料
///
///
public void RegisterConfig(T _config)
{
config = _config;
FuniqueLogger.Log("Detect configuration data changed", GetType().Name);
Loaded(this.config);
}
///
/// Called after data in registered
/// ------------------------------------------------
/// 在結構被載入後呼叫
///
///
public virtual void Loaded(T Data) { }
}
///
/// Base class for manager class, function and properties
/// ------------------------------------------------
/// 管理基礎類別, 功能與屬性
///
public partial class ManagerBase : IDisposable
{
///
/// The HD data property
/// ------------------------------------------------
/// 高自定義資料行為 屬性
///
internal static HDData hddata { private set; get; }
///
/// Register internal High definition data
/// ------------------------------------------------
/// 註冊高自定義資料行為資料
///
///
public static void SetHDData(HDData data)
{
hddata = data;
}
///
/// Initialization
/// ------------------------------------------------
/// 管理元件初始化
///
public virtual void Initialization() { }
///
/// Update event
/// ------------------------------------------------
/// 更新事件
///
public virtual void FrameUpdate() { }
///
/// App shutdown
/// ------------------------------------------------
/// 應用程式關閉
///
public virtual void Shutdown() { }
///
/// Release the resources
/// ------------------------------------------------
/// 釋放資源
///
public virtual void Dispose() { }
}
}