use crate::ui::{Model, theme};
pub fn waiting(model: &Model) -> u64 {
model
.folded()
.iter()
.filter(|engine| !matches!(engine.held(), crate::ui::Held::Unheld(_)))
.flat_map(crate::ui::model::Engine::walls)
.map(|wall| wall.attention)
.sum()
}
pub fn door(ui: &mut egui::Ui, model: &Model) -> bool {
let asking = waiting(model);
if asking == 0 {
return false;
}
let ink = theme::accent(theme::State::Attention);
let seat = theme::paint::link(ui, &format!("{asking} waiting"), ink);
crate::ui::act::tag(&seat, &[crate::verbs::ATTENTION.word]);
seat.clicked()
}