Skip to main content

vtuber_secondary_motion/
vtuber-secondary-motion.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    // A path-aware evaluation is required so the scene can import its MMS preset module.
7    let output = scripting::MeowMeowRunner::eval_file("examples/vtuber-secondary-motion.mms");
8    for error in &output.errors {
9        eprintln!("[mms] {error}");
10    }
11    assert!(
12        output.errors.is_empty(),
13        "MMS evaluation produced errors: {:?}",
14        output.errors
15    );
16
17    let mut universe = engine::Universe::new(engine::ecs::World::default());
18    let scope = engine::ecs::ComponentId::default();
19    for intent in output.intents {
20        universe.command_queue.push_intent_now(scope, intent);
21    }
22    universe.systems.process_commands(
23        &mut universe.world,
24        &mut universe.visuals,
25        &mut universe.render_assets,
26        &mut universe.command_queue,
27    );
28    universe.enable_repl();
29    engine::Windowing::run_app(universe).expect("Windowing failed");
30}