traaains/ui/track/segment/
signals_list.rs1use bevy::{
2 ecs::{entity::Entity, hierarchy::Children},
3 scene::{Scene, bsn},
4 ui::{Display, FlexDirection, Node, px},
5};
6
7use crate::{
8 sim::{signal::Signals, track::pos::TrackPos},
9 ui::segment::signals_list::item::signals_list_item,
10};
11
12pub mod item;
13
14pub fn signals_list(signals: Vec<(Entity, &Signals, &TrackPos)>) -> impl Scene {
15 let items = signals
16 .into_iter()
17 .enumerate()
18 .map(|(idx, (e, s, t))| signals_list_item(idx, e, s, t))
19 .collect::<Vec<_>>();
20
21 bsn! {
22 Node {
23 display: Display::Flex,
24 flex_direction: FlexDirection::Column,
25 row_gap: px(8)
26 }
27 Children [{items}]
28 }
29}