Auto-install Lua, smooth all panels, airspace overlay + launcher region picker

FlyWithLua auto-install: bridge drops fms-sync/ui-sync/terrain-probe into
X-Plane's FlyWithLua Scripts dir on startup and self-updates (content-compare).
Graceful when no X-Plane / no FlyWithLua. /api/lua/install + status in health.
Desktop app bundles the scripts and passes LUA_SRC_DIR to the sidecar.

Smoothing: shared useEased/useEasedAngle hook (api/ease.js) with render-bail on
settle. VFR steam gauges now interpolate to 60fps instead of stepping at the
~10Hz value stream. MFD ownship no longer vibrates — position/heading eased in a
single rAF loop, follow-pan without animated-panTo pile-up (pauses on range zoom).

Airspace overlay: server/airspace.js loads per-region GeoJSON, classifies
(B/C/D/TMA/CTR/MOA/Restricted/Prohibited/Danger), bbox query, and downloads
regions on demand — FAA (US, key-free) and OpenAIP (Europe, user key). New
AIRSPACE softkey draws chart-coloured boundaries (B blue, C magenta, D dashed),
non-interactive so map-clicks still drop waypoints. Launcher gains a "Lufträume"
section to pick/download regions via the running bridge.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 13:57:50 +02:00
parent b2fab0c374
commit 9aba24978b
16 changed files with 572 additions and 77 deletions
+11 -4
View File
@@ -8,15 +8,22 @@ cockpit plan ↔ the in-sim FMS through two files in `Output/fms-sync/`.
1. Install **FlyWithLua NG+** (free): copy its plugin folder into
`<X-Plane>/Resources/plugins/FlyWithLua/`.
2. Copy the scripts into `<X-Plane>/Resources/plugins/FlyWithLua/Scripts/`:
2. Start the bridge (desktop app or `node server/bridge.js`) **on the same PC**
as X-Plane. On startup it auto-copies these three scripts into
`<X-Plane>/Resources/plugins/FlyWithLua/Scripts/` and keeps them up to date
on every launch (it only writes changed/missing files):
- **`fms-sync.lua`** — flight-plan two-way sync
- **`ui-sync.lua`** — G1000 UI state (page / range / inset)
- **`terrain-probe.lua`** — terrain-awareness elevation grid for the MFD
3. Restart X-Plane (or *FlyWithLua → Reload all Lua script files*).
3. In X-Plane: *FlyWithLua → Reload all Lua script files* (or restart).
The log shows `[glass-cockpit] FMS sync active`.
The bridge (desktop app / `node server/bridge.js`) must run on the **same PC**
as X-Plane, so both see `<X-Plane>/Output/fms-sync/`.
No manual copying needed. If you install FlyWithLua *after* the bridge is
already running, trigger a re-install without restarting via
`POST /api/lua/install`. The current install state is reported under `lua` in
`GET /api/health`. The bridge must run on the **same PC** as X-Plane so both see
`<X-Plane>/Output/fms-sync/`. (The auto-install honours `LUA_SRC_DIR` — the
desktop app sets it to the bundled scripts; otherwise it finds `plugins/` itself.)
## What you get