From 3f99f0ab5df60c913eaeffd8e94bca196aff3bb9 Mon Sep 17 00:00:00 2001 From: raphael Date: Mon, 1 Apr 2024 18:28:09 +0200 Subject: [PATCH] wip --- .../border-wars/assets/menu/border_wars.png | Bin 0 -> 16763 bytes crates/border-wars/src/lib.rs | 2 +- crates/border-wars/src/scenes/menu.rs | 87 +++++++++++++++++- 3 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 crates/border-wars/assets/menu/border_wars.png diff --git a/crates/border-wars/assets/menu/border_wars.png b/crates/border-wars/assets/menu/border_wars.png new file mode 100644 index 0000000000000000000000000000000000000000..9825c7c7deeb5f99b35e85b1e11767fee9b76b65 GIT binary patch literal 16763 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 literal 0 HcmV?d00001 diff --git a/crates/border-wars/src/lib.rs b/crates/border-wars/src/lib.rs index 16b1b2d..25e08ed 100644 --- a/crates/border-wars/src/lib.rs +++ b/crates/border-wars/src/lib.rs @@ -12,7 +12,7 @@ pub mod scenes; pub mod ui; /// The current scene of the game. -#[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Hash, States)] +#[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Hash, States, Component)] pub enum CurrentScene { /// When we are in the main menu. #[default] diff --git a/crates/border-wars/src/scenes/menu.rs b/crates/border-wars/src/scenes/menu.rs index 1f067c4..dbb7af2 100644 --- a/crates/border-wars/src/scenes/menu.rs +++ b/crates/border-wars/src/scenes/menu.rs @@ -2,10 +2,13 @@ use bevnet::{Connection, SendTo, Uuid}; use bevy::prelude::*; +use bevy::render::render_resource::TextureUsages; +use bevy_egui::egui::epaint::textures; use bevy_egui::{egui, EguiContexts}; use crate::networking::connection::RequestJoin; use crate::networking::PlayerRank; +use crate::ui::hover::HoveredTexture; use crate::{CurrentScene, Player}; /// The plugin for the menu. @@ -82,6 +85,8 @@ fn menu_ui( #[derive(Component)] struct MenuEntity; +type TargetScene = CurrentScene; + fn menu_ui2(mut commands: Commands, asset_server: Res) { commands .spawn(ImageBundle { @@ -97,12 +102,56 @@ fn menu_ui2(mut commands: Commands, asset_server: Res) { ..default() }) .insert(MenuEntity); + + create_side_button( + UiRect { + left: Val::Px(25.), + right: Val::Auto, + top: Val::Px(25.), + bottom: Val::Auto, + }, + TargetScene::Lobby, + &mut commands, + HoveredTexture { + texture: asset_server.load("menu/setting.png"), + hovered_texture: asset_server.load("menu/setting_hover.png"), + }, + ); + + create_side_button( + UiRect { + left: Val::Auto, + right: Val::Px(25.), + top: Val::Px(25.), + bottom: Val::Auto, + }, + CurrentScene::Lobby, + &mut commands, + HoveredTexture { + texture: asset_server.load("menu/info.png"), + hovered_texture: asset_server.load("menu/info_hover.png"), + }, + ); + + renderer( + &asset_server, + commands, + Some(HoveredTexture { + texture: asset_server.load("menu/border_wars.png"), + hovered_texture: asset_server.load("menu/border_wars.png"), + }), + None, + Val::Px(78.), + Val::Px(614.), + Val::Px(25.), + Val::Px(333.), + ) } /// A function to create a side button. fn create_side_button( margin: UiRect, - target_scene: CurrentScene, + target_scene: TargetScene, commands: &mut Commands, textures: HoveredTexture, ) { @@ -119,4 +168,38 @@ fn create_side_button( ..default() }) .insert((target_scene, textures, MenuEntity)); -} \ No newline at end of file +} + +fn renderer( + asset_server: &Res, + mut background: Commands, + textures: Option, + texture: Option<&str>, + height: Val, + width: Val, + top: Val, + left: Val, +) { + let mut i = background + .spawn(ImageBundle { + style: Style { + height, + width, + top, + left, + ..default() + }, + image: match textures { + Some(ref textures) => textures.texture.clone().into(), + _ => match texture { + Some(texture) => asset_server.load(texture).into(), + _ => panic!("PAS DE TEXTURES FRER"), + }, + }, + ..default() + }); + if textures.is_some() { + i.insert(textures.unwrap()); + } + +}