diff --git a/crates/border-wars/assets/menu/airplane.png b/crates/border-wars/assets/menu/airplane.png new file mode 100644 index 0000000..382d37d Binary files /dev/null and b/crates/border-wars/assets/menu/airplane.png differ diff --git a/crates/border-wars/assets/menu/bw_menu_bg.png b/crates/border-wars/assets/menu/bw_menu_bg.png new file mode 100644 index 0000000..daaab8b Binary files /dev/null and b/crates/border-wars/assets/menu/bw_menu_bg.png differ diff --git a/crates/border-wars/assets/menu/host.png b/crates/border-wars/assets/menu/host.png new file mode 100644 index 0000000..bd19fe5 Binary files /dev/null and b/crates/border-wars/assets/menu/host.png differ diff --git a/crates/border-wars/assets/menu/host_icon.png b/crates/border-wars/assets/menu/host_icon.png new file mode 100644 index 0000000..881c7bb Binary files /dev/null and b/crates/border-wars/assets/menu/host_icon.png differ diff --git a/crates/border-wars/assets/menu/join.png b/crates/border-wars/assets/menu/join.png new file mode 100644 index 0000000..fbeb77e Binary files /dev/null and b/crates/border-wars/assets/menu/join.png differ diff --git a/crates/border-wars/assets/menu/join_icon.png b/crates/border-wars/assets/menu/join_icon.png new file mode 100644 index 0000000..c43c26c Binary files /dev/null and b/crates/border-wars/assets/menu/join_icon.png differ diff --git a/crates/border-wars/assets/menu/setting.png b/crates/border-wars/assets/menu/setting.png new file mode 100644 index 0000000..50895d0 Binary files /dev/null and b/crates/border-wars/assets/menu/setting.png differ diff --git a/crates/border-wars/assets/menu/trait.png b/crates/border-wars/assets/menu/trait.png new file mode 100644 index 0000000..b029907 Binary files /dev/null and b/crates/border-wars/assets/menu/trait.png differ diff --git a/crates/border-wars/src/scenes/menu.rs b/crates/border-wars/src/scenes/menu.rs index 39a2239..1f067c4 100644 --- a/crates/border-wars/src/scenes/menu.rs +++ b/crates/border-wars/src/scenes/menu.rs @@ -13,7 +13,8 @@ pub struct MenuPlugin; impl Plugin for MenuPlugin { fn build(&self, app: &mut App) { - app.add_systems(Update, menu_ui.run_if(in_state(CurrentScene::Menu))); + // app.add_systems(Update, menu_ui.run_if(in_state(CurrentScene::Menu))); + app.add_systems(OnEnter(CurrentScene::Menu), menu_ui2); } } @@ -75,3 +76,47 @@ fn menu_ui( } }); } + +/// A Component to identify menus entities. +/// In order to be able to remove them later. +#[derive(Component)] +struct MenuEntity; + +fn menu_ui2(mut commands: Commands, asset_server: Res) { + commands + .spawn(ImageBundle { + style: Style { + margin: UiRect::all(Val::Auto), + width: Val::Px(1280.), + height: Val::Px(720.), + flex_direction: FlexDirection::Column, + ..default() + }, + image: asset_server.load("menu/bw_menu_bg.png").into(), + z_index: ZIndex::Local(0), + ..default() + }) + .insert(MenuEntity); +} + +/// A function to create a side button. +fn create_side_button( + margin: UiRect, + target_scene: CurrentScene, + commands: &mut Commands, + textures: HoveredTexture, +) { + commands + .spawn(ButtonBundle { + style: Style { + width: Val::Px(53.), + aspect_ratio: Some(1.), + margin, + ..default() + }, + z_index: ZIndex::Global(14), + image: textures.texture.clone().into(), + ..default() + }) + .insert((target_scene, textures, MenuEntity)); +} \ No newline at end of file