diff options
author | metamuffin <metamuffin@disroot.org> | 2024-08-10 20:57:06 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-08-10 20:57:06 +0200 |
commit | 7dbb34febaf75572f99fee459a77cf917de05d8f (patch) | |
tree | 72ba067aa5003d110f2bb707fb3e9c429388505b /server/protocol | |
parent | 3d13c85ec2e3acbee249b4baf20797cc38a8a121 (diff) | |
download | hurrycurry-7dbb34febaf75572f99fee459a77cf917de05d8f.tar hurrycurry-7dbb34febaf75572f99fee459a77cf917de05d8f.tar.bz2 hurrycurry-7dbb34febaf75572f99fee459a77cf917de05d8f.tar.zst |
Change protocol and server to allow multiple players per connection (untested)
Diffstat (limited to 'server/protocol')
-rw-r--r-- | server/protocol/src/lib.rs | 15 | ||||
-rw-r--r-- | server/protocol/src/movement.rs | 13 |
2 files changed, 13 insertions, 15 deletions
diff --git a/server/protocol/src/lib.rs b/server/protocol/src/lib.rs index 02c6d0b1..a56b6edb 100644 --- a/server/protocol/src/lib.rs +++ b/server/protocol/src/lib.rs @@ -88,8 +88,11 @@ pub enum PacketS { name: String, character: i32, }, - Leave, + Leave { + player: PlayerID, + }, Movement { + player: PlayerID, #[bincode(with_serde)] direction: Vec2, boosting: bool, @@ -97,15 +100,12 @@ pub enum PacketS { pos: Option<Vec2>, }, Interact { - #[bincode(with_serde)] - pos: Option<IVec2>, - }, - Collide { player: PlayerID, #[bincode(with_serde)] - force: Vec2, + pos: Option<IVec2>, }, Communicate { + player: PlayerID, message: Option<Message>, persist: bool, }, @@ -114,6 +114,7 @@ pub enum PacketS { #[bincode(skip)] /// For internal use only ReplaceHand { + player: PlayerID, item: Option<ItemIndex>, }, /// For use in replay sessions only @@ -138,7 +139,7 @@ pub enum PacketC { major: u32, supports_bincode: bool, }, - Init { + Joined { id: PlayerID, }, Data { diff --git a/server/protocol/src/movement.rs b/server/protocol/src/movement.rs index 286c7f6a..5525c5e6 100644 --- a/server/protocol/src/movement.rs +++ b/server/protocol/src/movement.rs @@ -17,7 +17,7 @@ */ use crate::{ glam::{IVec2, Vec2}, - PacketS, + PacketS, PlayerID, }; use std::collections::HashSet; @@ -48,13 +48,7 @@ impl MovementBase { rotation: 0., } } - pub fn update( - &mut self, - map: &HashSet<IVec2>, - direction: Vec2, - mut boost: bool, - dt: f32, - ) -> PacketS { + pub fn update(&mut self, map: &HashSet<IVec2>, direction: Vec2, mut boost: bool, dt: f32) { let direction = direction.clamp_length_max(1.); if direction.length() > 0.1 { self.facing = direction + (self.facing - direction) * (-dt * 10.).exp(); @@ -73,11 +67,14 @@ impl MovementBase { self.position += self.velocity * dt; self.velocity *= (-dt * PLAYER_FRICTION).exp(); collide_player_tiles(self, map); + } + pub fn movement_packet(&self, direction: Vec2, player: PlayerID) -> PacketS { PacketS::Movement { pos: Some(self.position), boosting: self.boosting, direction, + player, } } |