Files

32 lines
1.4 KiB
Markdown

# Change: 工具箱插件化运行时与音乐播放器工具
## Why
当前工具箱把内置工具定义、内部组件映射、iframe 工具配置散落在多个全局文件中:
- 工具定义依赖 `built-in-tools.ts`
- 内部 React 工具依赖 `InternalToolComponents.tsx`
- 画布嵌入和弹窗打开各自做分支判断
这使得每增加一个工具,都需要同步修改多处中心化映射,难以满足“每个工具一个独立目录、像插件一样集成”的目标。
同时,仓库虽然已有画布音频节点与全局音频播放服务,但缺少一个面向素材库音频选择、后台播放和与播放控件联动的独立播放器工具。
## What Changes
- 引入统一的工具插件注册中心,收敛内置工具清单与内部组件解析
- 将内置工具重构为“每个工具一个目录”的 manifest/entry 结构
- 保留 URL 工具能力,但将其视为 `iframe` 类型工具插件
- 新增音乐播放器工具,可直接浏览素材库音频并驱动全局播放会话
- 让播放器工具与现有播放控件共享同一播放状态,并支持互相切换
## Impact
- Affected code:
- `packages/drawnix/src/constants/built-in-tools.ts`
- `packages/drawnix/src/services/toolbox-service.ts`
- `packages/drawnix/src/components/toolbox-drawer/*`
- `packages/drawnix/src/components/tool-element/*`
- `packages/drawnix/src/components/audio-node-element/*`
- `packages/drawnix/src/tools/**/*`