From b7db196ae92898e79575bdfe268c87f07585819d Mon Sep 17 00:00:00 2001 From: Max Whitehead <35712032+MaxCWhitehead@users.noreply.github.com> Date: Sun, 21 Apr 2024 21:54:42 -0700 Subject: [PATCH] feat: Add socket to NetworkInfo (#390) Expose socket via `NetworkInfo` (resource managed by net session runner). `NetworkMatchSocket` resource only exists in menu session. This change makes it easier to get socket from game session. --- framework_crates/bones_framework/src/networking.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/framework_crates/bones_framework/src/networking.rs b/framework_crates/bones_framework/src/networking.rs index 7a11001a15..8f614e7d23 100644 --- a/framework_crates/bones_framework/src/networking.rs +++ b/framework_crates/bones_framework/src/networking.rs @@ -205,7 +205,8 @@ pub enum SocketTarget { } /// Resource updated each frame exposing current frame and last confirmed of online session. -#[derive(HasSchema, Copy, Clone, Default)] +#[derive(HasSchema, Clone)] +#[schema(no_default)] pub struct NetworkInfo { /// Current frame of simulation step pub current_frame: i32, @@ -213,6 +214,9 @@ pub struct NetworkInfo { /// Last confirmed frame by all clients. /// Anything that occurred on this frame is agreed upon by all clients. pub last_confirmed_frame: i32, + + /// Socket + pub socket: BoxedNonBlockingSocket, } /// [`SessionRunner`] implementation that uses [`ggrs`] for network play. @@ -511,6 +515,7 @@ where world.insert_resource(NetworkInfo { current_frame: self.session.current_frame(), last_confirmed_frame: self.session.confirmed_frame(), + socket: self.socket.clone(), }); {