traaains/sim/track/segment/
signals_manager.rs1use std::collections::BTreeMap;
2
3use bevy::ecs::{component::Component, entity::Entity};
4
5use crate::sim::signal::SignalPos;
6
7#[derive(Component, Default)]
11pub struct SignalsManager {
12 pub inner: BTreeMap<SignalPos, Entity>,
13}
14
15impl SignalsManager {
16 pub fn first(&self) -> Option<Entity> {
18 self.inner.first_key_value().map(|(_, e)| *e)
19 }
20
21 pub fn last(&self) -> Option<Entity> {
23 self.inner.last_key_value().map(|(_, e)| *e)
24 }
25}