using GFramework.Core.Abstractions.enums; using GFramework.Core.architecture; using GFramework.Core.events; using GFramework.Core.Tests.model; using GFramework.Core.Tests.system; namespace GFramework.Core.Tests.architecture; /// /// 异步测试架构,用于测试异步模型和系统的初始化 /// public class AsyncTestArchitecture : Architecture { /// /// 初始化完成事件是否触发 /// public bool ReadyEventFired { get; private set; } /// /// Init 方法是否调用 /// public bool InitCalled { get; private set; } /// /// 阶段进入记录 /// public List PhaseHistory { get; } = new(); /// /// 异步初始化架构 /// protected override void Init() { InitCalled = true; // 注册模型 RegisterModel(new AsyncTestModel()); // 注册系统 RegisterSystem(new AsyncTestSystem()); // 订阅 Ready 事件 Context.RegisterEvent(_ => { ReadyEventFired = true; }); } /// /// 进入阶段时记录 /// /// protected override void EnterPhase(ArchitecturePhase next) { base.EnterPhase(next); PhaseHistory.Add(next); } }