Skip to main content

transition/
transition.rs

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