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}