diff options
author | metamuffin <metamuffin@disroot.org> | 2025-06-03 19:45:05 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-06-03 19:45:08 +0200 |
commit | 9ee7eef2919feffe4e0695494d4027e8ec011808 (patch) | |
tree | 4fbb5347e7166911d08ae31dd3c20556b61c943e /server/src/server.rs | |
parent | 63f7321e50b251d19f20dc929fc37a45cccdbb38 (diff) | |
download | hurrycurry-9ee7eef2919feffe4e0695494d4027e8ec011808.tar hurrycurry-9ee7eef2919feffe4e0695494d4027e8ec011808.tar.bz2 hurrycurry-9ee7eef2919feffe4e0695494d4027e8ec011808.tar.zst |
Add pedestrians (and custom spawn locations)
Diffstat (limited to 'server/src/server.rs')
-rw-r--r-- | server/src/server.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/server/src/server.rs b/server/src/server.rs index a06f4f36..f9342add 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -76,6 +76,7 @@ pub trait GameServerExt { character: i32, class: PlayerClass, serverdata: &Serverdata, + custom_position: Option<Vec2>, packet_out: Option<&mut VecDeque<PacketC>>, ); fn prime_client(&self) -> Vec<PacketC>; @@ -143,7 +144,7 @@ impl GameServerExt for Game { } } for (id, (name, character, class)) in players { - self.join_player(id, name, character, class, serverdata, None); + self.join_player(id, name, character, class, serverdata, None, None); } packet_out.extend(self.prime_client()); @@ -247,12 +248,13 @@ impl GameServerExt for Game { character: i32, class: PlayerClass, serverdata: &Serverdata, + custom_position: Option<Vec2>, packet_out: Option<&mut VecDeque<PacketC>>, ) { - let position = match class { + let position = custom_position.unwrap_or(match class { PlayerClass::Customer => serverdata.customer_spawn, PlayerClass::Bot | PlayerClass::Chef => serverdata.chef_spawn, - } + (Vec2::new(random(), random()) - 0.5); + }) + (Vec2::new(random(), random()) - 0.5); self.players.insert( id, Player { @@ -353,6 +355,7 @@ impl Server { load_map: &mut None, }); } + self.tick(0.); self.game.load( gamedata, &serverdata, @@ -375,6 +378,7 @@ impl Server { character, id, class, + position, } => { if name.chars().count() > 32 || name.len() > 64 { return Err(tre!( @@ -397,6 +401,7 @@ impl Server { character, class, &self.data, + position, Some(&mut self.packet_out), ); replies.push(PacketC::Joined { id }) |