aboutsummaryrefslogtreecommitdiff
path: root/pixel-client
diff options
context:
space:
mode:
Diffstat (limited to 'pixel-client')
-rw-r--r--pixel-client/src/game.rs10
-rw-r--r--pixel-client/src/render/misc.rs6
-rw-r--r--pixel-client/src/render/sprite.rs6
3 files changed, 22 insertions, 0 deletions
diff --git a/pixel-client/src/game.rs b/pixel-client/src/game.rs
index cbc9954c..1fc49c6b 100644
--- a/pixel-client/src/game.rs
+++ b/pixel-client/src/game.rs
@@ -352,6 +352,16 @@ impl Game {
self.tilemap.draw(ctx);
+ if let Some(me) = self.players.get(&self.my_id) {
+ let t = me.movement.get_interact_target();
+ ctx.draw_world(
+ self.misc_textures
+ .interact_target
+ .at(t.as_vec2())
+ .tint(100, 100, 255),
+ )
+ }
+
for p in self.players.values() {
ctx.draw_world(self.misc_textures.player.at(p.movement.position));
if let Some(item) = &p.item {
diff --git a/pixel-client/src/render/misc.rs b/pixel-client/src/render/misc.rs
index 5b9e43d4..c1f1295e 100644
--- a/pixel-client/src/render/misc.rs
+++ b/pixel-client/src/render/misc.rs
@@ -21,6 +21,7 @@ use sdl2::rect::Rect;
pub struct MiscTextures {
pub player: Sprite,
+ pub interact_target: Sprite,
pub solid: Rect,
}
@@ -28,6 +29,11 @@ impl MiscTextures {
pub fn init(layout: &AtlasLayout) -> Self {
MiscTextures {
player: Sprite::new(*layout.get("player+a").unwrap(), Vec2::Y * 0.3, 0.5 + 0.3),
+ interact_target: Sprite::new(
+ *layout.get("interact-target-thick+a").unwrap(),
+ Vec2::new(0.5, 1.0),
+ 10.,
+ ),
solid: *layout.get("solid+a").unwrap(),
}
}
diff --git a/pixel-client/src/render/sprite.rs b/pixel-client/src/render/sprite.rs
index 580146b1..4210b58d 100644
--- a/pixel-client/src/render/sprite.rs
+++ b/pixel-client/src/render/sprite.rs
@@ -77,6 +77,12 @@ impl SpriteDraw {
self.tint[3] = (alpha.clamp(0., 1.) * 255.) as u8;
self
}
+ pub fn tint(mut self, r: u8, g: u8, b: u8) -> Self {
+ self.tint[0] = r;
+ self.tint[1] = g;
+ self.tint[2] = b;
+ self
+ }
}
impl Ord for SpriteDraw {