2 using System.Collections.Generic;
6 public delegate
void EntityComponentChanged(
7 IEntity entity,
int index, IComponent component
9 public delegate
void EntityComponentReplaced(
10 IEntity entity,
int index, IComponent previousComponent, IComponent newComponent
12 public delegate
void EntityReleased(IEntity entity);
16 event EntityComponentChanged OnComponentAdded;
17 event EntityComponentChanged OnComponentRemoved;
18 event EntityComponentReplaced OnComponentReplaced;
19 event EntityReleased OnEntityReleased;
21 int totalComponents {
get; }
22 int creationIndex {
get; }
23 bool isEnabled {
get; }
25 Stack<IComponent>[] componentPools {
get; }
28 void Initialize(
int creationIndex,
30 Stack<IComponent>[] componentPools,
33 void Reactivate(
int creationIndex);
35 void AddComponent(
int index,
IComponent component);
36 void RemoveComponent(
int index);
37 void ReplaceComponent(
int index,
IComponent component);
41 int[] GetComponentIndices();
43 bool HasComponent(
int index);
44 bool HasComponents(
int[] indices);
45 bool HasAnyComponent(
int[] indices);
47 void RemoveAllComponents();
49 Stack<IComponent> GetComponentPool(
int index);
50 IComponent CreateComponent(
int index, Type type);
51 T CreateComponent<T>(
int index) where T :
new();
53 #if !ENTITAS_FAST_AND_UNSAFE 54 HashSet<object> owners {
get; }
56 int retainCount {
get; }
57 void Retain(
object owner);
58 void Release(
object owner);
61 void RemoveAllOnEntityReleasedHandlers();