aboutsummaryrefslogtreecommitdiff
path: root/stockton-levels/src/traits/effects.rs
blob: 75e696e674c2528b3f701538d0c119418f4699c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use super::HasBrushes;
use crate::coords::CoordSystem;

/// One effect definition
#[derive(Debug, Clone, PartialEq)]
pub struct Effect {
    /// The name of the effect - always 64 characters long
    pub name: String,

    /// The brush used for this effect
    pub brush_idx: u32, // todo: unknown: i32
}

pub trait HasEffects<S: CoordSystem>: HasBrushes<S> {
    type EffectsIter<'a>: Iterator<Item = &'a Effect>;

    fn effects_iter(&self) -> Self::EffectsIter<'_>;
    fn get_effect(&self, index: u32) -> &Effect;
}