diff options
Diffstat (limited to 'light-client/src/game.rs')
-rw-r--r-- | light-client/src/game.rs | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/light-client/src/game.rs b/light-client/src/game.rs index b6bacf74..ac5c3571 100644 --- a/light-client/src/game.rs +++ b/light-client/src/game.rs @@ -16,7 +16,7 @@ */ use crate::{ - sprite_renderer::{SpriteRect, SpriteRenderer}, + render::{sprite::Sprite, MiscTextures, SpriteRenderer}, tilemap::Tilemap, }; use hurrycurry_protocol::{ @@ -27,7 +27,7 @@ use hurrycurry_protocol::{ use log::{info, warn}; use sdl2::{ keyboard::{KeyboardState, Scancode}, - rect::{FRect, Rect}, + rect::Rect, }; use std::collections::{HashMap, HashSet, VecDeque}; @@ -39,7 +39,8 @@ pub struct Game { players: HashMap<PlayerID, Player>, my_id: PlayerID, - item_sprites: Vec<SpriteRect>, + misc_textures: MiscTextures, + item_sprites: Vec<Sprite>, movement_send_cooldown: f32, } @@ -59,7 +60,7 @@ pub struct Item { } impl Game { - pub fn new() -> Self { + pub fn new(renderer: &SpriteRenderer) -> Self { Self { tiles: HashMap::new(), players: HashMap::new(), @@ -68,6 +69,7 @@ impl Game { data: ClientGamedata::default(), collision_map: HashSet::new(), movement_send_cooldown: 0., + misc_textures: MiscTextures::init(renderer), item_sprites: Vec::new(), } } @@ -81,12 +83,14 @@ impl Game { .item_names .iter() .map(|name| { - SpriteRect::new( + Sprite::new( renderer .metadata() .get(&format!("{name}:a")) .copied() .unwrap_or(Rect::new(0, 0, 32, 24)), + Vec2::ZERO, + 0.1, ) }) .collect(); @@ -236,14 +240,7 @@ impl Game { self.tilemap.draw(ctx); for p in self.players.values() { - let src = ctx.misc_textures().player; - let dst = FRect::new( - p.movement.position.x - src.width() as f32 / 32. / 2., - p.movement.position.y + 0.3 - src.height() as f32 / 24., - src.width() as f32 / 32., - src.height() as f32 / 24., - ); - ctx.draw(dst.y + dst.h + 1., src, dst); + ctx.draw_world(self.misc_textures.player.at(p.movement.position)); if let Some(item) = &p.item { item.draw(ctx, &self.item_sprites) } @@ -257,7 +254,7 @@ impl Game { } impl Item { - pub fn draw(&self, ctx: &mut SpriteRenderer, item_sprites: &[SpriteRect]) { - item_sprites[self.kind.0].draw_at(ctx, self.position) + pub fn draw(&self, ctx: &mut SpriteRenderer, item_sprites: &[Sprite]) { + ctx.draw_world(item_sprites[self.kind.0].at(self.position)) } } |