Skip to main content

bloom/
bloom.rs

1use mittens_engine::{engine, engine::ecs::SignalEmitter, scripting, utils};
2use std::time::Duration;
3
4fn main() {
5    mittens_engine::example_support::ensure_model_assets();
6    utils::logger::init();
7
8    let output = scripting::MeowMeowRunner::eval_file_with_timeout(
9        "examples/bloom.mms",
10        Duration::from_secs(10),
11    );
12
13    for error in &output.errors {
14        eprintln!("[mms] error: {error}");
15    }
16    assert!(
17        output.errors.is_empty(),
18        "MMS evaluation produced errors: {:?}",
19        output.errors,
20    );
21
22    println!("[mms] {} intent(s) from bloom.mms", output.intents.len());
23
24    let world = engine::ecs::World::default();
25    let mut universe = engine::Universe::new(world);
26
27    let scope = engine::ecs::ComponentId::default();
28    for intent in output.intents {
29        universe.command_queue.push_intent_now(scope, intent);
30    }
31
32    universe.systems.process_commands(
33        &mut universe.world,
34        &mut universe.visuals,
35        &mut universe.render_assets,
36        &mut universe.command_queue,
37    );
38
39    engine::Windowing::run_app(universe).expect("Windowing failed");
40}