Initialize+Run systems when running the app (#444)

This is required, so Local<> resources get initialized before systems run.
This commit is contained in:
Tomasz Sterna 2020-09-10 21:56:37 +02:00 committed by GitHub
parent a9ce7f4e82
commit 12deb0bd91
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 4 deletions

View file

@ -51,7 +51,7 @@ impl Plugin for ScheduleRunnerPlugin {
let mut app_exit_event_reader = EventReader::<AppExit>::default();
match run_mode {
RunMode::Once => {
app.schedule.run(&mut app.world, &mut app.resources);
app.update();
}
RunMode::Loop { wait } => loop {
let start_time = Instant::now();
@ -62,7 +62,7 @@ impl Plugin for ScheduleRunnerPlugin {
}
}
app.schedule.run(&mut app.world, &mut app.resources);
app.update();
if let Some(app_exit_events) = app.resources.get_mut::<Events<AppExit>>() {
if app_exit_event_reader.latest(&app_exit_events).is_some() {

View file

@ -20,7 +20,7 @@ fn main() {
.add_plugin(ScheduleRunnerPlugin::run_loop(Duration::from_secs_f64(
1.0 / 60.0,
)))
.add_system(some_other_system.system())
.add_system(counter.system())
.run();
}
@ -28,4 +28,14 @@ fn hello_world_system() {
println!("hello world");
}
fn some_other_system() {}
fn counter(mut state: Local<CounterState>) {
if state.count % 60 == 0 {
println!("{}", state.count);
}
state.count += 1;
}
#[derive(Default)]
struct CounterState {
count: u32,
}