naia_shared/world/entity/
entity_action.rs1use 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}