GeWuYou
25e4965817
feat(game): 添加存档仓库实现和持久化测试
...
- 实现基于槽位的存档仓库功能,支持存档的保存、加载、删除和列举操作
- 添加存档版本迁移机制,支持自动升级旧版本存档数据
- 实现文件存储和统一设置仓库的基础持久化功能
- 添加完整的单元测试覆盖存档仓库的各种使用场景
- 创建测试工具类和测试数据模型用于验证持久化行为
- 添加项目AI代理行为规范文档,确保代码质量和一致性
2026-04-06 11:33:35 +08:00
GeWuYou
7ad80f54d3
feat(game): 添加数据与存档系统核心功能
...
- 实现 ISaveRepository<T> 接口提供存档管理功能
- 添加 SaveRepository<T> 实现类支持槽位存档管理
- 实现数据版本迁移机制支持存档版本升级
- 添加完整的存档测试用例验证功能正确性
- 创建数据与存档系统中文文档说明使用方法
- 移除项目中不再需要的本地计划文件夹配置
2026-04-06 11:09:53 +08:00
gewuyou
6f17e2c437
Merge pull request #175 from GeWuYou/feat/ai-first-config-system
...
Feat/ai first config system
2026-04-06 07:59:48 +08:00
GeWuYou
7da35c00b2
feat(config): 添加基于文件目录的YAML配置加载器
...
- 实现YamlConfigLoader类,支持从文件目录加载YAML配置
- 提供RegisterTable方法注册配置表定义,支持schema校验
- 添加LoadAsync异步加载功能,支持批量加载配置表
- 实现EnableHotReload方法,支持开发期配置热重载
- 添加跨表引用校验功能,确保配置依赖关系正确性
- 支持YAML文件和YML文件格式,自动识别文件扩展名
- 提供配置表主键提取器和比较器自定义功能
- 实现文件变更监听和防抖机制,避免频繁重载
- 支持配置目录和schema文件路径的灵活配置
- 提供详细的加载异常信息和诊断支持
2026-04-06 07:53:46 +08:00
GeWuYou
a416e093ee
feat(config): 添加基于YAML的配置加载器实现
...
- 实现YamlConfigLoader类,支持从文件目录加载YAML配置
- 提供RegisterTable方法支持配置表定义注册
- 实现热重载功能,监听文件变更并自动重新加载
- 支持schema校验,拒绝未知字段和类型错误
- 实现跨表引用校验,确保配置一致性
- 添加YamlConfigTableRegistrationOptions选项类
- 支持防抖机制避免频繁重载
- 提供详细的错误诊断信息
2026-04-06 07:37:59 +08:00
GeWuYou
d2533de3be
test(serializer): 添加JSON序列化器单元测试并优化反序列化异常处理
...
- 添加了完整的JsonSerializer单元测试覆盖序列化和反序列化场景
- 优化了反序列化方法中的异常处理逻辑,改进错误信息
- 修改了DeserializeCore方法中未使用的参数命名
- 添加了对各种边界情况的测试验证,包括无效JSON和空值处理
2026-04-05 22:58:45 +08:00
GeWuYou
3d86cdb093
docs(setting): 添加设置系统文档并实现JSON序列化器
...
- 新增设置系统详细文档,包含核心概念、接口定义和基本用法
- 实现JSON序列化器支持对象序列化和反序列化功能
- 添加序列化器单元测试验证序列化功能正确性
- 提供自定义转换器支持和错误处理机制
2026-04-05 22:26:07 +08:00
GeWuYou
21b4c826d4
feat(data): 添加统一设置数据仓库和JSON序列化器实现
...
- 实现UnifiedSettingsDataRepository统一管理所有设置数据
- 添加JsonSerializer基于Newtonsoft.Json的序列化功能
- 创建SettingsModel管理设置数据生命周期和迁移
- 添加完整的单元测试验证持久化功能
- 实现数据类型注册和批量保存加载功能
- 支持设置数据的版本迁移和事件通知机制
2026-04-05 21:40:28 +08:00
GeWuYou
8c9fbb39b2
feat(config): 添加YAML配置加载器依赖注入支持
...
- 引入GFramework.Core.Abstractions.Events命名空间
- 添加YamlDotNet反序列化库相关引用
- 注册配置抽象层依赖到YAML配置加载器
- 更新测试文件中的命名空间引用以匹配新架构
2026-04-05 13:34:50 +08:00
GeWuYou
7fda40de42
feat(game): 添加游戏内容配置系统实现
...
- 实现基于 YAML 的配置加载器支持
- 添加 JSON Schema 结构验证功能
- 实现一对象一文件的目录组织方式
- 提供运行时只读查询接口
- 添加 Source Generator 生成配置类型和表包装
- 实现 VS Code 插件配置浏览和编辑功能
- 添加开发期热重载支持
- 实现跨表引用校验机制
- 提供完整的配置系统文档说明
2026-04-03 22:58:05 +08:00
GeWuYou
b4e026a70d
feat(config): 添加YAML配置文件的JSON Schema校验功能
...
- 实现了YAML配置文件与JSON Schema的运行时校验能力
- 支持嵌套对象、对象数组、标量数组的递归校验
- 提供跨表引用的约束检查与引用采集功能
- 支持enum枚举值与数值范围约束验证
- 实现详细的错误诊断信息与字段路径定位
- 包含完整的异常处理与错误报告机制
2026-04-03 17:08:24 +08:00
GeWuYou
0e538738df
feat(game): 添加游戏内容配置系统和YAML配置校验器
...
- 实现面向静态游戏内容的AI-First配置方案,支持怪物、物品、技能、任务等数据管理
- 集成YAML作为配置源文件格式,JSON Schema作为结构描述标准
- 提供一对象一文件的目录组织结构和运行时只读查询功能
- 实现Source Generator生成配置类型、表包装和注册/访问辅助代码
- 添加VS Code插件支持配置浏览、raw编辑、schema打开和递归校验功能
- 创建YamlConfigSchemaValidator类提供YAML与JSON Schema的运行时校验能力
- 支持嵌套对象、对象数组、标量数组的递归校验和深层约束检查
- 实现跨表引用验证和配置热重载功能
- 提供详细的错误诊断信息和开发期工具链支持
2026-04-03 16:32:14 +08:00
GeWuYou
b1e9d0a345
feat(config): 添加基于YAML的配置加载器和架构验证器
...
- 实现YamlConfigLoader类,支持从文件目录加载YAML配置
- 添加热重载功能,监听配置文件变更并自动重新加载
- 实现YAML配置架构验证器,支持JSON Schema校验
- 添加跨表引用验证机制,确保配置依赖关系正确
- 支持配置表注册和类型安全的配置项访问
- 实现防抖机制避免频繁的文件变更触发
- 提供详细的错误诊断信息和异常处理
2026-04-03 12:31:58 +08:00
GeWuYou
081a65f740
feat(config): 添加YAML配置加载器依赖注入支持
...
- 引入GFramework.Core.Abstractions.Events命名空间
- 添加YamlDotNet反序列化库依赖
- 注册YAML配置加载器到依赖注入容器
- 更新单元测试中的命名空间引用
- 实现YAML配置文件的解析功能
- 添加配置加载过程中的事件发布机制
2026-04-03 12:21:03 +08:00
GeWuYou
12ce31f82a
feat(game): 添加游戏内容配置系统
...
- 实现基于 YAML 的配置文件加载功能
- 集成 JSON Schema 结构验证和类型检查
- 提供一对象一文件的目录组织方式
- 支持运行时只读查询和类型安全访问
- 实现 Source Generator 生成配置类型和表包装
- 添加 VS Code 插件提供配置浏览和编辑功能
- 支持跨表引用校验和依赖关系管理
- 实现开发期热重载功能,支持配置变更自动刷新
- 提供完整的配置加载、验证、注册和访问接口
2026-04-03 12:00:32 +08:00
GeWuYou
03580d6836
feat(game): 添加游戏内容配置系统及YAML Schema校验器
...
- 实现AI-First配表方案,支持怪物、物品、技能等静态内容管理
- 集成YAML配置源文件与JSON Schema结构描述功能
- 提供一对象一文件的目录组织方式和运行时只读查询能力
- 实现Source Generator生成配置类型和表包装类
- 集成VS Code插件提供配置浏览、raw编辑和递归校验功能
- 开发YamlConfigSchemaValidator实现JSON Schema子集校验
- 支持嵌套对象、对象数组、标量数组与深层enum引用约束校验
- 实现跨表引用检测和热重载时依赖表联动校验机制
2026-04-01 21:02:25 +08:00
GeWuYou
c84f62897c
refactor(config): 优化YAML配置模式验证器中的允许值检查逻辑
...
- 将传统的空值检查和计数判断替换为更简洁的模式匹配语法
- 使用集合表达式简化代码结构,提高可读性
- 保持原有的功能逻辑不变,仅优化代码风格
2026-04-01 12:47:31 +08:00
GeWuYou
ad87f72ca6
feat(game): 添加游戏内容配置系统
...
- 实现基于YAML的配置文件管理和JSON Schema校验功能
- 提供YamlConfigSchemaValidator用于运行时配置校验和跨表引用检查
- 添加完整的单元测试覆盖配置加载器的各种场景
- 支持热重载功能,开发期修改配置文件后自动刷新运行时表
- 集成Source Generator生成配置类型和表包装类
- 提供VS Code插件支持配置浏览、编辑和校验操作
2026-04-01 12:38:52 +08:00
GeWuYou
15761c6677
feat(game): 添加基于YAML的游戏内容配置系统
...
- 实现YamlConfigLoader支持从YAML文件加载配置数据
- 提供ConfigRegistry用于统一管理命名的配置表
- 支持JSON Schema校验配置结构和类型匹配
- 实现跨表引用校验避免无效引用和缺失依赖
- 提供开发期热重载功能监听文件变更自动刷新
- 支持一对象一文件的目录组织方式
- 集成VS Code插件提供配置浏览和轻量校验
- 生成器支持从schema自动生成配置类型定义
- 文档说明配置系统的使用方法和推荐目录结构
2026-04-01 09:04:28 +08:00
GeWuYou
3332aaff7b
feat(config): 添加YAML配置加载器及开发期热重载功能
...
- 实现YamlConfigLoader支持基于文件目录的YAML配置加载
- 添加EnableHotReload方法支持开发期配置文件变更自动重载
- 提供带schema校验的配置表注册功能
- 实现按表粒度的热重载机制及错误处理回调
- 添加配置文件变更监听和防抖处理
- 更新文档说明热重载使用方法和行为特性
- 移除未完成功能列表中的运行时热重载项
2026-03-31 22:39:39 +08:00
GeWuYou
ae9693e0ff
refactor(config): 更新配置加载器依赖项
...
- 在YamlConfigLoader中添加YamlDotNet序列化库引用
- 移除YamlConfigSchemaValidator中的未使用引用
- 在全局引用中添加YAML处理相关库引用
- 优化配置模块的依赖管理和命名空间使用
2026-03-31 22:32:57 +08:00
GeWuYou
b87e511334
docs(game): 添加游戏模块完整文档
...
- 创建了 GFramework.Game 模块的全面文档
- 包含架构模块系统、资产管理、存储系统和序列化系统详解
- 提供了 AbstractModule、AbstractAssetCatalogUtility 等核心组件使用示例
- 添加了分层存储、加密存储和缓存存储的实现方案
- 集成了 JSON 序列化、自定义转换器和版本化数据管理
- 提供了完整的游戏数据管理系统和自动保存系统实现
- 修改了 VitePress 配置文件
2026-03-31 22:30:33 +08:00
GeWuYou
5fa12dcd37
feat(config): 添加YAML配置加载器支持
...
- 新增YamlConfigLoader类支持基于目录的YAML配置加载
- 添加对.yaml和.yml文件格式的自动识别和解析
- 实现异步加载任务支持取消令牌
- 集成YamlDotNet库进行YAML反序列化处理
- 支持驼峰命名约定和忽略未匹配属性
- 实现配置表注册的链式API设计
- 添加详细的加载过程异常处理和错误信息
- 提供完整的单元测试覆盖各种加载场景
- 更新项目依赖添加YamlDotNet包引用16.3.0版本
2026-03-30 14:13:26 +08:00
GeWuYou
c0aa8ba70e
feat(config): 添加配置管理系统核心组件
...
- 实现了 ConfigRegistry 配置注册表,支持按名称注册和类型安全查询
- 创建了 InMemoryConfigTable 内存配置表,提供基于字典的只读配置存储
- 定义了 IConfigLoader、IConfigRegistry 和 IConfigTable 接口契约
- 添加了完整的单元测试验证配置表的注册、查询和类型检查功能
- 在项目文件中添加了新的代码文件夹结构
- 实现了配置表的覆盖策略以支持开发期热重载需求
2026-03-30 13:18:54 +08:00
GeWuYou
2d1d1a43b6
chore(build): 移除静态全局using配置并实现自动化生成
...
- 删除所有手动维护的 buildTransitive props 文件
- 从项目文件中移除静态的 global usings 配置
- 删除废弃的 global-usings.modules.json 清单文件
- 移除旧的 TransitiveGlobalUsingsGenerationTests 测试
- 添加新的 TransitiveGlobalUsingsPackagingTests 验证自动化生成
- 在 Directory.Build.targets 中集成 MSBuild 自动化生成任务
- 实现基于源码扫描的动态命名空间发现机制
2026-03-24 22:24:52 +08:00
GeWuYou
b80f46b6fa
feat(build): 添加 GFramework 模块化全局命名空间导入功能
...
- 在 NuGet 包中实现可选的 transitive global usings 功能
- 添加 XML 配置方式启用模块级自动命名空间导入
- 支持通过 GFrameworkExcludedUsing 排除特定命名空间
- 为所有运行时模块生成对应的 buildTransitive props 文件
- 添加 Python 脚本自动生成和验证命名空间配置
- 在文档中添加新的安装配置说明
- 创建单元测试验证生成脚本的同步状态
2026-03-24 21:46:31 +08:00
GeWuYou
4afa856fdc
refactor(game): 重构路由系统并优化CI测试流程
...
- 将SceneRouterBase和UiRouterBase继承自新的RouterBase基类
- 移除原有的守卫管理相关代码,统一使用基类实现
- 更新路由栈操作使用基类提供的Stack属性
- 重写Current、Contains等方法以使用基类实现
- 在CI工作流中启用并发测试执行以提升性能
- 添加等待步骤确保并发测试完成
- 更新项目文件排除测试项目的编译
- 在解决方案文件中添加GFramework.Game.Tests项目引用
- 新增RouterBase基类提供通用路由管理功能
2026-03-17 15:01:55 +08:00
GeWuYou
820cdcf0fa
refactor(storage): 统一文件存储模块的依赖注入
...
- 在 FileStorage 中添加 System.IO 和 System.Text 引用
- 在 GodotFileStorage 中整合所有必要的命名空间引用
- 统一并发和序列化接口的依赖注入方式
- 添加 Godot 特定的 FileAccess 类型别名
- 优化 Godot 扩展功能的引用结构
2026-03-11 22:34:30 +08:00
GeWuYou
b01867b231
fix(storage): 修复文件存储组件的资源管理和死锁问题
...
- 添加了内部锁管理器所有权标识,防止外部传入的锁管理器被错误释放
- 在构造函数中正确初始化锁管理器的所有权状态
- 在Dispose方法中只释放内部创建的锁管理器,避免重复释放异常
- 为所有同步包装方法添加了ConfigureAwait(false)以避免死锁
- 更新了读取、写入、删除和检查存在的同步方法实现
- 为所有异步操作添加了适当的配置避免上下文切换问题
- 改进了Godot文件存储类的相同资源管理逻辑
- 为所有阻塞式同步方法添加了详细的XML注释警告说明
2026-03-11 22:26:01 +08:00
GeWuYou
494c341c08
refactor(storage): 重构文件存储实现以支持异步安全锁和原子写入
...
- 替换同步锁机制为异步键锁管理器,提升并发性能
- 实现原子写入功能,通过临时文件防止写入过程中的数据损坏
- 添加资源释放接口(IDisposable)和对象销毁检查
- 集成异步IO操作,包括缓冲区大小配置选项
- 更新Godot文件存储适配器以匹配新的异步安全机制
- 优化文件读取操作,支持异步文本读取避免阻塞
- 移除旧的并发字典锁实现,统一使用新的锁管理器
2026-03-11 21:57:04 +08:00
deepsource-autofix[bot]
caeb1ab80f
refactor: use ternary operator for conditional assignments
...
This PR refactors code that used multi-line if/else statements to use the ternary operator for more concise and readable assignments.
- if statement can be rewritten using the ternary operator: The original code assigned values based on Storage.ExistsAsync(key) with separate if and else blocks, leading to verbose multi-line statements. We have replaced these with single-line ternary expressions in both the generic GetAsync<T> method and the UnifiedSettingsFile loader, reducing code duplication and improving clarity.
> This Autofix was generated by AI. Please review the change before merging.
2026-03-10 11:21:39 +00:00
GeWuYou
027a214479
refactor(core): 将System命名空间重命名为Systems
...
- 更新所有GFramework.Core.Abstractions.System引用为GFramework.Core.Abstractions.Systems
- 重命名GFramework.Core/System目录为GFramework.Core/Systems
- 重命名GFramework.Core.Tests/System目录为GFramework.Core.Tests/Systems
- 更新所有相关using语句和命名空间声明
- 修复测试文件中的命名空间引用
- 添加全局using引用GFramework.Core.Systems
2026-03-10 08:42:53 +08:00
GeWuYou
fb14d7122c
docs(style): 更新文档中的命名空间导入格式
...
- 将所有小写的命名空间导入更正为首字母大写格式
- 统一 GFramework 框架的命名空间引用规范
- 修复 core、ecs、godot 等模块的命名空间导入错误
- 标准化文档示例代码中的 using 语句格式
- 确保所有文档中的命名空间引用保持一致性
- 更新 global using 语句以匹配正确的命名空间格式
2026-03-10 07:18:49 +08:00
GeWuYou
b417ece73a
chore(dependencies): 移除 LanguageExt 相关依赖和引用
...
- 从 GFramework.Game 项目中移除 LanguageExt.Core 包引用
- 从 GFramework.Godot 项目中移除 LanguageExt.Core 包引用
- 从全局引用文件中移除 LanguageExt.Common 引用
- 从全局引用文件中移除 LanguageExt.Effects 引用
- 从全局引用文件中移除 LanguageExt.Pretty 引用
- 保留必要的 System.Threading.Tasks 引用
2026-03-03 22:11:13 +08:00
deepsource-autofix[bot]
a30abdb4c3
refactor: simplify lambda expressions
...
This PR refactors numerous lambda expressions by removing unnecessary braces and streamlining single-statement lambdas throughout the codebase, improving readability and maintainability.
- Consider simplifying lambda when its body has a single statement: DeepSource flagged lambdas written with a block body for only one statement, causing extra verbosity. This update converts those to concise expression-bodied lambdas by stripping out the curly braces, applied across test assertions, event registrations, and unregister logic. The code is now cleaner and more consistent.
> This Autofix was generated by AI. Please review the change before merging.
2026-03-02 22:01:22 +08:00
GeWuYou
1ba771e13a
feat(logging): 实现结构化日志记录和异步日志输出功能
...
- 将 AbstractLogger 实现从 ILogger 扩展为 IStructuredLogger 接口
- 添加通用日志方法 Log(LogLevel, string, params object[]) 支持格式化参数
- 实现结构化日志方法支持属性键值对记录
- 添加 ConsoleAppender、FileAppender 和 AsyncLogAppender 日志输出器
- 实现 CompositeFilter 过滤器和 DefaultLogFormatter、JsonLogFormatter 格式化器
- 在 ConsoleLogger 和 GodotLogger 中使用预缓存的日志级别字符串提升性能
- 使用 ANSI 颜色代码替代 ConsoleColor 实现跨平台日志着色
- 在 ConsoleLoggerFactoryProvider 和 GodotLoggerFactoryProvider 中添加日志工厂缓存
- 优化 FileStorage 中目录遍历使用 OfType<string>() 类型转换
- 添加 LogContext 支持异步流中的结构化属性传递
2026-02-26 19:57:42 +08:00
GeWuYou
94d3f0ba27
fix(storage): 修复文件存储和存档仓库中的路径处理问题
...
- 在 FileStorage 中过滤掉以点开头的隐藏目录
- 优化 SaveRepository 中的存档存在性检查逻辑
- 移除冗余的 ScopedStorage 创建操作
- 删除过时的 SaveRepository 使用指南文档
2026-02-24 15:20:31 +08:00
GeWuYou
2d4527d066
feat(storage): 添加目录操作功能和存档仓库系统
...
- 在IStorage接口中添加目录操作相关方法:ListDirectoriesAsync、
ListFilesAsync、DirectoryExistsAsync、CreateDirectoryAsync
- 为FileStorage和GodotFileStorage实现目录操作功能
- 添加ScopedStorage的目录操作委托实现
- 新增ISaveRepository接口定义基于槽位的存档系统
- 实现SaveRepository类提供完整的存档管理功能
- 添加SaveConfiguration类用于存档系统配置
2026-02-24 15:20:31 +08:00
GeWuYou
a65d4fa294
refactor(architecture): 重构架构生命周期相关接口命名
...
- 将 IArchitectureLifecycle 重命名为 IArchitectureLifecycleHook
- 将 IArchitecturePhaseAware 重命名为 IArchitecturePhaseListener
- 更新内部生命周期钩子集合类型为 IArchitectureLifecycleHook
- 更新 NotifyPhaseAwareObjects 方法中的类型引用
- 移除 IArchitectureModule 对生命周期接口的继承
- 更新 IModel 和 ISystem 接口中的相位感知类型引用
- 删除废弃的 AbstractModule 抽象类
2026-02-23 12:27:16 +08:00
GeWuYou
3db89ab498
refactor(architecture): 重构架构初始化和销毁机制
...
- 将Init方法统一重命名为Initialize方法以提高一致性
- 修改Architecture类中的组件注册逻辑,优化去重判断
- 更新ECS系统基础类以使用新的初始化接口
- 重构EcsWorld类使用属性自动实现而非私有字段
- 移除过时的EcsUsageExample示例文件
- 更新相关测试类以匹配新的初始化方法命名
- 改进代码注释和文档字符串格式
2026-02-23 12:27:16 +08:00
GeWuYou
d653994ded
fix(ui): 修复UI过渡流水线中的空引用异常
...
- 添加空值检查避免FromUiKey为null时的日志记录错误
- 确保流水线执行时参数安全处理
2026-02-21 08:59:56 +08:00
GeWuYou
608251047c
refactor(scene): 将场景路由异步方法改为await调用
...
- 将SceneRouterBase中的AfterChange方法改为异步方法AfterChangeAsync
- 修改SceneRouterBase中的场景切换流程使用await调用异步方法
- 移除后台线程执行,直接使用同步await调用
- 更新日志记录逻辑,优化调试信息输出
- 简化异常处理流程,统一异步执行模式
2026-02-21 08:59:56 +08:00
GeWuYou
6b51c04deb
feat(scene): 添加环绕场景过渡处理器注册功能
...
- 实现 RegisterAroundHandler 方法用于注册环绕场景过渡处理器
- 实现 UnregisterAroundHandler 方法用于注销环绕场景过渡处理器
- 添加处理器选项配置参数支持
- 提供完整的环绕处理器生命周期管理功能
2026-02-20 22:32:40 +08:00
GeWuYou
e24aacc4bc
refactor(ui): 将页面行为接口中的原始对象属性重命名为视图属性
...
- 将 IUiPageBehavior 接口中的 Original 属性重命名为 View
- 更新 UiRouterBase 中的日志输出,使用 View 属性替代 Original 属性
- 在 CanvasItemUiPageBehaviorBase 中将属性实现从 Original 改为 View
- 相应更新接口文档注释,明确表示返回页面视图实例
2026-02-15 22:07:49 +08:00
GeWuYou
323976677c
refactor(ui): 将View属性重命名为Original以统一接口设计
...
- 将IUiPageBehavior中的View属性重命名为Original
- 更新UiRouterBase中日志输出使用Original属性替代View属性
- 在ISceneBehavior接口中添加Original属性定义
- 在SceneBehaviorBase实现类中添加Original属性实现
- 在CanvasItemUiPageBehaviorBase中将View属性改为Original属性
- 更新相关注释文档说明Original属性用途
2026-02-15 22:07:49 +08:00
GeWuYou
899fbd76c3
feat(godot): 添加 Godot 场景管理和路径扩展功能
...
- 新增 Godot 场景行为基类和具体实现(Node2D、Node3D、Control、通用场景行为)
- 添加场景行为工厂类,支持根据节点类型自动创建合适的行为实例
- 实现 Godot 场景工厂类,用于创建场景实例并集成场景注册表
- 添加 Godot 路径扩展方法,支持判断用户数据路径和资源路径
- 优化数据仓库和设置事件类的初始化方法,添加 XML 文档注释
- 修改场景切换管道中的日志记录逻辑,避免空引用异常
- 更新 Godot 日志记录器和日志工厂的文档注释
- 为设置相关类添加数据对象和类型属性的文档说明
- 移除加载进度处理器类,精简场景切换流程
2026-02-15 16:59:09 +08:00
GeWuYou
628a39b9f8
refactor(scene): 修改场景栈返回类型为IEnumerable
...
- 将Stack属性的返回类型从IReadOnlyList改为IEnumerable
- 更新接口定义中的返回类型保持一致
- 优化内部实现直接返回可枚举集合而不是转换为列表
- 更新文档注释明确说明栈底到栈顶的顺序
2026-02-15 16:59:09 +08:00
GeWuYou
53c2ee4ef3
feat(router): 添加场景和UI路由的Around中间件支持
...
- 在SceneRouterBase和UiRouterBase中集成管道执行Around处理器
- 实现场景过渡管道SceneTransitionPipeline的Around处理器注册和执行功能
- 实现UI过渡管道UiTransitionPipeline的Around处理器注册和执行功能
- 添加ISceneAroundTransitionHandler和IUiAroundTransitionHandler接口定义
- 扩展SceneTransitionPhases和UITransitionPhases枚举支持Around阶段
- 实现Around处理器的优先级排序和中间件链构建机制
- 添加Around处理器的超时控制和异常处理机制
2026-02-15 16:59:09 +08:00
GeWuYou
6f61ff55aa
refactor(scene): 优化场景过渡管道的日志记录器创建
...
- 将硬编码字符串替换为 nameof 操作符以提高类型安全性
- 确保日志记录器名称与类名保持一致
- 提高代码可维护性,避免手动字符串输入错误
2026-02-15 16:59:09 +08:00
GeWuYou
629c0a70a9
refactor(scene): 简化 ISceneRoot 接口并重构场景路由系统
...
- 简化 ISceneRoot 接口,移除路由逻辑和状态管理职责
- 移除路由方法:ReplaceAsync, PushAsync, PopAsync, ClearAsync
- 移除场景加载方法:LoadAsync, UnloadAsync
- 移除状态属性:Current, Stack, IsTransitioning
- 添加容器管理方法:AddScene, RemoveScene
- 重构 SceneRouterBase 实现
- PushInternalAsync:使用 ISceneFactory.Create() 创建场景实例,通过 Root.AddScene() 添加到场景树
- PopInternalAsync:使用 Root.RemoveScene() 从场景树移除场景
- 保持正确的生命周期调用顺序
- 职责分离更清晰
- ISceneRoot:仅负责场景树容器管理
- ISceneFactory:负责场景实例创建
- SceneRouterBase:负责路由逻辑和生命周期协调
- 与 UI 路由系统设计保持一致
2026-02-15 16:59:09 +08:00