aboutsummaryrefslogtreecommitdiff
path: root/light-client/src/game.rs
diff options
context:
space:
mode:
authorBigBrotherNii <nicochr1004@gmail.com>2024-07-16 18:48:37 +0200
committerBigBrotherNii <nicochr1004@gmail.com>2024-07-16 18:48:37 +0200
commit4be5accf7d1d664c19eb3946a85741b630979266 (patch)
treeaab5a4fede64ab410c22cba212afcb2a394c5bf0 /light-client/src/game.rs
parentf4de3a810769d902e8fd880f727b17b0bff60caa (diff)
parent4064c56783bd78b96b0e79d5a7b15b1fb0d8edad (diff)
downloadhurrycurry-4be5accf7d1d664c19eb3946a85741b630979266.tar
hurrycurry-4be5accf7d1d664c19eb3946a85741b630979266.tar.bz2
hurrycurry-4be5accf7d1d664c19eb3946a85741b630979266.tar.zst
updated textures for light-client
Diffstat (limited to 'light-client/src/game.rs')
-rw-r--r--light-client/src/game.rs27
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))
}
}