From 1ec41be4083696df817c9e10c0154181b561c3da Mon Sep 17 00:00:00 2001 From: core Date: Sat, 25 Nov 2023 00:21:42 -0500 Subject: [PATCH] bevy_twite is having some serious doing-things issues --- .gitignore | 3 ++- Cargo.lock | 4 ++-- Cargo.toml | 3 ++- server/src/main.rs | 26 ++++++++++++++++---------- starkingdoms-client/src/gateway.ts | 6 +++++- 5 files changed, 27 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 0b13dbc94863b78db57b0e16a72e4741162c5a53..fb5a18b3bcf65b38aad1bfeafe0174bfc2080de9 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ build.ninja api/config.toml api/.env assets/dist -assets/final \ No newline at end of file +assets/final +starkingdoms-client/node_modules diff --git a/Cargo.lock b/Cargo.lock index 015343af992847fa9a761c959d975796a680fafa..942bc6a541054229686aa8005c353df5e8a8de03 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -380,7 +380,7 @@ dependencies = [ [[package]] name = "bevy_twite" version = "0.1.0" -source = "git+https://gitlab.com/c0repwn3r/twite.git#5c8672e1321b445540c8577e6c8066df3844c00d" +source = "git+https://gitlab.com/ghostlyzsh/twite.git#f04df32d81c3b460fdd4d80930d19f537b860f1e" dependencies = [ "bevy", "crossbeam-channel", @@ -1167,7 +1167,7 @@ dependencies = [ [[package]] name = "twite" version = "0.1.0" -source = "git+https://gitlab.com/c0repwn3r/twite.git#5c8672e1321b445540c8577e6c8066df3844c00d" +source = "git+https://gitlab.com/ghostlyzsh/twite.git#f04df32d81c3b460fdd4d80930d19f537b860f1e" dependencies = [ "base64", "rand", diff --git a/Cargo.toml b/Cargo.toml index 964c1bd5bb35dc67d5fe70c5c0c97fa71034c939..ad684378463db4ec3028c5d73af19fc4bd777452 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,5 @@ [workspace] members = [ "server", -] \ No newline at end of file +] +resolver = "2" diff --git a/server/src/main.rs b/server/src/main.rs index b69ea37d7fedca41e2de9bc90e1f78fdbde6aada..057813639e8aa338d4ea31f03300b46d2a6f5cdd 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -22,8 +22,8 @@ fn main() { .add_plugins(MinimalPlugins) .add_plugins(TwiteServerPlugin) .add_systems(Startup, spawn_planets) - .add_systems(Update, on_connection) - .add_systems(Update, on_position_change) + .add_systems(FixedUpdate, on_connection) + .add_systems(FixedUpdate, on_position_change) .run(); info!("Goodbye!"); @@ -46,7 +46,9 @@ fn on_connection( ) { let mut packets = Vec::new(); for ev in reader.read(&events) { + info!("{:?}", ev); if let ServerEvent::Connection(addr) = ev { + info!("client connected"); let _id = commands .spawn(PlayerBundle { part: PartBundle { @@ -86,17 +88,19 @@ fn on_position_change( planet_query: Query<(Entity, &PlanetType, &Transform), Changed>, mut packet_send: EventWriter, ) { - let mut parts = HashMap::new(); + let mut updated_parts = HashMap::new(); for (entity, transform) in part_query.iter() { let id = commands.entity(entity).id().index(); let translation = transform.translation; - parts.insert(id, (0, translation.x, translation.y)); // Type hearty = 0 + updated_parts.insert(id, (0, translation.x, translation.y)); // Type hearty = 0 } - let packet = PartPositionPacket { parts }; - let buf = serde_json::to_vec(&packet).unwrap(); + if !updated_parts.is_empty() { + let packet = PartPositionPacket { parts: updated_parts }; + let buf = serde_json::to_vec(&packet).unwrap(); - packet_send.send(ServerEvent::Broadcast(MessageType::Text, buf)); + packet_send.send(ServerEvent::Broadcast(MessageType::Text, buf)); + } let mut planets = HashMap::new(); for (entity, planet_type, transform) in planet_query.iter() { @@ -111,8 +115,10 @@ fn on_position_change( ); } - let packet = PlanetPositionPacket { planets }; - let buf = serde_json::to_vec(&packet).unwrap(); + if !planets.is_empty() { + let packet = PlanetPositionPacket { planets }; + let buf = serde_json::to_vec(&packet).unwrap(); - packet_send.send(ServerEvent::Broadcast(MessageType::Text, buf)); + packet_send.send(ServerEvent::Broadcast(MessageType::Text, buf)); + } } diff --git a/starkingdoms-client/src/gateway.ts b/starkingdoms-client/src/gateway.ts index 5ede1bc46583ca995949aec8dc1eff38dfb93902..678f0ede7d224227f9c2df292c2d63896a0d6bec 100644 --- a/starkingdoms-client/src/gateway.ts +++ b/starkingdoms-client/src/gateway.ts @@ -17,6 +17,10 @@ export async function gateway_connect(url: string) { socket: ws }; + ws.onmessage = (e) => { + console.log(e.data); + } + return client; } @@ -36,4 +40,4 @@ function _websocket_connect(url: string): Promise { reject(err); }; }); -} \ No newline at end of file +}