diff --git a/src/bin/trees/main.rs b/src/bin/trees/main.rs index 06127ee..415dc52 100644 --- a/src/bin/trees/main.rs +++ b/src/bin/trees/main.rs @@ -53,6 +53,7 @@ fn main() { .add_observer(add_dialog_line) .add_observer(add_tree_monologue) .add_observer(remove_tree_monologue) + .add_observer(hide_monologue_preview) .run(); } @@ -162,6 +163,9 @@ fn init_ui(mut commands: Commands) { .observe(hover_dialog_box_out); } +#[derive(Component)] +struct MonologuesContainer; + #[derive(Component)] struct MonologuesList; @@ -178,20 +182,21 @@ fn init_debug_ui(mut commands: Commands) { height: Val::Percent(90.0), align_self: AlignSelf::Center, justify_self: JustifySelf::Start, + width: Val::Percent(60.0), ..default() }, + MonologuesContainer, GlobalZIndex(i32::MAX - 1), DebuggingState::On, )) .with_children(|parent| { parent.spawn(( Node { - min_width: Val::Px(5.0), min_height: Val::Px(5.0), max_height: Val::Percent(90.0), + max_width: Val::Percent(40.0), flex_direction: FlexDirection::Column, padding: UiRect::all(Val::Px(10.0)), - margin: UiRect::all(Val::Px(10.0)), ..default() }, BackgroundColor(PINK.into()), @@ -201,9 +206,9 @@ fn init_debug_ui(mut commands: Commands) { Node { min_height: Val::Px(5.0), max_height: Val::Percent(90.0), + max_width: Val::Percent(60.0), flex_direction: FlexDirection::Column, padding: UiRect::all(Val::Px(10.0)), - margin: UiRect::all(Val::Px(10.0)), ..default() }, BackgroundColor(ORANGE.into()), @@ -377,7 +382,11 @@ fn dialog_engine( if let Some(options) = monologue.get(*idx) { // Spawn the dialog options in the dialog box options.iter().for_each(|option| { - parent.spawn((Text::new(option.clone()), DialogOption)); + parent.spawn(( + Text::new(option.clone()), + DialogOption, + TextLayout::new(JustifyText::Left, LineBreak::NoWrap), + )); }); *idx += 1; } else { @@ -617,6 +626,7 @@ fn spawn_debug_buttons( .spawn(( Button, Text::new(handle.path().unwrap().to_string()), + TextLayout::new(JustifyText::Left, LineBreak::WordBoundary), TreeMonologue(handle.clone()), MonologuesList, BackgroundColor(PINK.into()), @@ -665,13 +675,14 @@ fn preview_monologue( let mut i = 0; commands.entity(*container).with_children(|parent| { while let Some(options) = monologue.get(i) { - parent.spawn((Text::new(format!("{i}. ---")), MonologuePreview)); + parent.spawn((Text::new("---"), MonologuePreview)); for (n, item) in options.iter().enumerate() { - parent.spawn((Text::new(format!("{i}.{n}. {item}")), MonologuePreview)); + parent.spawn((Text::new(format!("{i}.{n}: {item}")), MonologuePreview)); } // TODO: Just implement iter_batches or something i += 1; } + parent.spawn((Text::new("---"), MonologuePreview)); }); } } @@ -681,3 +692,21 @@ fn spawn_monologue_tree(trigger: Trigger>, mut commands: Commands // todo!("Spawn monologue tree when button is clicked") } +fn hide_monologue_preview( + trigger: Trigger>, + preview: Single, Without