From 1a5a628000530638e5e1cbd8fa73bc91f6e6f643 Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Wed, 9 Jul 2025 19:37:46 -0400 Subject: [PATCH] Partial: Dedicated Peer distribution system This is an uncompleted commit to move the work over to my other machine. Should compile though. --- src/game/net.rs | 4 +- src/game/ui.rs | 4 +- src/net/distribution.rs | 2 +- src/net/io.rs | 45 ++++++------ src/net/peer.rs | 148 +++++++++++++++++++++++++++++++++++----- src/net/plugin.rs | 11 +-- 6 files changed, 161 insertions(+), 53 deletions(-) diff --git a/src/game/net.rs b/src/game/net.rs index 2ffa40b..8e43e3f 100644 --- a/src/game/net.rs +++ b/src/game/net.rs @@ -4,14 +4,14 @@ use crate::net::prelude::*; pub fn handle_new_peer(new_peers: Query<&Peer, Added>) { for peer in new_peers { - info!("Peer {} was added", peer.uuid); + info!("Peer {} was added", peer.id); } } pub fn handle_deleted_peer(mut old_peers: RemovedComponents, peers: Query<&Peer>) -> Result { for entity in old_peers.read() { if let Ok(peer) = peers.get(entity) { - info!("Peer {} was removed", peer.uuid); + info!("Peer {} was removed", peer.id); } else { info!("Peer {} was removed", entity); } diff --git a/src/game/ui.rs b/src/game/ui.rs index 3ee6c50..391a39f 100644 --- a/src/game/ui.rs +++ b/src/game/ui.rs @@ -90,8 +90,8 @@ pub fn update_peer_ui_timings( if let Ok((peer, recv, send)) = peers.get(id.0) { **row = format!( "{} {:.2} {:.2}", - peer.uuid, - (time.elapsed() - recv.time().unwrap_or(default())).as_secs_f64(), + peer.id, + (time.elapsed() - recv.time()).as_secs_f64(), (time.elapsed() - send.time()).as_secs_f64() ) } diff --git a/src/net/distribution.rs b/src/net/distribution.rs index e5e512d..161ea1a 100644 --- a/src/net/distribution.rs +++ b/src/net/distribution.rs @@ -26,7 +26,7 @@ fn sender> + Component + Clone>( for entity in entities { outbound.write(OutboundPacket(Packet::new( (*entity).clone().into(), - peer.uuid, + peer.id, ))); } } diff --git a/src/net/io.rs b/src/net/io.rs index 7dcceca..25774b6 100644 --- a/src/net/io.rs +++ b/src/net/io.rs @@ -3,16 +3,18 @@ use std::time::Duration; use bevy::prelude::*; use uuid::Uuid; +use crate::net::peer::PotentialPeer; + use super::{ packet::{InboundPacket, OutboundPacket, Packet}, - peer::{Peer, PeerChangeEvent, PeerMap, PeerReceiveTiming, PeerSendTiming}, + peer::{Peer, PeerChangeEvent, PeerData, PeerMap, PeerReceiveTiming, PeerSendTiming}, queues::{NetworkReceive, NetworkSend}, }; pub fn handle_network_input( from_socket: Res, peer_map: Res, - mut peers: Query<(&Peer, &mut PeerReceiveTiming)>, + mut peers: Query<(&PeerData, &mut PeerReceiveTiming)>, mut to_app: EventWriter, time: Res