From a9d545178770eedd1bf13af78986305b03cf04c1 Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Sat, 10 Feb 2024 10:02:11 +0100 Subject: [PATCH 01/11] Change structure of menus --- .vscode/settings.json | 5 +++ crates/border-wars/src/lib.rs | 2 +- crates/border-wars/src/main.rs | 4 +- crates/border-wars/src/menus/lobby.rs | 43 ++++++++++++++++++++++ crates/border-wars/src/{ => menus}/menu.rs | 4 +- crates/border-wars/src/menus/mod.rs | 18 +++++++++ 6 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 crates/border-wars/src/menus/lobby.rs rename crates/border-wars/src/{ => menus}/menu.rs (92%) create mode 100644 crates/border-wars/src/menus/mod.rs diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3a23744 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "rust-analyzer.linkedProjects": [ + "./crates/border-wars/Cargo.toml" + ] +} \ No newline at end of file diff --git a/crates/border-wars/src/lib.rs b/crates/border-wars/src/lib.rs index 3ba1db7..db3bbc5 100644 --- a/crates/border-wars/src/lib.rs +++ b/crates/border-wars/src/lib.rs @@ -2,7 +2,7 @@ use bevy::prelude::*; -pub mod menu; +pub mod menus; /// The state of the game. #[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Hash, States)] diff --git a/crates/border-wars/src/main.rs b/crates/border-wars/src/main.rs index ec04b20..7ed9435 100644 --- a/crates/border-wars/src/main.rs +++ b/crates/border-wars/src/main.rs @@ -1,13 +1,13 @@ //! The main entry point of the game. use bevy::prelude::*; -use border_wars::menu::MenuPlugin; +use border_wars::menus::MenusPlugin; use border_wars::GameState; fn main() { App::new() .add_plugins(DefaultPlugins) .add_state::() - .add_plugins(MenuPlugin) + .add_plugins(MenusPlugin) .run(); } diff --git a/crates/border-wars/src/menus/lobby.rs b/crates/border-wars/src/menus/lobby.rs new file mode 100644 index 0000000..f0a45f5 --- /dev/null +++ b/crates/border-wars/src/menus/lobby.rs @@ -0,0 +1,43 @@ +//! The lobby menu of the game. + +use bevy::prelude::*; +use bevy_egui::{EguiContexts, egui}; + +use crate::GameState; + +/// The plugin for the lobby. +pub struct LobbyPlugin; + +impl Plugin for LobbyPlugin { + fn build(&self, app: &mut App) { + app.add_systems( + Update, + lobby_ui.run_if(state_exists_and_equals(GameState::Lobby)), + ); + } +} + +/// Display the UI of the menu to host a game or join one. +fn lobby_ui( + mut ctx: EguiContexts, + mut next_state: ResMut>, +) { + egui::CentralPanel::default().show(ctx.ctx_mut(), |ui| { + ui.heading("Border Wars"); + + ui.separator(); + + ui.label("Game created"); + ui.horizontal(|ui| { + ui.label("Game ID: "); + ui.label("connection_string"); + }); + + ui.separator(); + + if ui.button("Run the game").clicked() { + next_state.set(GameState::Game); + // TODO: run the game + } + }); +} diff --git a/crates/border-wars/src/menu.rs b/crates/border-wars/src/menus/menu.rs similarity index 92% rename from crates/border-wars/src/menu.rs rename to crates/border-wars/src/menus/menu.rs index d6e4d13..8818c0f 100644 --- a/crates/border-wars/src/menu.rs +++ b/crates/border-wars/src/menus/menu.rs @@ -1,7 +1,7 @@ //! The main menu of the game. use bevy::prelude::*; -use bevy_egui::{egui, EguiContexts, EguiPlugin}; +use bevy_egui::{egui, EguiContexts}; use crate::GameState; @@ -10,7 +10,7 @@ pub struct MenuPlugin; impl Plugin for MenuPlugin { fn build(&self, app: &mut App) { - app.add_plugins(EguiPlugin).add_systems( + app.add_systems( Update, menu_ui.run_if(state_exists_and_equals(GameState::Menu)), ); diff --git a/crates/border-wars/src/menus/mod.rs b/crates/border-wars/src/menus/mod.rs new file mode 100644 index 0000000..89bb351 --- /dev/null +++ b/crates/border-wars/src/menus/mod.rs @@ -0,0 +1,18 @@ +//! All the menu's programme. + +use bevy::prelude::*; +use bevy_egui::EguiPlugin; + +pub mod lobby; +pub mod menu; + +/// The plugin for all menus. +pub struct MenusPlugin; + +impl Plugin for MenusPlugin { + fn build(&self, app: &mut App) { + app.add_plugins(EguiPlugin) + .add_plugins(lobby::LobbyPlugin) + .add_plugins(menu::MenuPlugin); + } +} -- 2.43.4 From c6b2299ff116060fbe31d8ed7e7576e0e96d0eac Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Sat, 10 Feb 2024 10:04:03 +0100 Subject: [PATCH 02/11] Fix fmt --- crates/border-wars/src/menus/lobby.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/crates/border-wars/src/menus/lobby.rs b/crates/border-wars/src/menus/lobby.rs index f0a45f5..4ab71ed 100644 --- a/crates/border-wars/src/menus/lobby.rs +++ b/crates/border-wars/src/menus/lobby.rs @@ -1,7 +1,7 @@ //! The lobby menu of the game. use bevy::prelude::*; -use bevy_egui::{EguiContexts, egui}; +use bevy_egui::{egui, EguiContexts}; use crate::GameState; @@ -18,10 +18,7 @@ impl Plugin for LobbyPlugin { } /// Display the UI of the menu to host a game or join one. -fn lobby_ui( - mut ctx: EguiContexts, - mut next_state: ResMut>, -) { +fn lobby_ui(mut ctx: EguiContexts, mut next_state: ResMut>) { egui::CentralPanel::default().show(ctx.ctx_mut(), |ui| { ui.heading("Border Wars"); -- 2.43.4 From b69672356aec8daf2d393b5177d98fd93db02597 Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Sat, 10 Feb 2024 17:06:26 +0100 Subject: [PATCH 03/11] Change structure of files --- crates/border-wars/src/lib.rs | 2 +- crates/border-wars/src/main.rs | 4 ++-- crates/border-wars/src/{ => menus}/menu.rs | 4 ++-- crates/border-wars/src/menus/mod.rs | 16 ++++++++++++++++ 4 files changed, 21 insertions(+), 5 deletions(-) rename crates/border-wars/src/{ => menus}/menu.rs (92%) create mode 100644 crates/border-wars/src/menus/mod.rs diff --git a/crates/border-wars/src/lib.rs b/crates/border-wars/src/lib.rs index 3ba1db7..db3bbc5 100644 --- a/crates/border-wars/src/lib.rs +++ b/crates/border-wars/src/lib.rs @@ -2,7 +2,7 @@ use bevy::prelude::*; -pub mod menu; +pub mod menus; /// The state of the game. #[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Hash, States)] diff --git a/crates/border-wars/src/main.rs b/crates/border-wars/src/main.rs index ec04b20..7ed9435 100644 --- a/crates/border-wars/src/main.rs +++ b/crates/border-wars/src/main.rs @@ -1,13 +1,13 @@ //! The main entry point of the game. use bevy::prelude::*; -use border_wars::menu::MenuPlugin; +use border_wars::menus::MenusPlugin; use border_wars::GameState; fn main() { App::new() .add_plugins(DefaultPlugins) .add_state::() - .add_plugins(MenuPlugin) + .add_plugins(MenusPlugin) .run(); } diff --git a/crates/border-wars/src/menu.rs b/crates/border-wars/src/menus/menu.rs similarity index 92% rename from crates/border-wars/src/menu.rs rename to crates/border-wars/src/menus/menu.rs index d6e4d13..8818c0f 100644 --- a/crates/border-wars/src/menu.rs +++ b/crates/border-wars/src/menus/menu.rs @@ -1,7 +1,7 @@ //! The main menu of the game. use bevy::prelude::*; -use bevy_egui::{egui, EguiContexts, EguiPlugin}; +use bevy_egui::{egui, EguiContexts}; use crate::GameState; @@ -10,7 +10,7 @@ pub struct MenuPlugin; impl Plugin for MenuPlugin { fn build(&self, app: &mut App) { - app.add_plugins(EguiPlugin).add_systems( + app.add_systems( Update, menu_ui.run_if(state_exists_and_equals(GameState::Menu)), ); diff --git a/crates/border-wars/src/menus/mod.rs b/crates/border-wars/src/menus/mod.rs new file mode 100644 index 0000000..7d40b39 --- /dev/null +++ b/crates/border-wars/src/menus/mod.rs @@ -0,0 +1,16 @@ +//! All the menu's programme. + +use bevy::prelude::*; +use bevy_egui::EguiPlugin; + +pub mod menu; + +/// The plugin for all menus. +pub struct MenusPlugin; + +impl Plugin for MenusPlugin { + fn build(&self, app: &mut App) { + app.add_plugins(EguiPlugin) + .add_plugins(menu::MenuPlugin); + } +} -- 2.43.4 From 2b6e96c3d362b48516afbab6ba288592bc49e715 Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Sat, 10 Feb 2024 17:13:57 +0100 Subject: [PATCH 04/11] change doc --- crates/border-wars/src/menus/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/border-wars/src/menus/mod.rs b/crates/border-wars/src/menus/mod.rs index 7d40b39..4268a4a 100644 --- a/crates/border-wars/src/menus/mod.rs +++ b/crates/border-wars/src/menus/mod.rs @@ -1,4 +1,4 @@ -//! All the menu's programme. +//! The file containing all menu programs. use bevy::prelude::*; use bevy_egui::EguiPlugin; -- 2.43.4 From c0bcf1ad70085328fffbc7e20dfaf45151f61a5c Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Sat, 10 Feb 2024 17:18:46 +0100 Subject: [PATCH 05/11] Fix fmt --- crates/border-wars/src/menus/mod.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/crates/border-wars/src/menus/mod.rs b/crates/border-wars/src/menus/mod.rs index 4268a4a..4e100bf 100644 --- a/crates/border-wars/src/menus/mod.rs +++ b/crates/border-wars/src/menus/mod.rs @@ -10,7 +10,6 @@ pub struct MenusPlugin; impl Plugin for MenusPlugin { fn build(&self, app: &mut App) { - app.add_plugins(EguiPlugin) - .add_plugins(menu::MenuPlugin); + app.add_plugins(EguiPlugin).add_plugins(menu::MenuPlugin); } } -- 2.43.4 From c55313dff528c374bb30c68b4e5c71bce1f77208 Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Sat, 10 Feb 2024 17:24:26 +0100 Subject: [PATCH 06/11] Add lobby menu --- crates/border-wars/src/menus/mod.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/border-wars/src/menus/mod.rs b/crates/border-wars/src/menus/mod.rs index 4e100bf..fa88107 100644 --- a/crates/border-wars/src/menus/mod.rs +++ b/crates/border-wars/src/menus/mod.rs @@ -3,6 +3,9 @@ use bevy::prelude::*; use bevy_egui::EguiPlugin; +use self::lobby::LobbyPlugin; + +pub mod lobby; pub mod menu; /// The plugin for all menus. @@ -10,6 +13,8 @@ pub struct MenusPlugin; impl Plugin for MenusPlugin { fn build(&self, app: &mut App) { - app.add_plugins(EguiPlugin).add_plugins(menu::MenuPlugin); + app.add_plugins(EguiPlugin) + .add_plugins(menu::MenuPlugin) + .add_plugins(LobbyPlugin); } } -- 2.43.4 From 376e1692d0316d02fc5bdd6d26c923a202a3e692 Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Sat, 10 Feb 2024 18:39:02 +0100 Subject: [PATCH 07/11] Remove config --- .vscode/settings.json | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 3a23744..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rust-analyzer.linkedProjects": [ - "./crates/border-wars/Cargo.toml" - ] -} \ No newline at end of file -- 2.43.4 From bbe3a983c5b7441e650c12207c1ccffd58ed24b8 Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Sat, 10 Feb 2024 18:40:42 +0100 Subject: [PATCH 08/11] Change doc --- crates/border-wars/src/scenes/lobby.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/border-wars/src/scenes/lobby.rs b/crates/border-wars/src/scenes/lobby.rs index 4b85a88..a41ae2c 100644 --- a/crates/border-wars/src/scenes/lobby.rs +++ b/crates/border-wars/src/scenes/lobby.rs @@ -14,7 +14,7 @@ impl Plugin for LobbyPlugin { } } -/// Display the UI of the menu to host a game or join one. +/// Display the UI of the lobby. fn lobby_ui(mut ctx: EguiContexts, mut next_scene: ResMut>) { egui::CentralPanel::default().show(ctx.ctx_mut(), |ui| { ui.heading("Border Wars"); @@ -24,6 +24,7 @@ fn lobby_ui(mut ctx: EguiContexts, mut next_scene: ResMut Date: Sat, 10 Feb 2024 18:42:32 +0100 Subject: [PATCH 09/11] Change modering order --- crates/border-wars/src/scenes/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/border-wars/src/scenes/mod.rs b/crates/border-wars/src/scenes/mod.rs index 2a788fd..2e2fa95 100644 --- a/crates/border-wars/src/scenes/mod.rs +++ b/crates/border-wars/src/scenes/mod.rs @@ -5,8 +5,8 @@ use bevy_egui::EguiPlugin; use crate::CurrentScene; -pub mod lobby; pub mod menu; +pub mod lobby; /// The plugin for all scenes. pub struct ScenesPlugin; -- 2.43.4 From 8a3712beb997514185100137fc455bf500a0d5b9 Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Sat, 10 Feb 2024 18:46:57 +0100 Subject: [PATCH 10/11] Change Doc --- crates/border-wars/src/scenes/lobby.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/border-wars/src/scenes/lobby.rs b/crates/border-wars/src/scenes/lobby.rs index a41ae2c..84a0348 100644 --- a/crates/border-wars/src/scenes/lobby.rs +++ b/crates/border-wars/src/scenes/lobby.rs @@ -1,4 +1,4 @@ -//! The lobby menu of the game. +//! The lobby of the game. use bevy::prelude::*; use bevy_egui::{egui, EguiContexts}; -- 2.43.4 From 9a3510f95847334e89ac2b635daa1a5b934c080f Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Sat, 10 Feb 2024 18:48:32 +0100 Subject: [PATCH 11/11] Fix fmt --- crates/border-wars/src/scenes/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/border-wars/src/scenes/mod.rs b/crates/border-wars/src/scenes/mod.rs index 2e2fa95..2a788fd 100644 --- a/crates/border-wars/src/scenes/mod.rs +++ b/crates/border-wars/src/scenes/mod.rs @@ -5,8 +5,8 @@ use bevy_egui::EguiPlugin; use crate::CurrentScene; -pub mod menu; pub mod lobby; +pub mod menu; /// The plugin for all scenes. pub struct ScenesPlugin; -- 2.43.4