diff options
Diffstat (limited to 'light-client/src/game.rs')
-rw-r--r-- | light-client/src/game.rs | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/light-client/src/game.rs b/light-client/src/game.rs index ac5c3571..231f6bd1 100644 --- a/light-client/src/game.rs +++ b/light-client/src/game.rs @@ -42,6 +42,7 @@ pub struct Game { misc_textures: MiscTextures, item_sprites: Vec<Sprite>, movement_send_cooldown: f32, + interacting: bool, } pub struct Tile { @@ -71,6 +72,7 @@ impl Game { movement_send_cooldown: 0., misc_textures: MiscTextures::init(renderer), item_sprites: Vec::new(), + interacting: false, } } @@ -86,10 +88,13 @@ impl Game { Sprite::new( renderer .metadata() - .get(&format!("{name}:a")) + .get(&format!("{name}+a")) .copied() - .unwrap_or(Rect::new(0, 0, 32, 24)), - Vec2::ZERO, + .unwrap_or_else(|| { + warn!("no sprite for item {name:?}"); + Rect::new(0, 0, 32, 24) + }), + Vec2::new(0., 0.0), 0.1, ) }) @@ -214,6 +219,17 @@ impl Game { self.movement_send_cooldown += 0.04 } + if interact != self.interacting { + if interact { + packet_out.push_back(PacketS::Interact { + pos: Some(self.players[&self.my_id].movement.get_interact_target()), + }); + } else { + packet_out.push_back(PacketS::Interact { pos: None }); + } + self.interacting = interact; + } + for (pid, player) in &mut self.players { if *pid == self.my_id { let movement_packet = |