diff --git a/src/bin/trees/main.rs b/src/bin/trees/main.rs index 471777c..f47e1d2 100644 --- a/src/bin/trees/main.rs +++ b/src/bin/trees/main.rs @@ -34,9 +34,9 @@ fn main() { auto_scroll.run_if(any_component_added::), dialog_box_visibility .run_if(state_changed::), - // monologue_asset_tooltip - // .run_if(on_event::> - // .or(on_event::>)), + monologue_asset_tooltip + .run_if(on_event::> + .or(on_event::>)), ), ) .add_observer(add_dialog_option) @@ -445,7 +445,24 @@ fn monologue_asset_tooltip( mut over_events: EventReader>, mut out_events: EventReader>, mut tooltip: ResMut, - query: Query<&TreeMonologue>, + scripts: Query<&TreeMonologue>, ) { - todo!() + out_events + .read() + .filter_map(|Pointer { target, .. }| scripts.contains(*target).then_some(*target)) + .for_each(|_| { + tooltip.remove("Script"); + }); + + over_events + .read() + .filter_map(|Pointer { target, .. }| scripts.contains(*target).then_some(*target)) + .for_each(|e| { + if let Ok(TreeMonologue(handle)) = scripts.get(e) { + match handle.path() { + Some(p) => tooltip.insert("Script", format!("{p}")), + None => tooltip.insert("Script", "???".into()), + } + } + }); } diff --git a/src/debug.rs b/src/debug.rs index 6992d48..6bfe2dc 100644 --- a/src/debug.rs +++ b/src/debug.rs @@ -125,7 +125,7 @@ impl ToolTip { impl Display for ToolTip { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { for (k, v) in self.0.iter() { - write!(f, "{k}: {v}\n")? + writeln!(f, "{k}: {v}")? } Ok(()) }