YHH
|
a1e1189f9d
|
feat(fairygui): FairyGUI 完整集成 (#314)
* feat(fairygui): FairyGUI ECS 集成核心架构
实现 FairyGUI 的 ECS 原生集成,完全替代旧 UI 系统:
核心类:
- GObject: UI 对象基类,支持变换、可见性、关联、齿轮
- GComponent: 容器组件,管理子对象和控制器
- GRoot: 根容器,管理焦点、弹窗、输入分发
- GGroup: 组容器,支持水平/垂直布局
抽象层:
- DisplayObject: 显示对象基类
- EventDispatcher: 事件分发
- Timer: 计时器
- Stage: 舞台,管理输入和缩放
布局系统:
- Relations: 约束关联管理
- RelationItem: 24 种关联类型
基础设施:
- Controller: 状态控制器
- Transition: 过渡动画
- ScrollPane: 滚动面板
- UIPackage: 包管理
- ByteBuffer: 二进制解析
* refactor(ui): 删除旧 UI 系统,使用 FairyGUI 替代
* feat(fairygui): 实现 UI 控件
- 添加显示类:Image、TextField、Graph
- 添加基础控件:GImage、GTextField、GGraph
- 添加交互控件:GButton、GProgressBar、GSlider
- 更新 IRenderCollector 支持 Graph 渲染
- 扩展 Controller 添加 selectedPageId
- 添加 STATE_CHANGED 事件类型
* feat(fairygui): 现代化架构重构
- 增强 EventDispatcher 支持类型安全、优先级和传播控制
- 添加 PropertyBinding 响应式属性绑定系统
- 添加 ServiceContainer 依赖注入容器
- 添加 UIConfig 全局配置系统
- 添加 UIObjectFactory 对象工厂
- 实现 RenderBridge 渲染桥接层
- 实现 Canvas2DBackend 作为默认渲染后端
- 扩展 IRenderCollector 支持更多图元类型
* feat(fairygui): 九宫格渲染和资源加载修复
- 修复 FGUIUpdateSystem 支持路径和 GUID 两种加载方式
- 修复 GTextInput 同时设置 _displayObject 和 _textField
- 实现九宫格渲染展开为 9 个子图元
- 添加 sourceWidth/sourceHeight 用于九宫格计算
- 添加 DOMTextRenderer 文本渲染层(临时方案)
* fix(fairygui): 修复 GGraph 颜色读取
* feat(fairygui): 虚拟节点 Inspector 和文本渲染支持
* fix(fairygui): 编辑器状态刷新和遗留引用修复
- 修复切换 FGUI 包后组件列表未刷新问题
- 修复切换组件后 viewport 未清理旧内容问题
- 修复虚拟节点在包加载后未刷新问题
- 重构为事件驱动架构,移除轮询机制
- 修复 @esengine/ui 遗留引用,统一使用 @esengine/fairygui
* fix: 移除 tsconfig 中的 @esengine/ui 引用
|
2025-12-22 10:52:54 +08:00 |
|
YHH
|
ed8f6e283b
|
feat: 纹理路径稳定 ID 与架构改进 (#305)
* feat(asset-system): 实现路径稳定 ID 生成器
使用 FNV-1a hash 算法为纹理生成稳定的运行时 ID:
- 新增 _pathIdCache 静态缓存,跨 Play/Stop 循环保持稳定
- 新增 getStableIdForPath() 方法,相同路径永远返回相同 ID
- 修改 loadTextureForComponent/loadTextureByGuid 使用稳定 ID
- clearTextureMappings() 不再清除 _pathIdCache
这解决了 Play/Stop 后纹理 ID 失效的根本问题。
* fix(runtime-core): 移除 Play/Stop 循环中的 clearTextureMappings 调用
使用路径稳定 ID 后,不再需要在快照保存/恢复时清除纹理缓存:
- saveSceneSnapshot() 移除 clearTextureMappings() 调用
- restoreSceneSnapshot() 移除 clearTextureMappings() 调用
- 组件保存的 textureId 在 Play/Stop 后仍然有效
* fix(editor-core): 修复场景切换时的资源泄漏
在 openScene() 加载新场景前先卸载旧场景资源:
- 调用 sceneResourceManager.unloadSceneResources() 释放旧资源
- 使用引用计数机制,仅卸载不再被引用的资源
- 路径稳定 ID 缓存不受影响,保持 ID 稳定性
* fix(runtime-core): 修复 PluginManager 组件注册类型错误
将 ComponentRegistry 类改为 GlobalComponentRegistry 实例:
- registerComponents() 期望 IComponentRegistry 接口实例
- GlobalComponentRegistry 是 ComponentRegistry 的全局实例
* refactor(core): 提取 IComponentRegistry 接口
将组件注册表抽象为接口,支持场景级组件注册:
- 新增 IComponentRegistry 接口定义
- Scene 持有独立的 componentRegistry 实例
- 支持从 GlobalComponentRegistry 克隆
- 各系统支持传入自定义注册表
* refactor(engine-core): 改进插件服务注册机制
- 更新 IComponentRegistry 类型引用
- 优化 PluginServiceRegistry 服务管理
* refactor(modules): 适配新的组件注册接口
更新各模块 RuntimeModule 使用 IComponentRegistry 接口:
- audio, behavior-tree, camera
- sprite, tilemap, world-streaming
* fix(physics-rapier2d): 修复物理插件组件注册
- PhysicsEditorPlugin 添加 runtimeModule 引用
- 适配 IComponentRegistry 接口
- 修复物理组件在场景加载时未注册的问题
* feat(editor-core): 添加 UserCodeService 就绪信号机制
- 新增 waitForReady()/signalReady() API
- 支持等待用户脚本编译完成
- 解决场景加载时组件未注册的时序问题
* fix(editor-app): 在编译完成后调用 signalReady()
确保用户脚本编译完成后发出就绪信号:
- 编译成功后调用 userCodeService.signalReady()
- 编译失败也要发出信号,避免阻塞场景加载
* feat(editor-core): 改进编辑器核心服务
- EntityStoreService 添加调试日志
- AssetRegistryService 优化资产注册
- PluginManager 改进插件管理
- IFileAPI 添加 getFileMtime 接口
* feat(engine): 改进 Rust 纹理管理器
- 支持任意 ID 的纹理加载(非递增)
- 添加纹理状态追踪 API
- 优化纹理缓存清理机制
- 更新 TypeScript 绑定
* feat(ui): 添加场景切换和文本闪烁组件
新增组件:
- SceneLoadTriggerComponent: 场景切换触发器
- TextBlinkComponent: 文本闪烁效果
新增系统:
- SceneLoadTriggerSystem: 处理场景切换逻辑
- TextBlinkSystem: 处理文本闪烁动画
其他改进:
- UIRuntimeModule 适配新组件注册接口
- UI 渲染系统优化
* feat(editor-app): 添加外部文件修改检测
- 新增 ExternalModificationDialog 组件
- TauriFileAPI 支持 getFileMtime
- 场景文件被外部修改时提示用户
* feat(editor-app): 添加渲染调试面板
- 新增 RenderDebugService 和调试面板 UI
- App/ContentBrowser 添加调试日志
- TitleBar/Viewport 优化
- DialogManager 改进
* refactor(editor-app): 编辑器服务和组件优化
- EngineService 改进引擎集成
- EditorEngineSync 同步优化
- AssetFileInspector 改进
- VectorFieldEditors 优化
- InstantiatePrefabCommand 改进
* feat(i18n): 更新国际化翻译
- 添加新功能相关翻译
- 更新中文、英文、西班牙文
* feat(tauri): 添加文件修改时间查询命令
- 新增 get_file_mtime 命令
- 支持检测文件外部修改
* refactor(particle): 粒子系统改进
- 适配新的组件注册接口
- ParticleSystem 优化
- 添加单元测试
* refactor(platform): 平台适配层优化
- BrowserRuntime 改进
- 新增 RuntimeSceneManager 服务
- 导出优化
* refactor(asset-system-editor): 资产元数据改进
- AssetMetaFile 优化
- 导出调整
* fix(asset-system): 移除未使用的 TextureLoader 导入
* fix(tests): 更新测试以使用 GlobalComponentRegistry 实例
修复多个测试文件以适配 ComponentRegistry 从静态类变为实例类的变更:
- ComponentStorage.test.ts: 使用 GlobalComponentRegistry.reset()
- EntitySerializer.test.ts: 使用 GlobalComponentRegistry 实例
- IncrementalSerialization.test.ts: 使用 GlobalComponentRegistry 实例
- SceneSerializer.test.ts: 使用 GlobalComponentRegistry 实例
- ComponentRegistry.extended.test.ts: 使用 GlobalComponentRegistry,同时注册到 scene.componentRegistry
- SystemTypes.test.ts: 在 Scene 创建前注册组件
- QuerySystem.test.ts: mockScene 添加 componentRegistry
|
2025-12-16 12:46:14 +08:00 |
|
YHH
|
beaa1d09de
|
feat: 预制体系统与架构改进 (#303)
* feat(prefab): 实现预制体系统和编辑器 UX 改进
## 预制体系统
- 新增 PrefabSerializer: 预制体序列化/反序列化
- 新增 PrefabInstanceComponent: 追踪预制体实例来源和修改
- 新增 PrefabService: 预制体核心服务
- 新增 PrefabLoader: 预制体资产加载器
- 新增预制体命令: Create/Instantiate/Apply/Revert/BreakLink
## 预制体编辑模式
- 支持双击 .prefab 文件进入编辑模式
- 预制体编辑模式工具栏 (保存/退出)
- 预制体实例指示器和操作菜单
## 编辑器 UX 改进
- SceneHierarchy 快捷键: F2 重命名, Ctrl+D 复制, ↑↓ 导航
- 支持双击实体名称内联编辑
- 删除实体时显示子节点数量警告
- 右键菜单添加重命名/复制选项及快捷键提示
- 布局持久化和重置功能
## Bug 修复
- 修复 editor-runtime 组件类重复导致的 TransformComponent 不识别问题
- 修复 .prefab-name 样式覆盖导致预制体工具栏文字不可见
- 修复 Inspector 资源字段高度不正确问题
* feat(editor): 改进编辑器 UX 交互体验
- ContentBrowser: 加载动画 spinner、搜索高亮、改进空状态设计
- SceneHierarchy: 选中项自动滚动到视图、搜索清除按钮
- PropertyInspector: 输入框本地状态管理、Enter/Escape 键处理
- EntityInspector: 组件折叠状态持久化、属性搜索清除按钮
- Viewport: 变换操作实时数值显示
- 国际化: 添加相关文本 (en/zh)
* fix(build): 修复 Web 构建资产加载和编辑器 UX 改进
构建系统修复:
- 修复 asset-catalog.json 字段名不匹配 (entries vs assets)
- 修复 BrowserFileSystemService 支持两种目录格式
- 修复 bundle 策略检测逻辑 (空对象判断)
- 修复 module.json 中 assetExtensions 声明和类型推断
行为树修复:
- 修复 BehaviorTreeExecutionSystem 使用 loadAsset 替代 loadAssetByPath
- 修复 BehaviorTreeAssetType 常量与 module.json 类型名一致 (behavior-tree)
编辑器 UX 改进:
- 构建完成对话框添加"打开文件夹"按钮
- 构建完成对话框样式优化 (圆形图标背景、按钮布局)
- SceneHierarchy 响应式布局 (窄窗口自动隐藏 Type 列)
- SceneHierarchy 隐藏滚动条
错误追踪:
- 添加全局错误处理器写入日志文件 (%TEMP%/esengine-editor-crash.log)
- 添加 append_to_log Tauri 命令
* feat(render): 修复 UI 渲染和点击特效系统
## UI 渲染修复
- 修复 GUID 验证 bug,使用统一的 isValidGUID() 函数
- 修复 UI 渲染顺序随机问题,Rust 端使用 IndexMap 替代 HashMap
- Web 运行时添加 assetPathResolver 支持 GUID 解析
- UIInteractableComponent.blockEvents 默认值改为 false
## 点击特效系统
- 新增 ClickFxComponent 和 ClickFxSystem
- 支持在点击位置播放粒子效果
- 支持多种触发模式和粒子轮换
## Camera 系统重构
- CameraSystem 从 ecs-engine-bindgen 移至 camera 包
- 新增 CameraManager 统一管理相机
## 编辑器改进
- 改进属性面板 UI 交互
- 粒子编辑器面板优化
- Transform 命令系统
* feat(render): 实现 Sorting Layer 系统和 Overlay 渲染层
- 新增 SortingLayerManager 管理排序层级 (Background, Default, Foreground, UI, Overlay)
- 实现 ISortable 接口,统一 Sprite、UI、Particle 的排序属性
- 修复粒子 Overlay 层被 UI 遮挡问题:添加独立的 Overlay Pass 在 UI 之后渲染
- 更新粒子资产格式:从 sortingOrder 改为 sortingLayer + orderInLayer
- 更新粒子编辑器面板支持新的排序属性
- 优化 UI 渲染系统使用新的排序层级
* feat(ci): 集成 SignPath 代码签名服务
- 添加 SignPath 自动签名工作流(Windows)
- 配置 release-editor.yml 支持代码签名
- 将构建改为草稿模式,等待签名完成后发布
- 添加证书文件到 .gitignore 防止泄露
* fix(asset): 修复 Web 构建资产路径解析和全局单例移除
## 资产路径修复
- 修复 Tauri 本地服务器 `/asset?path=...` 路径解析,正确与 root 目录连接
- BrowserPathResolver 支持两种模式:
- 'proxy': 使用 /asset?path=... 格式(编辑器 Run in Browser)
- 'direct': 使用直接路径 /assets/path.png(独立 Web 构建)
- BrowserRuntime 使用 'direct' 模式,无需 Tauri 代理
## 架构改进 - 移除全局单例
- 移除 globalAssetManager 导出,改用 AssetManagerToken 依赖注入
- 移除 globalPathResolver 导出,改用 PathResolutionService
- 移除 globalPathResolutionService 导出
- ParticleUpdateSystem/ClickFxSystem 通过 setAssetManager() 注入依赖
- EngineService 使用 new AssetManager() 替代全局实例
## 新增服务
- PathResolutionService: 统一路径解析接口
- RuntimeModeService: 运行时模式查询服务
- SerializationContext: EntityRef 序列化上下文
## 其他改进
- 完善 ServiceToken 注释说明本地定义的意图
- 导出 BrowserPathResolveMode 类型
* fix(build): 添加 world-streaming composite 设置修复类型检查
* fix(build): 移除 world-streaming 引用避免 composite 冲突
* fix(build): 将 const enum 改为 enum 兼容 isolatedModules
* fix(build): 添加缺失的 IAssetManager 导入
|
2025-12-13 19:44:08 +08:00 |
|
yhh
|
ad96edfad0
|
fix: 恢复 @esengine/ecs-framework 包名
上一个提交错误地将 npm 包名也改了,这里恢复正确的包名。
只更新 GitHub 仓库 URL,不改变 npm 包名。
|
2025-12-08 21:26:35 +08:00 |
|
yhh
|
240b165970
|
chore: 更新仓库 URL (ecs-framework → esengine)
仓库已从 esengine/ecs-framework 重命名为 esengine/esengine
更新所有引用旧 URL 的文件
|
2025-12-08 21:23:37 +08:00 |
|
YHH
|
c3b7250f85
|
refactor(plugin): 重构插件系统架构,统一类型导入路径 (#296)
* refactor(plugin): 重构插件系统架构,统一类型导入路径
## 主要更改
### 新增 @esengine/plugin-types 包
- 提供打破循环依赖的最小类型定义
- 包含 ServiceToken, createServiceToken, PluginServiceRegistry, IEditorModuleBase
### engine-core 类型统一
- IPlugin<T> 泛型参数改为 T = unknown
- 所有运行时类型(IRuntimeModule, ModuleManifest, SystemContext)在此定义
- 新增 PluginServiceRegistry.ts 导出服务令牌相关类型
### editor-core 类型优化
- 重命名 IPluginLoader.ts 为 EditorModule.ts
- 新增 IEditorPlugin = IPlugin<IEditorModuleLoader> 类型别名
- 移除弃用别名 IPluginLoader, IRuntimeModuleLoader
### 编辑器插件更新
- 所有 9 个编辑器插件使用 IEditorPlugin 类型
- 统一从 editor-core 导入编辑器类型
### 服务令牌规范
- 各模块在 tokens.ts 中定义自己的服务接口和令牌
- 遵循"谁定义接口,谁导出 Token"原则
## 导入规范
| 场景 | 导入来源 |
|------|---------|
| 运行时模块 | @esengine/engine-core |
| 编辑器插件 | @esengine/editor-core |
| 服务令牌 | @esengine/engine-core |
* refactor(plugin): 完善服务令牌规范,统一运行时模块
## 更改内容
### 运行时模块优化
- particle: 使用 PluginServiceRegistry 获取依赖服务
- physics-rapier2d: 通过服务令牌注册/获取物理查询接口
- tilemap: 使用服务令牌获取物理系统依赖
- sprite: 导出服务令牌
- ui: 导出服务令牌
- behavior-tree: 使用服务令牌系统
### 资产系统增强
- IAssetManager 接口扩展
- 加载器使用服务令牌获取依赖
### 运行时核心
- GameRuntime 使用 PluginServiceRegistry
- 导出服务令牌相关类型
### 编辑器服务
- EngineService 适配新的服务令牌系统
- AssetRegistryService 优化
* fix: 修复 editor-app 和 behavior-tree-editor 中的类型引用
- editor-app/PluginLoader.ts: 使用 IPlugin 替代 IPluginLoader
- behavior-tree-editor: 使用 IEditorPlugin 替代 IPluginLoader
* fix(ui): 添加缺失的 ecs-engine-bindgen 依赖
UIRuntimeModule 使用 EngineBridgeToken,需要声明对 ecs-engine-bindgen 的依赖
* fix(type): 解决 ServiceToken 跨包类型兼容性问题
- 在 engine-core 中直接定义 ServiceToken 和 PluginServiceRegistry
而不是从 plugin-types 重新导出,确保 tsup 生成的类型声明
以 engine-core 作为类型来源
- 移除 RuntimeResolver.ts 中的硬编码模块 ID 检查,
改用 module.json 中的 name 配置
- 修复 pnpm-lock.yaml 中的依赖记录
* refactor(arch): 改进架构设计,移除硬编码
- 统一类型导出:editor-core 从 engine-core 导入 IEditorModuleBase
- RuntimeResolver: 将硬编码路径改为配置常量和搜索路径列表
- 添加跨平台安装路径支持(Windows/macOS/Linux)
- 使用 ENGINE_WASM_CONFIG 配置引擎 WASM 文件信息
- IBundlePackOptions 添加 preloadBundles 配置项
* fix(particle): 添加缺失的 ecs-engine-bindgen 依赖
ParticleRuntimeModule 导入了 @esengine/ecs-engine-bindgen 的 tokens,
但 package.json 中未声明该依赖,导致 CI 构建失败。
* fix(physics-rapier2d): 移除不存在的 PhysicsSystemContext 导出
PhysicsRuntimeModule 中不存在该类型,导致 type-check 失败
|
2025-12-08 21:10:57 +08:00 |
|
YHH
|
63f006ab62
|
feat: 添加跨平台运行时、资产系统和UI适配功能 (#256)
* feat(platform-common): 添加WASM加载器和环境检测API
* feat(rapier2d): 新增Rapier2D WASM绑定包
* feat(physics-rapier2d): 添加跨平台WASM加载器
* feat(asset-system): 添加运行时资产目录和bundle格式
* feat(asset-system-editor): 新增编辑器资产管理包
* feat(editor-core): 添加构建系统和模块管理
* feat(editor-app): 重构浏览器预览使用import maps
* feat(platform-web): 添加BrowserRuntime和资产读取
* feat(engine): 添加材质系统和着色器管理
* feat(material): 新增材质系统和着色器编辑器
* feat(tilemap): 增强tilemap编辑器和动画系统
* feat(modules): 添加module.json配置
* feat(core): 添加module.json和类型定义更新
* chore: 更新依赖和构建配置
* refactor(plugins): 更新插件模板使用ModuleManifest
* chore: 添加第三方依赖库
* chore: 移除BehaviourTree-ai和ecs-astar子模块
* docs: 更新README和文档主题样式
* fix: 修复Rust文档测试和添加rapier2d WASM绑定
* fix(tilemap-editor): 修复画布高DPI屏幕分辨率适配问题
* feat(ui): 添加UI屏幕适配系统(CanvasScaler/SafeArea)
* fix(ecs-engine-bindgen): 添加缺失的ecs-framework-math依赖
* fix: 添加缺失的包依赖修复CI构建
* fix: 修复CodeQL检测到的代码问题
* fix: 修复构建错误和缺失依赖
* fix: 修复类型检查错误
* fix(material-system): 修复tsconfig配置支持TypeScript项目引用
* fix(editor-core): 修复Rollup构建配置添加tauri external
* fix: 修复CodeQL检测到的代码问题
* fix: 修复CodeQL检测到的代码问题
|
2025-12-03 22:15:22 +08:00 |
|
YHH
|
b42a7b4e43
|
Feature/editor optimization (#251)
* refactor: 编辑器/运行时架构拆分与构建系统升级
* feat(core): 层级系统重构与UI变换矩阵修复
* refactor: 移除 ecs-components 聚合包并修复跨包组件查找问题
* fix(physics): 修复跨包组件类引用问题
* feat: 统一运行时架构与浏览器运行支持
* feat(asset): 实现浏览器运行时资产加载系统
* fix: 修复文档、CodeQL安全问题和CI类型检查错误
* fix: 修复文档、CodeQL安全问题和CI类型检查错误
* fix: 修复文档、CodeQL安全问题、CI类型检查和测试错误
* test: 补齐核心模块测试用例,修复CI构建配置
* fix: 修复测试用例中的类型错误和断言问题
* fix: 修复 turbo build:npm 任务的依赖顺序问题
* fix: 修复 CI 构建错误并优化构建性能
|
2025-12-01 22:28:51 +08:00 |
|
YHH
|
359886c72f
|
Feature/physics and tilemap enhancement (#247)
* feat(behavior-tree,tilemap): 修复编辑器连线缩放问题并增强插件系统
* feat(node-editor,blueprint): 新增通用节点编辑器和蓝图可视化脚本系统
* feat(editor,tilemap): 优化编辑器UI样式和Tilemap编辑器功能
* fix: 修复CodeQL安全警告和CI类型检查错误
* fix: 修复CodeQL安全警告和CI类型检查错误
* fix: 修复CodeQL安全警告和CI类型检查错误
|
2025-11-29 23:00:48 +08:00 |
|
YHH
|
673f5e5855
|
feat(physics): 集成 Rapier2D 物理引擎并修复预览重置问题 (#244)
* feat(physics): 集成 Rapier2D 物理引擎并修复预览重置问题
* fix: 修复 CI 流程并清理代码
|
2025-11-28 10:32:28 +08:00 |
|
YHH
|
107439d70c
|
Feature/runtime cdn and plugin loader (#240)
* feat(ui): 完善 UI 布局系统和编辑器可视化工具
* refactor: 移除 ModuleRegistry,统一使用 PluginManager 插件系统
* fix: 修复 CodeQL 警告并提升测试覆盖率
* refactor: 分离运行时入口点,解决 runtime bundle 包含 React 的问题
* fix(ci): 添加 editor-core 和 editor-runtime 到 CI 依赖构建步骤
* docs: 完善 ServiceContainer 文档,新增 Symbol.for 模式和 @InjectProperty 说明
* fix(ci): 修复 type-check 失败问题
* fix(ci): 修复类型检查失败问题
* fix(ci): 修复类型检查失败问题
* fix(ci): behavior-tree 构建添加 @tauri-apps 外部依赖
* fix(ci): behavior-tree 添加 @tauri-apps/plugin-fs 类型依赖
* fix(ci): platform-web 添加缺失的 behavior-tree 依赖
* fix(lint): 移除正则表达式中不必要的转义字符
|
2025-11-27 20:42:46 +08:00 |
|
YHH
|
3fb6f919f8
|
Feature/tilemap editor (#237)
* feat: 添加 Tilemap 编辑器插件和组件生命周期支持
* feat(editor-core): 添加声明式插件注册 API
* feat(editor-core): 改进tiledmap结构合并tileset进tiledmapeditor
* feat: 添加 editor-runtime SDK 和插件系统改进
* fix(ci): 修复SceneResourceManager里变量未使用问题
|
2025-11-25 22:23:19 +08:00 |
|
YHH
|
a3f7cc38b1
|
Feature/render pipeline (#232)
* refactor(engine): 重构2D渲染管线坐标系统
* feat(engine): 完善2D渲染管线和编辑器视口功能
* feat(editor): 实现Viewport变换工具系统
* feat(editor): 优化Inspector渲染性能并修复Gizmo变换工具显示
* feat(editor): 实现Run on Device移动预览功能
* feat(editor): 添加组件属性控制和依赖关系系统
* feat(editor): 实现动画预览功能和优化SpriteAnimator编辑器
* feat(editor): 修复SpriteAnimator动画预览功能并迁移CI到pnpm
* feat(editor): 修复SpriteAnimator动画预览并迁移到pnpm
* feat(editor): 修复SpriteAnimator动画预览并迁移到pnpm
* feat(editor): 修复SpriteAnimator动画预览并迁移到pnpm
* feat(editor): 修复SpriteAnimator动画预览并迁移到pnpm
* feat(ci): 迁移项目到pnpm并修复CI构建问题
* chore: 迁移CI工作流到pnpm并添加WASM构建支持
* chore: 迁移CI工作流到pnpm并添加WASM构建支持
* chore: 迁移CI工作流到pnpm并添加WASM构建支持
* chore: 迁移CI工作流到pnpm并添加WASM构建支持
* chore: 迁移CI工作流到pnpm并添加WASM构建支持
* chore: 迁移CI工作流到pnpm并添加WASM构建支持
* chore: 移除 network 相关包
* chore: 移除 network 相关包
|
2025-11-23 14:49:37 +08:00 |
|
YHH
|
ecfef727c8
|
feat: 实现可扩展的字段编辑器系统与专业资产选择器 (#227)
|
2025-11-19 14:54:03 +08:00 |
|
YHH
|
bce3a6e253
|
refactor(editor): 提取行为树编辑器为独立包并重构编辑器架构 (#216)
* refactor(editor): 提取行为树编辑器为独立包并重构编辑器架构
* feat(editor): 添加插件市场功能
* feat(editor): 重构插件市场以支持版本管理和ZIP打包
* feat(editor): 重构插件发布流程并修复React渲染警告
* fix(plugin): 修复插件发布和市场的路径不一致问题
* feat: 重构插件发布流程并添加插件删除功能
* fix(editor): 完善插件删除功能并修复多个关键问题
* fix(auth): 修复自动登录与手动登录的竞态条件问题
* feat(editor): 重构插件管理流程
* feat(editor): 支持 ZIP 文件直接发布插件
- 新增 PluginSourceParser 解析插件源
- 重构发布流程支持文件夹和 ZIP 两种方式
- 优化发布向导 UI
* feat(editor): 插件市场支持多版本安装
- 插件解压到项目 plugins 目录
- 新增 Tauri 后端安装/卸载命令
- 支持选择任意版本安装
- 修复打包逻辑,保留完整 dist 目录结构
* feat(editor): 个人中心支持多版本管理
- 合并同一插件的不同版本
- 添加版本历史展开/折叠功能
- 禁止有待审核 PR 时更新插件
* fix(editor): 修复 InspectorRegistry 服务注册
- InspectorRegistry 实现 IService 接口
- 注册到 Core.services 供插件使用
* feat(behavior-tree-editor): 完善插件注册和文件操作
- 添加文件创建模板和操作处理器
- 实现右键菜单创建行为树功能
- 修复文件读取权限问题(使用 Tauri 命令)
- 添加 BehaviorTreeEditorPanel 组件
- 修复 rollup 配置支持动态导入
* feat(plugin): 完善插件构建和发布流程
* fix(behavior-tree-editor): 完整恢复编辑器并修复 Toast 集成
* fix(behavior-tree-editor): 修复节点选中、连线跟随和文件加载问题并优化性能
* fix(behavior-tree-editor): 修复端口连接失败问题并优化连线样式
* refactor(behavior-tree-editor): 移除调试面板功能简化代码结构
* refactor(behavior-tree-editor): 清理冗余代码合并重复逻辑
* feat(behavior-tree-editor): 完善编辑器核心功能增强扩展性
* fix(lint): 修复ESLint错误确保CI通过
* refactor(behavior-tree-editor): 优化编辑器工具栏和编译器功能
* refactor(behavior-tree-editor): 清理技术债务,优化代码质量
* fix(editor-app): 修复字符串替换安全问题
|
2025-11-18 14:46:51 +08:00 |
|
YHH
|
f9afa22406
|
refactor(editor): 重构编辑器架构并增强行为树执行可视化
|
2025-11-04 18:29:28 +08:00 |
|
YHH
|
adfc7e91b3
|
Refactor/clean architecture phase1 (#215)
* refactor(editor): 建立Clean Architecture领域模型层
* refactor(editor): 实现应用层架构 - 命令模式、用例和状态管理
* refactor(editor): 实现展示层核心Hooks
* refactor(editor): 实现基础设施层和展示层组件
* refactor(editor): 迁移画布和连接渲染到 Clean Architecture 组件
* feat(editor): 集成应用层架构和命令模式,实现撤销/重做功能
* refactor(editor): UI组件拆分
* refactor(editor): 提取快速创建菜单逻辑
* refactor(editor): 重构BehaviorTreeEditor,提取组件和Hook
* refactor(editor): 提取端口连接和键盘事件Hook
* refactor(editor): 提取拖放处理Hook
* refactor(editor): 提取画布交互Hook和工具函数
* refactor(editor): 完成核心重构
* fix(editor): 修复节点无法创建和连接
* refactor(behavior-tree,editor): 重构节点子节点约束系统,实现元数据驱动的架构
|
2025-11-03 21:22:16 +08:00 |
|
YHH
|
ddc7a7750e
|
Chore/lint fixes (#212)
* fix(eslint): 修复装饰器缩进配置
* fix(eslint): 修复装饰器缩进配置
* chore: 删除未使用的导入
* chore(lint): 移除未使用的导入和变量
* chore(lint): 修复editor-app中未使用的函数参数
* chore(lint): 修复未使用的赋值变量
* chore(eslint): 将所有错误级别改为警告以通过CI
* fix(codeql): 修复GitHub Advanced Security检测到的问题
|
2025-11-02 23:50:41 +08:00 |
|
github-actions[bot]
|
1264232533
|
chore(behavior-tree): release v1.0.1 (#200)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-10-31 17:30:12 +08:00 |
|
YHH
|
61813e67b6
|
refactor(behavior-tree)!: 迁移到 Runtime 执行器架构 (#196)
* refactor(behavior-tree)!: 迁移到 Runtime 执行器架构
* fix(behavior-tree): 修复LogAction中的ReDoS安全漏洞
* feat(behavior-tree): 完善行为树核心功能并修复类型错误
|
2025-10-31 17:27:38 +08:00 |
|
YHH
|
fc042bb7d9
|
feat(editor): 添加插件多语言支持
|
2025-10-28 17:19:28 +08:00 |
|
YHH
|
f0b4453a5f
|
fix(behavior-tree): 修复插件节点执行问题并完善文档
|
2025-10-28 11:45:35 +08:00 |
|
YHH
|
dee0e0284a
|
chore(behavior-tree): 移除CI测试脚本
|
2025-10-27 10:12:35 +08:00 |
|
YHH
|
890e591f2a
|
fix(behavior-tree): 修复发布时缺少publishConfig导致的402错误
|
2025-10-27 10:07:00 +08:00 |
|
YHH
|
4cee396ea9
|
chore(ci): 重构发布流程为手动触发方式并添加behavior-tree包发布支持
|
2025-10-27 09:47:59 +08:00 |
|
YHH
|
009f8af4e1
|
Feature/ecs behavior tree (#188)
* feat(behavior-tree): 完全 ECS 化的行为树系统
* feat(editor-app): 添加行为树可视化编辑器
* chore: 移除 Cocos Creator 扩展目录
* feat(editor-app): 行为树编辑器功能增强
* fix(editor-app): 修复 TypeScript 类型错误
* feat(editor-app): 使用 FlexLayout 重构面板系统并优化资产浏览器
* feat(editor-app): 改进编辑器UI样式并修复行为树执行顺序
* feat(behavior-tree,editor-app): 添加装饰器系统并优化编辑器性能
* feat(behavior-tree,editor-app): 添加属性绑定系统
* feat(editor-app,behavior-tree): 优化编辑器UI并改进行为树功能
* feat(editor-app,behavior-tree): 添加全局黑板系统并增强资产浏览器功能
* feat(behavior-tree,editor-app): 添加运行时资产导出系统
* feat(behavior-tree,editor-app): 添加SubTree系统和资产选择器
* feat(behavior-tree,editor-app): 优化系统架构并改进编辑器文件管理
* fix(behavior-tree,editor-app): 修复SubTree节点错误显示空节点警告
* fix(editor-app): 修复局部黑板类型定义文件扩展名错误
|
2025-10-27 09:29:11 +08:00 |
|