schminput/
binding_modification.rs

1use bevy::prelude::*;
2
3use crate::subaction_paths::SubactionPath;
4
5#[derive(Debug, Clone, Copy, Reflect, PartialEq, Eq, Deref, Hash)]
6#[repr(transparent)]
7pub struct BindingModifiaction(pub Entity);
8
9/// attached to an action
10#[derive(Debug, Clone, Reflect, PartialEq, Eq, Hash, Component, Default)]
11pub struct BindingModifications {
12    pub all_paths: Option<BindingModifiaction>,
13    pub per_path: Vec<(SubactionPath, BindingModifiaction)>,
14}
15impl BindingModifications {
16    pub fn with_path_modification(mut self, path: SubactionPath, modification: Entity) -> Self {
17        self.path_modification(path, modification);
18        self
19    }
20    pub fn path_modification(&mut self, path: SubactionPath, modification: Entity) {
21        self.per_path
22            .push((path, BindingModifiaction(modification)));
23    }
24    pub fn new() -> Self {
25        Self::default()
26    }
27}
28
29#[derive(Debug, Clone, Copy, Reflect, PartialEq, Eq, Hash, Component)]
30pub struct PremultiplyDeltaSecsModification;
31
32#[derive(Debug, Clone, Copy, Reflect, PartialEq, Eq, Hash, Component)]
33pub struct UnboundedModification;