Table of Contents

Class EcsContext

Namespace
ReFuel.Ecs
Assembly
ReFuel.dll

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

Thread

GameThreadTasks

A queue of tasks that need to run in the game thread.

public TaskSyncEntity<Task> GameThreadTasks { get; }

Property Value

TaskSyncEntity<Task>

GameTick

A topic published when a game tick passes.

public Topic<GameTick> GameTick { get; }

Property Value

Topic<GameTick>

this[Guid]

Get an entity in the ECS by GUID.

public EcsNode this[Guid id] { get; }

Parameters

id Guid

Entity GUID.

Property Value

EcsNode

this[Guid, bool]

Get an entity in the ECS by GUID.

public EcsNode this[Guid id, bool rawget] { get; }

Parameters

id Guid

Entity GUID.

rawget bool

True in order to prevent traversing links.

Property Value

EcsNode

Kind

public override EcsNodeKind Kind { get; }

Property Value

EcsNodeKind

Services

public EcsFolder Services { get; }

Property Value

EcsFolder

Topics

public EcsFolder Topics { get; }

Property Value

EcsFolder

Methods

Create(Type)

public EcsNode Create(Type type)

Parameters

type Type

Returns

EcsNode

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

name string
args object[]

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 string
t1 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 string
t1 T1
t2 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 string
t1 T1
t2 T2
t3 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 string
t1 T1
t2 T2
t3 T3
t4 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 string
t1 T1
t2 T2
t3 T3
t4 T4
t5 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 string
t1 T1
t2 T2
t3 T3
t4 T4
t5 T5
t6 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 T1
t2 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 T1
t2 T2
t3 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 T1
t2 T2
t3 T3
t4 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 T1
t2 T2
t3 T3
t4 T4
t5 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 T1
t2 T2
t3 T3
t4 T4
t5 T5
t6 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 Type

The 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

TopicBase

GetTopic(Type, Guid)

public TopicBase GetTopic(Type type, Guid id)

Parameters

type Type
id Guid

Returns

TopicBase

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

id Guid
create bool

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 Type

The service or data type to check.

Returns

bool

True if the ECS has the service.

Has<T>()

public bool Has<T>()

Returns

bool

Type Parameters

T

TryGet(Guid, out EcsNode?, bool)

public bool TryGet(Guid id, out EcsNode? node, bool rawget = false)

Parameters

id Guid
node EcsNode
rawget bool

Returns

bool

TryGetByData<Tdata>(out System<Tdata>?, bool)

public bool TryGetByData<Tdata>(out System<Tdata>? system, bool rawget = false) where Tdata : struct, ISystemData

Parameters

system System<Tdata>
rawget bool

Returns

bool

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

id Guid
node T
rawget bool

Returns

bool

Type Parameters

T

TryGet<T>(out T?, bool)

public bool TryGet<T>(out T? node, bool rawget = false) where T : EcsNode

Parameters

node T
rawget bool

Returns

bool

Type Parameters

T

Events

NotificationBroadcast

Raised for all broadcast notifications.

public event NotifyAnyHandler? NotificationBroadcast

Event Type

NotifyAnyHandler

NotificationUnicast

Raised for all unicast notifications.

public event NotifyAnyHandler? NotificationUnicast

Event Type

NotifyAnyHandler

TopicCreated

public event EventHandler<TopicBase>? TopicCreated

Event Type

EventHandler<TopicBase>