Skip to main content

observer_router/
observer-router.rs

1use mittens_engine::engine::ecs::SignalEmitter;
2use mittens_engine::{engine, scripting, utils};
3
4fn main() {
5    mittens_engine::example_support::ensure_model_assets();
6    utils::logger::init();
7
8    let mut universe = engine::Universe::new(engine::ecs::World::default());
9
10    // Load and run the observer-router scene.
11    let output = scripting::MeowMeowRunner::eval_with_world_at_path(
12        include_str!("observer-router.mms"),
13        Some("examples/observer-router.mms"),
14        &mut universe.world,
15        &mut universe.systems.rx,
16        &mut universe.command_queue,
17    );
18
19    for error in &output.errors {
20        eprintln!("[mms] {error}");
21    }
22    println!(
23        "[mms] {} intent(s) from observer-router.mms",
24        output.intents.len()
25    );
26
27    for intent in output.intents {
28        universe
29            .command_queue
30            .push_intent_now(engine::ecs::ComponentId::default(), intent);
31    }
32
33    universe.systems.process_commands(
34        &mut universe.world,
35        &mut universe.visuals,
36        &mut universe.render_assets,
37        &mut universe.command_queue,
38    );
39
40    universe.enable_repl();
41    engine::Windowing::run_app(universe).expect("Windowing failed");
42}