diff options
Diffstat (limited to 'server/src/game.rs')
-rw-r--r-- | server/src/game.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/server/src/game.rs b/server/src/game.rs index 35502d3c..c9881e7c 100644 --- a/server/src/game.rs +++ b/server/src/game.rs @@ -32,6 +32,7 @@ pub struct Tile { pub struct Player { pub name: String, + pub character: usize, pub position: Vec2, pub interacting: Option<IVec2>, pub item: Option<Item>, @@ -71,8 +72,10 @@ impl Game { for (&id, player) in &self.players { out.push(PacketC::AddPlayer { id, + position: player.position, + character: player.character, name: player.name.clone(), - hand: player.item.as_ref().map(|i| i.kind), + item: player.item.as_ref().map(|i| i.kind), }) } for (&tile, tdata) in &self.tiles { @@ -92,11 +95,12 @@ impl Game { pub fn packet_in(&mut self, player: PlayerID, packet: PacketS) -> Result<()> { match packet { - PacketS::Join { name } => { + PacketS::Join { name, character } => { self.players.insert( player, Player { item: None, + character, position: self.data.spawn, interacting: None, name: name.clone(), @@ -105,7 +109,9 @@ impl Game { self.packet_out.push_back(PacketC::AddPlayer { id: player, name, - hand: None, + position: self.data.spawn, + character, + item: None, }); } PacketS::Leave => { @@ -157,7 +163,7 @@ impl Game { } let tile_had_item = tile.item.is_some(); - let player_had_item = tile.item.is_some(); + let player_had_item = player.item.is_some(); if let Some(effect) = interact(&self.data, edge, tile, player) { match effect { |