## 1. 源码分析与迁移边界 - [x] 1.1 对比上游 `src/components/ForceShield` 的实现,并明确记录当前仓库中保留与剔除的能力边界。(可验证结果:变更文档中明确写清只迁移护盾核心,排除 transform 控件、外部场景与 demo 辅助逻辑、reveal/debug/gameplay 控制以及后期处理。) - [x] 1.2 明确组件和 `src/dcsConfig.ts` 的护盾自身参数契约。(可验证结果:参数集合包含表面、菲涅耳、流动、噪声和冲击波配置,明确不新增 `radius`,并排除 transform 类字段。) - [x] 1.3 确定命中冲击波的交互规则。(可验证结果:文档中明确默认渲染不依赖组件内部 click 捕获,可选自点击命中模式与未来编辑器点选路径相互解耦。) ## 2. 护盾组件与 Shader 迁移 - [x] 2.1 创建 `src/components/superEnergyShieldComponent.vue`,完成 Tres 球体 mesh、参数边界保护、uniform 同步和迁移后的护盾材质接入。(可验证结果:组件使用默认参数时能够渲染出可见护盾外壳。) - [x] 2.2 新增 `src/shader/superEnergyShieldComponent/shield.vert` 和 `src/shader/superEnergyShieldComponent/shield.frag`,将 ForceShield 的 shader 逻辑迁移为外部文件。(可验证结果:组件从外部 shader 文件加载源码,Vue 组件中不再保留内联 shader 字符串。) - [x] 2.3 保持上游固定基准球体的尺寸假设,不新增 `radius/uRadius` 路径,并验证外部缩放仍可用于控制整体大小。(可验证结果:组件内部不新增独立尺寸参数,宿主场景仍可通过外部 Object3D 缩放调节护盾大小。) - [x] 2.4 实现固定长度的命中缓冲和共享 impact 注册入口,用于支持可选自点击命中模式。(可验证结果:护盾可以渲染命中冲击波,同时组件本体不依赖内部 click 捕获才能正常工作。) ## 3. 动态组件服务接入 - [x] 3.1 在 `src/dcsConfig.ts` 中注册该组件,补充中文名称、默认值和仅限护盾自身的配置项。(可验证结果:组件能在服务组件列表中出现,配置面板只暴露预期的护盾参数。) - [x] 3.2 在不修改通用预览视图的前提下补齐组件卡片所需的预览资源或元数据,除非确认存在真实基础设施问题。(可验证结果:组件卡片在现有注册表驱动的预览流程中正常显示。) ## 4. 验证与回滚准备 - [x] 4.1 运行 `npm run build`,并对改动文件执行 lint 或明确说明是否存在仓库级 lint 阻塞。(可验证结果:构建成功,或失败原因被明确归因。) - [ ] 4.2 在环境允许时验证默认护盾渲染、参数动态更新和可选自点击命中模式。(可验证结果:护盾在默认参数和调整参数下表现稳定,可选命中冲击波符合设计约束。) - [x] 4.3 保持回滚顺序文档清晰:先移除 `dcsConfig` 注册,再回退组件与 shader 文件,最后清理预览资源。(可验证结果:回滚步骤清晰且可以直接执行。)