41 Commits

Author SHA1 Message Date
GwWuYou
0126b69c5c refactor(source-generators): 重构源代码生成器项目结构和配置
- 移除 IArchitectureExtensible 接口定义
- 更新 Godot 源代码生成器项目配置,添加 Nullable 启用和包路径配置
- 添加 Directory.Build.props 构建属性文件到抽象层项目
- 修复命名空间引用错误和添加 using 语句
- 优化源代码生成器项目的打包配置和依赖引用
- 添加文档注释到 LogAttribute 构造函数
- 更新主项目文件中的源代码生成器相关引用路径
- 从解决方案用户设置中移除过时配置文件
- 添加解决方案用户设置到 gitignore 文件
2025-12-27 22:18:26 +08:00
GeWuYou
017870421e style(csharp): 统一代码格式化规范并优化方法实现
- 调整注释格式统一使用4个空格缩进
- 重新排列字段声明顺序提升代码可读性
- 将简单属性访问器改为表达式主体语法
- 优化AudioManagerSystem中音量设置逻辑
- 移除AbstractAssetCatalogSystem中多余空行
- 重构日志类中方法实现为表达式主体形式
- 统一空行分隔符保持代码结构一致性
- 优化方法内部逻辑表达式简化代码
- [no tag]
2025-12-26 13:50:14 +08:00
GeWuYou
7fa2a1e4cb refactor(architecture): 重构日志记录器的初始化和使用方式
- 移除 ArchitectureContext 构造函数中的 ILogger 参数
- 从 IArchitectureContext 接口中移除 Logger 属性
- 更新 AbstractContextUtility 使用 LoggerFactory 创建日志记录器
- 修改 AbstractSystem 使用 LoggerFactory 获取日志记录器
- 调整 Architecture 类中上下文创建时的日志工厂使用
- 更新 IocContainer 初始化时的日志记录器获取方式
- 移除 IIocContainer 接口中的 Init 方法定义
- [no tag]
2025-12-25 13:42:16 +08:00
GeWuYou
543e32eb6a feat(architecture): 为架构上下文添加日志工厂支持
- 在ArchitectureContext构造函数中添加ILoggerFactory参数
- 为IArchitectureContext接口添加LoggerFactory属性
- 在Architecture的Initialize和InitializeAsync方法中传递loggerFactory
- 修改AbstractContextUtility初始化逻辑,使用NoopLoggerFactory创建默认logger
- 新增ILogAware接口用于支持日志记录功能
- [no tag]
2025-12-25 13:31:16 +08:00
GeWuYou
8913f2fb2c refactor(architecture): 移除泛型参数并删除拖拽组件
- 移除 AbstractArchitecture<T> 中的泛型参数 T
- 移除 AbstractGodotModule<T> 中的泛型参数 T
- 删除 AbstractDragDrop2DComponentBase 组件类
- 删除 AbstractDragDropArea2DComponent 组件类
- 修改 InstallGodotModule 方法的泛型约束
- 更新系统中获取系统实例的方式
- 调整命名空间和依赖引用关系
- 添加新的日志抽象基类 AbstractLogger
- 重构控制台日志记录器继承抽象基类
2025-12-25 13:05:38 +08:00
GeWuYou
485b2a11fe feat(utility): 添加抽象上下文工具类和接口
- 创建了 AbstractContextUtility 抽象类,继承 ContextAwareBase 并实现 IContextUtility 接口
- 实现了 IContextUtility 接口,提供上下文相关的通用功能
- 添加了 Init 方法用于初始化上下文工具,包含日志记录功能
- 提供了抽象 OnInit 方法供子类实现具体初始化逻辑
- 定义了 IContextUtility 接口,继承 IUtility 和 IContextAware 接口
- 添加了上下文感知能力的工具功能支持
2025-12-25 08:34:46 +08:00
GeWuYou
270411c66c refactor(architecture): 优化事件系统泛型约束和命名规范
- 为 SendEvent 方法添加 class 约束以确保类型安全
- 统一泛型参数命名从 T 到 TEvent 提高可读性
- 移除不必要的 using 语句简化文件依赖
- 保持事件发送和注册功能的原有行为不变
2025-12-25 08:25:12 +08:00
GwWuYou
5b7eaea142 refactor(architecture): 重构架构基类以支持上下文和运行时模式
- 移除架构中的命令和查询执行方法,将业务操作委托给 ArchitectureRuntime
- 引入 ArchitectureContext 类统一管理组件访问和事件处理
- 创建 ArchitectureRuntime 类作为统一的命令、查询、事件操作入口
- 更新架构生命周期管理,添加对 IArchitectureLifecycle 的支持
- 重命名 DefaultArchitectureConfiguration 为 ArchitectureConfiguration
- 重命名 DefaultArchitectureServices 为 ArchitectureServices
- 删除旧的 DefaultArchitectureContext 类
- 更新查询接口实现,使用 ContextAwareBase 基类
- 修改系统和模型注册逻辑,使用上下文而非架构实例
- 重构事件发送机制,统一使用 TypeEventSystem
- [no tag]
2025-12-24 23:39:34 +08:00
GwWuYou
3e672cf56f refactor(architecture): 重构架构基类以支持依赖注入和服务配置
- 将Architecture类重构为使用构造函数注入IArchitectureConfiguration、IArchitectureServices和IArchitectureContext
- 移除泛型参数和单例模式,改为使用依赖注入容器管理实例
- 添加异步初始化方法InitializeAsync支持异步初始化场景
- 引入ArchitectureOptions类统一管理架构配置选项
- 创建DefaultArchitectureConfiguration和DefaultArchitectureServices默认实现
- 新增IArchitectureContext接口提供统一的上下文访问
- 添加IAsyncInitializable接口支持异步初始化能力
- 简化架构生命周期阶段,移除Created、BeforeInit和AfterInit阶段
- 更新事件系统为ITypeEventSystem接口实现
- 重构命令和控制器接口,统一使用IContextAware替代多个能力接口
- 移除FunctionalArchitectureOptions和相关委托配置方式
- 优化日志记录使用配置中的LoggerFactory实例
2025-12-24 23:09:17 +08:00
GeWuYou
5087db9f21 refactor(logging): 优化日志系统实现
- 为ConsoleLogger中的_writer添加空值检查操作符
- 移除LogConfig中的未使用using语句
- 为LoggerFactory添加方法注释文档
- 调整ConsoleLogger默认构造函数参数
- 优化日志系统的代码结构和可读性
- [no tag]
2025-12-23 13:38:20 +08:00
GeWuYou
64543be0b5 docs(logging): 更新日志系统文档并移除示例代码文件
- 在README.md中添加基本使用示例和详细使用示例
- 添加框架组件日志使用示例代码
- 添加高级配置和异常日志记录示例
- 添加生产环境配置示例
- 添加框架组件中日志使用最佳实践
- 移除LoggingExample.cs示例文件
- 更新日志级别说明和配置建议
2025-12-23 13:35:51 +08:00
GeWuYou
9104202af5 refactor(logging): 重构日志工厂中的组合日志记录器实现
- 将 CompositeLogger 类改为密封类并使用主构造函数
- 移除不必要的 category 参数传递
- 为 CompositeLogger 类添加详细的 XML 文档注释
- 调整代码格式和缩进保持一致性
- 优化 CompositeLogger 构造函数参数结构
2025-12-23 13:32:29 +08:00
GeWuYou
9ed57324c7 refactor(ioc): 优化IocContainer中GetSingle方法的switch表达式
- 将switch表达式重构为传统switch语句
- 添加了对单个实例情况的明确处理
- 统一了错误消息变量命名规范
- 保持了原有的功能逻辑不变
- 改进了代码的可读性和维护性
2025-12-23 13:29:18 +08:00
GeWuYou
0980fd48b5 refactor(logging): 完善日志系统实现和API设计
- 为ConsoleLogger添加完整的XML文档注释
- 实现GodotLogger中缺失的日志级别方法
- 统一Fatal方法签名,支持异常参数传递
- 为NullLogger添加完整的方法注释
- 修复LoggerFactory中的文件路径处理逻辑
- 移除日志示例中对架构阶段的直接访问
- 添加全局日志记录器创建功能
2025-12-23 13:23:42 +08:00
GeWuYou
c1037c7fe2 refactor(architecture): 调整架构阶段访问权限并添加可扩展接口
- 将Architecture.CurrentPhase属性改为私有访问
- 新增IArchitectureExtensible接口提供模块安装和生命周期钩子注册功能
- 实现架构模块安装和生命周期钩子注册的扩展能力
- 优化架构的可扩展性和模块化设计
2025-12-23 13:23:37 +08:00
GeWuYou
32a1734659 feat(logging): 添加日志系统并集成到框架核心组件
- 实现了完整的日志系统,包括ILog接口和ConsoleLogger实现
- 添加了LogConfig配置类和LoggerFactory工厂类
- 在架构、系统、事件、IOC容器等核心组件中集成了日志记录功能
- 添加了NullLogger和CompositeLogger支持
- 创建了详细的日志使用示例和文档
- 实现了日志级别的分类配置和彩色输出功能
2025-12-23 13:08:52 +08:00
GeWuYou
fdaac135f9 feat(logging): 添加日志记录系统的基础实现
- 定义了ILog接口,提供日志记录和级别检查功能
- 实现了GodotLogger类,将日志输出到Godot控制台
- 创建了ILoggerFactory接口用于创建日志记录器实例
- 添加了Log静态类提供全局日志记录功能
- 定义了LogLevel枚举标识不同严重程度的日志级别
- 实现了NullLogger用于禁用日志记录功能
2025-12-23 12:52:07 +08:00
GwWuYou
296c428c40 feat(core): 添加架构阶段的None状态并更新相位转换表
- 在ArchitecturePhase枚举中新增None状态,表示未定义阶段
- 更新PhaseTransitions字典,将None阶段映射到Created阶段
- 为None状态添加XML文档注释说明其用途
- 确保架构相位转换逻辑支持从None到Created的流转
2025-12-21 21:04:56 +08:00
GwWuYou
339498e629 feat(GFramework.Godot): 引入 Godot 输入模块与架构锚点重构
新增 GodotInputModule 和相关输入事件类型,实现 Godot 输入系统与游戏框架的桥接。
重构架构锚点类名及其引用,统一使用 GFrameworkConstants 中定义的框架名称常量。
添加 AbstractGodotModule 基类以规范模块行为,并完善输入事件记录类定义。
2025-12-21 16:13:16 +08:00
GwWuYou
bb403bd454 feat(architecture): 添加架构配置选项支持
新增 `IArchitectureOptions` 接口及其实现类 `FunctionalArchitectureOptions`,
用于控制架构行为,如阶段验证严格性和延迟注册许可。
同时为 `Architecture<T>` 类添加虚属性 `Options`,默认返回功能型选项实例。
修改了阶段转换验证、系统/模型注册时机检查逻辑,以支持通过选项动态控制其行为。
调整部分代码格式以提升可读性。
2025-12-21 14:35:55 +08:00
GwWuYou
86053f2aee feat(GFramework.Godot): 增强架构生命周期管理与扩展支持
- 将 `Architecture.Destroy` 方法标记为 `virtual`,允许子类重写销毁逻辑
- 在 `AbstractArchitecture` 中引入 Godot 生命周期绑定机制,通过锚点节点自动管理架构销毁
- 新增 `IGodotArchitectureExtension` 接口,支持模块化的扩展组件安装与卸载
- 实现 `InstallGodotExtension` 方法,用于异步加载并挂载扩展节点至架构根节点
- 改进 `ArchitectureAnchorNode` 的回调绑定逻辑,增加重复绑定警告提示
- 优化注释内容,提升代码可读性与维护性
2025-12-21 12:55:50 +08:00
GwWuYou
383d934e02 feat(core): 完善架构销毁逻辑并新增生命周期事件
- 优化 `Architecture.Destroy()` 方法,确保系统资源被正确清理
- 添加销毁阶段的状态检查,防止重复销毁
- 引入 `ArchitectureDestroyingEvent` 和 `ArchitectureDestroyedEvent` 事件
- 补充架构事件类的注释说明,提升代码可读性
2025-12-21 11:58:44 +08:00
GwWuYou
8df2b071cf feat(core): 重构架构初始化事件为生命周期就绪事件
将 `ArchitectureInitializedEvent` 重命名为 `ArchitectureLifecycleReadyEvent`,
并在 `AbstractResourceFactorySystem` 中实现 `IArchitectureLifecycle` 接口,
使其在架构进入就绪阶段时注册并预加载资源。
2025-12-21 11:54:27 +08:00
GwWuYou
9a6d41950a feat(Architecture): 重构架构类并增强生命周期管理
- 添加了多个字段和属性的区域划分,提升代码可读性
- 增强了阶段转换控制与验证机制
- 新增模块安装、组件注册与获取、命令执行和查询处理等区域
- 改进了销毁逻辑与生命周期钩子的通知机制
- 对方法进行了重新组织和注释补充,优化结构与维护性
2025-12-21 11:47:01 +08:00
GwWuYou
d1cd0cfb05 feat(architecture): 引入架构阶段管理机制
新增 `ArchitecturePhase` 枚举及生命周期接口,支持在不同阶段执行相应逻辑。
实现基于阶段的状态转换控制与校验,增强架构初始化流程的可控性与扩展性。
添加模块安装接口 `IArchitectureModule` 及相关感知接口,便于插件化集成。
完善系统与模型注册限制,禁止在就绪后注册组件,提升运行时稳定性。
移除旧版补丁注册机制,统一通过生命周期钩子进行扩展。
2025-12-21 11:39:35 +08:00
GwWuYou
564a7e3f24 feat(input): 添加游戏输入事件处理系统
- 新增 IGameInputEvent 接口定义游戏输入事件
- 新增 IInputContext 接口用于处理输入事件的上下文
- 新增 InputContextStack 类管理输入上下文堆栈
- 新增 InputSystem 类负责整体输入事件分发与处理
- 移除旧版 Godot 输入系统相关实现代码
- 定义输入事件处理流程:上下文堆栈 -> 事件发送机制
2025-12-20 22:35:07 +08:00
GwWuYou
f2159065fc refactor(ioc): 重构IoC容器核心数据结构
- 将_instances字典的值类型从List<object>改为HashSet<object>
- 新增_objects集合用于跟踪所有已注册的对象实例
- 修改RegisterSingleton方法实现,添加容器冻结检查
- 优化RegisterInternal方法,避免重复添加相同实例
- 更新GetInstance和GetInstances方法的内部实现逻辑
- 调整Contains和Clear方法以适配新的数据结构
- 新增ContainsInstance方法用于查询具体实例是否存在
2025-12-18 22:27:26 +08:00
GwWuYou
1d2847ed5f refactor(core): 替换容器注册方法为RegisterPlurality
- 将Architecture中的Register调用替换为RegisterPlurality
- 更新系统、模型和工具的注册逻辑以支持多重注册
- 确保所有组件正确设置架构引用后进行注册
2025-12-18 21:47:26 +08:00
GeWuYou
1e67b8ae52 feat(core): 更新架构接口返回值可空
- 修改 GetSystem 方法返回值为可空类型
- 修改 GetModel 方法返回值为可空类型
- 修改 GetUtility 方法返回值为可空类型
- 更新对应接口定义以支持可空返回值
2025-12-18 16:06:51 +08:00
GeWuYou
30bd571bc1 refactor(ioc): 将IocContainer中的_frozen字段标记为volatile
- 修改_frozen字段添加volatile关键字以确保线程安全
- 提高容器状态变更的可见性与一致性
- [no tag]
2025-12-18 10:33:04 +08:00
GeWuYou
d924cba726 feat(ioc): 实现IOC容器线程安全与冻结机制
- 添加读写锁确保多线程环境下的访问安全
- 引入冻结标志位防止容器被意外修改
- 注册和查询方法均增加锁保护逻辑
- 新增 Freeze 方法用于锁定容器状态
- 重构注册内部逻辑并提取公共方法
- 所有公开方法添加线程安全注释说明
- [not tag]
2025-12-18 09:26:13 +08:00
GeWuYou
5270a19e44 refactor(ioc): 简化依赖注入容器中的列表初始化语法
- 使用集合表达式替代显式创建List<object>实例
- 统一代码风格,提高可读性
- 减少不必要的类型声明冗余
- [no tag]
2025-12-18 08:35:09 +08:00
GwWuYou
b86add9789 refactor(ioc): 重构IocContainer以支持多实例和系统注册
- 修改核心存储结构为Dictionary<Type, List<object>>以支持多实例
- 新增RegisterSingleton方法用于注册单例实例
- 新增RegisterPlurality方法用于注册多个接口实现
- 新增RegisterSystem方法用于注册系统实例
- 新增GetAll方法获取指定类型的所有实例
- 新增GetRequired方法获取必需的唯一实例
- 新增GetAllSorted方法支持实例排序
- 新增Contains方法检查类型是否已注册
- 新增Clear方法清空容器
- 完善异常处理和重复注册检查
2025-12-17 22:06:31 +08:00
GwWuYou
7d554cbddf feat(core): 添加对 .NET 10 框架的支持
- 在 GFramework.Core 项目中添加 net10.0 目标框架
- 在 GFramework.Core.Godot 项目中添加 net10.0 目标框架
- 在主 GFramework 项目中添加 net10.0 目标框架
- 调整目标框架顺序,将 net8.0 置于首位
2025-12-17 21:26:46 +08:00
GwWuYou
a444581ec7 feat(core): 添加架构初始化完成事件
- 在架构初始化完成后发送 ArchitectureInitializedEvent 事件
- 新增 ArchitectureEvents 类用于定义架构相关事件
- 修改 AbstractResourceFactorySystem 在架构初始化完成后执行资源预加载
- 移除 AbstractArchitecture 中的多余空行
2025-12-17 21:07:36 +08:00
GwWuYou
eae45625a7 feat(godot): 集成Godot生命周期管理
- 新增ArchitectureAnchorNode类用于监听场景树销毁事件
- 在AbstractArchitecture中实现AttachToGodotLifecycle方法
- 自动绑定架构销毁逻辑到Godot节点退出时机
- 防止架构组件在热重载或多次初始化时重复挂载
- 完善系统注册与销毁流程,确保资源正确释放
2025-12-17 19:52:25 +08:00
GeWuYou
396cc589bc feat(core): 实现系统销毁机制
- 在 AbstractSystem 中添加 OnDestroy 抽象方法和 ISystem.Destroy 接口实现
- 在 Architecture 中增加 Destroy 方法以统一销毁所有已注册系统
- 更新 ISystem 接口注释及功能描述,明确支持系统销毁能力
- 修正 OnRegisterPatch 调用方式,确保架构注册补丁逻辑正确执行
- 完善 AbstractAudioManagerSystem 中的 OnDestroy 方法重写逻辑
- [no tag]
2025-12-17 13:00:33 +08:00
GwWuYou
8188ebbe73 refactor(core): 优化架构实例访问方式并增强拖拽组件功能
- 将MArchitecture属性重构为IArchitecture类型的Instance属性
- 移除冗余的Interface属性,统一通过Instance访问架构实例
- 为AbstractDragDrop2DComponentBase组件添加可配置的输入操作名称
- 新增CancelDragInputActionName和SelectInputActionName属性
- 使用属性名替代硬编码字符串来处理拖拽相关输入事件
- 清理代码格式,移除多余空行和调整代码间距
- 更新XML文档注释以反映最新的代码结构和功能说明
2025-12-13 20:05:13 +08:00
GwWuYou
82713e34f0 refactor(core): 重构架构和命令相关代码结构
- 调整了 Architecture 类中字段和方法的布局,提升可读性
- 优化了命令执行逻辑,明确区分有无返回值的命令处理
- 规范了接口和抽象类的注释格式,增强文档清晰度
- 统一了代码风格,对齐缩进与换行符使用
- 补充了事件系统中泛型事件类的功能实现
- 完善了 README 文档中的条目结构和内容表述
2025-12-12 21:10:21 +08:00
GwWuYou
fdc51e23b7 refactor(godot): 重构Godot相关扩展并迁移至新项目结构
- 将NodeExtensions和UnRegisterExtension迁移至GFramework.Core.Godot项目
- 更新命名空间以匹配新的项目结构
- 为扩展方法参数添加可空注解以提高安全性
- 移除旧的条件编译指令#if GODOT和#endif
- 创建新的GFramework.Core.Godot.csproj项目文件
- 在解决方案中注册新的GFramework.Core.Godot项目
- 更新主项目文件以排除新项目中的文件冲突
- 添加GodotSharpEditor包引用以支持Godot编辑器功能
- 链接新项目的扩展文件到原有路径以保持兼容性
2025-12-11 10:14:00 +08:00
GwWuYou
e204f899ba refactor(core): 重构框架命名空间为GFramework.Core
- 将所有framework命名空间下的类迁移至GFramework.Core命名空间
- 更新所有相关using引用从framework到Core
- 重命名项目文件夹及文件路径以匹配新的命名空间结构
- 在解决方案中添加GFramework.Core项目引用
- 配置项目依赖关系并移除旧的Generator引用冲突
- 创建独立的GFramework.Core.csproj项目文件支持多目标框架
2025-12-10 08:51:17 +08:00