generated from tipragot/rust
This commit is contained in:
parent
7acbc42adc
commit
63648eef6e
|
@ -39,5 +39,5 @@ pub struct AddPlayer {
|
||||||
/// The packet sent when a player is removed.
|
/// The packet sent when a player is removed.
|
||||||
#[derive(Event, Deserialize, Serialize)]
|
#[derive(Event, Deserialize, Serialize)]
|
||||||
pub struct RemovePlayer {
|
pub struct RemovePlayer {
|
||||||
pub uuid: String,
|
pub uuid: Uuid,
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
//! The main entry point of the game.
|
//! The main entry point of the game.
|
||||||
|
|
||||||
|
use bevnet::NetworkPlugin;
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use border_wars::camera::CameraPlugin;
|
use border_wars::camera::CameraPlugin;
|
||||||
|
use border_wars::connection::ConnectionPlugin;
|
||||||
use border_wars::map::click_tile::TilesClickable;
|
use border_wars::map::click_tile::TilesClickable;
|
||||||
use border_wars::map::renderer::RendererPlugin;
|
use border_wars::map::renderer::RendererPlugin;
|
||||||
use border_wars::scenes::ScenesPlugin;
|
use border_wars::scenes::ScenesPlugin;
|
||||||
|
@ -13,5 +15,7 @@ fn main() {
|
||||||
.add_plugins(RendererPlugin)
|
.add_plugins(RendererPlugin)
|
||||||
.add_plugins(CameraPlugin)
|
.add_plugins(CameraPlugin)
|
||||||
.add_plugins(TilesClickable)
|
.add_plugins(TilesClickable)
|
||||||
|
.add_plugins(ConnectionPlugin)
|
||||||
|
.add_plugins(NetworkPlugin::new("relay.cocosol.fr".to_string()))
|
||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ fn name_settings(
|
||||||
mut local_name: Local<String>,
|
mut local_name: Local<String>,
|
||||||
mut connection: Res<Connection>,
|
mut connection: Res<Connection>,
|
||||||
) {
|
) {
|
||||||
egui::CentralPanel::default().show(ctx.ctx_mut(), |ui| {
|
egui::Window::new("Name settings").show(ctx.ctx_mut(), |ui| {
|
||||||
ui.label("Enter your name:");
|
ui.label("Enter your name:");
|
||||||
ui.horizontal(|ui| {
|
ui.horizontal(|ui| {
|
||||||
let text = ui.text_edit_singleline(&mut *local_name);
|
let text = ui.text_edit_singleline(&mut *local_name);
|
||||||
|
|
|
@ -7,6 +7,7 @@ use crate::{responsive_scale, CurrentScene};
|
||||||
|
|
||||||
pub mod lobby;
|
pub mod lobby;
|
||||||
pub mod menu;
|
pub mod menu;
|
||||||
|
pub mod waiting_menu;
|
||||||
|
|
||||||
/// The plugin for all scenes.
|
/// The plugin for all scenes.
|
||||||
pub struct ScenesPlugin;
|
pub struct ScenesPlugin;
|
||||||
|
@ -17,6 +18,7 @@ impl Plugin for ScenesPlugin {
|
||||||
.add_state::<CurrentScene>()
|
.add_state::<CurrentScene>()
|
||||||
.add_plugins(menu::MenuPlugin)
|
.add_plugins(menu::MenuPlugin)
|
||||||
.add_plugins(lobby::LobbyPlugin)
|
.add_plugins(lobby::LobbyPlugin)
|
||||||
|
.add_plugins(waiting_menu::WaitingMenuPlugin)
|
||||||
.add_plugins(responsive_scale::ResponsiveScalingPlugin);
|
.add_plugins(responsive_scale::ResponsiveScalingPlugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
//! TODO
|
//! TODO
|
||||||
|
|
||||||
|
use bevnet::{Connection, Receive};
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use bevy_egui::{egui, EguiContexts};
|
use bevy_egui::{egui, EguiContexts};
|
||||||
|
|
||||||
use crate::connection::{AllPlayers, RequestConnection};
|
use crate::connection::{AddPlayer, AllPlayers, RemovePlayer, RequestConnection};
|
||||||
use crate::CurrentScene;
|
use crate::CurrentScene;
|
||||||
|
|
||||||
/// The plugin for the lobby.
|
/// The plugin for the lobby.
|
||||||
|
@ -24,26 +25,28 @@ fn ui(all_players: Res<AllPlayers>, mut ctx: EguiContexts) {
|
||||||
|
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
||||||
for (uuid, name) in all_players.iter() {
|
for (uuid, name) in all_players.0.iter() {
|
||||||
ui.label(format!("{}: {}", uuid, name));
|
ui.label(format!("{}: {}", uuid, name));
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_new_players(
|
fn handle_new_players(
|
||||||
mut all_players: ResMut<AllPlayers>,
|
mut all_players: ResMut<AllPlayers>,
|
||||||
mut new_players: EventReader<AddPlayer>,
|
mut new_players: EventReader<Receive<AddPlayer>>,
|
||||||
mut remove_players: EventReader<RemovePlayer>,
|
mut remove_players: EventReader<Receive<RemovePlayer>>,
|
||||||
self_uuid: Res<Connection>,
|
self_uuid: Res<Connection>,
|
||||||
) {
|
) {
|
||||||
for new_player in new_players.iter() {
|
for new_player in new_players.iter() {
|
||||||
all_players.insert(new_player.uuid, new_player.name.clone());
|
all_players
|
||||||
|
.0
|
||||||
|
.insert(new_player.1.uuid, new_player.1.name.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
for remove_player in remove_players.iter() {
|
for remove_player in remove_players.iter() {
|
||||||
if remove_player.uuid == self_uuid.identifier().unwrap() {
|
if remove_player.1.uuid == self_uuid.identifier().unwrap() {
|
||||||
todo!("end the game");
|
todo!("end the game");
|
||||||
}
|
}
|
||||||
all_players.remove(&remove_player.uuid);
|
all_players.0.remove(&remove_player.1.uuid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue