Implement generic online system #82

Merged
CoCo_Sol merged 14 commits from impl-online into main 2024-03-25 05:45:17 +00:00
5 changed files with 11 additions and 11 deletions
Showing only changes of commit 4fe4bdba3f - Show all commits

View file

@ -38,4 +38,4 @@ pub struct Player {
/// All the players in the game.
#[derive(Resource, Default)]
pub struct AllPlayer(pub HashMap<Uuid, Player>);
pub struct AllPlayers(pub HashMap<Uuid, Player>);

View file

@ -4,7 +4,7 @@ use bevnet::{Connection, NetworkAppExt, Receive, SendTo, Uuid};
use bevy::prelude::*;
use serde::{Deserialize, Serialize};
use crate::{AllPlayer, CurrentScene, Player};
use crate::{AllPlayers, CurrentScene, Player};
/// A plugin that handle, send or remove connections.
pub struct ConnectionPuglin;
@ -35,7 +35,7 @@ pub struct RemovePlayer(pub Uuid);
/// A fonction that handle join request and add it.
pub fn accept_connection(
all_players: Res<AllPlayer>,
all_players: Res<AllPlayers>,
mut requests_join: EventReader<Receive<RequestJoin>>,
mut add_players: EventWriter<SendTo<AddPlayer>>,
connection: Res<Connection>,
@ -67,7 +67,7 @@ pub fn accept_connection(
pub fn handle_change_player(
mut add_players: EventReader<Receive<AddPlayer>>,
mut remove_players: EventReader<Receive<RemovePlayer>>,
mut all_players: ResMut<AllPlayer>,
mut all_players: ResMut<AllPlayers>,
connection: Res<Connection>,
mut next_scene: ResMut<NextState<CurrentScene>>,
) {

View file

@ -5,7 +5,7 @@ use bevy::prelude::*;
use serde::{Deserialize, Serialize};
use self::connection::ConnectionPuglin;
use crate::{AllPlayer, Player};
use crate::{AllPlayers, Player};
pub mod connection;
@ -15,7 +15,7 @@ pub struct NetworkingPlugin;
impl Plugin for NetworkingPlugin {
fn build(&self, app: &mut App) {
app.add_plugins(ConnectionPuglin)
.init_resource::<AllPlayer>();
.init_resource::<AllPlayers>();
}
}
@ -32,7 +32,7 @@ pub enum GameRank {
Player,
}
impl AllPlayer {
impl AllPlayers {
/// Get the player by a connection.
pub fn get_by_connection(&self, connection: &Connection) -> Option<&Player> {
let uuid = connection.identifier()?;

View file

@ -6,7 +6,7 @@ use bevy_egui::{egui, EguiContexts};
use crate::networkinig::connection::RemovePlayer;
use crate::networkinig::GameRank;
use crate::{AllPlayer, CurrentScene};
use crate::{AllPlayers, CurrentScene};
/// The plugin for the lobby.
pub struct LobbyPlugin;
@ -22,7 +22,7 @@ fn lobby_ui(
mut ctx: EguiContexts,
mut next_scene: ResMut<NextState<CurrentScene>>,
connection: Res<Connection>,
all_players: Res<AllPlayer>,
all_players: Res<AllPlayers>,
mut kick_player: EventWriter<SendTo<RemovePlayer>>,
) {
egui::CentralPanel::default().show(ctx.ctx_mut(), |ui| {

View file

@ -6,7 +6,7 @@ use bevy_egui::{egui, EguiContexts};
use crate::networkinig::connection::RequestJoin;
use crate::networkinig::GameRank;
use crate::{AllPlayer, CurrentScene, Player};
use crate::{AllPlayers, CurrentScene, Player};
/// The plugin for the menu.
pub struct MenuPlugin;
@ -23,7 +23,7 @@ fn menu_ui(
mut next_scene: ResMut<NextState<CurrentScene>>,
mut request_join: EventWriter<SendTo<RequestJoin>>,
mut name: Local<String>,
mut all_player: ResMut<AllPlayer>,
mut all_player: ResMut<AllPlayers>,
connection: Res<Connection>,
) {
let Some(uuid) = connection.identifier() else {