francy51 7b9b892bfb feat(game): restore in-system HUD with reactive station↔flight panel swap (U1)
Basic UI Shell: bring back the in-game flight HUD and station info panel,
and implement the missing "station mode panel swap."

Implementation:
- New `in_system/hud.rs` with a reactive, idempotent `sync_hud_panels`
  system: it shows the station info panel while the player is `Docked` and
  the flight HUD while in `FlightState`, spawning/despawning only when the
  on-screen panel disagrees with the player's state. This replaces the old
  fragile event-driven spawn/despawn scattered through the transition systems.
- Re-enabled the docked info panel (`ui.rs`) and flight HUD (`flight_ui.rs`),
  restructured both as small corner-anchored overlays with NO full-screen
  root so they only block camera orbit input when the cursor is directly
  over a panel (orbit_camera_control suppresses input over any UI node).
- Made the docked panel info-only (actions live in the contextual action
  panel, which adapts to docked/flight modes).
- Fixed the broken undock chain: `start_undocking`/`start_travel` now take a
  real `now_ms` (was hardcoded `0.0`, completing instantly) and a new
  `complete_operations` bridge maps `OperationCompletedEvent::Undocking`
  back to `UndockEvent` so `handle_undock` actually runs.
- Wired `ActionType::Dock` to fire a `DockEvent` for a targeted station /
  habitable planet so the flight→docked swap is reachable too.
- `handle_docking` now also clears Velocity/MoveTarget/SelectedTarget so the
  docked ship stops cleanly.
- Fixed deprecated Bevy 0.16 APIs (single_mut, EventWriter::write,
  despawn) and removed now-dead code, dropping total warnings 183→137.

Compiles clean (`cargo check`); no new warnings in touched files.
2026-06-17 19:43:24 -04:00

VOID::NAV

A single-player narrative-driven space exploration experience where you author your own mini-series. Inspired by Windward's open-world freedom, Stellaris's strategic depth, and AI-generated storytelling in the style of The Templin Institute. Every campaign generates a unique tale of exploration, commerce, diplomacy, and conquest.

You are a young captain with an entire galaxy to explore—and a story to write. Every campaign features a unique, procedurally generated galaxy. Trade between stations, broker alliances between factions, wage war or maintain peace, and watch as the AI Story Director weaves your choices into an evolving narrative. Prefer a quieter life? Simply sail the stars and let your story unfold.

Conflict occurs through FTL-style tactical resource management—not dogfighting. When combat happens, it's a dramatic beat in your story. Click a hostile, your ship auto-engages, and you manage reactor power between Weapons / Shields / Engines / Auxiliary. The skill is in what you power and when, not how fast you click. But combat is a feature, not the focus.

VOID::NAV is a pnpm workspace monorepo for the game website, living design docs, and game client. V1 focuses on single-player emergent storytelling with local persistence and AI-driven narrative generation.

Core Pillars

Pillar Description
AI Story Director Emergent narrative generation tracks your choices, alliances, conflicts, and discoveries. The AI weaves your actions into an ongoing saga. V1: real-time emergent storytelling. Future: episodic mini-series generation.
Exploration & Discovery Procedurally generated galaxy with fog of war. Discover anomalies, derelicts, new factions. Every discovery becomes part of your story.
Trade & Diplomacy Stellaris-inspired economic and political systems. Supply factions, broker alliances, negotiate borders. Commerce and conversation are equally viable paths.
Ship Customization Your ship is your narrative vessel. Customize for trade, exploration, or conflict. Multiple classes from nimble scouts to powerful cruisers.
Dynamic Galaxy Your actions shape both the world AND the story. Faction relations, territory control, and world events evolve through your choices.
Solo Adventure A personal galaxy to explore at your own pace. Your story, your pace. The architecture supports optional co-op servers later.

Secondary Features

  • FTL-Style Tactical Combat — Power management combat exists as a dramatic beat in your story, not the gameplay loop
  • Mining and resource gathering
  • Mission and quest systems

Layout

apps/docs          Living design docs and interactive demos
apps/site          Public landing page / game website
apps/game          Playable game client (Rust + Bevy)
packages/ui        Shared UI primitives and CSS tokens
archive/legacy-static Legacy static prototype files kept for reference

Prerequisites

  • Node.js 24+
  • pnpm 9+
  • Rust toolchain (for the game client)

Quick Start

pnpm install
pnpm dev

This launches the docs and site servers.

Open http://localhost:5175 to play the game.

Press Ctrl+C to stop everything.

Development

pnpm dev            # Docs + site servers
pnpm dev:docs       # Docs only (port 5173)
pnpm dev:site       # Site only (port 5174)
cd apps/game && cargo run  # Game client

Default ports:

  • docs: http://localhost:5173/docs
  • site: http://localhost:5174
  • game: http://localhost:5175

Builds

pnpm build          # Build all apps
pnpm check          # Typecheck all packages
cd apps/game && cargo build  # Build game client

Game Client

The game client (apps/game) is built with Rust and Bevy. It runs locally and persists game state locally with full single-player campaign support.

Description
No description provided
Readme 2.4 MiB
Languages
TypeScript 74.9%
Rust 22.8%
HTML 1.7%
CSS 0.5%