Skip to main content

plasma_prp/animation/
simple_modifier.rs

1//! plSimpleModifier — non-skeletal animation (doors, elevators, gears).
2//!
3//! Drives a controller via plAnimTimeConvert. Responds to plAnimCmdMsg.
4//!
5//! C++ ref: plModifier/plSimpleModifier.h/.cpp, plAnimEventModifier.h/.cpp
6
7use crate::core::uoid::Uoid;
8
9/// Parsed plSimpleModifier data.
10#[derive(Debug, Clone)]
11pub struct SimpleModifierData {
12    pub self_key: Option<Uoid>,
13    /// The animation time convert controls timing.
14    pub time_convert_key: Option<Uoid>,
15}
16
17impl Default for SimpleModifierData {
18    fn default() -> Self {
19        Self {
20            self_key: None,
21            time_convert_key: None,
22        }
23    }
24}
25
26/// plAnimEventModifier — fires events at animation keyframes.
27#[derive(Debug, Clone)]
28pub struct AnimEventModifierData {
29    pub self_key: Option<Uoid>,
30    pub callback_receivers: Vec<Uoid>,
31}
32
33impl Default for AnimEventModifierData {
34    fn default() -> Self {
35        Self {
36            self_key: None,
37            callback_receivers: Vec::new(),
38        }
39    }
40}