honeycomb_render/render/
picking.rs

1use bevy::prelude::*;
2use bevy_mod_outline::OutlineVolume;
3use bevy_mod_picking::prelude::PickSelection;
4
5use crate::gui::UiState;
6
7/// Picking update routine.
8pub fn update_picking(
9    mut targets: Query<(Entity, &PickSelection, &mut OutlineVolume)>,
10    mut ui_state: ResMut<UiState>,
11) {
12    let selection = &mut ui_state.selected_entities;
13
14    for (entity, pick_interaction, mut outline) in &mut targets {
15        if pick_interaction.is_selected {
16            outline.visible = true;
17            let _ = selection.insert(entity);
18        } else {
19            outline.visible = false;
20            let _ = selection.remove(&entity);
21        }
22    }
23}