//! The create screen's live refresh: everything that follows the selection or the pointer once //! [`super::screen`] has spawned the tree. use bevy::input::mouse::{AccumulatedMouseMotion, MouseScrollUnit, MouseWheel}; use bevy::prelude::*; use crate::char_select::{class_name, race_name}; use crate::entities::CharCreate; use crate::glue_strings::GlueStrings; use super::parts::{ CharCreateUi, DialRow, DynIcon, DynText, DynTint, InfoKind, InfoScroll, ScrollArrow, ScrollHides, ScrollThumb, }; use super::{class_file, race_classes, CreateAction, CreateSelection, ALLIANCE}; use crate::glue::art::{ class_tc, race_tc, tc_rect, GlueArt, ALLIANCE_FILL, BACKDROP_ALLIANCE, BACKDROP_HORDE, BTN_BG, BTN_HOVER, FALLBACK_ALPHA, HORDE_FILL, }; use crate::glue::widgets::{FallbackFace, GlueDisabled, Hilight, HoverLabel, LockHighlight}; /// Refill icon rects, dial labels, info texts, faction tints and class slots on a selection /// change or a fresh spawn. #[allow(clippy::type_complexity)] pub(super) fn refresh_dynamic( sel: Res, catalog: Option>, art: Res, strings: Option>, root: Query>, mut icons: Query<(&DynIcon, &mut ImageNode)>, mut texts: Query<(&DynText, &mut Text)>, mut tints: Query< ( &DynTint, Option<&mut BackgroundColor>, Option<&mut ImageNode>, ), Without, >, mut dial_rows: Query<(&DialRow, &mut Node), Without