Skip to main content

bisket_vr_only_example/
bisket-vr-only-example.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    let output = scripting::MeowMeowRunner::eval_with_world_and_assets_at_path(
10        include_str!("bisket-vr-only-example.mms"),
11        Some("examples/bisket-vr-only-example.mms"),
12        &mut universe.world,
13        &mut universe.systems.rx,
14        Some(&mut universe.render_assets),
15        &mut universe.command_queue,
16    );
17
18    for error in &output.errors {
19        eprintln!("[mms] {error}");
20    }
21    assert!(
22        output.errors.is_empty(),
23        "MMS evaluation produced errors: {:?}",
24        output.errors,
25    );
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    universe.systems.process_commands(
32        &mut universe.world,
33        &mut universe.visuals,
34        &mut universe.render_assets,
35        &mut universe.command_queue,
36    );
37
38    engine::Windowing::run_app(universe).expect("Windowing failed");
39}