Class EcsContext
An Entity Component SystemBase Context, i.e. its root node.
public sealed class EcsContext : EcsContainer<EcsNode>, IDisposable, IEnumerable<EcsNode>, IEnumerable
- Inheritance
-
EcsContext
- Implements
- Inherited Members
- Extension Methods
Constructors
EcsContext()
public EcsContext()
Properties
GameThread
The thread that created the ECS.
public Thread GameThread { get; }
Property Value
GameThreadTasks
A queue of tasks that need to run in the game thread.
public TaskSyncEntity<Task> GameThreadTasks { get; }
Property Value
GameTick
A topic published when a game tick passes.
public Topic<GameTick> GameTick { get; }
Property Value
this[Guid]
Get an entity in the ECS by GUID.
public EcsNode this[Guid id] { get; }
Parameters
id
GuidEntity GUID.
Property Value
this[Guid, bool]
Get an entity in the ECS by GUID.
public EcsNode this[Guid id, bool rawget] { get; }
Parameters
Property Value
Kind
public override EcsNodeKind Kind { get; }
Property Value
Services
public EcsFolder Services { get; }
Property Value
Topics
public EcsFolder Topics { get; }
Property Value
Methods
Create(Type)
public EcsNode Create(Type type)
Parameters
type
Type
Returns
CreateNamed<Tnode>(string)
public Tnode CreateNamed<Tnode>(string name) where Tnode : EcsNode, new()
Parameters
name
string
Returns
- Tnode
Type Parameters
Tnode
CreateNamed<Tnode>(string, params object[])
public Tnode CreateNamed<Tnode>(string name, params object[] args) where Tnode : EcsNode, IInitializerVariadic, new()
Parameters
Returns
- Tnode
Type Parameters
Tnode
CreateNamed<Tnode, T1>(string, T1)
public Tnode CreateNamed<Tnode, T1>(string name, T1 t1) where Tnode : EcsNode, IInitializer<T1>, new()
Parameters
name
stringt1
T1
Returns
- Tnode
Type Parameters
Tnode
T1
CreateNamed<Tnode, T1, T2>(string, T1, T2)
public Tnode CreateNamed<Tnode, T1, T2>(string name, T1 t1, T2 t2) where Tnode : EcsNode, IInitializer<T1, T2>, new()
Parameters
name
stringt1
T1t2
T2
Returns
- Tnode
Type Parameters
Tnode
T1
T2
CreateNamed<Tnode, T1, T2, T3>(string, T1, T2, T3)
public Tnode CreateNamed<Tnode, T1, T2, T3>(string name, T1 t1, T2 t2, T3 t3) where Tnode : EcsNode, IInitializer<T1, T2, T3>, new()
Parameters
name
stringt1
T1t2
T2t3
T3
Returns
- Tnode
Type Parameters
Tnode
T1
T2
T3
CreateNamed<Tnode, T1, T2, T3, T4>(string, T1, T2, T3, T4)
public Tnode CreateNamed<Tnode, T1, T2, T3, T4>(string name, T1 t1, T2 t2, T3 t3, T4 t4) where Tnode : EcsNode, IInitializer<T1, T2, T3, T4>, new()
Parameters
name
stringt1
T1t2
T2t3
T3t4
T4
Returns
- Tnode
Type Parameters
Tnode
T1
T2
T3
T4
CreateNamed<Tnode, T1, T2, T3, T4, T5>(string, T1, T2, T3, T4, T5)
public Tnode CreateNamed<Tnode, T1, T2, T3, T4, T5>(string name, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) where Tnode : EcsNode, IInitializer<T1, T2, T3, T4, T5>, new()
Parameters
name
stringt1
T1t2
T2t3
T3t4
T4t5
T5
Returns
- Tnode
Type Parameters
Tnode
T1
T2
T3
T4
T5
CreateNamed<Tnode, T1, T2, T3, T4, T5, T6>(string, T1, T2, T3, T4, T5, T6)
public Tnode CreateNamed<Tnode, T1, T2, T3, T4, T5, T6>(string name, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) where Tnode : EcsNode, IInitializer<T1, T2, T3, T4, T5, T6>, new()
Parameters
name
stringt1
T1t2
T2t3
T3t4
T4t5
T5t6
T6
Returns
- Tnode
Type Parameters
Tnode
T1
T2
T3
T4
T5
T6
Create<Tnode>()
public Tnode Create<Tnode>() where Tnode : EcsNode, new()
Returns
- Tnode
Type Parameters
Tnode
Create<Tnode>(params object[])
public Tnode Create<Tnode>(params object[] args) where Tnode : EcsNode, IInitializerVariadic, new()
Parameters
args
object[]
Returns
- Tnode
Type Parameters
Tnode
Create<Tnode, T1>(T1)
public Tnode Create<Tnode, T1>(T1 t1) where Tnode : EcsNode, IInitializer<T1>, new()
Parameters
t1
T1
Returns
- Tnode
Type Parameters
Tnode
T1
Create<Tnode, T1, T2>(T1, T2)
public Tnode Create<Tnode, T1, T2>(T1 t1, T2 t2) where Tnode : EcsNode, IInitializer<T1, T2>, new()
Parameters
t1
T1t2
T2
Returns
- Tnode
Type Parameters
Tnode
T1
T2
Create<Tnode, T1, T2, T3>(T1, T2, T3)
public Tnode Create<Tnode, T1, T2, T3>(T1 t1, T2 t2, T3 t3) where Tnode : EcsNode, IInitializer<T1, T2, T3>, new()
Parameters
t1
T1t2
T2t3
T3
Returns
- Tnode
Type Parameters
Tnode
T1
T2
T3
Create<Tnode, T1, T2, T3, T4>(T1, T2, T3, T4)
public Tnode Create<Tnode, T1, T2, T3, T4>(T1 t1, T2 t2, T3 t3, T4 t4) where Tnode : EcsNode, IInitializer<T1, T2, T3, T4>, new()
Parameters
t1
T1t2
T2t3
T3t4
T4
Returns
- Tnode
Type Parameters
Tnode
T1
T2
T3
T4
Create<Tnode, T1, T2, T3, T4, T5>(T1, T2, T3, T4, T5)
public Tnode Create<Tnode, T1, T2, T3, T4, T5>(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) where Tnode : EcsNode, IInitializer<T1, T2, T3, T4, T5>, new()
Parameters
t1
T1t2
T2t3
T3t4
T4t5
T5
Returns
- Tnode
Type Parameters
Tnode
T1
T2
T3
T4
T5
Create<Tnode, T1, T2, T3, T4, T5, T6>(T1, T2, T3, T4, T5, T6)
public Tnode Create<Tnode, T1, T2, T3, T4, T5, T6>(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) where Tnode : EcsNode, IInitializer<T1, T2, T3, T4, T5, T6>, new()
Parameters
t1
T1t2
T2t3
T3t4
T4t5
T5t6
T6
Returns
- Tnode
Type Parameters
Tnode
T1
T2
T3
T4
T5
T6
Get(Guid)
Get a service from its GUID.
public EcsNode Get(Guid guid)
Parameters
guid
Guid
Returns
- EcsNode
The service object.
Get(Type)
Get a service from its data or service type object.
public EcsNode Get(Type type)
Parameters
type
TypeThe service or system data type.
Returns
- EcsNode
The service object.
GetByData<Tdata>(bool)
public System<Tdata> GetByData<Tdata>(bool rawget = false) where Tdata : struct, ISystemData
Parameters
rawget
bool
Returns
- System<Tdata>
Type Parameters
Tdata
GetTopic(Type)
public TopicBase GetTopic(Type type)
Parameters
type
Type
Returns
GetTopic(Type, Guid)
public TopicBase GetTopic(Type type, Guid id)
Parameters
Returns
GetTopic<T>(bool)
public Topic<T> GetTopic<T>(bool create = false)
Parameters
create
bool
Returns
- Topic<T>
Type Parameters
T
GetTopic<T>(Guid, bool)
public Topic<T> GetTopic<T>(Guid id, bool create = false)
Parameters
Returns
- Topic<T>
Type Parameters
T
Get<T>()
public T Get<T>() where T : class
Returns
- T
Type Parameters
T
Has(Type)
Check if this ECS has a service.
public bool Has(Type t)
Parameters
t
TypeThe service or data type to check.
Returns
- bool
True if the ECS has the service.
Has<T>()
public bool Has<T>()
Returns
Type Parameters
T
TryGet(Guid, out EcsNode?, bool)
public bool TryGet(Guid id, out EcsNode? node, bool rawget = false)
Parameters
Returns
TryGetByData<Tdata>(out System<Tdata>?, bool)
public bool TryGetByData<Tdata>(out System<Tdata>? system, bool rawget = false) where Tdata : struct, ISystemData
Parameters
Returns
Type Parameters
Tdata
TryGet<T>(Guid, out T?, bool)
public bool TryGet<T>(Guid id, out T? node, bool rawget = false) where T : EcsNode
Parameters
Returns
Type Parameters
T
TryGet<T>(out T?, bool)
public bool TryGet<T>(out T? node, bool rawget = false) where T : EcsNode
Parameters
node
Trawget
bool
Returns
Type Parameters
T
Events
NotificationBroadcast
Raised for all broadcast notifications.
public event NotifyAnyHandler? NotificationBroadcast
Event Type
NotificationUnicast
Raised for all unicast notifications.
public event NotifyAnyHandler? NotificationUnicast
Event Type
TopicCreated
public event EventHandler<TopicBase>? TopicCreated