centralized state

This commit is contained in:
2026-06-13 13:44:02 +02:00
parent 0a8861a5b1
commit 48c499e356
11 changed files with 693 additions and 206 deletions
+11 -9
View File
@@ -1,23 +1,25 @@
//! wds — Weirdcore Dating Simulator.
//!
//! Aufbau: `engine/` ist der headless Kern (Signal/Action-Dispatcher,
//! KV-Store, Ink-Stories); Frontends konsumieren ihn über `StoryState`
//! und die `Action`-Queue. Frontends: das Fenster (`render`, Default)
//! und die Konsolen-REPL (`cli`, via `--cli`).
//! KV-Store, Ink-Stories); `session` hält den geteilten Anwendungszustand
//! darüber (Game + Dialog-Modus + Befehls-Interpreter). Beide Frontends
//! steuern dieselbe Session: das Fenster (`render`, Default) und die
//! Konsolen-REPL (`cli`, via `--cli`).
mod cli;
mod engine;
mod render;
mod session;
use engine::game::Game;
use engine::{assets, signals};
use engine::assets;
use session::Session;
fn main() {
let signals_path = assets::path("assets/signals.toml");
let session = Session::new(signals_path.clone());
if std::env::args().any(|a| a == "--cli") {
let signals_path = assets::path("assets/signals.toml");
let game = Game::new(signals::load_signals(&signals_path));
cli::run(game, &signals_path);
cli::run(session, &signals_path);
} else {
render::run();
render::run(session);
}
}