69 Commits

Author SHA1 Message Date
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
GwWuYou
d7ef63f2c0 refactor(core): 移除过时的架构和音频管理组件
- 删除 AbstractArchitecture 类及其相关实现
- 移除 ArchitectureAnchorNode 锚点节点类
- 清理拖拽功能相关组件类
- 移除 NodeExtensions 扩展方法集
- 删除 UnRegisterExtension 扩展类
- 移除 AbstractAssetCatalogSystem 资源目录系统
- 删除 AbstractAudioManagerSystem 音频管理系统
2025-12-19 22:35:58 +08:00
GwWuYou
f2159065fc refactor(ioc): 重构IoC容器核心数据结构
- 将_instances字典的值类型从List<object>改为HashSet<object>
- 新增_objects集合用于跟踪所有已注册的对象实例
- 修改RegisterSingleton方法实现,添加容器冻结检查
- 优化RegisterInternal方法,避免重复添加相同实例
- 更新GetInstance和GetInstances方法的内部实现逻辑
- 调整Contains和Clear方法以适配新的数据结构
- 新增ContainsInstance方法用于查询具体实例是否存在
v0.0.33
2025-12-18 22:27:26 +08:00
GwWuYou
1d2847ed5f refactor(core): 替换容器注册方法为RegisterPlurality
- 将Architecture中的Register调用替换为RegisterPlurality
- 更新系统、模型和工具的注册逻辑以支持多重注册
- 确保所有组件正确设置架构引用后进行注册
v0.0.32
2025-12-18 21:47:26 +08:00
GwWuYou
87042fb822 feat(core): 重构资源工厂系统以支持键控资源注册与解析
- 引入基于键的资源工厂注册机制,替换原有的类型唯一注册方式
- 更新资源工厂接口,新增 GetFactory 方法支持键名参数
- 修改内部注册表结构,使用 (Type, string) 元组作为工厂字典键
- 在注册场景和资源时传入键名,确保资源可按名称区分
- 增强资源工厂条目信息,添加 ResourceType 和 Key 属性
- 完善工厂解析逻辑,通过类型和键双重条件匹配目标工厂
- 添加对空键值的校验,防止无效键导致运行时错误
- 优化预加载流程,仅执行明确标记为预加载的资源工厂
v0.0.31
2025-12-18 21:19:14 +08:00
GwWuYou
8123683e6e feat(asset): 添加场景和资源注册方法
- 新增 RegisterScene 方法支持通过映射对象注册场景
- 新增 RegisterResource 方法支持通过映射对象注册资源
- 添加对重复键的检查并抛出相应异常
- 实现对无效标识符类型的验证逻辑
v0.0.30
2025-12-18 19:48:40 +08:00
GwWuYou
b67c922b09 feat(core): 引入资源标识符接口和目录映射结构
- 添加 IAssetId 接口定义资源路径访问方式
- 新增 AssetCatalogMapping 结构体用于资源目录键值对映射
- 修改 SceneId 和 ResourceId 结构体实现 IAssetId 接口
- 增强资源管理系统的类型安全性和扩展性
v0.0.29
2025-12-18 19:40:54 +08:00
GeWuYou
1e67b8ae52 feat(core): 更新架构接口返回值可空
- 修改 GetSystem 方法返回值为可空类型
- 修改 GetModel 方法返回值为可空类型
- 修改 GetUtility 方法返回值为可空类型
- 更新对应接口定义以支持可空返回值
v0.0.28
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]
v0.0.27
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方法清空容器
- 完善异常处理和重复注册检查
v0.0.26
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 置于首位
v0.0.25
2025-12-17 21:26:46 +08:00
GwWuYou
77065b6c17 refactor(core): 调整资源注册时机
- 将资源注册逻辑移至架构初始化事件监听器内部
- 确保资源在系统完全初始化后再进行注册
- 优化资源预加载流程的执行顺序
2025-12-17 21:25:03 +08:00
GwWuYou
a444581ec7 feat(core): 添加架构初始化完成事件
- 在架构初始化完成后发送 ArchitectureInitializedEvent 事件
- 新增 ArchitectureEvents 类用于定义架构相关事件
- 修改 AbstractResourceFactorySystem 在架构初始化完成后执行资源预加载
- 移除 AbstractArchitecture 中的多余空行
v0.0.24
2025-12-17 21:07:36 +08:00
GwWuYou
4157ef1384 refactor(core): 简化架构销毁逻辑并优化节点添加方式
- 将匿名 lambda 表达式简化为方法引用
- 使用 CallDeferred 替代直接调用 AddChild 方法以提高稳定性
- 移除不必要的代码嵌套层级,提升可读性
v0.0.23
2025-12-17 20:32:04 +08:00
GwWuYou
eae45625a7 feat(godot): 集成Godot生命周期管理
- 新增ArchitectureAnchorNode类用于监听场景树销毁事件
- 在AbstractArchitecture中实现AttachToGodotLifecycle方法
- 自动绑定架构销毁逻辑到Godot节点退出时机
- 防止架构组件在热重载或多次初始化时重复挂载
- 完善系统注册与销毁流程,确保资源正确释放
v0.0.22
2025-12-17 19:52:25 +08:00
GeWuYou
b7739dd1df feat(audio): 添加多种音频播放类型和音量控制方法
- 新增PlaySfx、PlayVoice和PlayAmbient方法用于播放不同类型音频
- 为音乐、音效、语音和环境音效添加独立的音量设置与获取接口
- 扩展IAudioManagerSystem接口以支持新的音频控制功能
- 在AbstractAudioManagerSystem中实现新增的音频播放逻辑
- 提供GetMusicVolume、GetSoundVolume等获取当前音量的方法
- [no tag]
2025-12-17 13:04:44 +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
GeWuYou
506c26f945 feat(audio): 实现音频管理系统基础功能
- 添加音频管理器抽象基类和接口定义
- 支持背景音乐、音效和3D音效播放
- 实现音量控制和音频淡入淡出效果
- 提供音频播放器池化管理机制
- 支持通过资源ID或路径播放音频
- 实现主音量、音乐音量和音效音量独立控制
- 添加音频播放状态检测功能
- 支持低通滤波器和混响效果设置
- 实现系统资源自动清理机制
2025-12-17 12:49:28 +08:00
GwWuYou
7da12c05ce refactor(system): 将资源注册方法访问级别从private提升为protected
- 修改RegisterScene方法的访问修饰符从private为protected
- 修改RegisterResource方法的访问修饰符从private为protected
- 允许子类继承并重写资源注册逻辑
- 提高系统扩展性和代码复用性
v0.0.21
2025-12-16 21:40:10 +08:00
GwWuYou
e2036975ee feat(godot): 新增Godot核心系统架构与资源管理模块
- 添加抽象架构类AbstractArchitecture,提供模型、系统、工具注册框架
- 实现资源目录系统AbstractAssetCatalogSystem,支持场景和资源的注册与查询
- 创建资源工厂系统AbstractResourceFactorySystem,统一管理资源创建与预加载逻辑
- 定义资源标识符结构体SceneId和ResourceId,用于类型安全的资源引用
- 建立资源加载系统ResourceLoadSystem,提供资源加载、缓存和实例化功能
- 设计工厂注册表Registry,支持资源工厂的注册、解析和批量预加载
- 实现系统间依赖注入机制,确保各组件协同工作
- 添加完整的接口定义IAssetCatalogSystem、IResourceFactorySystem和IResourceLoadSystem
v0.0.20
2025-12-16 21:38:30 +08:00
GwWuYou
7e93d7d089 feat(godot): 添加2D拖拽功能组件
- 新增抽象基类 AbstractDragDrop2DComponentBase,提供基础拖拽信号和属性
- 实现 AbstractDragDropArea2DComponent 类,处理具体拖拽逻辑与输入事件
- 支持拖拽开始、取消、放置等完整交互流程
- 集成 Godot 节点生命周期管理与输入系统
- 添加对拖拽组、Z轴层级及偏移量的控制支持
- 引入 Godot.SourceGenerators 包以支持信号生成
v0.0.19
2025-12-13 22:29:49 +08:00
GwWuYou
ceb7219fa1 chore(deps): 移除冗余的 Godot 源生成器包引用
- 删除了对 Godot.SourceGenerators 包的显式引用
- 保留了 GodotSharpEditor 包引用
- 简化了项目依赖配置
v0.0.18
2025-12-13 22:19:59 +08:00
GwWuYou
94e9f1efd1 refactor(component): 移除抽象拖拽组件基类实现
- 删除 AbstractDragDrop2DComponentBase 类及其相关信号和属性定义
- 删除 AbstractDragDropArea2DComponent 类及其拖拽逻辑实现
- 清理相关输入事件处理和拖拽状态管理代码
- 移除拖拽组管理和Z轴索引控制逻辑
- 删除节点生命周期中的资源清理和事件解绑代码
v0.0.17
2025-12-13 21:52:30 +08:00
GwWuYou
8188ebbe73 refactor(core): 优化架构实例访问方式并增强拖拽组件功能
- 将MArchitecture属性重构为IArchitecture类型的Instance属性
- 移除冗余的Interface属性,统一通过Instance访问架构实例
- 为AbstractDragDrop2DComponentBase组件添加可配置的输入操作名称
- 新增CancelDragInputActionName和SelectInputActionName属性
- 使用属性名替代硬编码字符串来处理拖拽相关输入事件
- 清理代码格式,移除多余空行和调整代码间距
- 更新XML文档注释以反映最新的代码结构和功能说明
v0.0.16
2025-12-13 20:05:13 +08:00
GwWuYou
066ceeaec1 feat(component): 新增2D拖拽基础组件并重构拖拽区域组件
- 添加抽象基类 AbstractDragDrop2DComponentBase 用于实现通用2D拖拽功能
- 重命名 AbstractDragDropComponent 为 AbstractDragDropArea2DComponent
- 将公共拖拽逻辑提取至基类,减少代码重复
- 统一信号定义与属性配置,提升组件一致性
- 优化拖拽状态管理与位置计算逻辑
- 完善节点生命周期中的资源清理机制
v0.0.15
2025-12-12 21:43:35 +08:00
GwWuYou
e5c0964c93 refactor(component): 重命名拖拽组件并优化输入处理逻辑
- 将 DragDropComponent 类重命名为 AbstractDragDropComponent
- 更新类注释以反映抽象性质
- 重构 _Input 方法中的条件判断为 switch 语句
- 在 OnTargetInputEvent 中移除重复的放置逻辑
- 改进代码注释以更准确描述功能
- 保留原有拖拽核心功能与信号机制
v0.0.14
2025-12-12 21:23:40 +08:00
GwWuYou
82713e34f0 refactor(core): 重构架构和命令相关代码结构
- 调整了 Architecture 类中字段和方法的布局,提升可读性
- 优化了命令执行逻辑,明确区分有无返回值的命令处理
- 规范了接口和抽象类的注释格式,增强文档清晰度
- 统一了代码风格,对齐缩进与换行符使用
- 补充了事件系统中泛型事件类的功能实现
- 完善了 README 文档中的条目结构和内容表述
v0.0.13
2025-12-12 21:10:21 +08:00
GwWuYou
6da64eaf01 feat(godot): 扩展Node功能并优化项目配置
- 新增多个Node扩展方法,包括输入处理、节点查找、子节点遍历等功能
- 添加异步添加子节点支持
- 实现节点路径打印和树形结构输出功能
- 增加安全延迟调用机制
- 移除废弃的ControlExtensions.cs文件引用
- 修复命名空间声明问题
- 添加必要的using引用以支持新功能实现
v0.0.12
2025-12-11 19:13:30 +08:00
GwWuYou
d8fd3745c5 refactor(core): 修正命名空间路径错误
- 将命名空间从 `GFramework.Core.Godot.godot.extensions` 更正为 `GFramework.Core.Godot.extensions`
- 移除了重复的 `godot` 路径段,确保命名空间结构清晰一致
v0.0.11
2025-12-11 11:13:46 +08:00
GwWuYou
fc02bbaaa9 chore(project): 更新项目配置文件
- 添加 PackageId 属性以支持 NuGet 包发布
- 保持原有的 Product 和其他项目属性不变
- 确保项目文件结构清晰一致
v0.0.10
2025-12-11 10:28:00 +08:00
GwWuYou
7a34282205 build(publish): 禁用符号包生成以优化发布流程
- 在 GitHub Actions 工作流中禁用符号包生成
- 更新项目文件配置,移除符号包相关设置
- 简化打包命令参数,提高构建效率
v0.0.9
2025-12-11 10:19:34 +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
4a947a40b1 build: 移除构建中的符号包含选项
- 在 GitHub Actions 的 publish 工作流中移除了 `--include-symbols` 参数
- 在项目文件中显式设置 `<DebugType>` 为 portable
- 确保生成的包不包含符号文件,减少包体积
- 保留了便携式调试信息以支持基本调试需求
- 更新了构建配置以匹配新的发布流程
- 验证了测试和发布步骤仍然正常运行
v0.0.8
2025-12-10 12:09:03 +08:00
GwWuYou
496137661d build(publish): 更新发布配置以包含符号和包生成
- 在构建命令中添加 --include-symbols 参数
- 启用 GeneratePackageOnBuild 属性以自动生成 NuGet 包
- 确保发布流程包含调试符号和源代码嵌入
2025-12-10 12:06:23 +08:00
GwWuYou
240f1fd899 refactor(build): 移除打包 Source Generator 的自定义目标
- 删除了用于构建和打包 Source Generator 的 MSBuild 目标
- 简化了项目引用结构
- 移除了与 analyzers 文件夹相关的复制逻辑
- 清理了不必要的项目配置代码
- 优化了 NuGet 包生成流程
- 提高了构建脚本的可维护性
2025-12-10 11:59:43 +08:00
GwWuYou
2b51367042 build(workflow): 更新发布工作流中的构建命令
- 在构建命令中添加 portable 调试类型参数
- 调整构建参数顺序以优化工作流执行
- 保持 Release 配置不变
- 确保构建过程不进行还原操作
- 维持测试命令配置不变
v0.0.7
2025-12-10 11:05:59 +08:00
GwWuYou
cb04fd5b99 build(workflows): 更新打包命令以包含构建步骤
- 移除了 `--no-build` 参数,确保在打包前执行构建
- 保持了版本号传递逻辑不变
- 添加了显示包文件列表的调试命令
2025-12-10 10:57:35 +08:00
GwWuYou
3678e5c4a1 chore(build): 更新源代码生成器路径引用
- 调整了项目文件中源代码生成器的相对路径
- 修正了生成器DLL文件的引用位置
- 确保打包时能正确包含分析器组件
2025-12-10 10:54:13 +08:00
GwWuYou
6046eee7fa chore(build): 调整项目打包配置以支持Source Generator
- 移除不再需要的RepositoryType属性
- 添加IncludeBuildOutput属性以控制构建输出
- 更新项目引用方式,将Source Generator作为Analyzer引入
- 配置打包目标,将Source Generator复制到nupkg的analyzers目录
- 优化项目排除逻辑,确保生成器相关文件不参与主项目编译
- 完善项目文件结构,提高可读性和维护性
2025-12-10 10:41:17 +08:00
GwWuYou
92a171688e chore(build): 调整项目引用配置
- 移除了 Generator 项目的 PrivateAssets 属性设置
- 保持了对 Generator.Attributes 和 Core 项目的引用不变
- 简化了项目间的依赖引用方式
v0.0.6
2025-12-10 10:23:59 +08:00
GwWuYou
65a9afe04f feat(generator): 配置代码生成器项目以支持NuGet包发布
- 添加 IsRoslynAnalyzer 和 GeneratePackageOnBuild 属性
- 更新项目引用配置以支持分析器使用
- 添加 System.Collections.Immutable 包引用
- 配置生成文件输出路径和可见性
- 添加 README.md 文件并配置打包路径
- 设置包读取文档文件引用
v0.0.5
2025-12-10 09:42:09 +08:00
GwWuYou
8058860a80 feat(ci): 发布流程支持 NuGet 和 GitHub Release 双发布
- 合并发布工作流,支持同时推送到 NuGet 和创建 GitHub Release
- 添加对多个 .nupkg 包的批量推送支持
- 自动从 .nuspec 提取版本号用于 Release 描述
- 使用 OIDC 身份验证增强安全性
- 安装 unzip 工具以支持解析 nupkg 内部结构
- 移除独立的 release.yml 文件,统一到 publish.yml 中管理
v0.0.4
2025-12-10 09:13:58 +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