diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-03-11 22:16:32 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-03-11 22:16:42 +0100 |
| commit | 6c27e7dcf3baf89aa3146635f71de8980db94b43 (patch) | |
| tree | a7280ef3d075f6cfe66827353ddab58336a1940d /server | |
| parent | 0533310feadd076be01e4b1747ab4a7e53fccce8 (diff) | |
| download | hurrycurry-6c27e7dcf3baf89aa3146635f71de8980db94b43.tar hurrycurry-6c27e7dcf3baf89aa3146635f71de8980db94b43.tar.bz2 hurrycurry-6c27e7dcf3baf89aa3146635f71de8980db94b43.tar.zst | |
clean up player join code
Diffstat (limited to 'server')
| -rw-r--r-- | server/protocol/src/movement.rs | 1 | ||||
| -rw-r--r-- | server/src/server.rs | 33 |
2 files changed, 16 insertions, 18 deletions
diff --git a/server/protocol/src/movement.rs b/server/protocol/src/movement.rs index 062c250d..521de924 100644 --- a/server/protocol/src/movement.rs +++ b/server/protocol/src/movement.rs @@ -28,6 +28,7 @@ const BOOST_FACTOR: f32 = 2.5; const BOOST_DURATION: f32 = 0.3; const BOOST_RESTORE: f32 = 0.5; +#[derive(Debug, Clone)] pub struct MovementBase { pub input_direction: Vec2, pub input_boost: bool, diff --git a/server/src/server.rs b/server/src/server.rs index b3cd2922..012f9753 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -146,7 +146,6 @@ pub trait GameServerExt { class: PlayerClass, serverdata: &PrivateGamedata, custom_position: Option<Vec2>, - packet_out: Option<&mut VecDeque<PacketC>>, ); } impl GameServerExt for Game { @@ -181,11 +180,12 @@ impl GameServerExt for Game { self.set_item(pos, *item); } } - for (id, (name, character, class)) in players { - self.join_player(id, name, character, class, serverdata, None, None); - } packet_out.extend(self.prime_client()); + + for (id, (name, character, class)) in players { + self.join_player(id, name, character, class, serverdata, None); + } } fn join_player( @@ -196,7 +196,6 @@ impl GameServerExt for Game { class: PlayerClass, serverdata: &PrivateGamedata, custom_position: Option<Vec2>, - packet_out: Option<&mut VecDeque<PacketC>>, ) { let position = custom_position.unwrap_or(match class { PlayerClass::Customer => serverdata.customer_spawn.unwrap_or(serverdata.chef_spawn), @@ -218,15 +217,13 @@ impl GameServerExt for Game { }, ); self.score.players = self.score.players.max(self.players.len()); - if let Some(packet_out) = packet_out { - packet_out.push_back(PacketC::AddPlayer { - id, - name, - class, - position, - character, - }); - } + self.events.push_back(PacketC::AddPlayer { + id, + position, + class, + character, + name, + }); } } @@ -332,7 +329,6 @@ impl Server { class, &self.priv_gamedata, position, - Some(&mut self.packet_out), ); if let Some(conn) = conn { info!("{player} joined (owned by {conn})"); @@ -550,9 +546,10 @@ impl Server { .query(pos1, 2., |p2, _pos2| { if p1 != p2 && let [Some(a), Some(b)] = self.game.players.get_disjoint_mut([&p1, &p2]) - && a.movement.collide(&mut b.movement, dt) { - a.movement_input_changed = true; - } + && a.movement.collide(&mut b.movement, dt) + { + a.movement_input_changed = true; + } }) }); |