Go to file
Michael Mainguy 72573054dd
All checks were successful
Build / build (push) Successful in 1m21s
Refactor Ship class into modular components
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>
2025-11-07 12:48:17 -06:00
.github/workflows increased heap space. 2025-10-28 12:01:29 -05:00
docs Add Blender export tooling and refactor asset structure 2025-11-06 12:25:34 -06:00
public Add local controller profiles and disable online repository 2025-11-07 11:31:13 -06:00
scripts Add Blender export tooling and refactor asset structure 2025-11-06 12:25:34 -06:00
server Initial Commit 2025-02-15 11:19:24 -06:00
src Refactor Ship class into modular components 2025-11-07 12:48:17 -06:00
themes/default Fix level double initialization and refactor ship physics 2025-11-07 11:16:50 -06:00
.gitignore Initial Commit 2025-02-15 11:19:24 -06:00
CLAUDE.md Refactor sight to crosshair reticle and rename starfield to rockFactory 2025-10-30 10:21:27 -05:00
CONTROLLER_THRUST.md Refactor ship controls to force-based physics with world-space transformations 2025-10-31 11:20:31 -05:00
index.html Fix level double initialization and refactor ship physics 2025-11-07 11:16:50 -06:00
package-lock.json Add Blender export tooling and refactor asset structure 2025-11-06 12:25:34 -06:00
package.json Add Blender export tooling and refactor asset structure 2025-11-06 12:25:34 -06:00
styles.css Add difficulty levels and upgrade BabylonJS 2025-10-17 09:05:18 -05:00
tsconfig.json Initial Commit 2025-02-15 11:19:24 -06:00
vite.config.ts Add difficulty levels and upgrade BabylonJS 2025-10-17 09:05:18 -05:00