centralized state
This commit is contained in:
+11
-9
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user