tasks.md 4.0 KB

1. Rectangle Shimmer Map Compatibility

  • 1.1 Replace the rectangle wall shader material path with CustomShaderMaterial based on THREE.MeshBasicMaterial. (Verifiable: wall surfaces still render and no longer depend on TresShaderMaterial)
  • 1.2 Adapt the rectangle wall shaders to CSM output variables and keep the bottom-to-top gradient stable. (Verifiable: wall color/opacity gradient still follows wall height after the material swap)
  • 1.3 Keep the existing line effect and public props contract unchanged. (Verifiable: perimeter line flow still updates from existing props without dcsConfig changes)

2. Flowing Smoke Map Compatibility

  • 2.1 Replace the smoke particle material path with CustomShaderMaterial based on THREE.PointsMaterial. (Verifiable: smoke still renders through THREE.Points with no raw ShaderMaterial)
  • 2.2 Adapt the smoke shaders to CSM output variables while preserving motion, dissipation, and particle size logic. (Verifiable: flow direction, fade behavior, and size progression remain visible)
  • 2.3 Preserve the current component props and geometry generation logic. (Verifiable: no config schema or prop surface change is needed)

3. Super Energy Shield Map Compatibility

  • 3.1 Replace the shield material path with CustomShaderMaterial based on THREE.MeshBasicMaterial. (Verifiable: shield shell no longer uses raw ShaderMaterial)
  • 3.2 Adapt the shield shaders to CSM output variables while preserving fresnel, flow, hex pattern, and hit-wave behavior. (Verifiable: shield effect still renders with the same controls after the material swap)
  • 3.3 Preserve the current shield props and exposed hit-registration API. (Verifiable: consumers still use the same props and exposed methods)

4. Dependency and Change Tracking

  • 4.1 Add three-custom-shader-material as a direct dependency. (Verifiable: application source imports the package without relying on an undeclared dependency)
  • 4.2 Record the change in openspec/changes/ with proposal, design, spec, and tasks artifacts. (Verifiable: the new change folder contains the required files)

5. Charged Blast Map Compatibility

  • 5.1 Replace the charged orb gather shell materials with CustomShaderMaterial based on THREE.MeshBasicMaterial. (Verifiable: orb shell layers no longer use raw ShaderMaterial)
  • 5.2 Adapt the charged orb gather shaders to CSM output variables while preserving glow, fresnel, and noise-flow behavior. (Verifiable: orb shell appearance still follows existing controls after the material swap)
  • 5.3 Replace the charged blast projectile, trail, and ring materials with CustomShaderMaterial based on THREE.MeshBasicMaterial. (Verifiable: projectile, trail, and ring visuals no longer use raw ShaderMaterial)
  • 5.4 Adapt the charged blast projectile, trail, and ring shaders to CSM output variables while preserving release motion and timing behavior. (Verifiable: burst rings, projectile flight, and trail appearance still respond to the current props after the material swap)
  • 5.5 Preserve the current charged blast component prop surface and composed release-component contract. (Verifiable: no dcsConfig or public prop changes are required for the map-compatibility fix)

6. Validation

  • 6.1 Run a project build and capture any current repo or environment blockers encountered after the material swap. (Verifiable: build output is reviewed and the current blocker is documented if the build does not complete)
  • 6.2 Run lint for the touched scope if the repository setup supports it. (Verifiable: lint completes for the modified files or a repo limitation is documented)
  • 6.3 Verify all target components in a map scene with logarithmicDepthBuffer enabled. (Verifiable: rectangle walls, smoke, shield, charge orb, charged blast rings, and charged blast projectile are no longer incorrectly occluded by the map layer)

Validation note: npm run build reached vite build after vue-tsc, then stopped in the current environment with memory allocation of 4483080 bytes failed.