1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use crate::{ComponentKind, EntityAuthStatus, RemoteEntity, Replicate, Tick};

pub enum EntityEvent<E: Copy> {
    SpawnEntity(E),
    DespawnEntity(E),
    InsertComponent(E, ComponentKind),
    RemoveComponent(E, Box<dyn Replicate>),
    UpdateComponent(Tick, E, ComponentKind),
}

pub enum EntityResponseEvent<E: Copy> {
    SpawnEntity(E),
    DespawnEntity(E),
    InsertComponent(E, ComponentKind),
    RemoveComponent(E, ComponentKind),
    PublishEntity(E),
    UnpublishEntity(E),
    EnableDelegationEntity(E),
    EnableDelegationEntityResponse(E),
    DisableDelegationEntity(E),
    EntityRequestAuthority(E, RemoteEntity),
    EntityReleaseAuthority(E),
    EntityUpdateAuthority(E, EntityAuthStatus),
    EntityMigrateResponse(E, RemoteEntity),
}