veloren_common/comp/
visual.rs

1use serde::{Deserialize, Serialize};
2use specs::{Component, DenseVecStorage, DerefFlaggedStorage};
3use vek::*;
4
5#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)]
6pub struct LightEmitter {
7    pub col: Rgb<f32>,
8    pub strength: f32,
9    pub flicker: f32,
10    pub animated: bool,
11}
12
13impl Default for LightEmitter {
14    fn default() -> Self {
15        Self {
16            col: Rgb::one(),
17            strength: 1.0,
18            flicker: 0.0,
19            animated: false,
20        }
21    }
22}
23
24impl Component for LightEmitter {
25    type Storage = DerefFlaggedStorage<Self, DenseVecStorage<Self>>;
26}
27
28#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)]
29pub struct LightAnimation {
30    pub offset: Vec3<f32>,
31    pub col: Rgb<f32>,
32    pub strength: f32,
33}
34
35impl Default for LightAnimation {
36    fn default() -> Self {
37        Self {
38            offset: Vec3::zero(),
39            col: Rgb::zero(),
40            strength: 0.0,
41        }
42    }
43}
44
45impl Component for LightAnimation {
46    type Storage = DenseVecStorage<Self>;
47}