naia_shared/world/entity/
entity_action.rs

1use crate::world::component::component_kinds::ComponentKind;
2
3pub enum EntityAction<E: Copy> {
4    SpawnEntity(E, Vec<ComponentKind>),
5    DespawnEntity(E),
6    InsertComponent(E, ComponentKind),
7    RemoveComponent(E, ComponentKind),
8    Noop,
9}
10
11impl<E: Copy> EntityAction<E> {
12    pub fn entity(&self) -> Option<E> {
13        match self {
14            EntityAction::SpawnEntity(entity, _) => Some(*entity),
15            EntityAction::DespawnEntity(entity) => Some(*entity),
16            EntityAction::InsertComponent(entity, _) => Some(*entity),
17            EntityAction::RemoveComponent(entity, _) => Some(*entity),
18            EntityAction::Noop => None,
19        }
20    }
21}