From e54503b1b0e9ede4afe5eb3b5973acd364a10b3d Mon Sep 17 00:00:00 2001 From: Elijah Voigt Date: Mon, 21 Jul 2025 16:45:13 -0700 Subject: [PATCH] Fix tooltip ish --- src/bin/trees/main.rs | 165 ++++++++++++++++++++++++++---------------- 1 file changed, 102 insertions(+), 63 deletions(-) diff --git a/src/bin/trees/main.rs b/src/bin/trees/main.rs index 901a3a5..044e8e5 100644 --- a/src/bin/trees/main.rs +++ b/src/bin/trees/main.rs @@ -17,6 +17,8 @@ fn main() { }) .add_plugins(MonologueAssetsPlugin) .add_event::() + .add_event::() + .add_event::() .init_state::() .insert_resource(ClearColor(WHITE.into())) .add_systems( @@ -43,6 +45,8 @@ fn main() { .run_if(in_state(DialogState::Idle)) .run_if(on_event::>), spawn_debug_buttons.run_if(on_event::>), + handle_plant_tree.run_if(on_event::), + assign_monologue_to_tree.run_if(on_event::), dialog_engine.run_if(on_event::), auto_scroll.run_if(any_component_added::), dialog_box_visibility.run_if(state_changed::), @@ -57,7 +61,6 @@ fn main() { .add_observer(add_dialog_option) .add_observer(add_tree_monologue) .add_observer(remove_tree_monologue) - .add_observer(populate_tree) .add_observer(show_monologue_list) .add_observer(hide_monologue_list) .run(); @@ -119,13 +122,29 @@ struct MonologuePreview; /// Panel for selecting which monologue tree to spawn fn init_debug_ui(mut commands: Commands) { - let button = commands + commands.spawn(( + Name::new("Tree Planter"), + Text::new("+Tree"), + Node { + top: Val::Px(0.0), + left: Val::Px(0.0), + min_width: Val::Px(25.0), + min_height: Val::Px(25.0), + ..default() + }, + BackgroundColor(RED.into()), + DebuggingState::On, + MonologuesContainer, + Button, + )).observe(spawn_tree); + + let monologue_button = commands .spawn(( Name::new("Monologue Assignment Menu"), - Text::new("+ Monologue"), + Text::new("+Monologue"), Node { - align_self: AlignSelf::Start, - justify_self: JustifySelf::Start, + top: Val::Px(25.0), + left: Val::Px(0.0), min_width: Val::Px(25.0), min_height: Val::Px(25.0), ..default() @@ -137,12 +156,12 @@ fn init_debug_ui(mut commands: Commands) { .id(); commands .spawn(( - NavParent(button), + NavParent(monologue_button), NavState::default(), Name::new("Container"), Node { flex_direction: FlexDirection::Row, - top: Val::Px(25.0), + top: Val::Px(50.0), height: Val::Percent(90.0), width: Val::Percent(80.0), ..default() @@ -166,7 +185,7 @@ fn init_debug_ui(mut commands: Commands) { parent.spawn(( Name::new("Preview"), MonologuePreview, - NavParent(button), + NavParent(monologue_button), NavState::default(), Node { flex_direction: FlexDirection::Column, @@ -452,24 +471,30 @@ fn monologue_asset_tooltip( mut over_events: EventReader>, mut out_events: EventReader>, mut tooltip: ResMut, - scripts: Query<&TreeMonologue>, + trees: Query<(&Tree, Option<&TreeMonologue>)>, ) { out_events .read() - .filter_map(|Pointer { target, .. }| scripts.contains(*target).then_some(*target)) + .filter_map(|Pointer { target, .. }| trees.contains(*target).then_some(*target)) .for_each(|_| { tooltip.remove("Script"); }); over_events .read() - .filter_map(|Pointer { target, .. }| scripts.contains(*target).then_some(*target)) + .filter_map(|Pointer { target, .. }| trees.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()), - } + match trees.get(e) { + Ok((_tree, Some(TreeMonologue(handle)))) => { + match handle.path() { + Some(p) => tooltip.insert("Script", format!("{p}")), + None => tooltip.insert("Script", "A".into()), + } + }, + Ok((_tree, None)) => { + tooltip.insert("Script", "N/A".into()); + }, + _ => () } }); } @@ -576,7 +601,6 @@ fn spawn_debug_buttons( BackgroundColor(PINK.into()), )) .observe(preview_monologue) - .observe(spawn_monologue_tree) .observe(toggle_debug_button_color_over) .observe(toggle_debug_button_color_out); }); @@ -665,64 +689,71 @@ fn hide_monologue_list( } } -fn spawn_monologue_tree( - trigger: Trigger>, - tree_monologues: Query<&TreeMonologue, With