96 Commits

Author SHA1 Message Date
GeWuYou
0771a7ad85 refactor(ui): 更新UI路由和页面行为接口定义
- 修改HasVisibleInLayer方法签名,添加uiKey参数以精确检查特定UI可见性
- 在IUiPageBehavior接口中添加IsVisible属性用于获取页面可见状态
- 从IUiPageBehavior接口中移除RequiresMask属性
- 为ClearLayer和GetFromLayer方法添加完整的XML文档注释
- 更新CanvasItemUiPageBehavior实现以支持新的IsVisible属性
- 优化UI层级检查逻辑,提高可见性判断准确性
2026-02-07 19:49:13 +08:00
GeWuYou
f1e45385c4 refactor(ui): 重构UI路由基础功能
- 移除Show方法中基于实例的显示功能,简化接口设计
- 改进Hide方法实现,支持永久销毁和临时隐藏两种模式
- 添加Resume方法用于恢复已隐藏的UI界面
- 更新XML文档注释,提供更清晰的参数说明
- 优化代码结构和注释,提升代码可读性
- 调整IUiRouter接口定义,保持API一致性
- [release ci]
2026-02-06 23:14:51 +08:00
GeWuYou
89227ff802 refactor(ui): 优化UiRouterBase中的页面销毁和隐藏逻辑
- 区分永久移除和临时隐藏的处理流程,销毁时才调用OnExit方法
- 重构日志消息以更准确反映操作类型
- 简化离开守卫检查的循环逻辑,提高代码可读性
- 添加注释说明销毁与隐藏的不同行为
- 调整日志输出格式,保持一致性
- [release ci]
2026-02-06 23:05:09 +08:00
GeWuYou
aaf728ad1a refactor(ui): 移除UI实例管理策略和缓存功能
- 移除UiInstancePolicy枚举类型
- 从Push、Replace和Show方法中移除instancePolicy参数
- 从IUiFactory接口中移除缓存相关方法和GetOrCreate方法
- 简化GodotUiFactory实现类,移除缓存池和实例管理逻辑
- 将Pop操作中的Cache策略重命名为Suspend
- 将Exclusive策略描述从Pause+Hide改为Pause+Suspend
- 修复CanvasItemUiPageBehavior中OnResume方法的节点有效性检查
- [release ci]
2026-02-06 22:39:49 +08:00
GeWuYou
917a95e245 refactor(scene): 重构场景路由系统架构
- 移除原有的 ISceneLoader 接口定义
- 新增 SceneRouterBase 抽象基类实现场景路由基础功能
- 添加 ISceneRoot 接口定义场景根节点操作规范
- 创建 ISceneRouter 接口统一场景路由操作契约
- 实现场景替换和卸载的核心逻辑
- 添加场景切换前后钩子方法支持扩展功能
- [release ci]
2026-02-05 20:50:24 +08:00
GeWuYou
1ebbc83807 feat(setting): 添加设置模型初始化状态检查功能
- 新增 IsInitialized 属性用于检查对象初始化状态
- 为 GetData 方法添加泛型类型参数注释说明
- 添加 AllData 方法返回所有设置数据实例集合
- 优化 AllApplicators 方法的文档注释
- 新增 RegisterMigration 方法的详细文档说明
- 在 Initialize 方法末尾设置初始化状态标记
- [release ci]
2026-02-04 20:29:15 +08:00
GeWuYou
efd7ababd2 feat(ui): 添加基于实例的UI显示方法
- 在UiRouterBase中新增Show方法,支持通过IUiPageBehavior实例显示UI
- 为IUiRouter接口添加对应的Show方法重载签名
- 添加详细的XML文档注释说明参数用途
- 临时禁用publish-docs工作流以解决文档生成问题
- [release ci]
2026-02-03 20:20:41 +08:00
GeWuYou
8f388d4a9e docs(ci): 添加文档生成配置和自动化发布流程
- 新增 docfx.json 配置文件用于 API 文档生成
- 在所有项目文件中启用 GenerateDocumentationFile 选项
- 添加 GitHub Actions 工作流 publish-docs.yml 实现文档自动发布
- 配置工作流触发条件支持标签推送和特定提交信息
- 设置文档构建环境使用 .NET 10.0 和 DocFX 工具
- 实现文档站点部署到 GitHub Pages 的完整流程
- [release doc]
2026-02-03 08:15:59 +08:00
GeWuYou
dadda8803f feat(ui): 添加UI层级管理和优化Peek方法
- 修改Peek方法返回类型为可空IUiPageBehavior?以避免空栈异常
- 在IUiRouter接口中添加完整的UI层级管理功能
- 新增Show方法支持在指定层级显示UI(Overlay/Modal/Toast等)
- 新增Hide方法支持隐藏指定层级的UI
- 新增ClearLayer方法支持清空指定层级的所有UI
- 新增GetFromLayer方法支持从指定层级获取UI实例
- 新增HasVisibleInLayer方法支持判断指定层级是否存在可见UI
- 完善UI路由系统的层级控制能力
- [release ci]
2026-02-02 22:19:31 +08:00
GeWuYou
af583c101c refactor(core): 重构协程扩展和函数式编程相关代码
- 优化 CommandCoroutineExtensions 中的代码格式和异常处理逻辑
- 简化 WaitForEvent 和 WaitForEventWithTimeout 中的EventData属性实现
- 调整 EventListenerScope 中的EventData属性访问器
- 重构 ControlExtensions 中 TakeIf 和 TakeUnless 方法的实现
- 优化 FunctionExtensions 中 Repeat 和 Partial 方法的代码结构
- 调整 PipeExtensions 和其他扩展类的文档注释格式
- 修改测试代码中的协程迭代和事件注册相关实现
- 优化 DataRepository 中的异步操作实现方式
= [release ci]
2026-02-01 14:07:59 +08:00
GeWuYou
af64c4ab3e refactor(setting): 重构设置事件系统
- 移除旧的设置相关事件类包括 SettingsAllLoadedEvent、SettingsBatchChangedEvent、
  SettingsBatchSavedEvent、SettingsChangedEvent、SettingsDeletedEvent 和 SettingsLoadedEvent
- 添加新的设置事件类包括 SettingsAppliedAllEvent、SettingsInitializedEvent、
  SettingsSavedAllEvent 和 SettingsResetEvent
- 在 SettingsModel 中集成新的事件发送机制
- 修改 Initialize 方法以发送 SettingsInitializedEvent 事件
- 更新 Save 方法以发送 SettingsSavedAllEvent 事件
- 修改 Apply 方法以发送 SettingsAppliedAllEvent 事件
- 添加 Reset 功能以发送 SettingsResetEvent 事件
- 添加 ResetAll 功能以发送 SettingsResetAllEvent 事件
- [release ci]
2026-01-31 23:47:24 +08:00
GeWuYou
829c7a3b06 refactor(setting): 优化设置模型中的数据类型获取方式
- 在IResetApplyAbleSettings接口中添加DataType属性定义
- 修改SettingsModel中数据存储逻辑,使用applicator.DataType替代typeof(T)
- 为GodotAudioSettings、GodotGraphicsSettings和GodotLocalizationSettings实现DataType属性
- 统一通过DataType属性获取设置数据的类型信息
- [release ci]
2026-01-31 23:11:55 +08:00
GeWuYou
f226a355b2 feat(setting): 添加设置数据存储功能
- 在 SettingsModel 中添加了数据存储逻辑
- 实现了应用器数据的自动注册机制
- 确保设置数据与应用器类型的正确关联
- 优化了设置模型的数据管理流程
- [release ci]
2026-01-31 22:43:55 +08:00
GeWuYou
b2e8ed9787 refactor(functional): 重构函数式编程扩展模块
- 移除 EnumerableExtensions 扩展类及其 Map、Filter、Reduce 方法
- 从 ControlExtensions 中删除 Match、MatchOrDefault、If、IfElse 等控制流方法
- 重命名 FunctionExtensions 中的 Memoize 为 MemoizeUnbounded 并更新文档注释
- 重命名 FunctionExtensions 中的 Partial 相关方法并调整参数命名
- 在 PipeExtensions 中移除 Pipe、Then、After、Let 等方法,保留 Also 方法
- 删除多个功能性类型扩展文件,包括 Option、Result、NullableExtensions 等
- 移除功能扩展的 README.md 文档文件
- 更新相关命名空间引用和依赖关系
- [release ci]
2026-01-31 22:31:50 +08:00
GeWuYou
fd3a9ae9e0 feat(functional): 添加函数式编程扩展和Option类型支持
- 在FunctionExtensions中新增Map扩展方法用于对象映射
- 在PipeExtensions中新增On扩展方法用于值到函数的应用
- 移除Tap方法及相关测试以优化管道操作
- 新增NullableExtensions实现可空类型到Option的转换
- 新增Option结构体提供安全的可选值处理
- 新增OptionExtensions提供Map、Bind、Filter、Match等函数式操作
- 新增OptionValueExtensions提供GetOrElse和OrElse值提取方法
- 调整全局引用添加Concurrent集合支持
- 扩展IResetApplyAbleSettings接口添加Data属性
- 更新Godot设置类实现Data属性返回设置数据模型
2026-01-31 21:25:27 +08:00
GeWuYou
c93d32c495 feat(data): 实现设置数据类型的动态注册和反序列化
- 添加类型注册表支持动态类型映射
- 修改LoadAllAsync方法使用注册类型进行反序列化
- 在SettingsModel初始化时自动注册数据类型到仓库
- 添加RegisterDataType接口方法支持类型注册功能
- 移除原有的无类型约束反序列化逻辑
- 增强数据加载的安全性和准确性
- [release ci]
2026-01-31 19:44:59 +08:00
GeWuYou
eb60b05144 refactor(data): 统一设置数据仓库实现线程安全和键管理
- 添加 UnifiedKey 属性用于获取统一键值
- 在 SaveAsync 方法中添加异步锁确保线程安全
- 使用 UnifiedKey 替换 fileName 进行文件读写操作
- 在 EnsureLoadedAsync 中使用统一键进行存在性检查
- 优化 SaveAllToUnifiedFile 方法使用新的键属性
- 移除多余的空行以改善代码格式
- [release ci]
2026-01-30 22:53:27 +08:00
GeWuYou
e5d6f72bac fix(setting): 修复 SettingsModel 构造函数参数可空性问题
- 将 IDataLocationProvider 参数标记为可空类型
- 将 TRepository 参数标记为可空类型
- 保持泛型约束不变以确保类型安全
2026-01-30 22:40:36 +08:00
GeWuYou
e2fef7110d refactor(setting): 更新 SettingsModel 构造函数注入依赖项
- 将 IDataLocationProvider 和 TRepository 从属性注入改为构造函数参数注入
- 移除字段初始化器中的空值赋值操作
- 简化依赖项的初始化流程,提高代码可读性
- 保持原有的数据仓库访问逻辑不变
- [release ci]
2026-01-30 22:23:39 +08:00
GeWuYou
70421159e4 refactor(setting): 优化设置应用器注册方法的泛型参数约束
- 修改 RegisterApplicator 方法的参数类型从 IResetApplyAbleSettings 为具体泛型类型 T
- 移除抽象层中的方法约束,统一实现层和抽象层的方法签名
- 保持泛型约束 T : class, IResetApplyAbleSettings 不变
- 确保接口和实现类的方法定义一致性
- [release ci]
2026-01-30 22:05:04 +08:00
GeWuYou
209c331d1f refactor(setting): 移除设置应用器注册方法中的new()约束
- 从RegisterApplicator方法的泛型约束中移除new()要求
- 修改实现类SettingsModel中的方法签名以匹配接口变更
- 更新抽象层ISettingsModel中的方法约束定义
- 保持原有功能完整性的同时提高代码灵活性
- [release ci]
2026-01-30 21:48:57 +08:00
GeWuYou
6172ce96f1 fix(setting): 修复设置应用器注册方法的泛型约束
- 将RegisterApplicator方法的泛型约束从ISettingsData改为IResetApplyAbleSettings
- 更新接口定义中的泛型参数约束
- 修正相关XML文档注释中的接口名称描述
- [release ci]
2026-01-30 21:34:04 +08:00
GeWuYou
7d581f07ca feat(settings): 重构设置系统架构以支持数据仓库模式
- 为 ILoadableFrom 接口添加 XML 文档注释
- 重命名 UnifiedSettingsRepository 为 UnifiedSettingsDataRepository
- 将仓库基类从 IDataRepository 替换为更具体的 ISettingsDataRepository
- 为 UnifiedSettingsDataRepository 添加完整的 XML 文档注释
- 在 SettingsModel 中使用 ISettingsDataRepository 替代 IDataRepository
- 修改 SettingsModel 中的应用器存储结构从 ConcurrentBag 到 ConcurrentDictionary
- 添加 LoadAllAsync 方法以支持批量加载所有设置数据
- 优化 SettingsModel 初始化逻辑以使用批量加载提高性能
- 为 AudioSettings、GraphicsSettings 和 LocalizationSettings 添加 LoadFrom 实现
- 将设置数据版本属性改为私有只读以防止外部修改
- 更新 SettingsSystem 接口约束以匹配新的抽象层设计
- 添加 GetApplicator 泛型方法以支持获取特定类型的应用器
- 实现 Reset 泛型方法以支持重置指定类型的设置数据
- [release ci]
2026-01-30 21:16:31 +08:00
GeWuYou
970b8d3b96 refactor(settings): 重构设置系统和数据仓库实现
- 将音频和图形设置从 IResettable, IVersioned 迁移到 ISettingsData 接口
- 添加数据位置接口 IDataLocation 和数据位置提供者接口 IDataLocationProvider
- 修改数据仓库实现,使用数据位置替代类型进行数据操作
- 更新数据仓库的加载、保存、删除和存在检查方法以使用数据位置参数
- 重命名 IPersistentApplyAbleSettings 为 IResetApplyAbleSettings 并更新其实现
- 创建 ISettingsData 接口整合设置数据的基础功能
- 更新设置模型实现,统一管理设置数据的生命周期和应用器
- 添加版本化数据接口 IVersionedData 和可从源加载接口 ILoadableFrom
- 实现数据位置到存储键的扩展方法
- 更新数据事件类型以使用数据位置信息
- 重构设置模型的数据加载、保存和应用逻辑
- [skip ci]
2026-01-30 16:48:09 +08:00
GeWuYou
49d210b9ad refactor(data): 重构数据存储库的键生成逻辑
- 将 DataRepository 中的 GetKey 方法从私有改为受保护的虚拟方法
- 简化了基于类型的键生成逻辑,使用 FullName 替代 Name 和前缀组合
- 移除了 DataRepositoryOptions 中的 KeyPrefix 属性
- 将 UnifiedSettingsRepository 中的相关方法改为受保护的虚拟方法
- 简化了统一键生成的路径处理逻辑,移除多余的 TrimEnd 操作
- [release ci]
2026-01-29 23:15:30 +08:00
GeWuYou
cc8f40ee44 style(formatter): 统一代码格式化和文档缩进
- 调整文档文件中的缩进格式一致性
- 修正所有C#接口和类定义中的注释缩进
- 移除测试代码中不必要的构造函数参数
- 重构条件语句减少嵌套层级
- 规范方法体的大括号使用风格
- 整理全局命名空间声明格式
- 优化方法实现的代码结构和可读性
- [release ci]
2026-01-29 22:35:45 +08:00
GeWuYou
ad6c621c59 refactor(SettingsSystem): 简化保存所有设置数据的逻辑
- 移除手动遍历设置数据的循环代码
- 使用 Repository.SaveAllAsync 方法批量保存所有数据
- 提高代码简洁性和执行效率
2026-01-29 22:31:19 +08:00
GeWuYou
0c0ddaab7f feat(setting): 添加设置重置功能并重构Godot设置类
- 在SettingsModel中添加Reset<T>()和ResetAll()方法
- 在SettingsSystem中添加异步Reset<T>()和ResetAll()方法
- 扩展ISettingsModel和ISettingsSystem接口以支持重置操作
- 重构GodotAudioSettings、GodotGraphicsSettings和GodotLocalizationSettings类
- 将直接依赖设置对象改为依赖ISettingsModel接口
- 实现IResettable接口以支持设置重置功能
- [release ci]
2026-01-29 21:51:41 +08:00
GeWuYou
7e4d93aa2b refactor(settings): 修改UnifiedSettingsRepository类访问修饰符
- 将UnifiedSettingsRepository类从sealed改为普通class
- 移除密封限制以支持继承扩展需求
- [release ci]
2026-01-29 21:12:19 +08:00
GeWuYou
6c2e89bc4f feat(data): 添加统一设置仓库和运行时类型序列化支持
- 新增 UnifiedSettingsRepository 类实现单一文件存储所有设置数据
- 扩展 JsonSerializer 实现 IRuntimeTypeSerializer 接口支持运行时类型序列化
- 修改 DataRepositoryOptions 默认键名前缀为空字符串
- 实现异步加载、保存、删除和检查数据功能
- 添加数据事件通知机制支持
- 实现线程安全的数据缓存和文件操作
- [release ci]
2026-01-29 20:57:05 +08:00
GeWuYou
2896f35c67 feat(setting): 更新设置系统支持数据持久化和泛型仓库
- 添加 IDataRepository 依赖注入支持泛型仓库
- 实现 SaveAll 方法用于保存所有设置数据到存储库
- 为 ApplyAll 和 Apply<T> 方法添加返回值类型注释
- 添加 SettingsApplyingEvent 事件发送功能
- 优化代码结构使用泛型约束和空合并运算符
- 添加 Repository 属性确保仓库实例不为空
2026-01-28 23:01:46 +08:00
GeWuYou
76a8b140f1 refactor(setting): 将设置持久化功能整合到数据仓库中
- 移除独立的SettingsPersistence类,将其功能合并到DataRepository
- 在DataRepository中新增基于Type参数的异步加载方法
- 修改SettingsModel以使用IDataRepository替代ISettingsPersistence
- 更新SettingsModel为泛型类并注入数据仓库依赖
- 将ISettingsSection接口继承IData接口
- 删除ISettingsPersistence接口定义
2026-01-28 20:36:24 +08:00
GeWuYou
0b7c64fd99 feat(data): 添加数据仓库功能并重构设置系统接口
- 新增 DataRepository 类实现数据存储和读取功能
- 添加数据仓库配置选项类 DataRepositoryOptions
- 定义 IData 接口作为通用数据标记接口
- 实现数据加载、保存、删除等异步操作方法
- 添加数据事件系统包括加载、保存、删除等事件类型
- 将 ISettingsData 接口重命名为 IResettable 并更新相关实现
- 更新 SettingsModel 和 SettingsPersistence 使用新的接口
- 修改 SettingsBatchChangedEvent 和 SettingsBatchSavedEvent 使用 IResettable 类型
- 重构 AudioSettings、GraphicsSettings、LocalizationSettings 继承新接口
- 更新 IPersistentApplyAbleSettings 接口依赖为 IResettable
2026-01-28 20:08:34 +08:00
GeWuYou
c918085ba9 refactor(setting): 移除 SettingsModel 的 IDisposable 接口实现
- 从 SettingsModel 类定义中移除 IDisposable 接口
- 删除 Dispose 方法及其相关实现逻辑
- 移除 _disposed 标记字段和相关的资源清理代码
- 简化类结构,不再需要手动管理资源释放
- 依赖垃圾回收器自动处理内存管理
2026-01-28 12:47:08 +08:00
GeWuYou
4cfc5d3505 refactor(storage): 将文件存储读取操作改为异步模式
- 使用 await using 替代 using 确保异步资源正确释放
- 优化文件读取流程以支持异步IO操作
- 提高文件存储组件的异步处理能力
2026-01-27 22:39:26 +08:00
GeWuYou
a29a484834 refactor(setting): 优化设置模型的并发安全性和性能
- 将字典集合替换为ConcurrentDictionary以提高并发安全性
- 添加方法缓存机制减少反射调用开销
- 实现迁移缓存避免重复查询操作
- 增加异步加载异常处理和日志记录
- 实现IDisposable接口添加资源清理功能
- 优化GetOrAdd方法简化数据获取逻辑
2026-01-27 22:38:49 +08:00
GeWuYou
11c94d462f feat(setting): 添加设置数据版本迁移功能
- 新增 IVersioned 接口用于定义版本信息
- 实现设置数据自动迁移机制,支持版本升级转换
- 添加 SettingsMigration 接口用于处理不同版本间的数据转换
- 在 SettingsModel 中集成迁移功能,加载时自动执行版本迁移
- 优化设置数据管理,新增 AllData 方法获取所有设置数据
- 重构代码结构,添加清晰的方法分组注释块
2026-01-27 22:22:20 +08:00
GeWuYou
07f5d27ab3 refactor(setting): 重构设置系统的接口设计
- 移除 SettingsModel 中的 All() 方法,避免同时实现两个接口的设置被重复返回
- 添加 AllApplicators() 方法用于获取所有可应用设置
- 添加 AllData() 方法用于获取所有设置数据
- 修改 SettingsSystem.ApplyAll() 方法,直接遍历可应用设置而非设置节
- 更新 ISettingsModel 接口定义,将 All() 方法拆分为 AllData() 和 AllApplicators()
- 移除 SettingsSystem 中的 Apply(Type) 和 Apply(IEnumerable<Type>) 重载方法
- 更新 Apply<T>() 泛型约束从 ISettingsSection 改为 IApplyAbleSettings
- 移除注册时对 ISettingsData 的自动注册逻辑,保持职责分离
2026-01-27 22:11:01 +08:00
GeWuYou
19c0830a7d feat(serializer): 添加运行时类型序列化器接口并重构序列化模块
- 新增 IRuntimeTypeSerializer 接口支持运行时类型序列化
- 将序列化器接口从 Game 模块迁移到 Core 模块
- 更新 JsonSerializer 的命名空间引用
- 为 Godot 音频和图形设置类添加持久化应用接口实现
- 重构设置模型的初始化和去重逻辑
- 移除批量加载所有设置的功能
- 优化设置应用过程为异步执行
- 在存储接口中添加异步删除方法
- 为各种存储实现添加异步删除功能
- 为 Godot 文件存储添加标准文件系统路径删除支持
- 删除废弃的设置数据基类实现
2026-01-27 21:58:30 +08:00
GeWuYou
b49079de3e style(coding-style): 统一代码风格并优化文档格式
- 移除多余using语句和空行,统一代码缩进格式
- 优化注释文档中的缩进和对齐格式
- 简化条件语句和方法实现,提升代码可读性
- 重构协程系统相关类的字段和方法定义格式
- 更新架构服务中容器访问方式的实现
- 调整异步操作类的属性和方法组织结构
- [skip ci]
2026-01-27 20:30:04 +08:00
GeWuYou
bb95f738a8 chore(project): 禁用隐式using并添加全局using文件
- 在所有项目中禁用 ImplicitUsings 配置
- 为所有项目添加 GlobalUsings.cs 文件统一管理常用命名空间
- 统一添加 System、System.Collections.Generic、System.Linq、System.Threading 和 System.Threading.Tasks 的全局引用
- 更新项目文件中的 PackageReference 格式规范化
- 移除各个源文件顶部的重复 using 语句
- 添加标准版权头注释到全局引用文件
2026-01-27 12:45:03 +08:00
GeWuYou
16a72e85af refactor(coroutine): 移除协程相关抽象接口
移除了以下协程相关的接口定义:
- ICoroutineContext: 协程上下文接口
- ICoroutineHandle: 协程句柄接口
- ICoroutineScheduler: 协程调度器接口
- ICoroutineScope: 协程作用域接口
- ICoroutineSystem: 协程系统接口
- IYieldInstruction: 等待指令接口
- [skip ci]
2026-01-21 16:02:27 +08:00
GeWuYou
f24ec656e6 refactor(coroutine): 将协程相关接口从Game模块迁移到Core模块
- 重命名命名空间从GFramework.Game.Abstractions.coroutine到GFramework.Core.Abstractions.coroutine
- 更新ICoroutineContext.cs、ICoroutineHandle.cs、ICoroutineScheduler.cs、
  ICoroutineScope.cs、ICoroutineSystem.cs、IYieldInstruction.cs的命名空间
- 更新测试覆盖率计划文档,添加协程模块测试计划
- 新增协程模块测试计划,包含15个源文件,计划91个测试用例
- 添加CoroutineHandleTests.cs等7个协程相关测试文件的计划
2026-01-21 09:21:08 +08:00
GeWuYou
ef2e718efe feat(coroutine): 完善协程系统接口设计与实现
- 实现ICoroutineContext和ICoroutineHandle接口,提供协程上下文和句柄的标准定义
- 重构CoroutineContext实现ICoroutineContext接口,统一协程上下文访问方式
- 修改CoroutineHandle实现ICoroutineHandle接口,标准化协程控制方法
- 扩展ICoroutineScheduler和ICoroutineScope接口,增加ActiveCount属性和Launch方法
- 优化CoroutineScheduler线程安全性,添加线程ID检查防止跨线程调用
- 为WaitForSeconds、WaitUntil、WaitWhile添加Reset方法支持状态重置
- 重构CoroutineScopeExtensions移除类型转换,使用接口方法替代具体类型
- 改进GlobalCoroutineScope添加TryGetScope方法,使用TryGet模式替代异常控制
- 优化CoroutineHandle取消逻辑,确保取消时正确触发OnComplete事件
- 统一各协程组件的XML文档注释,完善参数和返回值说明
- [skip ci]
2026-01-21 00:06:01 +08:00
GeWuYou
f143cf5c1b feat(coroutine): 实现协程系统核心功能
- 添加协程上下文、句柄、调度器和作用域管理类
- 实现协程等待指令包括 WaitForSeconds、WaitUntil 和 WaitWhile
- 创建协程系统和全局协程作用域管理器
- 定义协程相关抽象接口 ICoroutineScheduler、ICoroutineScope 等
- 升级 Meziantou.Analyzer 依赖版本至 2.0.283
- 升级 Meziantou.Polyfill 依赖版本至 1.0.100
2026-01-20 23:05:15 +08:00
GeWuYou
5ef6145688 fix(ui): 修复UiRouterBase弹出栈时目标UI键可空性问题
- 将topUiKey重命名为leavingUiKey以提高代码可读性
- 修改nextUiKey逻辑使其在栈中只有一个元素时返回null而非抛出异常
- 更新CreateEvent方法参数toUiKey为可空字符串类型
- 调整UiTransitionEvent中的ToUiKey属性为可空字符串类型
- 添加注释说明nextUiKey现在是可选的
- 格式化代码缩进和换行以提高可读性
2026-01-20 19:12:45 +08:00
GeWuYou
88ced1ac55 refactor(ui): 重构UI层级管理系统
- 移除 System.Collections.Generic 和 System 的 using 语句
- 添加 GFramework.Game.Abstractions.enums 的 using 语句
- 添加静态只读字典 LayerZOrderMap 来管理 UI 层级 Z 轴顺序
- 修改 AddUiPage 方法参数,使用 UiLayer 枚举替代 zOrder 参数
- 使用 TryAdd 方法替换 ContainsKey 判断逻辑
- 使用 Remove 方法的重载版本来简化页面移除逻辑
- 删除 RefreshLayerOrder 方法
- 添加 GetBaseZOrder 辅助方法来获取基础 Z 轴顺序
- 更新 UiLayer 枚举定义,移除显式的数值赋值
- 更新 IUiRoot 接口中的 AddUiPage 方法签名
- 删除 IUiRoot 接口中 RefreshLayerOrder 方法
- 更新 UiRouterBase 中调用 AddUiPage 方法的方式,传递 UiLayer 参数
2026-01-20 12:51:48 +08:00
GeWuYou
3362d9456d feat(ui): 实现UI缓存淘汰策略和移除动画相关功能
- 新增CacheEvictionPolicy枚举定义LRU和LFU缓存淘汰策略
- 在GodotUiFactory中实现缓存淘汰机制支持LRU/LFU策略
- 将IUiCacheStatistics接口从IUiFactory中分离到独立文件
- 移除UiAnimationPolicy类及相关动画策略参数配置
- 移除GodotUiTransition类中的UI过渡动画实现
- 移除UiTransitionAnimation枚举类型
- 更新UiRouterBase中路由方法移除动画策略参数
- 重构路由守卫注册方法位置优化代码结构
- 更新UiCacheConfig配置类适配新的缓存策略枚举值
-[skip ci]
2026-01-20 12:27:22 +08:00
GeWuYou
ad061bba46 feat(ui): 添加UI缓存统计和路由守卫功能
- 新增IUiCacheStatistics接口用于UI缓存统计信息
- 为IUiFactory添加缓存策略管理和统计信息获取功能
- 将IUiRouter中的层级管理改为路由守卫功能
- 实现路由守卫的注册、移除和执行逻辑
- 添加缓存配置管理支持
- [skip ci]
2026-01-20 10:24:23 +08:00
GeWuYou
e972d926a7 feat(ui): 添加UI过渡动画系统
添加了完整的UI过渡动画功能,包括:
- 新增UiTransitionAnimation枚举定义各种动画类型
- 扩展IUiRouter接口支持动画策略参数
- 新增IUiTransition接口定义动画播放契约
- 新增UiAnimationPolicy类配置动画行为
- 实现God
2026-01-20 09:36:59 +08:00