mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
- 将所有小写的命名空间导入更正为首字母大写格式 - 统一 GFramework 框架的命名空间引用规范 - 修复 core、ecs、godot 等模块的命名空间导入错误 - 标准化文档示例代码中的 using 语句格式 - 确保所有文档中的命名空间引用保持一致性 - 更新 global using 语句以匹配正确的命名空间格式
54 lines
2.4 KiB
C#
54 lines
2.4 KiB
C#
using System.Collections.Immutable;
|
|
using GFramework.Core.Abstractions.Enums;
|
|
|
|
namespace GFramework.Core.Architectures;
|
|
|
|
/// <summary>
|
|
/// 架构常量类,定义了架构阶段转换规则
|
|
/// </summary>
|
|
public static class ArchitectureConstants
|
|
{
|
|
/// <summary>
|
|
/// 定义架构阶段的线性顺序
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// 架构阶段永远按照此顺序线性进行,无论是否有组件注册
|
|
/// </remarks>
|
|
public static readonly ArchitecturePhase[] PhaseOrder =
|
|
[
|
|
ArchitecturePhase.None,
|
|
ArchitecturePhase.BeforeUtilityInit,
|
|
ArchitecturePhase.AfterUtilityInit,
|
|
ArchitecturePhase.BeforeModelInit,
|
|
ArchitecturePhase.AfterModelInit,
|
|
ArchitecturePhase.BeforeSystemInit,
|
|
ArchitecturePhase.AfterSystemInit,
|
|
ArchitecturePhase.Ready,
|
|
ArchitecturePhase.Destroying,
|
|
ArchitecturePhase.Destroyed
|
|
];
|
|
|
|
/// <summary>
|
|
/// 定义架构阶段之间的有效转换关系
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// 键为当前架构阶段,值为从该阶段可以转换到的下一阶段数组
|
|
/// 架构采用线性状态机模式,只允许顺序转换,但允许从任何阶段转到 FailedInitialization
|
|
/// </remarks>
|
|
public static readonly ImmutableDictionary<ArchitecturePhase, ArchitecturePhase[]> PhaseTransitions =
|
|
new Dictionary<ArchitecturePhase, ArchitecturePhase[]>
|
|
{
|
|
// 正常线性流程
|
|
{ ArchitecturePhase.None, [ArchitecturePhase.BeforeUtilityInit] },
|
|
{ ArchitecturePhase.BeforeUtilityInit, [ArchitecturePhase.AfterUtilityInit] },
|
|
{ ArchitecturePhase.AfterUtilityInit, [ArchitecturePhase.BeforeModelInit] },
|
|
{ ArchitecturePhase.BeforeModelInit, [ArchitecturePhase.AfterModelInit] },
|
|
{ ArchitecturePhase.AfterModelInit, [ArchitecturePhase.BeforeSystemInit] },
|
|
{ ArchitecturePhase.BeforeSystemInit, [ArchitecturePhase.AfterSystemInit] },
|
|
{ ArchitecturePhase.AfterSystemInit, [ArchitecturePhase.Ready] },
|
|
{ ArchitecturePhase.Ready, [ArchitecturePhase.Destroying] },
|
|
{ ArchitecturePhase.Destroying, [ArchitecturePhase.Destroyed] },
|
|
// 失败路径:从任何阶段都可以转到 FailedInitialization
|
|
{ ArchitecturePhase.FailedInitialization, [ArchitecturePhase.Destroying] }
|
|
}.ToImmutableDictionary();
|
|
} |