veloren_world/site2/util/
sprites.rs

1use crate::site2::Painter;
2
3use super::Dir;
4use common::terrain::SpriteKind;
5use vek::*;
6
7pub trait PainterSpriteExt {
8    fn lanternpost_wood(&self, pos: Vec3<i32>, dir: Dir);
9}
10
11impl PainterSpriteExt for Painter {
12    fn lanternpost_wood(&self, pos: Vec3<i32>, dir: Dir) {
13        let sprite_ori = dir.rotated_cw().sprite_ori();
14        self.rotated_sprite(pos, SpriteKind::LanternpostWoodBase, sprite_ori);
15        self.column(pos.xy(), pos.z + 1..pos.z + 4).clear();
16        self.rotated_sprite(
17            pos + Vec3::unit_z() * 3,
18            SpriteKind::LanternpostWoodUpper,
19            sprite_ori,
20        );
21        self.rotated_sprite(
22            pos + dir.to_vec3() + Vec3::unit_z() * 3,
23            SpriteKind::LanternpostWoodLantern,
24            sprite_ori,
25        );
26    }
27}