- Update Ship class to use CONVEX_HULL physics from ship1.glb
- Find geometry mesh from loaded GLB and create physics from it
- Move physics creation to initialize() after mesh loads
- Add fallback to BOX shape if mesh not found
- Fix ship position setter for async initialization
- Add null check for physics body
- Set transform position directly if body doesn't exist yet
- Prevents crash when position set before mesh loads
- Optimize planet vertex count for performance
- Reduce sphere segments from 32 to 12
- ~144 vertices vs ~1024 vertices per planet
- Planets are background objects, lower poly acceptable
- Update ship1.glb model
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create sphereLightmap.ts for procedural lighting generation
- Update planets to use lightmaps oriented toward sun
- Switch asteroids to PBR material with noise texture
- Use sphere physics shape for asteroids
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix scoreboard remaining count initialization
- Add setRemainingCount() method to Scoreboard class
- Initialize count once with total asteroids in Level1
- Remove incorrect per-asteroid notifications from deserializer
- Distribute asteroids evenly around base in circular pattern
- Calculate positions using angle: (i / total) * 2π
- Add small random variation (±0.15 radians) for natural spacing
- Set tangential velocities for orbital motion
- Apply to both LevelGenerator and CustomLevelGenerator
- Eliminate code duplication in level generation
- Convert LevelGenerator static constants to public instance properties
- Remove ~130 lines of duplicated code from CustomLevelGenerator
- CustomLevelGenerator now just inherits from base class
- Net reduction: 99 lines of code
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>