From 8224d85b4ba578f6edc0916dec23eae72e0c854e Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Thu, 23 Sep 2021 12:58:39 -0500 Subject: [PATCH] Fix more visibility bugs, and make `opaque` public. --- src/visibility.rs | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/visibility.rs b/src/visibility.rs index 768c834..5f63dcc 100644 --- a/src/visibility.rs +++ b/src/visibility.rs @@ -61,7 +61,7 @@ impl Visible { Self(0) } - fn opaque() -> Self { + pub fn opaque() -> Self { Self(u8::MAX) } } @@ -274,6 +274,7 @@ fn update_viewshed( } fn update_viewshed_for_coordinates( + config: Res, visible: Query<(Entity, &Coordinates), (Changed, With)>, mut viewers: Query<(Entity, &mut Viewshed, &Coordinates)>, map: Query<&Map>, @@ -281,6 +282,9 @@ fn update_viewshed_for_coordinates( collider_query: QueryPipelineColliderComponentsQuery, visible_query: Query<&Visible>, ) { + if !config.query_pipeline_active { + return; + } for (visible_entity, coordinates) in visible.iter() { for (viewer_entity, mut viewshed, start) in viewers.iter_mut() { if viewer_entity == visible_entity @@ -304,12 +308,16 @@ fn update_viewshed_for_coordinates( } fn update_viewshed_for_start( + config: Res, mut viewers: Query<(Entity, &mut Viewshed, &Coordinates), Changed>, map: Query<&Map>, query_pipeline: Res, collider_query: QueryPipelineColliderComponentsQuery, visible: Query<&Visible>, ) { + if !config.query_pipeline_active { + return; + } for (viewer_entity, mut viewshed, start) in viewers.iter_mut() { if let Ok(map) = map.single() { update_viewshed( @@ -413,28 +421,31 @@ fn intersection( } fn log_visible( - // time: Res