55 Commits

Author SHA1 Message Date
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
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
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
58291fd85c feat(setting): 添加设置迁移器注册和异步初始化功能
- 新增 RegisterMigration 方法用于注册设置迁移器
- 新增 InitializeAsync 方法支持异步初始化指定类型的设置
- 扩展了 ISettingsModel 接口以支持设置迁移功能
- 添加了对设置类型数组的批量异步初始化支持
2026-01-28 22:36:33 +08:00
GeWuYou
d8188a894a chore(deps): 更新 Meziantou.Polyfill 依赖版本
- 将 GFramework.Core.Abstractions 中的 Meziantou.Polyfill 版本从 1.0.100 更新到 1.0.101
- 将 GFramework.Game.Abstractions 中的 Meziantou.Polyfill 版本从 1.0.100 更新到 1.0.101
- 将 GFramework.Godot.SourceGenerators.Abstractions 中的 Meziantou.Polyfill 版本从 1.0.100 更新到 1.0.101
- 将 GFramework.SourceGenerators.Abstractions 中的 Meziantou.Polyfill 版本从 1.0.100 更新到 1.0.101
- 将 GFramework.SourceGenerators.Common 中的 Meziantou.Polyfill 版本从 1.0.100 更新到 1.0.101
2026-01-28 22:08:57 +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
d250ee1d93 feat(globalusings): 为旧版.NET框架添加IsExternalInit兼容性支持
- 在GlobalUsings.cs中添加条件编译指令支持NETSTANDARD2_0、NETFRAMEWORK和NETCOREAPP2_0
- 添加System.ComponentModel命名空间引用
- 实现IsExternalInit静态类以支持仅初始化setter语法
- 使用EditorBrowsable特性标记为隐藏状态避免IDE显示
- 确保新功能仅在目标框架版本下可用
2026-01-27 23:03:35 +08:00
GeWuYou
31045f305c refactor(core): 调整命名空间结构以优化模块组织
- 将 IRegistry 接口从 GFramework.Game.Abstractions.registry 移至 GFramework.Core.Abstractions.registries
- 移除 KeyValueRegistryBase 中对旧命名空间的引用
- 将 IsExternalInit 类从 System.Runtime.CompilerServices 移至 GFramework.Game.Abstractions.internals
- 更新 IGameSceneRegistry 对新注册表命名空间的引用
- 将音频和图形设置类移至 GFramework.Game.Abstractions.setting.data 子命名空间
- 将资产注册表接口更新为使用新的核心注册表命名空间
- 调整 Godot 模块中的音频总线映射命名空间至 data 子目录
- 更新 Godot 音频和图形设置类以引用正确的设置数据命名空间
2026-01-27 22:58:37 +08:00
GeWuYou
9531cd0883 refactor(setting): 重构设置模块结构并添加版本控制功能
- 将AudioSettings和GraphicsSettings移至data子目录
- 为AudioSettings和GraphicsSettings实现IVersioned接口
- 新增LocalizationSettings类管理本地化配置
- 重命名AudioBusMapSettings为AudioBusMap并移至data目录
- 新增LocalizationMap类定义语言映射关系
- 更新GodotAudioSettings依赖注入参数名称
- 修复GodotAudioSettings重置方法逻辑
- 新增GodotLocalizationSettings类应用本地化配置到Godot引擎
- 添加必要的using语句和版权注释
2026-01-27 22:57:03 +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
50e334b006 chore(deps): 更新项目依赖包版本
- 将 Meziantou.Analyzer 从 2.0.283 更新到 2.0.286
- 将 Godot 相关包从 4.5.1 更新到 4.6.0
- 统一所有项目中的代码分析器版本
- 保持依赖包版本一致性
2026-01-27 19:03:20 +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
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
d85ef83ac1 feat(ui): 添加UI页面行为接口和实现
- 在IUiPageBehavior接口中添加IsModal、BlocksInput和RequiresMask属性定义
- 在CanvasItemUiPageBehavior类中实现模态对话框相关属性
- 添加页面模态状态、输入阻断和遮罩层需求的属性支持
- 为UI页面提供统一的模态行为控制接口
- 实现对下层交互阻断功能的支持
- 完善UI页面行为抽象层的设计规范
2026-01-20 12:40:53 +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
GeWuYou
c9f01f5877 feat(ui): 添加UI层级管理和Godot平台实现
- 在IUiRoot接口中添加Z-order控制和页面层级管理功能
- 实现Godot平台的UiRoot,支持UI页面的添加、移除和层级排序
- 添加UiLayer枚举定义不同UI层级(Page、Overlay、Modal、Toast、Topmost)
- 在IUiRouter中扩展层级管理方法,支持指定层级显示UI
- 实现UiRouterBase中的层级管理逻辑,包括显示、隐藏、清空等操作
- 添加对GodotSharp包的引用以支持Godot平台功能
2026-01-20 09:14:37 +08:00
GeWuYou
760cc71985 feat(ui): 实现UI实例池化管理和生命周期优化
- 添加UI实例管理策略枚举(AlwaysCreate、Reuse、Pooled)
- 在GodotUiFactory中实现缓存池和实例回收机制
- 扩展IUiFactory接口支持预加载、回收和缓存管理功能
- 更新UiRouterBase支持实例策略参数传递
- 重构Pop策略将Hide重命名为Cache以明确语义
- 移除项目文件中的冗余文件夹引用
- 添加日志记录便于调试和监控实例状态
- 实现批量预加载和全量缓存清理功能
- 优化页面替换逻辑支持实例复用和池化管理
2026-01-20 08:32:53 +08:00
GeWuYou
0a924725a5 feat(ui): 更新UiRouterBase以支持基于键值的页面导航
- 添加PeekKey方法获取页面栈顶元素的键值
- 修改Peek方法返回IUiPageBehavior对象而不是类型名称
- 更新IsTop和Contains方法使用键值比较替代类型名比较
- 在UiTransitionEvent中使用PeekKey获取来源UI键值
- 为CanvasItemUiPageBehavior添加key参数和Key属性实现
- 在IUiPageBehavior接口中定义Key属性
- 更新IUiRouter接口定义新的PeekKey和Peek方法
- 添加必要的using引用和异步任务配置
2026-01-19 22:23:36 +08:00
GeWuYou
9c27aa5927 feat(ui): 添加对已存在UI页面的路由推送支持
- 在UiRouterBase中新增Push方法重载,支持直接推送已创建的IUiPageBehavior实例
- 统一页面推送逻辑到DoPushPageInternal方法,同时处理工厂创建和现有页面
- 更新Replace方法使用新的页面推送逻辑
- 优化日志输出,统一使用View.GetType().Name获取页面类型名称
- 为新功能添加完整的XML文档注释
- 在IUiRouter接口中定义新的Push方法重载签名
2026-01-19 22:00:00 +08:00
GeWuYou
859bd1de41 feat(ui): 添加UI路由栈状态查询功能
- 在Push方法中添加栈顶检查,避免重复推送相同UI并记录警告日志
- 移除GetCurrentUiKey私有方法,使用Peek方法替代
- 添加Peek方法获取栈顶UI的类型名称
- 添加IsTop方法判断指定UI是否为栈顶元素
- 添加Contains方法检查UI是否存在于栈中
- 添加Count属性获取栈中元素数量
- 更新IUiRouter接口定义相关方法
- 简化DoClearInternal方法实现逻辑
2026-01-19 21:05:13 +08:00
GeWuYou
c223fbcb5c refactor(storage): 重构存储接口实现
- 将FileStorage类的接口从IStorage改为IFileStorage
- 添加IFileStorage接口定义,继承自IStorage接口
- 将ScopedStorage类的接口从IStorage改为IScopedStorage
- 添加IScopedStorage接口定义,继承自IStorage接口
- 更新相关命名空间引用
- 修改FileStorage类的XML注释文档
2026-01-19 19:08:59 +08:00
GeWuYou
078f5c2102 refactor(asset): 移除抽象资源目录工具并重构注册表接口
- 删除 AbstractAssetCatalogUtility 类及其所有实现逻辑
- 移除 AssetCatalog 相关结构体和接口定义
- 删除 IAssetCatalogUtility 和 IResourceFactoryUtility 接口
- 移除 AbstractResourceFactoryUtility 和 ResourceLoadUtility 实现
- 重命名 IUiRegistry 接口为 IAssetRegistry 并更新泛型参数说明
- 重命名 GodotUiRegistry 为 GodotAssetRegistry 并更新接口引用
- 创建新的 IGodotAssetRegistry 接口用于PackedScene资源管理
- 创建新的 IGodotSceneRegistry 接口并更新 GodotSceneRegistry 实现
- 更新 GodotUiFactory 中的依赖注入从 IUiRegistry 改为 IAssetRegistry
2026-01-18 20:14:33 +08:00
GeWuYou
3589a0cf2f feat(registry): 添加通用注册表基础设施并重构UI注册功能
- 新增 IKeyValue 接口定义通用键值对数据结构契约
- 创建 IRegistry 接口提供通用注册表功能定义
- 实现 KeyValueRegistryBase 基类提供基于字典的键值对管理
- 添加 GodotSceneRegistry 类管理Godot场景资源
- 重构 GodotUiRegistry 和 GodotUiFactory 使用新的注册表基类
- 移除废弃的 IWritableUiRegistry 接口
- 更新项目文件添加注册表相关目录结构
2026-01-18 16:01:10 +08:00
GeWuYou
193e3f2cfa chore(deps): 更新 Meziantou.Analyzer 依赖包版本
- 将 GFramework.Core.Abstractions 项目中的 Meziantou.Analyzer 版本从 2.0.278 更新到 2.0.279
- 将 GFramework.Game.Abstractions 项目中的 Meziantou.Analyzer 版本从 2.0.278 更新到 2.0.279
- 将 GFramework.Godot.SourceGenerators.Abstractions 项目中的 Meziantou.Analyzer 版本从 2.0.278 更新到 2.0.279
- 将 GFramework.SourceGenerators.Abstractions 项目中的 Meziantou.Analyzer 版本从 2.0.278 更新到 2.0.279
- 将 GFramework.SourceGenerators.Common 项目中的 Meziantou.Analyzer 版本从 2.0.278 更新到 2.0.279
2026-01-17 20:10:47 +08:00
GeWuYou
8fa3e0ec79 refactor(serializer): 重构序列化器接口继承实用工具接口
- 为 ISerializer 接口添加 using 语句引用 GFramework.Core.Abstractions.utility
- 修改 ISerializer 接口继承 IUtility 接口以提供基础实用功能
- 保持原有序列化和反序列化方法定义不变
2026-01-17 20:10:22 +08:00
GeWuYou
3137c85449 refactor(setting): 重构设置系统异步操作实现
- 移除原有的重置设置命令相关文件和方法
- 添加异步命令发送接口的默认实现
- 实现设置系统的异步应用功能
- 优化设置应用逻辑并添加泛型支持
- 统一任务完成状态返回方式
2026-01-17 19:33:15 +08:00
GeWuYou
a45bf27c8b refactor(setting): 重构设置重置功能实现
- 移除 SettingsResetEvent 中的旧设置属性,改为仅保存新设置
- 删除 SettingsPersistence 中的重置方法,统一通过命令模式处理
- 在 SettingsSystem 中添加 ResetAsync 方法并集成命令模式
- 为 AudioSettings 和 GraphicsSettings 添加 Reset 方法实现
- 扩展 ISettingsData 接口添加 Reset 方法定义
- 从接口中移除重置相关方法定义
- 在 ISettingsSystem 中添加重置相关的异步方法声明
- 为 AudioBusMapSettings 添加 Reset 方法实现
- 新增 ResetSettingsCommand 和 ResetSettingsInput 实现命令模式
- 添加 SettingsData 抽象基类提供默认的 Reset 实现
- [skip ci]
2026-01-17 16:07:37 +08:00
GeWuYou
267d7cc84d feat(setting): 添加设置系统事件通知和重置功能
- 在SettingsModel中添加事件相关依赖引用
- 在SettingsPersistence中实现设置加载、保存、删除的事件发送机制
- 添加SettingsDeletedEvent用于通知设置删除操作
- 添加SettingsResetEvent和SettingsResetAllEvent支持设置重置功能
- 在SettingsPersistence中新增ResetAsync和ResetAllAsync方法
- 修改TryApply方法为实例方法并添加设置应用过程的事件通知
- 添加SettingsApplyingEvent和SettingsAppliedEvent跟踪设置应用状态
- [skip ci]
2026-01-17 13:43:15 +08:00
GeWuYou
9ae0f63324 feat(setting): 添加设置事件系统和改进设置模型接口
- 新增 SettingsAllLoadedEvent 事件类,用于表示所有设置加载完成
- 新增 SettingsAppliedEvent 事件类,用于表示设置应用完成状态
- 新增 SettingsApplyingEvent 事件类,用于表示设置正在应用过程
- 新增 SettingsBatchChangedEvent 事件类,用于表示批量设置变更
- 新增 SettingsBatchSavedEvent 事件类,用于表示批量设置保存
- 新增 SettingsChangedEvent 通用设置变更事件类
- 新增 SettingsLoadedEvent 和 SettingsSavedEvent 事件类
- 在 SettingsModel 中添加对 GFramework.Core.extensions 的引用
- 更新 RegisterApplicator 方法支持链式调用并改进注释说明
- 新增 ISettingsChangedEvent 接口定义设置变更事件基础结构
- 修改 ISettingsModel 接口使 RegisterApplicator 方法支持链式调用
- 修改 ISettingsPersistence 接口继承 IContextUtility 接口
2026-01-17 13:16:50 +08:00
GeWuYou
442e8e7088 refactor(setting): 重构设置系统以支持数据和应用器分离
- 将SettingsModel内部存储分离为_dataSettings和_applicators两个字典
- 添加IDataSettings接口用于标识纯数据设置
- 修改Get方法为GetData以明确区分数据获取
- 添加RegisterApplicator和GetApplicator方法管理可应用设置
- 更新TryGet方法支持从数据和应用器中查找设置
- 扩展SettingsPersistence支持批量保存和加载所有设置数据
- 将AudioBusMap重命名为AudioBusMapSettings并实现ISettingsData接口
- 修改Godot音频和图形设置适配新的接口变更
- [skip ci]
2026-01-16 23:44:28 +08:00
GeWuYou
516a9e2281 feat(setting): 添加设置持久化功能
- 实现了 SettingsPersistence 类提供设置数据的加载、保存、删除等操作
- 定义了 ISettingsPersistence 接口规范设置持久化行为
- 集成存储服务支持异步读写设置节数据
- 实现类型安全的设置节存取机制
- 提供设置节存在性检查和删除功能
- 采用 "Settings_类型名称" 格式生成存储键名
2026-01-16 23:25:33 +08:00
GeWuYou
ee3a087e35 refactor(ui): 重命名页面行为接口并更新依赖包版本
- 将 IPageBehavior 接口重命名为 IUiPageBehavior 并更新相关引用
- 将 CanvasItemPageBehavior 类重命名为 CanvasItemUiPageBehavior
- 更新 Newtonsoft.Json 从 13.0.3 到 13.0.4
- 更新 NUnit3TestAdapter 从 6.0.1 到 6.1.0
- 更新 Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing 从 1.1.2 到 1.3
- 为多个项目添加 Meziantou.Analyzer 和 Meziantou.Polyfill 包引用
2026-01-15 21:33:51 +08:00
GeWuYou
c931cb7d66 feat(ui): 添加CanvasItem页面行为和Godot UI工厂
- 实现CanvasItemPageBehavior类支持所有继承自CanvasItem的节点
- 添加OnEnter、OnExit、OnPause、OnResume、OnHide、OnShow页面生命周期方法
- 创建GodotUiFactory工厂类用于创建UI页面实例
- 实现Create方法根据UI键创建页面行为实例
- 重命名IUiPageProvider为IUiPageBehaviorProvider接口
- 更新接口方法GetPage返回页面行为实例的描述
2026-01-15 12:33:19 +08:00
GeWuYou
8fd7e2e952 feat(ui): 添加UI页面生命周期和路由管理相关接口及实现
- 定义了IPageBehavior接口,提供UI页面的生命周期方法如OnEnter、OnExit、OnPause、OnResume等
- 创建了IUiFactory接口用于创建UI页面实例,以及IUiPage接口定义页面基本操作
- 添加了IUiPageEnterParam接口用于定义页面跳转参数数据结构
- 实现了IUiRouter接口提供页面栈管理功能,支持Push、Pop、Replace、Clear等操作
- 创建了UI切换处理器相关接口和实现,包括IUiTransitionHandler和UiTransitionPipeline
- 添加了UI切换事件系统,支持BeforeChange和AfterChange两个执行阶段
- 实现了日志记录处理器LoggingTransitionHandler用于记录UI切换信息
- 定义了多种UI切换策略枚举如UiTransitionPolicy、UiTransitionType等
- 提供了UI注册表接口用于管理UI实例的注册和获取功能
2026-01-15 08:44:56 +08:00
GwWuYou
807dbc482e feat(setting): 添加设置管理系统和Godot平台实现
- 实现了SettingsModel用于管理应用程序设置部分
- 创建了SettingsSystem用于应用各种设置配置
- 添加了AudioSettings和GraphicsSettings基础设置类
- 定义了ISettingsModel、ISettingsSystem等核心接口
- 实现了GodotAudioApplier用于应用音频设置到Godot音频系统
- 创建了GodotGraphicsSettings用于管理游戏图形显示设置
- 添加了GodotFileStorage特化文件存储实现
- 实现了Godot路径扩展方法IsUserPath、IsResPath、IsGodotPath
- 添加了AudioBusMap音频总线映射配置类
2026-01-12 21:07:27 +08:00
GwWuYou
c3376bf4d5 feat(storage): 添加存储系统接口和文件存储实现
- 定义了IStorage接口提供同步和异步的数据存储操作功能
- 实现了基于文件系统的FileStorage类支持读写删除操作
- 添加了ScopedStorage包装器为存储键提供作用域前缀功能
- 创建了ISerializer接口并实现JsonSerializer使用Newtonsoft.Json
- 在项目中引入Newtonsoft.Json包依赖
2026-01-11 19:56:31 +08:00
GwWuYou
8c8555985d refactor(assets): 将系统组件重构为工具组件以优化架构设计
- 重命名 AbstractAssetCatalogSystem 为 AbstractAssetCatalogUtility 并继承 AbstractContextUtility
- 重命名 IAssetCatalogSystem 为 IAssetCatalogUtility 并继承 IContextUtility 接口
- 重命名 IResourceFactorySystem 为 IResourceFactoryUtility 并继承 IContextUtility 接口
- 重命名 AbstractResourceFactorySystem 为 AbstractResourceFactoryUtility 并调整依赖注入方式
- 重命名 IResourceLoadSystem 为 IResourceLoadUtility 并继承 IContextUtility 接口
- 重命名 ResourceLoadSystem 为 ResourceLoadUtility 并更新内部日志输出信息
- 移除 AbstractAudioManagerSystem 和 IAudioManagerSystem 相关代码
- 更新所有相关依赖注入和类型引用以匹配新的工具组件架构
2026-01-09 19:31:46 +08:00
GwWuYou
f87c9cf421 style(csharp): 格式化代码样式和优化代码结构
- 统一调整代码注释的缩进格式,保持文档注释的一致性
- 简化对象初始化语法,移除不必要的参数名称指定
- 优化条件语句结构,移除多余的花括号
- 调整方法实现格式,使用表达式主体语法简化代码
- 标准化代码缩进和空格使用,提升代码可读性
- [skip ci]
2026-01-04 22:14:34 +08:00