mms_functions/
mms-functions.rs1use mittens_engine::{engine, engine::ecs::SignalEmitter, scripting, utils};
8
9#[path = "example_util/mod.rs"]
10mod example_util;
11
12fn main() {
13 mittens_engine::example_support::ensure_model_assets();
14 utils::logger::init();
15
16 let output = scripting::MeowMeowRunner::eval(include_str!("mms-functions.mms"));
17
18 for error in &output.errors {
19 eprintln!("[mms] error: {error}");
20 }
21 println!(
22 "[mms] {} intent(s) from mms-functions.mms",
23 output.intents.len()
24 );
25
26 assert!(
27 output.errors.is_empty(),
28 "MMS evaluation produced errors: {:?}",
29 output.errors
30 );
31 assert_eq!(
32 output.intents.len(),
33 4,
34 "expected 4 SpawnComponentTree intents (got {})",
35 output.intents.len()
36 );
37 println!("[mms] assertions ok — opening window");
38
39 let world = engine::ecs::World::default();
40 let mut universe = engine::Universe::new(world);
41
42 let scope = engine::ecs::ComponentId::default();
43 for intent in output.intents {
44 universe.command_queue.push_intent_now(scope, intent);
45 }
46
47 example_util::spawn_mms_demo_rig(&mut universe, [0.0, 1.0, 5.0]);
48
49 universe.systems.process_commands(
50 &mut universe.world,
51 &mut universe.visuals,
52 &mut universe.render_assets,
53 &mut universe.command_queue,
54 );
55
56 engine::Windowing::run_app(universe).expect("Windowing failed");
57}