diff --git a/src/game/net.rs b/src/game/net.rs index 2c68886..5eb3538 100644 --- a/src/game/net.rs +++ b/src/game/net.rs @@ -2,28 +2,20 @@ use bevy::prelude::*; use crate::net::prelude::*; -pub fn handle_new_peer(new_peers: Query<&PeerID, Added>) { - for peer in new_peers { - info!("Peer {} was added", peer.id); - } +pub fn handle_new_peer(add: On, peers: Query<&PeerID>) -> Result { + let peer = peers.get(add.entity)?; + info!("Game: Peer {} was added", peer.id); + Ok(()) } -pub fn handle_deleted_peer( - mut old_peers: RemovedComponents, - peers: Query<&PeerID>, -) -> Result { - for entity in old_peers.read() { - if let Ok(peer) = peers.get(entity) { - info!("Peer {} was removed", peer.id); - } else { - info!("Peer {} was removed", entity); - } - } +pub fn handle_deleted_peer(remove: On, peers: Query<&PeerID>) -> Result { + let peer = peers.get(remove.entity)?; + info!("Game: Peer {} was removed", peer.id); Ok(()) } pub fn handle_incoming_packets(mut packets: MessageReader) { for InboundPacket(packet) in packets.read() { - info!("Packet received: {:?}", packet.message); + info!("Game: Packet received: {:?}", packet.message); } } diff --git a/src/game/plugin.rs b/src/game/plugin.rs index a7fdf48..586dd48 100644 --- a/src/game/plugin.rs +++ b/src/game/plugin.rs @@ -74,20 +74,13 @@ impl Plugin for GamePlugin { ) .add_systems( OnEnter(AppState::InGame), - ( - setup_from_seed, - (setup_player, setup_balls, setup_walls).after(setup_from_seed), - ), + (setup_from_seed, (setup_player, setup_balls, setup_walls)).chain(), ) .add_systems( FixedUpdate, ( check_for_seed.run_if(in_state(AppState::Loading)), - ( - handle_new_peer, - handle_deleted_peer, - handle_incoming_packets, - ), + handle_incoming_packets, ), ) .add_systems( @@ -103,7 +96,9 @@ impl Plugin for GamePlugin { ), quit.run_if(input_pressed(KeyCode::KeyQ)), ), - ); + ) + .add_observer(handle_new_peer) + .add_observer(handle_deleted_peer); match self.source { DataSource::Address(peer) => {