feat: hotel radio widget (client-side, multi-station)

Adds a compact collapsible radio widget (top-left) that plays internet
radio streams with the HTML5 Audio API — no server/renderer changes.

- station list loaded from a JSON5 config file (loadGamedata: JSON + JSON5),
  shipped as radio-stations.json5.example so each hotel fills in its own
- shows the selected station + a dropdown (3 visible, scrolls if more) to
  switch; volume slider; animated equalizer + LIVE indicator
- first station autostarts quietly (5%) on load, with a resume-on-first-
  gesture fallback for browser autoplay policy
This commit is contained in:
medievalshell
2026-05-28 10:20:15 +02:00
parent 4833ab8447
commit acb3dd7ef1
7 changed files with 325 additions and 2 deletions
+2
View File
@@ -27,6 +27,7 @@ import { HousekeepingView } from './housekeeping/HousekeepingView';
import { RareValuesView } from './rare-values/RareValuesView';
import { FortuneWheelView } from './fortune-wheel/FortuneWheelView';
import { SoundboardView } from './soundboard/SoundboardView';
import { RadioView } from './radio/RadioView';
import { InventoryView } from './inventory/InventoryView';
import { ModToolsView } from './mod-tools/ModToolsView';
import { NavigatorView } from './navigator/NavigatorView';
@@ -182,6 +183,7 @@ export const MainView: FC<{}> = props =>
<RareValuesView />
<FortuneWheelView />
<SoundboardView />
<RadioView />
<ExternalPluginLoader />
</>
);