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!("clip-shape.mms"),
12 Some("examples/clip-shape.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}");
21 }
22 assert!(
23 output.errors.is_empty(),
24 "MMS evaluation produced errors: {:?}",
25 output.errors,
26 );
27
28 let scope = engine::ecs::ComponentId::default();
29 for intent in output.intents {
30 universe.command_queue.push_intent_now(scope, 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 engine::Windowing::run_app(universe).expect("Windowing failed");
41}