113 Commits

Author SHA1 Message Date
GeWuYou
8913f2fb2c refactor(architecture): 移除泛型参数并删除拖拽组件
- 移除 AbstractArchitecture<T> 中的泛型参数 T
- 移除 AbstractGodotModule<T> 中的泛型参数 T
- 删除 AbstractDragDrop2DComponentBase 组件类
- 删除 AbstractDragDropArea2DComponent 组件类
- 修改 InstallGodotModule 方法的泛型约束
- 更新系统中获取系统实例的方式
- 调整命名空间和依赖引用关系
- 添加新的日志抽象基类 AbstractLogger
- 重构控制台日志记录器继承抽象基类
2025-12-25 13:05:38 +08:00
GeWuYou
bc2b73b19a refactor(generator): 重构日志生成器以使用新属性名称和日志接口
- 将LogAttribute中的Category属性重命名为Name
- 更新构造函数参数名称从category到name
- 添加类和方法的XML文档注释
- 将生成的日志字段类型从ILog改为ILogger
- 更新日志创建方式从Log.CreateLogger到ConsoleLoggerFactory.GetLogger
- 移除项目中的空文件夹引用
- 优化代码结构和注释格式
2025-12-25 08:42:03 +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
9e053d525f style(analyzer): 格式化分析器规则表格
- 将表格格式从简单的分隔符转换为标准markdown表格
- 添加表格头部分隔线以提高可读性
- 确保表格对齐和格式一致性
- [no tag]
2025-12-24 13:14:03 +08:00
GeWuYou
fb61ae3198 refactor(logging): 优化日志生成器属性处理逻辑
- 将 LogAttribute 的 Category 属性改为可设置
- 添加了无参构造函数支持
- 移除了部分无效的诊断检查代码
- 为 LoggerGenerator 添加了可空引用类型支持
- 使用 switch 表达式简化参数解析逻辑
- 优化了命名参数获取方法的实现
v0.0.54
2025-12-24 13:10:44 +08:00
GeWuYou
73c474c37a fix(generator): 修复日志生成器中的诊断和分类逻辑
- 使用预定义的 Diagnostics.MustBePartial 替代手动创建 DiagnosticDescriptor
- 优化构造函数参数检查逻辑,添加对 null 值和无效类型的处理
- 增加三种参数情况的处理:null 值、有效字符串、无效类型
- 添加错误情况下的回退机制,使用默认分类值
- 改进代码注释和错误处理的健壮性
v0.0.53
2025-12-24 12:57:26 +08:00
GeWuYou
d6b97fc0d1 fix(generator): 修复日志生成器的属性匹配和错误处理
- 添加了更精确的属性匹配逻辑,支持别名和命名空间匹配
- 增加了 try-catch 错误处理机制,避免生成器崩溃
- 实现了错误信息输出到生成文件中便于调试
- 优化了命名参数解析逻辑,支持更安全的类型转换
- 添加了字段访问修饰符和静态修饰符的正确处理
- 为生成的字段添加了 XML 文档注释
- 修复了构造函数参数解析的边界情况处理
v0.0.52
2025-12-24 08:46:19 +08:00
GwWuYou
2db8a5d215 refactor(logging): 优化日志生成器的语法分析实现
- 使用 SyntaxProvider 替换原有的 candidates 遍历方式
- 实现更精确的语法节点匹配逻辑
- 添加对 [Log] 和 [Log(...)] 属性的完整支持
- 改进属性名称匹配,支持命名空间前缀
- 重构代码结构以提高性能和准确性
- 保持原有功能逻辑不变
v0.0.51
2025-12-23 23:20:09 +08:00
GwWuYou
ce8dca3631 fix(generator): 修复代码生成器属性路径和匹配逻辑
- 修正了枚举扩展生成器中属性的完整名称路径
- 修正了日志生成器中属性的完整名称路径
- 改进了属性匹配逻辑,添加了空值检查
- 增强了属性类名匹配,支持简短名称匹配
v0.0.50
2025-12-23 23:03:31 +08:00
GwWuYou
1f370dfdc9 refactor(logging): 优化 LoggerGenerator 属性查找逻辑
- 简化 LogAttribute 元数据名称定义
- 移除不必要的注释和步骤编号
- 重构属性筛选逻辑,直接在候选结果中查找匹配属性
- 简化源代码输出注册过程
- 移除冗余的符号合并操作
v0.0.49
2025-12-23 22:54:31 +08:00
GwWuYou
d4b37345db feat(logging): 添加LogAttribute诊断验证功能
- 定义新的诊断描述符GFW_LOG001用于检测LogAttribute无法生成Logger的情况
- 在代码生成过程中验证LogAttribute是否存在及构造参数有效性
- 当LogAttribute缺失或参数无效时报告诊断错误并提供详细信息
- 修复代码格式化问题并优化代码生成逻辑
- 更新AnalyzerReleases.Unshipped.md文档添加新诊断规则
- 改进Generate方法参数传递和错误处理机制
v0.0.48
2025-12-23 22:31:42 +08:00
GwWuYou
0221ed92a6 fix(generator): 修复代码生成器中的属性元数据名称和注释问题
- 修复 LoggerGenerator 中的 AttributeMetadataName 路径错误
- 移除 EnumExtensionsGenerator 中的冗余注释代码
- 解决属性类名匹配的潜在问题
v0.0.47
2025-12-23 22:10:05 +08:00
GwWuYou
74df4a5ca3 docs(generator): 添加日志代码生成器使用文档
- 创建 GFramework 日志代码生成器完整使用指南
- 包含快速开始示例和基本使用方法说明
- 添加特性参数说明和高级配置示例
- 提供在系统、模型、工具类等不同场景的使用示例
- 整理最佳实践和注意事项部分
- 说明性能考虑和与现有日志系统的兼容性
v0.0.46
2025-12-23 21:36:54 +08:00
GwWuYou
7d2fbc32da refactor(logging): 优化日志生成器中的类别表达式处理
- 将类别处理逻辑重构为条件判断,支持用户显式指定字符串或默认使用 nameof
- 添加字符串空值检查,避免空字符串或空白字符的无效输入
- 使用 nameof 表达式作为默认类别值,提高代码可维护性
- 统一类别表达式的字符串格式化处理
2025-12-23 21:30:21 +08:00
GwWuYou
ab5ea42350 feat(logging): 添加日志生成器功能
- 实现了 LoggerGenerator 源代码生成器,为标记 LogAttribute 的类自动生成日志字段
- 添加了 LogAttribute 特性,支持配置日志分类、字段名、访问修饰符和静态属性
- 创建了 Diagnostics 静态类,定义 GFLOG001 诊断规则检查 partial 类声明
- 集成 Microsoft.CodeAnalysis 包,启用增量生成器和扩展分析器规则
- 生成的代码包含命名空间、类名和日志字段的完整实现
2025-12-23 21:04:53 +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
be71076efc feat(GFramework.Godot): 添加 Node 扩展方法 OfType 用于类型转换
新增 OfType 扩展方法,支持将 Node 安全转换为目标类型 T。
该方法会在节点无效或类型不匹配时抛出 InvalidCastException 异常。
同时优化了 SafeCallDeferred 方法的节点有效性检查逻辑。
v0.0.45
2025-12-22 22:31:06 +08:00
GwWuYou
49383660a7 build(GFramework.Game): 移除无用的 input 文件夹引用
移除了 GFramework.Game 和 GFramework.Godot 项目中不再需要的 input 文件夹引用,
以清理项目结构并减少不必要的编译项。
v0.0.44
2025-12-22 20:49:34 +08:00
GwWuYou
84ecd9fdc0 feat(input): 移除旧版输入系统相关接口与实现
删除了游戏框架中原有的整套输入系统接口和实现类,
包括 IGameInputEvent、IInputContext、IInputTranslator、
InputContextStack、InputEvents、InputSystem 等定义。

同时移除了 Godot 模块中与之关联的输入桥接与翻译组件,
如 AbstractGodotInputModule、GodotInputBridge、
GodotInputTranslator 等,为重构或替换新的输入系统做准备。
2025-12-22 20:23:06 +08:00
GwWuYou
cae1223fb5 feat(input): 扩展输入阶段支持
新增对 Capture 阶段输入事件的支持,不再仅限于 Bubble 阶段处理输入。
此更改允许在拖拽等场景中,在 Capture 阶段也能正确处理输入事件,
提升输入处理的灵活性和准确性。
v0.0.43
2025-12-22 19:50:19 +08:00
GeWuYou
e39f32d9a8 fix(input): 修正输入系统事件处理逻辑
- 移除了输入处理中的提前返回语句,确保所有翻译器都能被遍历
- 修正了Godot输入桥接节点名称的格式字符串拼接错误
- 为输入上下文堆栈增加了带参数的Pop方法,支持安全弹出指定上下文
- 新增Peek方法用于获取堆栈顶部的输入上下文而不移除它
- 更新了输入处理方法的注释说明,明确处理流程是从堆栈顶部开始遍历
- 调整了堆栈遍历顺序,确保按照后进先出的原则处理输入事件
v0.0.42
2025-12-22 13:18:12 +08:00
GeWuYou
f8a6155921 refactor(input): 重构Godot输入模块以优化架构集成
- 移除模块附加时的节点创建逻辑
- 将输入系统注入移到Install方法中
- 优化输入转换器注册流程
- 简化模块分离时的资源清理过程
- 统一输入系统的访问方式
- 提高代码可读性和维护性
v0.0.41
2025-12-22 12:43:39 +08:00
GwWuYou
d36f027254 fix(architecture): 修复架构锚点节点名称格式问题
- 修正了架构锚点节点名称中的多余美元符号($)格式错误
- 确保节点名称符合框架命名规范
- 避免潜在的字符串解析异常
v0.0.40
2025-12-21 21:21:49 +08:00
GwWuYou
296c428c40 feat(core): 添加架构阶段的None状态并更新相位转换表
- 在ArchitecturePhase枚举中新增None状态,表示未定义阶段
- 更新PhaseTransitions字典,将None阶段映射到Created阶段
- 为None状态添加XML文档注释说明其用途
- 确保架构相位转换逻辑支持从None到Created的流转
v0.0.39
2025-12-21 21:04:56 +08:00
GwWuYou
8a963e3e5e refactor(asset): 重构资源注册方法命名与注释
- 将 RegisterGameUnit 方法重命名为 RegisterSceneUnit
- 将 RegisterTemplate 方法重命名为 RegisterScenePage
- 更新相关注释以匹配新的方法命名
- 统一参数命名风格,提升代码可读性
- 调整代码格式,增加空行分隔不同功能区域
v0.0.38
2025-12-21 19:22:47 +08:00
GwWuYou
6c2832915f feat(assets): 重构资产目录系统以支持场景单元和场景页面
将原有的 `GameUnit` 和 `Template` 概念重构为更具体的 `SceneUnit` 和 `ScenePage`,
并更新了相关的注册、查询和接口定义。同时修改了Godot模块中对这些资源的引用方式,
确保整体架构的一致性和可维护性。
v0.0.37
2025-12-21 17:36:35 +08:00
GwWuYou
028ece27db ```
refactor(input): 重构Godot输入模块为抽象基类并优化输入处理流程

将 `GodotInputModule` 重命名为 `AbstractGodotInputModule` 并改为抽象类,
以便支持更灵活的输入翻译器注册机制。引入 `GodotInputPhase` 枚举和
`GodotRawInput` 结构体以区分输入处理的不同阶段(捕获与冒泡)。
同时修改 `GodotInputTranslator` 仅在Bubble阶段生成游戏事件,提升输入处理精度。
```
v0.0.36
2025-12-21 16:52:36 +08:00
GwWuYou
4bd9853ec1 feat(input): 引入输入转换器接口及实现
新增 `IInputTranslator` 接口用于解耦原始输入与游戏事件的转换逻辑。
在 `InputSystem` 中增加注册、注销和处理原始输入的方法,支持优先级控制。
重构 `GodotInputBridge`,移除原有硬编码翻译逻辑,改为通过 `HandleRaw` 调用转换器处理。
新增 `GodotInputTranslator` 实现 `IInputTranslator`,负责将 Godot 输入事件翻译为游戏事件。
模块初始化时自动注册该转换器至输入系统。
2025-12-21 16:34:20 +08:00
GwWuYou
339498e629 feat(GFramework.Godot): 引入 Godot 输入模块与架构锚点重构
新增 GodotInputModule 和相关输入事件类型,实现 Godot 输入系统与游戏框架的桥接。
重构架构锚点类名及其引用,统一使用 GFrameworkConstants 中定义的框架名称常量。
添加 AbstractGodotModule 基类以规范模块行为,并完善输入事件记录类定义。
v0.0.35
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
259c4411c7 refactor(architecture): 重构Godot架构扩展机制为模块机制
将原有的IGodotArchitectureExtension接口及其实现统一替换为IGodotModule接口,
以提供更清晰、更具扩展性的模块化支持。同时更新了相关字段和方法命名,
使其语义更加准确,提升代码可读性和维护性。
2025-12-21 13:31:39 +08:00
GwWuYou
86053f2aee feat(GFramework.Godot): 增强架构生命周期管理与扩展支持
- 将 `Architecture.Destroy` 方法标记为 `virtual`,允许子类重写销毁逻辑
- 在 `AbstractArchitecture` 中引入 Godot 生命周期绑定机制,通过锚点节点自动管理架构销毁
- 新增 `IGodotArchitectureExtension` 接口,支持模块化的扩展组件安装与卸载
- 实现 `InstallGodotExtension` 方法,用于异步加载并挂载扩展节点至架构根节点
- 改进 `ArchitectureAnchorNode` 的回调绑定逻辑,增加重复绑定警告提示
- 优化注释内容,提升代码可读性与维护性
2025-12-21 12:55:50 +08:00
GwWuYou
f990f8d2c1 refactor(architecture): 重构架构初始化流程
将原有的 RegisterModels、RegisterSystems 和 RegisterUtilities 方法合并为统一的
InstallModules 抽象方法,由子类实现具体的模块注册逻辑。同时调整初始化顺序,确保
架构能正确绑定到 Godot 生命周期中并管理资源清理。
2025-12-21 12:28:02 +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 输入系统相关实现代码
- 定义输入事件处理流程:上下文堆栈 -> 事件发送机制
v0.0.34
2025-12-20 22:35:07 +08:00
GeWuYou
2db09e72d7 refactor(assets): 重构资产目录系统以支持多种资源类型
- 将 AbstractAssetCatalogSystem 从 GFramework.Godot 移动到 GFramework.Game
- 引入 GameUnitId、TemplateId 和 AssetId 替代原有的 SceneId 和 ResourceId
- 更新注册与查询接口以区分不同类型资源
- 修改相关系统类以适配新的资产标识符类型
- 调整项目引用依赖关系,确保正确的程序集链接
- 扩展资源工厂系统以处理新增的资源类别
- [no tag]
2025-12-20 13:45:49 +08:00
GwWuYou
2baa29aed6 feat(godot): 添加Godot游戏开发相关组件和系统
- 新增架构层支持,包括AbstractArchitecture和ArchitectureAnchorNode
- 实现拖拽功能组件AbstractDragDrop2DComponentBase和AbstractDragDropArea2DComponent
- 添加节点扩展方法类NodeExtensions,提供多种实用的节点操作方法
- 新增资源目录系统AbstractAssetCatalogSystem用于管理游戏资源
- 实现音频管理系统AbstractAudioManagerSystem支持背景音乐和音效播放
- 添加取消注册扩展方法UnRegisterExtension
- 创建GFramework.Game项目模块
- 重构项目结构,聚合核心模块并优化依赖引用
- [no tag]
2025-12-19 22:36:42 +08:00