Skip to content

Entity

Defined in: Entity.ts:31

An entity is a named container of components with O(1) lookups by type.

new Entity(name?, tags?): Entity

Defined in: Entity.ts:48

string

Iterable<string, any, any>

Entity

readonly id: number

Defined in: Entity.ts:34

Unique auto-incrementing ID.


readonly name: string

Defined in: Entity.ts:36

Display name for debugging.


readonly tags: Set<string>

Defined in: Entity.ts:38

Tags for group queries.


static [TRAITS_KEY]: Set<symbol>

Defined in: Entity.ts:32

get children(): ReadonlyMap<string, Entity>

Defined in: Entity.ts:70

Named children as a read-only map. Empty map if no children.

ReadonlyMap<string, Entity>


get isDestroyed(): boolean

Defined in: Entity.ts:60

True if destroy() has been called.

boolean


get parent(): Entity | null

Defined in: Entity.ts:65

The parent entity, or null if this is a root entity.

Entity | null


get scene(): Scene | null

Defined in: Entity.ts:55

The scene this entity belongs to, or null.

Scene | null

_performDestroy(): void

Defined in: Entity.ts:235

Internal

Internal: perform actual destruction — remove all components and clear state. Called by Scene during endOfFrame flush.

void


_setScene(scene, callbacks): void

Defined in: Entity.ts:290

Internal

Internal: set the scene and callbacks. Called by Scene.spawn().

Scene | null

EntityCallbacks | null

void


add<C>(component): C

Defined in: Entity.ts:132

Add a component instance. Returns the component for chaining.

C extends Component

C

C


addChild(name, child): void

Defined in: Entity.ts:75

Add a named child entity. Auto-adds to parent’s scene if not already in one.

string

Entity

void


optional afterRestore(data, resolve): void

Defined in: Entity.ts:271

Called after components are restored during save/load. Rebuild non-serializable state here.

unknown

SnapshotResolver

void


destroy(): void

Defined in: Entity.ts:216

Mark for deferred destruction. Actual cleanup happens at end of frame.

void


emit(token): void

Defined in: Entity.ts:194

Emit a typed event on this entity. Bubbles to the scene.

EventToken<void>

void

emit<T>(token, data): void

Defined in: Entity.ts:195

Emit a typed event on this entity. Bubbles to the scene.

T

EventToken<T>

T

void


get<C>(cls): C

Defined in: Entity.ts:147

Get a component by class. Throws if not found.

C extends Component

ComponentClass<C>

C


getAll(): Iterable<Component>

Defined in: Entity.ts:211

Get all components as an iterable.

Iterable<Component>


getChild(name): Entity

Defined in: Entity.ts:118

Get a child by name. Throws if not found.

string

Entity


has(cls): boolean

Defined in: Entity.ts:163

Check if entity has a component of the given class.

ComponentClass

boolean


hasTrait<T>(token): this is Entity & T

Defined in: Entity.ts:274

Check if this entity’s class implements a given trait. Acts as a type guard.

T

TraitToken<T>

this is Entity & T


on<T>(token, handler): () => void

Defined in: Entity.ts:179

Subscribe to a typed event on this entity. Returns an unsubscribe function.

T

EventToken<T>

(data) => void

() => void


remove(cls): void

Defined in: Entity.ts:168

Remove a component by class.

ComponentClass

void


removeChild(name): Entity

Defined in: Entity.ts:103

Remove a named child. Returns the detached entity.

string

Entity


optional serialize(): unknown

Defined in: Entity.ts:268

Return a JSON-serializable snapshot of this entity’s custom state. Used by the save system.

unknown


optional setup(params): void

Defined in: Entity.ts:265

Optional setup method. Called by scene.spawn(Class, params) after the entity is wired to its scene, so components can access services. Override in subclasses — do NOT use the constructor for component setup.

unknown

void


tryGet<C>(cls): C | undefined

Defined in: Entity.ts:158

Get a component by class, or undefined if not found.

C extends Component

ComponentClass<C>

C | undefined


tryGetChild(name): Entity | undefined

Defined in: Entity.ts:127

Get a child by name, or undefined if not found.

string

Entity | undefined