|
All checks were successful
Build / build (push) Successful in 1m21s
Major Refactoring: - Extracted input handling, physics, audio, and weapons into separate modules - Reduced Ship class from 542 lines to 305 lines (44% reduction) - Ship now acts as coordinator between modular systems New Modules Created: - src/shipPhysics.ts - Pure force calculation and application logic - No external dependencies, fully testable in isolation - Handles linear/angular forces with velocity caps - Returns force magnitudes for audio feedback - src/keyboardInput.ts - Keyboard and mouse input handling - Combines both input methods in unified interface - Exposes observables for shoot and camera change events - Clean getInputState() API - src/controllerInput.ts - VR controller input handling - Maps WebXR controllers to input state - Handles thumbstick and button events - Observables for shooting and camera adjustments - src/shipAudio.ts - Audio management system - Manages thrust sounds (primary and secondary) - Weapon fire sounds - Dynamic volume based on force magnitudes - src/weaponSystem.ts - Projectile creation and lifecycle - Creates and manages ammo instances - Physics setup for projectiles - Auto-disposal timer Ship Class Changes: - Removed all input handling code (keyboard, mouse, VR) - Removed force calculation logic - Removed audio management code - Removed weapon creation code - Now wires up modular systems via observables - Maintains same external API (backward compatible) Material Improvements: - Updated planet materials to use emissive texture - Enhanced sun material with better color settings - Set planets to unlit mode for better performance Benefits: - Each system independently testable - Clear separation of concerns - Easier to maintain and extend - Better code organization 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| docs | ||
| public | ||
| scripts | ||
| server | ||
| src | ||
| themes/default | ||
| .gitignore | ||
| CLAUDE.md | ||
| CONTROLLER_THRUST.md | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| styles.css | ||
| tsconfig.json | ||
| vite.config.ts | ||