From 3eaf3714dc0d00fd80cefbc852334d2598cec494 Mon Sep 17 00:00:00 2001 From: "Spencer C. Imbleau" Date: Sat, 23 Mar 2024 21:40:02 -0400 Subject: [PATCH] refactor: fmt --- bevy_rtc/src/client/plugin.rs | 11 +-- bevy_rtc/src/client/router/mod.rs | 16 +--- bevy_rtc/src/client/router/receive.rs | 5 +- bevy_rtc/src/client/router/send.rs | 4 +- bevy_rtc/src/client/systems.rs | 15 +--- bevy_rtc/src/latency.rs | 3 +- bevy_rtc/src/lib.rs | 4 +- bevy_rtc/src/server/plugin.rs | 14 +--- bevy_rtc/src/server/router/mod.rs | 16 +--- bevy_rtc/src/server/router/receive.rs | 5 +- bevy_rtc/src/server/router/send.rs | 51 +++++------- bevy_rtc/src/server/state.rs | 13 +-- bevy_rtc/src/server/system_params.rs | 34 ++------ bevy_rtc/src/server/systems.rs | 113 ++++++++++++-------------- demos/painting-client/src/main.rs | 35 +++----- demos/painting-client/src/painting.rs | 24 ++---- demos/painting-server/src/main.rs | 3 +- demos/ping-client/src/main.rs | 7 +- demos/ping-server/src/main.rs | 7 +- 19 files changed, 136 insertions(+), 244 deletions(-) diff --git a/bevy_rtc/src/client/plugin.rs b/bevy_rtc/src/client/plugin.rs index d6ad3c2..cd31788 100644 --- a/bevy_rtc/src/client/plugin.rs +++ b/bevy_rtc/src/client/plugin.rs @@ -1,6 +1,5 @@ use super::{ - systems, AddProtocolExt, ConnectionRequest, RtcClientEvent, - RtcClientStatus, RtcState, + systems, AddProtocolExt, ConnectionRequest, RtcClientEvent, RtcClientStatus, RtcState, }; use crate::{ events::SocketRecvEvent, @@ -21,10 +20,7 @@ impl Plugin for RtcClientPlugin { .init_state::() .add_event::() .add_event::() - .add_systems( - OnEnter(RtcClientStatus::Establishing), - systems::init_socket, - ) + .add_systems(OnEnter(RtcClientStatus::Establishing), systems::init_socket) .add_systems( OnEnter(RtcClientStatus::Disconnected), systems::reset_socket, @@ -46,8 +42,7 @@ impl Plugin for RtcClientPlugin { Update, ( systems::read_latency_tracers, - systems::send_latency_tracers - .run_if(on_timer(Duration::from_millis(100))), + systems::send_latency_tracers.run_if(on_timer(Duration::from_millis(100))), ) .run_if(in_state(RtcClientStatus::Connected)), ); diff --git a/bevy_rtc/src/client/router/mod.rs b/bevy_rtc/src/client/router/mod.rs index 3db92f3..908052e 100644 --- a/bevy_rtc/src/client/router/mod.rs +++ b/bevy_rtc/src/client/router/mod.rs @@ -17,10 +17,7 @@ pub trait AddProtocolExt { fn add_sendonly_protocol(&mut self) -> &mut Self; /// Register a protocol that is only read, never sent. Allocate a bounded /// buffer per peer for receiving, and do not run systems for sending. - fn add_readonly_bounded_protocol( - &mut self, - bound: usize, - ) -> &mut Self; + fn add_readonly_bounded_protocol(&mut self, bound: usize) -> &mut Self; /// Register a protocol that is only read, never sent. Use a growable buffer /// for receiving, and do not run systems for sending. fn add_readonly_unbounded_protocol(&mut self) -> &mut Self; @@ -43,8 +40,7 @@ impl AddProtocolExt for App { }) .add_systems( Last, - OutgoingMessages::::send_payloads - .run_if(resource_exists::), + OutgoingMessages::::send_payloads.run_if(resource_exists::), ); self } @@ -53,10 +49,7 @@ impl AddProtocolExt for App { self.add_readonly_bounded_protocol::(usize::MAX) } - fn add_readonly_bounded_protocol( - &mut self, - bound: usize, - ) -> &mut Self { + fn add_readonly_bounded_protocol(&mut self, bound: usize) -> &mut Self { if self.world.contains_resource::>() { panic!("client already contains resource: {}", M::reflect_name()); } @@ -102,8 +95,7 @@ impl AddProtocolExt for App { ) .add_systems( Last, - OutgoingMessages::::send_payloads - .run_if(resource_exists::), + OutgoingMessages::::send_payloads.run_if(resource_exists::), ); self } diff --git a/bevy_rtc/src/client/router/receive.rs b/bevy_rtc/src/client/router/receive.rs index 2cf449c..aeb5457 100644 --- a/bevy_rtc/src/client/router/receive.rs +++ b/bevy_rtc/src/client/router/receive.rs @@ -9,10 +9,7 @@ pub struct IncomingMessages { } impl IncomingMessages { - pub fn receive_payloads( - mut incoming: ResMut, - mut events: EventReader, - ) { + pub fn receive_payloads(mut incoming: ResMut, mut events: EventReader) { let bound = incoming.bound; let packets: Vec<_> = events .read() diff --git a/bevy_rtc/src/client/router/send.rs b/bevy_rtc/src/client/router/send.rs index 8d4c319..2716189 100644 --- a/bevy_rtc/src/client/router/send.rs +++ b/bevy_rtc/src/client/router/send.rs @@ -32,9 +32,7 @@ impl OutgoingMessages { .try_send(message.to_packet(), host) .is_err() { - error!( - "failed to send reliable packet to {host}: {message:?}" - ); + error!("failed to send reliable packet to {host}: {message:?}"); } } if !queue.reliable_to_host.is_empty() { diff --git a/bevy_rtc/src/client/systems.rs b/bevy_rtc/src/client/systems.rs index e3210c6..66dda9a 100644 --- a/bevy_rtc/src/client/systems.rs +++ b/bevy_rtc/src/client/systems.rs @@ -66,9 +66,7 @@ pub(crate) fn connection_request_handler( ) { match cxn_event_reader.read().next() { Some(ConnectionRequest::Connect { addr }) => { - if let RtcClientStatus::Disconnected = - current_connection_state.get() - { + if let RtcClientStatus::Disconnected = current_connection_state.get() { debug!( previous = format!("{current_connection_state:?}"), "set state: connecting" @@ -121,8 +119,7 @@ pub(crate) fn client_event_writer( event_wtr.send(RtcClientEvent::ConnectedToHost(id)); } matchbox_socket::PeerState::Disconnected => { - next_connection_state - .set(RtcClientStatus::Disconnected); + next_connection_state.set(RtcClientStatus::Disconnected); event_wtr.send(RtcClientEvent::DisconnectedFromHost { reason: Some("Server reset".to_string()), }); @@ -143,10 +140,7 @@ pub(crate) fn client_event_writer( } } -pub fn send_latency_tracers( - state: Res, - mut writer: NetworkWriter, -) { +pub fn send_latency_tracers(state: Res, mut writer: NetworkWriter) { let peer_id = state.id.expect("expected peer id"); writer.unreliable_to_host(LatencyTracerPayload::new(peer_id)); } @@ -190,8 +184,7 @@ pub fn calculate_latency( match last_latency { Some(last_latency) => { state.latency.replace(last_latency); - let current_smoothed = - state.smoothed_latency.get_or_insert(last_latency); + let current_smoothed = state.smoothed_latency.get_or_insert(last_latency); const AVG_SECS: f32 = 1.0; // 1 second average let alpha = 1.0 - f32::exp(-time.delta_seconds() / AVG_SECS); let current_f32 = current_smoothed.as_secs_f32() * (1.0 - alpha); diff --git a/bevy_rtc/src/latency.rs b/bevy_rtc/src/latency.rs index d61b4f5..88a0e0f 100644 --- a/bevy_rtc/src/latency.rs +++ b/bevy_rtc/src/latency.rs @@ -71,8 +71,7 @@ impl LatencyTracer { .unwrap_or(std::cmp::Ordering::Equal) }); let mid = self.latency_hist.len() / 2; - let median = - self.latency_hist.get(mid).map(|(_, lat)| lat.as_secs_f32()); + let median = self.latency_hist.get(mid).map(|(_, lat)| lat.as_secs_f32()); self.last_latency = median; } } diff --git a/bevy_rtc/src/lib.rs b/bevy_rtc/src/lib.rs index f0ef9db..81a1e0c 100644 --- a/bevy_rtc/src/lib.rs +++ b/bevy_rtc/src/lib.rs @@ -1,9 +1,7 @@ #![cfg_attr(docsrs, feature(doc_cfg))] #[cfg(all(target_arch = "wasm32", feature = "server"))] -compile_error!( - "The 'server' feature is not supported on the wasm32 target architecture." -); +compile_error!("The 'server' feature is not supported on the wasm32 target architecture."); pub(crate) mod events; pub(crate) mod latency; diff --git a/bevy_rtc/src/server/plugin.rs b/bevy_rtc/src/server/plugin.rs index 72fce01..74a325d 100644 --- a/bevy_rtc/src/server/plugin.rs +++ b/bevy_rtc/src/server/plugin.rs @@ -7,9 +7,7 @@ use bevy::{prelude::*, time::common_conditions::on_timer}; use instant::Duration; use std::net::Ipv4Addr; -use super::{ - systems, AddProtocolExt, RtcServerEvent, RtcServerStatus, RtcState, -}; +use super::{systems, AddProtocolExt, RtcServerEvent, RtcServerStatus, RtcState}; /// A plugin to serve a WebRTC server. pub struct RtcServerPlugin { @@ -23,15 +21,12 @@ impl Plugin for RtcServerPlugin { .add_event::() .add_bounded_protocol::(2) .init_state::() - .insert_resource(RtcState::new( - (Ipv4Addr::UNSPECIFIED, self.port).into(), - )) + .insert_resource(RtcState::new((Ipv4Addr::UNSPECIFIED, self.port).into())) .add_systems( Startup, // We start a signaling server on localhost and the first peer // becomes host - (systems::init_signaling_server, systems::init_server_socket) - .chain(), + (systems::init_signaling_server, systems::init_server_socket).chain(), ) .add_systems( First, @@ -47,8 +42,7 @@ impl Plugin for RtcServerPlugin { Update, ( systems::read_latency_tracers, - systems::send_latency_tracers - .run_if(on_timer(Duration::from_millis(100))), + systems::send_latency_tracers.run_if(on_timer(Duration::from_millis(100))), ) .run_if(in_state(RtcServerStatus::Ready)), ); diff --git a/bevy_rtc/src/server/router/mod.rs b/bevy_rtc/src/server/router/mod.rs index db4e012..e9b94ce 100644 --- a/bevy_rtc/src/server/router/mod.rs +++ b/bevy_rtc/src/server/router/mod.rs @@ -16,10 +16,7 @@ pub trait AddProtocolExt { fn add_sendonly_protocol(&mut self) -> &mut Self; /// Register a protocol that is only read, never sent. Allocate a bounded /// buffer per peer for receiving, and do not run systems for sending. - fn add_readonly_bounded_protocol( - &mut self, - bound: usize, - ) -> &mut Self; + fn add_readonly_bounded_protocol(&mut self, bound: usize) -> &mut Self; /// Register a protocol that is only read, never sent. Use a growable buffer /// for receiving, and do not run systems for sending. fn add_readonly_unbounded_protocol(&mut self) -> &mut Self; @@ -46,8 +43,7 @@ impl AddProtocolExt for App { }) .add_systems( Last, - OutgoingMessages::::send_payloads - .run_if(resource_exists::), + OutgoingMessages::::send_payloads.run_if(resource_exists::), ); self @@ -57,10 +53,7 @@ impl AddProtocolExt for App { self.add_readonly_bounded_protocol::(usize::MAX) } - fn add_readonly_bounded_protocol( - &mut self, - bound: usize, - ) -> &mut Self { + fn add_readonly_bounded_protocol(&mut self, bound: usize) -> &mut Self { if self.world.contains_resource::>() { panic!("server already contains resource: {}", M::reflect_name()); } @@ -111,8 +104,7 @@ impl AddProtocolExt for App { ) .add_systems( Last, - OutgoingMessages::::send_payloads - .run_if(resource_exists::), + OutgoingMessages::::send_payloads.run_if(resource_exists::), ); self diff --git a/bevy_rtc/src/server/router/receive.rs b/bevy_rtc/src/server/router/receive.rs index 6bd6d4f..2d20343 100644 --- a/bevy_rtc/src/server/router/receive.rs +++ b/bevy_rtc/src/server/router/receive.rs @@ -10,10 +10,7 @@ pub struct IncomingMessages { } impl IncomingMessages { - pub fn receive_payloads( - mut incoming: ResMut, - mut events: EventReader, - ) { + pub fn receive_payloads(mut incoming: ResMut, mut events: EventReader) { let bound = incoming.bound; let packets: HashMap> = events.read().fold( HashMap::new(), diff --git a/bevy_rtc/src/server/router/send.rs b/bevy_rtc/src/server/router/send.rs index 464e49c..078d79a 100644 --- a/bevy_rtc/src/server/router/send.rs +++ b/bevy_rtc/src/server/router/send.rs @@ -27,10 +27,7 @@ impl OutgoingMessages { self.unreliable_to_peer.clear(); } - pub(crate) fn send_payloads( - mut queue: ResMut, - mut socket: ResMut, - ) { + pub(crate) fn send_payloads(mut queue: ResMut, mut socket: ResMut) { // Server is sending for message in queue.reliable_to_all.iter() { let peers: Vec = socket.connected_peers().collect(); @@ -40,9 +37,7 @@ impl OutgoingMessages { .try_send(message.to_packet(), peer) .is_err() { - error!( - "failed to send reliable packet to {peer}: {message:?}" - ); + error!("failed to send reliable packet to {peer}: {message:?}"); } }) } @@ -56,12 +51,14 @@ impl OutgoingMessages { for message in queue.unreliable_to_all.iter() { let peers: Vec = socket.connected_peers().collect(); peers.into_iter().for_each(|peer| { - if socket - .channel_mut(UNRELIABLE_CHANNEL_INDEX) - .try_send(message.to_packet(), peer).is_err() { - error!("failed to send unreliable packet to {peer}: {message:?}"); - } - }) + if socket + .channel_mut(UNRELIABLE_CHANNEL_INDEX) + .try_send(message.to_packet(), peer) + .is_err() + { + error!("failed to send unreliable packet to {peer}: {message:?}"); + } + }) } if !queue.unreliable_to_all.is_empty() { trace!( @@ -71,17 +68,14 @@ impl OutgoingMessages { ); } for (peer, message) in queue.reliable_to_all_except.iter() { - let peers: Vec = - socket.connected_peers().filter(|p| p != peer).collect(); + let peers: Vec = socket.connected_peers().filter(|p| p != peer).collect(); peers.into_iter().for_each(|peer| { if socket .channel_mut(RELIABLE_CHANNEL_INDEX) .try_send(message.to_packet(), peer) .is_err() { - error!( - "failed to send reliable packet to {peer}: {message:?}" - ); + error!("failed to send reliable packet to {peer}: {message:?}"); } }); } @@ -93,15 +87,16 @@ impl OutgoingMessages { ); } for (peer, message) in queue.unreliable_to_all_except.iter() { - let peers: Vec = - socket.connected_peers().filter(|p| p != peer).collect(); + let peers: Vec = socket.connected_peers().filter(|p| p != peer).collect(); peers.into_iter().for_each(|peer| { - if socket - .channel_mut(UNRELIABLE_CHANNEL_INDEX) - .try_send(message.to_packet(), peer).is_err() { - error!("failed to send unreliable packet to {peer}: {message:?}"); - } - }); + if socket + .channel_mut(UNRELIABLE_CHANNEL_INDEX) + .try_send(message.to_packet(), peer) + .is_err() + { + error!("failed to send unreliable packet to {peer}: {message:?}"); + } + }); } if !queue.unreliable_to_all_except.is_empty() { trace!( @@ -132,9 +127,7 @@ impl OutgoingMessages { .try_send(message.to_packet(), *peer) .is_err() { - error!( - "failed to send unreliable packet to {peer}: {message:?}" - ); + error!("failed to send unreliable packet to {peer}: {message:?}"); } } if !queue.unreliable_to_peer.is_empty() { diff --git a/bevy_rtc/src/server/state.rs b/bevy_rtc/src/server/state.rs index 1723f53..06aee42 100644 --- a/bevy_rtc/src/server/state.rs +++ b/bevy_rtc/src/server/state.rs @@ -52,9 +52,7 @@ impl RtcState { } /// Return the instantaneous latencies for all peers - pub fn iter_latencies( - &self, - ) -> impl Iterator + '_ { + pub fn iter_latencies(&self) -> impl Iterator + '_ { self.latencies .iter() .filter_map(|(p, l)| l.map(|l| (p, l))) @@ -62,9 +60,7 @@ impl RtcState { } /// Return the smoothed latencies for all peers - pub fn iter_smoothed_latencies( - &self, - ) -> impl Iterator + '_ { + pub fn iter_smoothed_latencies(&self) -> impl Iterator + '_ { self.smoothed_latencies .iter() .filter_map(|(p, l)| l.map(|l| (p, l))) @@ -77,10 +73,7 @@ impl RtcState { } /// Return the smoothed latency for a peer if they exist - pub fn get_smoothed_latency_for( - &self, - peer_id: PeerId, - ) -> Option { + pub fn get_smoothed_latency_for(&self, peer_id: PeerId) -> Option { *self.smoothed_latencies.get(&peer_id)? } } diff --git a/bevy_rtc/src/server/system_params.rs b/bevy_rtc/src/server/system_params.rs index 6544dba..56bc3ba 100644 --- a/bevy_rtc/src/server/system_params.rs +++ b/bevy_rtc/src/server/system_params.rs @@ -27,13 +27,13 @@ impl<'w, M: Payload> NetworkReader<'w, M> { /// Consumes all messages in the buffer and iterate on them. pub fn read(&mut self) -> Vec<(PeerId, M)> { - self.incoming.messages.drain().fold( - vec![], - |mut v, (peer, payloads)| { + self.incoming + .messages + .drain() + .fold(vec![], |mut v, (peer, payloads)| { v.extend(payloads.into_iter().map(|p| (peer, p))); v - }, - ) + }) } } @@ -93,22 +93,14 @@ impl<'w, M: Payload> NetworkWriter<'w, M> { /// Send a payload to a peer with reliability. The payload is /// created with lazy behavior, only when the send rate allows. - pub fn reliable_to_peer_with( - &mut self, - peer_id: PeerId, - message_fn: impl Fn() -> M, - ) { + pub fn reliable_to_peer_with(&mut self, peer_id: PeerId, message_fn: impl Fn() -> M) { self.outgoing.reliable_to_peer.push((peer_id, message_fn())); } /// Send a payload to a peer with no expectation of delivery. /// The payload is created with lazy behavior, only when the send rate /// allows. - pub fn unreliable_to_peer_with( - &mut self, - peer_id: PeerId, - message_fn: impl Fn() -> M, - ) { + pub fn unreliable_to_peer_with(&mut self, peer_id: PeerId, message_fn: impl Fn() -> M) { self.outgoing .unreliable_to_peer .push((peer_id, message_fn())); @@ -117,11 +109,7 @@ impl<'w, M: Payload> NetworkWriter<'w, M> { /// Send a payload to all connected peers except one with reliability. The /// payload is created with lazy behavior, only when the send rate /// allows. - pub fn reliable_to_all_except_with( - &mut self, - peer_id: PeerId, - message_fn: impl Fn() -> M, - ) { + pub fn reliable_to_all_except_with(&mut self, peer_id: PeerId, message_fn: impl Fn() -> M) { self.outgoing .reliable_to_all_except .push((peer_id, message_fn())); @@ -130,11 +118,7 @@ impl<'w, M: Payload> NetworkWriter<'w, M> { /// Send a payload to all connected peers except one with no expectation of /// delivery. The payload is created with lazy behavior, only when the /// send rate allows. - pub fn unreliable_to_all_except_with( - &mut self, - peer_id: PeerId, - message_fn: impl Fn() -> M, - ) { + pub fn unreliable_to_all_except_with(&mut self, peer_id: PeerId, message_fn: impl Fn() -> M) { self.outgoing .unreliable_to_all_except .push((peer_id, message_fn())); diff --git a/bevy_rtc/src/server/systems.rs b/bevy_rtc/src/server/systems.rs index af5271f..c85efe2 100644 --- a/bevy_rtc/src/server/systems.rs +++ b/bevy_rtc/src/server/systems.rs @@ -1,7 +1,4 @@ -use super::{ - events::RtcServerEvent, NetworkReader, NetworkWriter, RtcServerStatus, - RtcState, -}; +use super::{events::RtcServerEvent, NetworkReader, NetworkWriter, RtcServerStatus, RtcState}; use crate::{ latency::{LatencyTracer, LatencyTracerPayload}, socket::RtcSocket, @@ -25,57 +22,54 @@ use std::sync::{ /// Initialize the signaling server pub fn init_signaling_server(mut commands: Commands, rtc_state: Res) { let host_ready: Arc = Arc::new(AtomicBool::new(false)); - let builder = SignalingServerBuilder::new( - rtc_state.addr, - ClientServer, - ClientServerState::default(), - ) - .on_id_assignment(|(socket, id)| info!("{socket} assigned {id}")) - .on_host_connected({ - let addr = rtc_state.addr; - let host_ready = host_ready.clone(); - move |id| { - host_ready.store(true, Ordering::Relaxed); - info!("Host ready: {id}"); - info!("Ready for clients (broadcasting on {addr})"); - } - }) - .on_host_disconnected(|id| panic!("Host left: {id}")) - .on_client_connected(|id| info!("Client joined: {id}")) - .on_client_disconnected(|id| info!("Client left: {id}")) - .on_connection_request({ - // The bevy_matchbox signaling server assigns the first connected - // peer as host/server. As a result, we deny all connections until a - // loopback (localhost) address has successfully connected. This - // loopback address is ourselves, and that logic is in - // `init_server_socket` below. - let ready = host_ready.clone(); - move |request| { - if ready.load(Ordering::Relaxed) { - Ok(true) - } else { - let origin = request.origin.ip(); - match origin { - std::net::IpAddr::V4(ip) => { - if ip.is_loopback() { - Ok(true) - } else { - Ok(false) - } - } - std::net::IpAddr::V6(ip) => { - if ip.is_loopback() { - Ok(true) - } else { - Ok(false) + let builder = + SignalingServerBuilder::new(rtc_state.addr, ClientServer, ClientServerState::default()) + .on_id_assignment(|(socket, id)| info!("{socket} assigned {id}")) + .on_host_connected({ + let addr = rtc_state.addr; + let host_ready = host_ready.clone(); + move |id| { + host_ready.store(true, Ordering::Relaxed); + info!("Host ready: {id}"); + info!("Ready for clients (broadcasting on {addr})"); + } + }) + .on_host_disconnected(|id| panic!("Host left: {id}")) + .on_client_connected(|id| info!("Client joined: {id}")) + .on_client_disconnected(|id| info!("Client left: {id}")) + .on_connection_request({ + // The bevy_matchbox signaling server assigns the first connected + // peer as host/server. As a result, we deny all connections until a + // loopback (localhost) address has successfully connected. This + // loopback address is ourselves, and that logic is in + // `init_server_socket` below. + let ready = host_ready.clone(); + move |request| { + if ready.load(Ordering::Relaxed) { + Ok(true) + } else { + let origin = request.origin.ip(); + match origin { + std::net::IpAddr::V4(ip) => { + if ip.is_loopback() { + Ok(true) + } else { + Ok(false) + } + } + std::net::IpAddr::V6(ip) => { + if ip.is_loopback() { + Ok(true) + } else { + Ok(false) + } + } } } } - } - } - }) - .cors() - .trace(); + }) + .cors() + .trace(); commands.start_server(builder); } @@ -134,10 +128,7 @@ pub fn server_event_writer( } } -pub fn send_latency_tracers( - state: Res, - mut writer: NetworkWriter, -) { +pub fn send_latency_tracers(state: Res, mut writer: NetworkWriter) { let peer_id = state.id.expect("expected peer id"); writer.unreliable_to_all(LatencyTracerPayload::new(peer_id)); } @@ -157,9 +148,7 @@ pub fn read_latency_tracers( // 2) The client sent a tracer to us, and expect it back if payload.from == host_id { // Case 1 - if let Some(mut tracer) = - tracers.iter_mut().find(|tracer| tracer.peer_id == from) - { + if let Some(mut tracer) = tracers.iter_mut().find(|tracer| tracer.peer_id == from) { tracer.process(payload); } } else if payload.from == from { @@ -197,11 +186,9 @@ pub fn calculate_latency( .get_or_insert(last_latency); const AVG_SECS: f32 = 1.0; // 1 second average let alpha = 1.0 - f32::exp(-time.delta_seconds() / AVG_SECS); - let current_f32 = - current_smoothed.as_secs_f32() * (1.0 - alpha); + let current_f32 = current_smoothed.as_secs_f32() * (1.0 - alpha); let delta = last_latency.as_secs_f32() * alpha; - *current_smoothed = - Duration::from_secs_f32(current_f32 + delta); + *current_smoothed = Duration::from_secs_f32(current_f32 + delta); } None => { state.latencies.insert(tracer.peer_id, None); diff --git a/demos/painting-client/src/main.rs b/demos/painting-client/src/main.rs index c8e735a..4e54d0d 100644 --- a/demos/painting-client/src/main.rs +++ b/demos/painting-client/src/main.rs @@ -11,8 +11,8 @@ use bevy_egui::{ EguiContexts, EguiPlugin, }; use bevy_rtc::client::{ - AddProtocolExt, ConnectionRequest, NetworkReader, NetworkWriter, - RtcClientEvent, RtcClientPlugin, RtcClientStatus, RtcState, + AddProtocolExt, ConnectionRequest, NetworkReader, NetworkWriter, RtcClientEvent, + RtcClientPlugin, RtcClientStatus, RtcState, }; use chat::ChatState; use painting::PaintingState; @@ -21,17 +21,15 @@ use std::ops::DerefMut; fn main() { App::new() - .add_plugins(DefaultPlugins.set(LogPlugin::default()).set( - WindowPlugin { - primary_window: Some(bevy::window::Window { - present_mode: PresentMode::AutoVsync, - prevent_default_event_handling: true, - resolution: WindowResolution::new(450., 500.), - ..default() - }), + .add_plugins(DefaultPlugins.set(LogPlugin::default()).set(WindowPlugin { + primary_window: Some(bevy::window::Window { + present_mode: PresentMode::AutoVsync, + prevent_default_event_handling: true, + resolution: WindowResolution::new(450., 500.), ..default() - }, - )) + }), + ..default() + })) .add_plugins(EguiPlugin) .add_plugins(RtcClientPlugin) .add_unbounded_protocol::() @@ -55,15 +53,11 @@ fn main() { ) .add_systems( OnEnter(RtcClientStatus::Establishing), - |mut commands: Commands| { - commands.insert_resource(ClearColor(Color::ORANGE)) - }, + |mut commands: Commands| commands.insert_resource(ClearColor(Color::ORANGE)), ) .add_systems( OnEnter(RtcClientStatus::Connected), - |mut commands: Commands| { - commands.insert_resource(ClearColor(Color::GREEN)) - }, + |mut commands: Commands| commands.insert_resource(ClearColor(Color::GREEN)), ) .add_systems( OnEnter(RtcClientStatus::Disconnected), @@ -96,10 +90,7 @@ fn print_events(mut events: EventReader) { } } -fn read_chats( - mut chat_state: ResMut, - mut chat_read: NetworkReader, -) { +fn read_chats(mut chat_state: ResMut, mut chat_read: NetworkReader) { for chat in chat_read.read() { chat_state.messages.insert(0, chat); } diff --git a/demos/painting-client/src/painting.rs b/demos/painting-client/src/painting.rs index 6d723c4..fe99810 100644 --- a/demos/painting-client/src/painting.rs +++ b/demos/painting-client/src/painting.rs @@ -69,12 +69,7 @@ impl PaintingState { if current_line.last() != Some(&canvas_pos) { if let Some(last_point) = current_line.last() { // Line = current_line.last() -> canvas_pos - let (x1, y1, x2, y2) = ( - last_point.x, - last_point.y, - canvas_pos.x, - canvas_pos.y, - ); + let (x1, y1, x2, y2) = (last_point.x, last_point.y, canvas_pos.x, canvas_pos.y); // Send to out out.replace((x1, y1, x2, y2)); } @@ -86,15 +81,14 @@ impl PaintingState { response.mark_changed(); } - let shapes = - self.lines - .iter() - .filter(|line| line.len() >= 2) - .map(|line| { - let points: Vec = - line.iter().map(|p| to_screen * *p).collect(); - egui::Shape::line(points, self.stroke) - }); + let shapes = self + .lines + .iter() + .filter(|line| line.len() >= 2) + .map(|line| { + let points: Vec = line.iter().map(|p| to_screen * *p).collect(); + egui::Shape::line(points, self.stroke) + }); painter.extend(shapes); diff --git a/demos/painting-server/src/main.rs b/demos/painting-server/src/main.rs index ec0e1d8..ffaa353 100644 --- a/demos/painting-server/src/main.rs +++ b/demos/painting-server/src/main.rs @@ -2,8 +2,7 @@ use std::time::Duration; use bevy::{log::LogPlugin, prelude::*, time::common_conditions::on_timer}; use bevy_rtc::server::{ - AddProtocolExt, NetworkReader, NetworkWriter, RtcServerEvent, - RtcServerPlugin, RtcState, + AddProtocolExt, NetworkReader, NetworkWriter, RtcServerEvent, RtcServerPlugin, RtcState, }; use protocol::{ChatPayload, DrawLinePayload}; diff --git a/demos/ping-client/src/main.rs b/demos/ping-client/src/main.rs index f818a16..98cdfb1 100644 --- a/demos/ping-client/src/main.rs +++ b/demos/ping-client/src/main.rs @@ -2,8 +2,8 @@ use std::time::Duration; use bevy::{log::LogPlugin, prelude::*, time::common_conditions::on_timer}; use bevy_rtc::client::{ - AddProtocolExt, ConnectionRequest, NetworkReader, NetworkWriter, - RtcClientPlugin, RtcClientStatus, + AddProtocolExt, ConnectionRequest, NetworkReader, NetworkWriter, RtcClientPlugin, + RtcClientStatus, }; use protocol::PingPayload; @@ -30,8 +30,7 @@ fn main() { } } .run_if( - on_timer(Duration::from_secs(1)) - .and_then(in_state(RtcClientStatus::Connected)), + on_timer(Duration::from_secs(1)).and_then(in_state(RtcClientStatus::Connected)), ), ) .add_systems(Update, |mut reader: NetworkReader| { diff --git a/demos/ping-server/src/main.rs b/demos/ping-server/src/main.rs index 91d20b3..1f4205f 100644 --- a/demos/ping-server/src/main.rs +++ b/demos/ping-server/src/main.rs @@ -1,7 +1,5 @@ use bevy::{log::LogPlugin, prelude::*}; -use bevy_rtc::server::{ - AddProtocolExt, NetworkReader, NetworkWriter, RtcServerPlugin, -}; +use bevy_rtc::server::{AddProtocolExt, NetworkReader, NetworkWriter, RtcServerPlugin}; use protocol::PingPayload; fn main() { @@ -12,8 +10,7 @@ fn main() { .add_bounded_protocol::(1) .add_systems( Update, - |mut reader: NetworkReader, - mut writer: NetworkWriter| { + |mut reader: NetworkReader, mut writer: NetworkWriter| { for (peer_id, packet) in reader.read() { if let PingPayload::Ping = packet { info!("Received ping! Sending pong...");