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