use bevy::prelude::*; use crate::View; #[derive(Component, Debug)] pub struct MainMenu; pub fn startup(mut commands: Commands) { commands .spawn(( MainMenu, StateScoped(View::MainMenu), Name::new("MenuRoot"), NodeBundle { style: Style { width: Val::Percent(100.0), height: Val::Percent(100.0), justify_content: JustifyContent::SpaceBetween, ..default() }, ..default() }, )) .with_children(|parent| { // text parent.spawn(( Name::new("Text"), TextBundle::from_section( "Text Example\nPress ENTER to play", TextStyle { font_size: 64.0, ..default() }, ) .with_style(Style { margin: UiRect::all(Val::Px(12.)), ..default() }), // Because this is a distinct label widget and // not button/list item text, this is necessary // for accessibility to treat the text accordingly. Label, )); parent.spawn(( Name::new("SomeFreakin'Square"), NodeBundle { style: Style { width: Val::Px(200.0), height: Val::Px(200.0), position_type: PositionType::Absolute, left: Val::Px(210.), bottom: Val::Px(10.), border: UiRect::all(Val::Px(20.)), ..default() }, border_color: Color::srgb(0., 1., 0.).into(), background_color: Color::srgb(0.4, 0.4, 1.).into(), ..default() }, )); }); } pub fn exit(mut commands: Commands, q: Query>) { for id in q.iter() { commands.entity(id).despawn_recursive(); } } pub fn update() {}