summaryrefslogtreecommitdiff
path: root/src/content/vfx/mod.rs
blob: c02bea62cb231319a65f9703a32debe22f6f271e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#[repr(u8)]
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
pub enum VfxMaterialId {
    Tracer = 0,
}

pub struct VfxMaterialDef {
    pub name: &'static str,
    pub color: (u8, u8, u8, u8),
    pub length: f32,
}

static MATERIALS: [VfxMaterialDef; 1] = [VfxMaterialDef {
    name: "Tracer",
    color: (0xFF, 0xAA, 0xAA, 0xFF),
    length: 10.0,
}];

impl VfxMaterialId {
    pub const ALL: [VfxMaterialId; 1] = [VfxMaterialId::Tracer];
    #[inline]
    pub fn def(self) -> &'static VfxMaterialDef {
        &MATERIALS[self as usize]
    }

    pub fn from_index(idx: u8) -> VfxMaterialId {
        VfxMaterialId::ALL[idx as usize]
    }
}