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