TEngine 6

This commit is contained in:
Alex-Rachel
2025-03-07 23:09:46 +08:00
parent aad8ff3ee5
commit 551727687f
1988 changed files with 46223 additions and 94880 deletions

View File

@@ -0,0 +1,111 @@
using GameLogic;
using TEngine;
using Object = UnityEngine.Object;
public class GameModule
{
#region
/// <summary>
/// 获取游戏基础模块。
/// </summary>
public static RootModule Base
{
get => _base ??= Object.FindObjectOfType<RootModule>();
private set => _base = value;
}
private static RootModule _base;
/// <summary>
/// 获取调试模块。
/// </summary>
public static IDebuggerModule Debugger
{
get => _debugger ??= Get<IDebuggerModule>();
private set => _debugger = value;
}
private static IDebuggerModule _debugger;
/// <summary>
/// 获取有限状态机模块。
/// </summary>
public static IFsmModule Fsm => _fsm ??= Get<IFsmModule>();
private static IFsmModule _fsm;
/// <summary>
/// 流程管理模块。
/// </summary>
public static IProcedureModule Procedure => _procedure ??= Get<IProcedureModule>();
private static IProcedureModule _procedure;
/// <summary>
/// 获取资源模块。
/// </summary>
public static IResourceModule Resource => _resource ??= Get<IResourceModule>();
private static IResourceModule _resource;
/// <summary>
/// 获取音频模块。
/// </summary>
public static IAudioModule Audio => _audio ??= Get<IAudioModule>();
private static IAudioModule _audio;
/// <summary>
/// 获取UI模块。
/// </summary>
public static UIModule UI => _ui ??= UIModule.Instance;
private static UIModule _ui;
/// <summary>
/// 获取场景模块。
/// </summary>
public static ISceneModule Scene => _scene ??= Get<ISceneModule>();
private static ISceneModule _scene;
/// <summary>
/// 获取计时器模块。
/// </summary>
public static ITimerModule Timer => _timer ??= Get<ITimerModule>();
private static ITimerModule _timer;
#endregion
/// <summary>
/// 获取游戏框架模块类。
/// </summary>
/// <typeparam name="T">游戏框架模块类。</typeparam>
/// <returns>游戏框架模块实例。</returns>
private static T Get<T>() where T : class
{
T module = ModuleSystem.GetModule<T>();
Log.Assert(condition: module != null, $"{typeof(T)} is null");
return module;
}
public static void Shutdown()
{
Log.Info("GameModule Shutdown");
_base = null;
_debugger = null;
_fsm = null;
_procedure = null;
_resource = null;
_audio = null;
_ui = null;
_scene = null;
_timer = null;
}
}