GeWuYou
|
3589a0cf2f
|
feat(registry): 添加通用注册表基础设施并重构UI注册功能
- 新增 IKeyValue 接口定义通用键值对数据结构契约
- 创建 IRegistry 接口提供通用注册表功能定义
- 实现 KeyValueRegistryBase 基类提供基于字典的键值对管理
- 添加 GodotSceneRegistry 类管理Godot场景资源
- 重构 GodotUiRegistry 和 GodotUiFactory 使用新的注册表基类
- 移除废弃的 IWritableUiRegistry 接口
- 更新项目文件添加注册表相关目录结构
|
2026-01-18 16:01:10 +08:00 |
|
GeWuYou
|
bbb8d417f6
|
refactor(state): 将状态机相关类重命名以统一命名规范
- 将 ContextAwareStateMachine 重命名为 StateMachineSystem
- 将 ContextAwareStateMachineTests 重命名为 StateMachineSystemTests
- 将 GameStateMachine 重命名为 GameStateMachineSystem
- 创建新的 IStateMachineSystem 接口继承 ISystem 和 IStateMachine
- 移除 ContextAwareStateMachine 中对 system 的引用
- 将 Context 字段改为私有 _context 字段
- 更新所有测试类中的类型引用以匹配新名称
|
2026-01-17 21:13:38 +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
|
ba91b68c64
|
feat(architecture): 修改InstallModule和RegisterLifecycleHook方法返回实例
- InstallModule方法现在返回安装的模块实例
- RegisterLifecycleHook方法现在返回注册的钩子实例
- 为两个方法添加返回值的XML文档注释
- 更新接口定义以匹配新的返回类型
|
2026-01-17 19:44:56 +08:00 |
|
GeWuYou
|
e29b6da9e1
|
refactor(ContextAwareExtensions): 重构命令发送方法并优化代码结构
- 移除重复的SendCommand同步方法实现
- 统一Context变量命名规范,修复大小写不一致问题
- 调整方法顺序并重新组织代码结构
- 完善IAsyncCommand接口的XML文档注释
- 优化异步命令执行的实现逻辑
|
2026-01-17 19:26:13 +08:00 |
|
GeWuYou
|
e7285b3426
|
feat(core): 添加异步命令支持功能
- 在 ArchitectureContext 中新增 SendCommandAsync 方法支持异步命令执行
- 在 CommandBus 中实现 SendAsync 方法处理异步命令的发送和执行
- 在 ContextAwareExtensions 中扩展 SendCommandAsync 扩展方法
- 更新 IArchitectureContext 接口定义异步命令方法契约
- 更新 ICommandBus 接口定义异步命令执行方法
- 新增 AbstractAsyncCommand 抽象类提供异步命令基类实现
- 定义 IAsyncCommand 接口规范异步命令的行为 contract
|
2026-01-17 16:03:00 +08:00 |
|
GeWuYou
|
ce6cb3f8df
|
refactor(state): 修改状态机接口返回类型支持链式调用
- 将Register方法返回类型从void改为IStateMachine
- 将Unregister方法返回类型从void改为IStateMachine
- 在实现类中添加return this语句
- 更新接口定义以匹配新的返回类型
- 实现链式调用功能提升API易用性
|
2026-01-17 13:20:33 +08:00 |
|
GeWuYou
|
00053e67e5
|
refactor(architecture): 修改注册方法返回注册成功的实例
- 修改RegisterSystem方法返回注册的系统实例
- 修改RegisterModel方法返回注册的模型实例
- 修改RegisterUtility方法返回注册的工具实例
- 更新接口定义以匹配新的返回值类型
- 添加泛型约束说明到XML文档注释
|
2026-01-17 13:07:56 +08:00 |
|
GeWuYou
|
47326085e7
|
fix(state): 修改状态机切换方法返回值类型并改进转换失败处理
- 将ChangeTo方法返回值从void改为bool类型
- 添加转换失败时返回false的逻辑
- 在状态转换被拒绝时调用OnTransitionRejected回调
- 更新接口定义以匹配新的返回值类型
- 修改单元测试以验证转换失败时的返回值
- [skip ci]
|
2026-01-17 10:06:16 +08:00 |
|
GeWuYou
|
efa069d2f5
|
refactor(core): 重构核心框架生命周期管理
- 引入标准化的生命周期接口体系 (IInitializable, IDisposable, ILifecycle)
- 将上下文工具类的初始化方法改为公共访问权限
- 为上下文工具类添加销毁功能和相关回调方法
- 更新模型和系统接口以使用新的生命周期接口
- 移除原有的独立初始化和销毁方法声明
- 统一框架组件的生命周期管理机制
|
2026-01-17 08:52:51 +08:00 |
|
GeWuYou
|
b6554c5820
|
refactor(state): 重构状态机实现以支持状态历史记录和线程安全
- 在销毁时添加当前状态退出和所有状态清理逻辑
- 向IStateMachine接口添加状态检查、获取、历史记录等新方法
- 实现线程安全的状态机,添加锁保护并发访问
- 添加状态历史记录功能,支持最大历史数量限制
- 实现GoBack状态回退功能和状态转换验证
- 添加状态切换前后的回调方法
- 在注销状态时从历史记录中移除相关引用
- 添加Unregister方法中的状态转换验证逻辑
|
2026-01-17 08:43:32 +08:00 |
|
GeWuYou
|
c0274074b3
|
feat(state): 添加状态机系统核心功能实现
- 实现了基础状态机StateMachine类,支持状态注册、切换和生命周期管理
- 创建了上下文感知状态机ContextAwareStateMachine,能够感知架构上下文并发送状态变更事件
- 定义了IState和IStateMachine抽象接口,规范状态和状态机的行为契约
- 添加了StateChangedEvent事件类,用于通知状态变更
- 实现了游戏专用状态机GameStateMachine,提供类型安全的状态检查和获取功能
|
2026-01-15 23:04:41 +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 |
|
GwWuYou
|
5d623462ce
|
feat(pool): 添加对象池系统基础架构
- 实现了抽象对象池系统支持基于键值的对象池管理
- 定义了对象池系统接口和可池化对象接口规范
- 提供了获取、释放和清空对象池的核心功能
- 添加了Godot节点专用的对象池系统抽象类
- 实现了对象在池中生命周期管理的回调机制
|
2026-01-11 21:07:23 +08:00 |
|
GwWuYou
|
c3376bf4d5
|
feat(storage): 添加存储系统接口和文件存储实现
- 定义了IStorage接口提供同步和异步的数据存储操作功能
- 实现了基于文件系统的FileStorage类支持读写删除操作
- 添加了ScopedStorage包装器为存储键提供作用域前缀功能
- 创建了ISerializer接口并实现JsonSerializer使用Newtonsoft.Json
- 在项目中引入Newtonsoft.Json包依赖
|
2026-01-11 19:56:31 +08:00 |
|
GwWuYou
|
7843e2a14f
|
Merge branch 'main' of github.com:GeWuYou/GFramework
|
2026-01-11 11:17:41 +08:00 |
|
GwWuYou
|
157b3ce846
|
refactor(events): 将类型事件系统重构为事件总线
- 将TypeEventSystem重命名为EventBus
- 将IEasyEvent接口重命名为IEvent接口
- 将ITypeEventSystem接口重命名为IEventBus接口
- 更新Architecture类中使用TypeEventSystem为EventBus
- 更新ArchitectureContext中依赖注入参数类型
- 将EasyEvent泛型类重命名为Event泛型类
- 更新所有相关类型引用和实现
- 修改接口继承关系以使用新的事件接口命名
|
2026-01-11 11:17:30 +08:00 |
|
GeWuYou
|
4c5e3e01a3
|
docs(core): 更新文档说明架构与平台无关性及新特性
- 更新 Architecture 包文档,强调与 Godot 解耦设计
- 修改 IArchitecture 接口方法参数命名规范
- 添加架构阶段感知接口 IArchitecturePhaseAware 说明
- 补充架构模块接口 IArchitectureModule 和异步初始化接口说明
- 更新架构初始化流程描述,增加模块安装系统介绍
- 修订使用示例,展示依赖注入而非单例访问模式
- 更新 Logging 包文档结构,重新组织核心接口和类说明
- 添加日志工厂提供程序和解析器使用说明
- 修正 Property 包文档中的比较器使用说明
- 更新主 README 强调平台无关性和模块化设计
- 修订架构图和数据流向说明,体现阶段式生命周期管理
- [skip ci]
|
2026-01-10 12:45:12 +08:00 |
|
GwWuYou
|
e000665c67
|
feat(architecture): 添加上下文工具初始化阶段支持
- 在架构中新增 _mContextUtilities 集合存储未初始化的上下文工具
- 实现工具注册时根据初始化状态决定是否立即初始化上下文工具
- 添加 BeforeUtilityInit 和 AfterUtilityInit 两个新的架构阶段
- 更新架构阶段转换配置以支持工具初始化流程
- 在同步和异步架构测试中验证新的初始化阶段序列
- 完善架构初始化流程日志记录和调试信息
|
2026-01-07 21:16:43 +08:00 |
|
GwWuYou
|
f87c9cf421
|
style(csharp): 格式化代码样式和优化代码结构
- 统一调整代码注释的缩进格式,保持文档注释的一致性
- 简化对象初始化语法,移除不必要的参数名称指定
- 优化条件语句结构,移除多余的花括号
- 调整方法实现格式,使用表达式主体语法简化代码
- 标准化代码缩进和空格使用,提升代码可读性
- [skip ci]
|
2026-01-04 22:14:34 +08:00 |
|
GwWuYou
|
18267e7c14
|
feat(command): 为命令和查询类添加输入参数支持
- 重构 AbstractCommand 类,添加泛型参数 TInput 并要求实现 ICommandInput 接口
- 修改 AbstractCommand.Execute 方法,传入输入参数到 OnExecute 方法
- 重构 AbstractCommand<TInput, TResult> 类,支持输入参数和返回结果
- 更新 AbstractQuery 类,添加泛型参数 TInput 和 TResult 并要求实现 IQueryInput 接口
- 创建 ICommandInput 接口作为命令输入的标记接口
- 创建 IQueryInput 接口定义查询输入规范
- 为所有抽象方法添加参数文档注释
|
2026-01-04 22:10:46 +08:00 |
|
GwWuYou
|
49ceb35156
|
feat(architecture): 添加环境配置支持并重构架构初始化
- 引入IEnvironment接口和EnvironmentBase抽象类实现环境管理
- 在Architecture类中添加environment参数和Environment属性
- 修改ArchitectureContext构造函数以接收环境对象
- 添加DefaultEnvironment默认环境实现类
- 更新ContextAwareExtensions扩展方法支持环境获取
- 移除NoopLogger和NoopLoggerFactory无操作日志类
- 重构架构初始化流程以包含环境初始化
- 添加GetEnvironment扩展方法用于获取环境对象
|
2026-01-03 21:44:22 +08:00 |
|
GwWuYou
|
0c9063a5fd
|
refactor(architecture): 移除架构运行时并使用命令查询总线
- 移除了 IArchitectureRuntime 接口和 ArchitectureRuntime 类
- 在 ArchitectureContext 中添加了对 ICommandBus 和 IQueryBus 的依赖注入
- 修改 Architecture 类以使用 CommandBus 和 QueryBus 替代 Runtime
- 更新 ArchitectureServices 以提供 CommandBus 和 QueryBus 服务
- 将组件初始化逻辑从 if-else 改为 switch 语句
- 更新 ContextAwareBase 以使用新的 GetFirstArchitectureContext 方法
- 添加了 CommandBus 和 QueryBus 的实现类
- 修复了 Godot 模块中系统获取的重复代码问题
|
2026-01-03 12:07:32 +08:00 |
|
GwWuYou
|
3729e2ead2
|
feat(architecture): 添加架构初始化失败处理和阶段转换规则
- 将 CurrentPhase 属性改为公共读取私有设置
- 在 Initialize 和 InitializeAsync 方法中添加异常处理机制
- 添加 ArchitectureFailedInitializationEvent 事件类型
- 定义架构阶段转换规则,支持失败初始化状态转换
- 添加 FailedInitialization 枚举值
- 在同步测试架构中添加后注册钩子功能
- 重构测试基类,移除重复的测试方法
- 添加架构初始化失败时的错误日志记录
- 实现初始化失败时自动进入 FailedInitialization 阶段
|
2026-01-02 11:49:12 +08:00 |
|
GwWuYou
|
f620dea073
|
refactor(architecture): 重构日志系统和配置属性结构
- 将日志工厂配置改为日志属性配置,使用LoggerProperties替代ILoggerFactory
- 引入ArchitectureProperties替代ArchitectureOptions,统一架构配置属性
- 修改日志记录器创建方式,使用LoggerFactoryResolver.Provider统一管理
- 重构控制台日志工厂提供程序接口,移除minLevel参数
- 更新架构配置接口和上下文接口中的日志相关属性
- 移除Godot日志生成器相关的源代码生成器和特性
- 更新源代码生成器中的日志创建逻辑,使用新的日志工厂解析器
|
2026-01-01 21:39:08 +08:00 |
|
GwWuYou
|
435c3398fc
|
feat(logging): 添加日志级别配置和工厂提供程序
- 为 ILoggerFactory 接口添加 minLevel 参数支持
- 实现 ConsoleLoggerFactoryProvider 和 GodotLoggerFactoryProvider
- 创建 LoggerFactoryResolver 用于管理日志工厂提供程序
- 为 NoopLoggerFactory 添加日志级别参数
- 在 LogAttribute 中添加 MinLevel 属性
- 更新项目引用以支持日志级别配置功能
|
2026-01-01 20:37:12 +08:00 |
|
GwWuYou
|
42d6590edd
|
refactor(generator): 重构ContextAwareGenerator实现
- 移除IContextAware接口的继承要求
- 添加partial关键字检查验证
- 更新诊断规则描述和错误消息
- 修改代码生成逻辑以自动实现IContextAware接口
- 调整Analyzer发布文档格式和链接地址
|
2026-01-01 10:55:13 +08:00 |
|
GeWuYou
|
95add80c6d
|
refactor(ioc): 修改RegisterPlurality方法的参数类型和实现逻辑
- 将RegisterPlurality方法的泛型参数改为object类型
- 移除类型约束检查逻辑
- 简化接口类型获取逻辑
- 添加容器冻结检查注释
- 添加类型重复注册检查注释
- 移除调试日志输出
|
2025-12-31 13:30:27 +08:00 |
|
GeWuYou
|
2cfa78b91d
|
feat(architecture): 添加架构阶段感知能力支持
- 在AbstractModel和AbstractSystem中添加OnArchitecturePhase虚方法实现
- 修改Architecture类移除IArchitectureLifecycle接口和OnPhase方法
- 更新IModel和ISystem接口继承IArchitecturePhaseAware接口
- 修改AbstractResourceFactorySystem实现IArchitecturePhaseAware接口
- 在测试类TestModel和TestSystem中添加OnArchitecturePhase方法实现
- 在项目文件中添加对生成器相关目录的排除配置
- 将ArchitecturePhase枚举引入到相关文件中
|
2025-12-31 12:42:06 +08:00 |
|
GwWuYou
|
56ff201f94
|
feat(architecture): 为架构服务添加上下文支持并改进事件系统
- 在 ArchitectureServices 中添加 SetContext 和 GetContext 方法
- 为 IArchitectureServices 接口添加 IContextAware 继承
- 在架构初始化过程中设置服务上下文
- 将事件系统的 GetEvent 方法替换为 GetOrAddEvent 方法
- 重构测试类添加测试装置和拆卸逻辑
- 为测试类添加 NonParallelizable 特性确保测试隔离
|
2025-12-29 21:42:52 +08:00 |
|
GwWuYou
|
8130cf7fb0
|
refactor(ioc): 重构依赖注入容器和模型上下文管理
- 将IocContainer的Init方法重命名为OnContextReady并设为protected override
- 重构AbstractModel中的Architecture字段为_context属性并实现IContextAware接口
- 移除GetArchitecture和SetArchitecture方法,添加GetContext和SetContext方法
- 为IModel接口添加IContextAware继承
- 添加TestArchitecture、TestModel和TestSystem测试类
- 创建ArchitectureInitializationTests测试用例验证组件初始化
- 更新项目文件添加NUnit包引用和测试项目配置
- 在解决方案文件中添加测试项目引用
|
2025-12-29 21:14:23 +08:00 |
|
GwWuYou
|
02e2e31e95
|
feat(core): 添加上下文感知扩展方法并完善架构上下文接口
- 新增 ContextAwareExtensions 扩展类,提供便捷的上下文访问方法
- 为 IContextAware 接口添加 GetContext 方法以获取架构上下文
- 更新 ContextAwareBase 基类实现 GetContext 方法
- 改进源代码生成器的 Generate 方法参数结构
- 重构 ContextAwareGenerator 生成器实现接口方法自动实现
- 更新单元测试以验证新生成的上下文感知代码正确性
|
2025-12-29 20:06:25 +08:00 |
|
GwWuYou
|
d73be1e15e
|
refactor(architecture): 调整命名空间结构并添加必要引用
- 将 ArchitecturePhase 枚举移至 enums 命名空间
- 在多个架构相关文件中添加 enums 命名空间引用
- 修复 IController 接口中的错误命名空间声明
- 统一架构组件的命名空间组织结构
|
2025-12-28 15:13:11 +08:00 |
|
GwWuYou
|
6b87c537b2
|
chore(build): 更新项目配置以启用包打包功能
- 移除 GFramework.Core 项目引用中的 PrivateAssets="all" 属性
- 移除 GFramework.Game 项目引用中的 PrivateAssets="all" 属性
- 将 GFramework.Core.Abstractions 项目的 IsPackable 设置替换为 PackageId
- 将 GFramework.Game.Abstractions 项目的 IsPackable 设置替换为 PackageId
- 更新项目注释以反映新的配置变化
|
2025-12-28 14:37:30 +08:00 |
|
GwWuYou
|
1bab3b68da
|
fix(logging): 修复日志模块的命名空间引用问题
- 添加了 GFramework.Core.Abstractions.logging 的 using 语句到 AbstractLogger.cs
- 添加了 System 的 using 语句到 ILogger.cs
- 移除了 GFramework.Core.Abstractions.csproj 中无效的 TargetFramework 空标签
- 解决了日志模块的依赖引用问题
|
2025-12-28 11:49:57 +08:00 |
|
GwWuYou
|
8496bf43bb
|
refactor(logging): 重构日志系统抽象和目标框架配置
- 将 RootLoggerName 常量从接口移至具体实现类 AbstractLogger
- 在 AbstractLogger 中添加 IsEnabledForLevel 方法的完整实现
- 更新 ILogger 接口移除 IsEnabledForLevel 的默认实现
- 统一所有项目的目标框架为 netstandard2.0
- 修正命名空间引用确保日志相关类型正确导入
- 添加详细的 XML 文档注释提升代码可读性
- 优化项目构建属性配置支持更高版本的语言特性
|
2025-12-28 11:45:24 +08:00 |
|
GwWuYou
|
e4a317b743
|
style(generator): 格式化源代码生成器相关文件
- 修复 ILogger.cs 中多余的逗号
- 统一 ContextAwareDiagnostic.cs 中的注释缩进格式
- 统一 ContextAwareGenerator.cs 中的注释缩进格式
- 统一 ContextAwareAttribute.cs 中的注释缩进格式
- 统一 CommonDiagnostics.cs 中的注释缩进格式
- 简化 AttributeClassGeneratorBase.cs 中的 isEnabledByDefault 参数
- 统一 GeneratorTest.cs 中的注释缩进格式
- 优化 ContextAwareGeneratorTests.cs 中的代码结构
- 调整 AnalyzerReleases.Unshipped.md 中的表格格式
|
2025-12-28 10:50:41 +08:00 |
|
GwWuYou
|
6dd79b8e9a
|
chore(build): 更新项目目标框架和构建配置
- 将多个项目的TargetFramework从netstandard2.0更新为net8.0;net9.0;net10.0
- 优化Directory.Build.props中的注释和配置说明
- 添加缺失的using System;引用
- 调整资源加载系统命名空间从GFramework.Godot.system到GFramework.Godot.assets
- 修正ILogger.cs中的异常消息格式
- 移除BindableProperty.cs中多余的可空断言操作符
|
2025-12-28 10:45:07 +08:00 |
|
GwWuYou
|
2dea63e69f
|
refactor(abstractions): 将抽象接口迁移至独立项目并更新引用
- 将架构相关接口从 GFramework.Core 迁移至 GFramework.Core.Abstractions 项目
- 更新项目引用配置,添加对抽象层项目的项目引用
- 修正命名空间引用,使用新的抽象层命名空间
- 调整类型定义,将 List<T> 替换为更通用的 IList<T> 接口
- 修复控制器接口命名空间错误
- 添加必要的 using 语句以支持新的抽象层引用
|
2025-12-28 10:37:18 +08:00 |
|