Add comprehensive in-system gameplay features including:
Camera System:
- Orbit mode for galaxy/inspection views
- Follow mode for tracking player ship during flight
- Cinematic mode for docked/cutscene views
- Smooth interpolation and orbit controls
In-System Gameplay:
- Docked state at stations with undock functionality
- Flight mode with velocity and target-based navigation
- Point-and-click movement via ground plane projection
- Target selection system for POIs
Flight Controls:
- Flight state tracking with speed monitoring
- Automatic camera transitions between modes
- Flight HUD with speed indicator and status panel
- Contextual action system for approach/dock/mining
UI Updates:
- Docked station panel with system information
- Flight mode controls and hints
- Dynamic population display
This implementation provides the foundation for tactical
space gameplay with smooth camera transitions and
intuitive point-and-click navigation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace looking_at + with_rotation with a direct rotation assignment —
orbit.rotation already encodes the correct look direction so the
intermediate looking_at call was redundant and discarded. Also re-normalize
the quaternion every frame to prevent floating-point drift from repeated
multiplications.
- Split GalaxyParams into CoreParams, DiskParams, and BeamParams sub-structs
- Add polar beam systems (top/bottom) with visual differentiation
- Add scrollable control panel with section headers for each layer
- Fix Randomize Settings button: remove explicit width (use flex auto)
and bump height from 28px to 32px to match other action buttons
- Add mouse-wheel scroll routing for the control panel
- Add 'Randomize Settings' button that randomizes all params within bounds
- Add SystemOrigin enum for per-layer tracking
- Update AGENTS.md with new module layout and plugin pattern
Camera (apps/game/src/camera.rs):
- Replace yaw/pitch with a single Quat rotation. Mouse drag now does
yaw-around-world-Y * rotation * pitch-around-local-X, which is gimbal-free
and allows true 360° tumbling in any direction.
- Remove pitch clamps (ORBIT_MIN_PITCH / ORBIT_MAX_PITCH).
- Add ResetOrbitCamera resource + apply_orbit_reset system that snaps the
orbit camera back to default on demand.
- OrbitCamera::reset() helper.
Galaxy scene (apps/game/src/gameplay/galaxy_creation/):
- New axes.rs: spawn_axes() draws three emissive cylinders through the
origin (X=red, Y=green, Z=blue) as children of the scene root so they
rebuild with the rest of the galaxy.
- UI adds a 'Center View' button below Regenerate that inserts
ResetOrbitCamera; handled by reset_view_button_handler.
- Help text now mentions drag/zoom/escape.
Drag down now raises the camera so the galaxy shifts down with the cursor
(content follows finger). Horizontal was already correct (drag right moves
the scene right). Matches the feel of panning a map on iOS.
- Refactor apps/game/src/main.rs into modules: state.rs, camera.rs, ui/, gameplay/
- Add gameplay/galaxy_creation.rs scaffold (stubs only, no new logic)
- Update root AGENTS.md: separate TS workspace vs Rust game commands
- Update apps/AGENTS.md: docs/game/site use two toolchains, not one
- Add apps/game/AGENTS.md: build commands, module layout, naming conventions, Plugin pattern