From a1cfc448dbe8412afb1d05d579f396ec586a460f Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Mon, 11 Jul 2022 14:01:25 -0500 Subject: [PATCH] Update viewshed in distinct stage to ensure that data is synced. --- src/map.rs | 5 +---- src/visibility.rs | 8 +++++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/map.rs b/src/map.rs index 30aadb1..82cc82f 100644 --- a/src/map.rs +++ b/src/map.rs @@ -385,10 +385,7 @@ impl Plugin for MapPlugin { } let config = app.world.get_resource::().unwrap().clone(); app.register_type::() - .add_system_to_stage( - CoreStage::PreUpdate, - spawn_colliders::.before(crate::visibility::UPDATE_VIEWSHED_LABEL), - ) + .add_system_to_stage(CoreStage::PreUpdate, spawn_colliders::) .add_system_to_stage(CoreStage::PreUpdate, spawn_portals::) .add_system_to_stage(CoreStage::PreUpdate, spawn_portal_colliders::); if config.speak_area_descriptions { diff --git a/src/visibility.rs b/src/visibility.rs index 44807ac..8900379 100644 --- a/src/visibility.rs +++ b/src/visibility.rs @@ -433,10 +433,16 @@ pub const UPDATE_VIEWSHED_LABEL: &str = "UPDATE_VIEWSHED"; impl Plugin for VisibilityPlugin { fn build(&self, app: &mut App) { + const UPDATE_VIEWSHED_STAGE: &str = "UPDATE_VIEWSHED_STAGE"; app.add_event::() + .add_stage_after( + CoreStage::PreUpdate, + UPDATE_VIEWSHED_STAGE, + SystemStage::parallel(), + ) .add_system_to_stage(CoreStage::PreUpdate, add_visibility_indices::) .add_system_set_to_stage( - CoreStage::PreUpdate, + UPDATE_VIEWSHED_STAGE, SystemSet::new() .with_run_criteria(FixedTimestep::step(0.05)) .with_system(update_viewshed::)