simple/
simple.rs

1use bevy_ecs::prelude::*;
2use bevy_app::{prelude::*, ScheduleRunnerPlugin};
3use bevy_mod_progress::*;
4
5enum Loading {}
6
7fn main() {
8    let mut app = App::new();
9    app.add_plugins(ScheduleRunnerPlugin::default());
10    app.add_plugins(EntityProgressTrackingPlugin::<Loading>::default());
11    app.add_systems(Update, tracking_system);
12    app.world_mut().spawn(Progress::<Loading>::new());
13    app.observe(completion_observer);
14    app.run();
15}
16
17fn tracking_system(
18    mut tracked: Query<&mut Progress<Loading>>,
19) {
20    for mut tracker in &mut tracked {
21        tracker.track(128, 128);
22    }
23}
24
25fn completion_observer(
26    _trigger: Trigger<Done<Loading>>,
27    mut exit: EventWriter<AppExit>,
28) {
29    exit.send(AppExit::Success);
30}