//! The title screen that appears when the game starts. use bevy::prelude::*; use crate::{screens::Screen, theme::prelude::*}; pub(super) fn plugin(app: &mut App) { app.add_systems(OnEnter(Screen::Title), spawn_title_screen); } fn spawn_title_screen(mut commands: Commands) { commands .ui_root() .insert(StateScoped(Screen::Title)) .with_children(|children| { children.button("Play").observe(enter_gameplay_screen); #[cfg(not(target_family = "wasm"))] children.button("Exit").observe(exit_app); }); } fn enter_gameplay_screen(_trigger: Trigger, mut next_screen: ResMut>) { next_screen.set(Screen::Gameplay); } #[cfg(not(target_family = "wasm"))] fn exit_app(_trigger: Trigger, mut app_exit: EventWriter) { app_exit.send(AppExit::Success); }