Flecs v3.2
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
Builtin component ids.
Collaboration diagram for Builtin component ids.:

Macros

#define EcsLastInternalComponentId   (ecs_id(EcsPoly))
 Value used to quickly check if component is builtin.
 
#define EcsFirstUserComponentId   (8)
 The first user-defined component starts from this id.
 
#define EcsFirstUserEntityId   (FLECS_HI_COMPONENT_ID + 128)
 The first user-defined entity starts from this id.
 

Variables

const ecs_entity_t FLECS_IDEcsComponentID_
 
const ecs_entity_t FLECS_IDEcsIdentifierID_
 
const ecs_entity_t FLECS_IDEcsIterableID_
 
const ecs_entity_t FLECS_IDEcsPolyID_
 
const ecs_entity_t EcsQuery
 
const ecs_entity_t EcsObserver
 
const ecs_entity_t EcsSystem
 
const ecs_entity_t FLECS_IDEcsTickSourceID_
 
const ecs_entity_t FLECS_IDEcsPipelineQueryID_
 
const ecs_entity_t FLECS_IDEcsTimerID_
 
const ecs_entity_t FLECS_IDEcsRateFilterID_
 
const ecs_entity_t EcsFlecs
 Root scope for builtin flecs entities.
 
const ecs_entity_t EcsFlecsCore
 Core module scope.
 
const ecs_entity_t EcsWorld
 Entity associated with world (used for "attaching" components to world)
 
const ecs_entity_t EcsWildcard
 Wildcard entity ("*").
 
const ecs_entity_t EcsAny
 Any entity ("_").
 
const ecs_entity_t EcsThis
 This entity.
 
const ecs_entity_t EcsVariable
 Variable entity ("$").
 
const ecs_entity_t EcsTransitive
 Marks a relationship as transitive.
 
const ecs_entity_t EcsReflexive
 Marks a relationship as reflexive.
 
const ecs_entity_t EcsFinal
 Ensures that entity/component cannot be used as target in IsA relationship.
 
const ecs_entity_t EcsDontInherit
 Ensures that component is never inherited from an IsA target.
 
const ecs_entity_t EcsAlwaysOverride
 Ensures a component is always overridden.
 
const ecs_entity_t EcsSymmetric
 Marks relationship as commutative.
 
const ecs_entity_t EcsExclusive
 Can be added to relationship to indicate that the relationship can only occur once on an entity.
 
const ecs_entity_t EcsAcyclic
 Marks a relationship as acyclic.
 
const ecs_entity_t EcsTraversable
 Marks a relationship as traversable.
 
const ecs_entity_t EcsWith
 Ensure that a component always is added together with another component.
 
const ecs_entity_t EcsOneOf
 Ensure that relationship target is child of specified entity.
 
const ecs_entity_t EcsTag
 Can be added to relationship to indicate that it should never hold data, even when it or the relationship target is a component.
 
const ecs_entity_t EcsTrait
 Can be added to components to indicate it is a trait.
 
const ecs_entity_t EcsRelationship
 Ensure that an entity is always used in pair as relationship.
 
const ecs_entity_t EcsTarget
 Ensure that an entity is always used in pair as target.
 
const ecs_entity_t EcsUnion
 Tag to indicate that relationship is stored as union.
 
const ecs_entity_t EcsName
 Tag to indicate name identifier.
 
const ecs_entity_t EcsSymbol
 Tag to indicate symbol identifier.
 
const ecs_entity_t EcsAlias
 Tag to indicate alias identifier.
 
const ecs_entity_t EcsChildOf
 Used to express parent-child relationships.
 
const ecs_entity_t EcsIsA
 Used to express inheritance relationships.
 
const ecs_entity_t EcsDependsOn
 Used to express dependency relationships.
 
const ecs_entity_t EcsSlotOf
 Used to express a slot (used with prefab inheritance)
 
const ecs_entity_t EcsModule
 Tag added to module entities.
 
const ecs_entity_t EcsPrivate
 Tag to indicate an entity/component/system is private to a module.
 
const ecs_entity_t EcsPrefab
 Tag added to prefab entities.
 
const ecs_entity_t EcsDisabled
 When this tag is added to an entity it is skipped by queries, unless EcsDisabled is explicitly queried for.
 
const ecs_entity_t EcsOnAdd
 Event that triggers when an id is added to an entity.
 
const ecs_entity_t EcsOnRemove
 Event that triggers when an id is removed from an entity.
 
const ecs_entity_t EcsOnSet
 Event that triggers when a component is set for an entity.
 
const ecs_entity_t EcsUnSet
 Event that triggers when a component is unset for an entity.
 
const ecs_entity_t EcsMonitor
 Event that triggers observer when an entity starts/stops matching a query.
 
const ecs_entity_t EcsOnTableCreate
 Event that triggers when a table is created.
 
const ecs_entity_t EcsOnTableDelete
 Event that triggers when a table is deleted.
 
const ecs_entity_t EcsOnTableEmpty
 Event that triggers when a table becomes empty (doesn't emit on creation).
 
const ecs_entity_t EcsOnTableFill
 Event that triggers when a table becomes non-empty.
 
const ecs_entity_t EcsOnDelete
 Relationship used for specifying cleanup behavior.
 
const ecs_entity_t EcsOnDeleteTarget
 Relationship used to define what should happen when a target entity (second element of a pair) is deleted.
 
const ecs_entity_t EcsRemove
 Remove cleanup policy.
 
const ecs_entity_t EcsDelete
 Delete cleanup policy.
 
const ecs_entity_t EcsPanic
 Panic cleanup policy.
 
const ecs_entity_t FLECS_IDEcsFlattenTargetID_
 Component that stores data for flattened relationships.
 
const ecs_entity_t EcsFlatten
 Tag added to root entity to indicate its subtree should be flattened.
 
const ecs_entity_t EcsDefaultChildComponent
 Used like (EcsDefaultChildComponent, Component).
 
const ecs_entity_t EcsPredEq
 
const ecs_entity_t EcsPredMatch
 
const ecs_entity_t EcsPredLookup
 
const ecs_entity_t EcsScopeOpen
 
const ecs_entity_t EcsScopeClose
 
const ecs_entity_t EcsEmpty
 Tag used to indicate query is empty.
 
const ecs_entity_t FLECS_IDEcsPipelineID_
 
const ecs_entity_t EcsOnStart
 
const ecs_entity_t EcsPreFrame
 
const ecs_entity_t EcsOnLoad
 
const ecs_entity_t EcsPostLoad
 
const ecs_entity_t EcsPreUpdate
 
const ecs_entity_t EcsOnUpdate
 
const ecs_entity_t EcsOnValidate
 
const ecs_entity_t EcsPostUpdate
 
const ecs_entity_t EcsPreStore
 
const ecs_entity_t EcsOnStore
 
const ecs_entity_t EcsPostFrame
 
const ecs_entity_t EcsPhase
 

Detailed Description

Macro Definition Documentation

◆ EcsFirstUserComponentId

#define EcsFirstUserComponentId   (8)

The first user-defined component starts from this id.

Ids up to this number are reserved for builtin components

Definition at line 1647 of file flecs.h.

◆ EcsFirstUserEntityId

#define EcsFirstUserEntityId   (FLECS_HI_COMPONENT_ID + 128)

The first user-defined entity starts from this id.

Ids up to this number are reserved for builtin entities

Definition at line 1651 of file flecs.h.

◆ EcsLastInternalComponentId

#define EcsLastInternalComponentId   (ecs_id(EcsPoly))

Value used to quickly check if component is builtin.

This is used to quickly filter out tables with builtin components (for example for ecs_delete())

Definition at line 1643 of file flecs.h.

Variable Documentation

◆ EcsAcyclic

const ecs_entity_t EcsAcyclic
extern

Marks a relationship as acyclic.

Acyclic relationships may not form cycles.

◆ EcsAlwaysOverride

const ecs_entity_t EcsAlwaysOverride
extern

Ensures a component is always overridden.

Behavior: As if the component is added together with OVERRIDE | T

◆ EcsAny

const ecs_entity_t EcsAny
extern

Any entity ("_").

Matches any id, returns only the first.

◆ EcsDefaultChildComponent

const ecs_entity_t EcsDefaultChildComponent
extern

Used like (EcsDefaultChildComponent, Component).

When added to an entity, this informs serialization formats which component to use when a value is assigned to an entity without specifying the component. This is intended as a hint, serialization formats are not required to use it. Adding this component does not change the behavior of core ECS operations.

◆ EcsDelete

const ecs_entity_t EcsDelete
extern

Delete cleanup policy.

Must be used as target in pair with EcsOnDelete or EcsOnDeleteTarget.

◆ EcsDontInherit

const ecs_entity_t EcsDontInherit
extern

Ensures that component is never inherited from an IsA target.

Behavior: if DontInherit(X) and X(B) and IsA(A, B) then X(A) is false.

◆ EcsExclusive

const ecs_entity_t EcsExclusive
extern

Can be added to relationship to indicate that the relationship can only occur once on an entity.

Adding a 2nd instance will replace the 1st.

Behavior: R(X, Y) + R(X, Z) = R(X, Z)

◆ EcsFinal

const ecs_entity_t EcsFinal
extern

Ensures that entity/component cannot be used as target in IsA relationship.

Final can improve the performance of rule-based queries, as they will not attempt to substitute a final component with its subsets.

Behavior: if IsA(X, Y) and Final(Y) throw error

◆ EcsFlatten

const ecs_entity_t EcsFlatten
extern

Tag added to root entity to indicate its subtree should be flattened.

Used together with assemblies.

◆ EcsOneOf

const ecs_entity_t EcsOneOf
extern

Ensure that relationship target is child of specified entity.

Behavior: If OneOf(R, O) and R(X, Y), Y must be a child of O If OneOf(R) and R(X, Y), Y must be a child of R

◆ EcsPanic

const ecs_entity_t EcsPanic
extern

Panic cleanup policy.

Must be used as target in pair with EcsOnDelete or EcsOnDeleteTarget.

◆ EcsPrefab

const ecs_entity_t EcsPrefab
extern

Tag added to prefab entities.

Any entity with this tag is automatically ignored by queries, unless EcsPrefab is explicitly queried for.

◆ EcsReflexive

const ecs_entity_t EcsReflexive
extern

Marks a relationship as reflexive.

Behavior: R(X, X) == true

◆ EcsRelationship

const ecs_entity_t EcsRelationship
extern

Ensure that an entity is always used in pair as relationship.

Behavior: e.add(R) panics e.add(X, R) panics, unless X has the "Trait" trait

◆ EcsRemove

const ecs_entity_t EcsRemove
extern

Remove cleanup policy.

Must be used as target in pair with EcsOnDelete or EcsOnDeleteTarget.

◆ EcsSymmetric

const ecs_entity_t EcsSymmetric
extern

Marks relationship as commutative.

Behavior: if R(X, Y) then R(Y, X)

◆ EcsTarget

const ecs_entity_t EcsTarget
extern

Ensure that an entity is always used in pair as target.

Behavior: e.add(T) panics e.add(T, X) panics

◆ EcsThis

const ecs_entity_t EcsThis
extern

This entity.

Default source for queries.

◆ EcsTrait

const ecs_entity_t EcsTrait
extern

Can be added to components to indicate it is a trait.

Traits are components and/or tags that are added to other components to modify their behavior.

◆ EcsTransitive

const ecs_entity_t EcsTransitive
extern

Marks a relationship as transitive.

Behavior: if R(X, Y) and R(Y, Z) then R(X, Z)

◆ EcsTraversable

const ecs_entity_t EcsTraversable
extern

Marks a relationship as traversable.

Traversable relationships may be traversed with "up" queries. Traversable relationships are acyclic.

◆ EcsUnion

const ecs_entity_t EcsUnion
extern

Tag to indicate that relationship is stored as union.

Union relationships enable changing the target of a union without switching tables. Union relationships are also marked as exclusive.

◆ EcsVariable

const ecs_entity_t EcsVariable
extern

Variable entity ("$").

Used in expressions to prefix variable names

◆ EcsWildcard

const ecs_entity_t EcsWildcard
extern

Wildcard entity ("*").

Matches any id, returns all matches.

◆ EcsWith

const ecs_entity_t EcsWith
extern

Ensure that a component always is added together with another component.

Behavior: If With(R, O) and R(X) then O(X) If With(R, O) and R(X, Y) then O(X, Y)