diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-10-11 22:25:31 +0200 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-10-11 22:25:31 +0200 |
| commit | 516546c3d20e1715370073acf2e6b8114351f8e9 (patch) | |
| tree | 19ebabed6785372015d801adfe744be778c00a05 /server/src/entity/tram.rs | |
| parent | cdaa8e800276e28c720f846c91e144af97227db7 (diff) | |
| download | hurrycurry-516546c3d20e1715370073acf2e6b8114351f8e9.tar hurrycurry-516546c3d20e1715370073acf2e6b8114351f8e9.tar.bz2 hurrycurry-516546c3d20e1715370073acf2e6b8114351f8e9.tar.zst | |
Improve server logging and use central player id counter (close #450)
Diffstat (limited to 'server/src/entity/tram.rs')
| -rw-r--r-- | server/src/entity/tram.rs | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/server/src/entity/tram.rs b/server/src/entity/tram.rs index 391d16a9..2d6aa8c1 100644 --- a/server/src/entity/tram.rs +++ b/server/src/entity/tram.rs @@ -1,5 +1,3 @@ -use std::random::random; - /* Hurry Curry! - a game about cooking Copyright (C) 2025 Hurry Curry! Contributors @@ -36,18 +34,16 @@ impl Entity for Tram { false } fn tick(&mut self, c: EntityContext<'_>) -> Result<()> { - if self.ids.is_empty() { - for i in 0..self.length { - let id = PlayerID(random(..)); - c.packet_in.push_back(PacketS::Join { - name: format!("Tram {i}"), - character: self.character, - class: PlayerClass::Tram, - id: Some(id), - position: self.points.first().copied(), - }); - self.ids.push(id); - } + if self.ids.len() < self.length { + let id = c.game.get_unused_player_id(); + c.packet_in.push_back(PacketS::Join { + id: Some(id), + name: format!("Tram {}", self.ids.len()), + character: self.character, + class: PlayerClass::Tram, + position: self.points.first().copied(), + }); + self.ids.push(id); } for (i, id) in self.ids.iter().enumerate() { |