Options
All
  • Public
  • Public/Protected
  • All
Menu

An Entity is the base type of anything that can have behavior in Excalibur, they are part of the built in entity component system

Entities can be strongly typed with the components they contain

const entity = new Entity<ComponentA | ComponentB>();
entity.components.a; // Type ComponentA
entity.components.b; // Type ComponentB

Hierarchy

Implements

Index

Constructors

Properties

active: boolean = true

Whether this entity is active, if set to false it will be reclaimed

childrenAdded$: Util.Observable<Entity> = ...
childrenRemoved$: Util.Observable<Entity> = ...
componentAdded$: Util.Observable<AddedComponent> = ...

Observable that keeps track of component add or remove changes on the entity

componentRemoved$: Util.Observable<RemovedComponent> = ...
eventDispatcher: EventDispatcher<any>

Direct access to the game object event dispatcher.

id: number = ...

The unique identifier for the entity

scene: Scene<unknown> = null

The scene that the entity is in, if any

Accessors

  • get children(): readonly Entity[]
  • get isInitialized(): boolean
  • get name(): string
  • get tags(): readonly string[]
  • get types(): string[]

Methods

  • _initialize(engine: Engine): void
  • Initializes this entity, meant to be called by the Scene before first update not by users of Excalibur.

    It is not recommended that internal excalibur methods be overridden, do so at your own risk.

    internal

    Parameters

    Returns void

  • _postupdate(engine: Engine, delta: number): void
  • _preupdate(engine: Engine, delta: number): void
  • _setName(name: string): void
  • addComponent<T>(component: T, force?: boolean): Entity
  • Adds a component to the entity

    Type Parameters

    Parameters

    • component: T

      Component or Entity to add copy of components from

    • force: boolean = false

      Optionally overwrite any existing components of the same type

    Returns Entity

  • addTemplate(templateEntity: Entity, force?: boolean): Entity
  • Adds a copy of all the components from another template entity as a "prefab"

    Parameters

    • templateEntity: Entity

      Entity to use as a template

    • force: boolean = false

      Force component replacement if it already exists on the target entity

    Returns Entity

  • emit(eventName: string, eventObject: any): void
  • Emits a new event

    Parameters

    • eventName: string

      Name of the event to emit

    • eventObject: any

      Data associated with this event

    Returns void

  • has<T>(type: ComponentCtor<T>): boolean
  • has(type: string): boolean
  • hasTag(tag: string): boolean
  • isKilled(): boolean
  • kill(): void
  • Kill the entity, means it will no longer be updated. Kills are deferred to the end of the update. If parented it will be removed from the parent when killed.

    Returns void

  • off(eventName: string, handler?: ((event: any) => void)): void
  • Alias for removeEventListener. If only the eventName is specified it will remove all handlers registered for that specific event. If the eventName and the handler instance are specified only that handler will be removed.

    Parameters

    • eventName: string

      Name of the event to listen for

    • Optional handler: ((event: any) => void)

      Event handler for the thrown event

        • (event: any): void
        • Parameters

          • event: any

          Returns void

    Returns void

  • on(eventName: string, handler: ((event: any) => void)): void
  • Alias for addEventListener. You can listen for a variety of events off of the engine; see the events section below for a complete list.

    Parameters

    • eventName: string

      Name of the event to listen for

    • handler: ((event: any) => void)

      Event handler for the thrown event

        • (event: any): void
        • Parameters

          • event: any

          Returns void

    Returns void

  • onInitialize(_engine: Engine): void
  • onPostUpdate(_engine: Engine, _delta: number): void
  • onPreUpdate(_engine: Engine, _delta: number): void
  • once(eventName: string, handler: ((event: any) => void)): void
  • Once listens to an event one time, then unsubscribes from that event

    Parameters

    • eventName: string

      The name of the event to subscribe to once

    • handler: ((event: any) => void)

      The handler of the event that will be auto unsubscribed

        • (event: any): void
        • Parameters

          • event: any

          Returns void

    Returns void

  • removeComponent<ComponentOrType>(componentOrType: ComponentOrType, force?: boolean): Entity
  • Removes a component from the entity, by default removals are deferred to the end of entity update to avoid consistency issues

    Components can be force removed with the force flag, the removal is not deferred and happens immediately

    Type Parameters

    • ComponentOrType extends string | Component<string>

    Parameters

    • componentOrType: ComponentOrType
    • force: boolean = false

    Returns Entity

  • removeTag(tag: string, force?: boolean): Entity
  • Removes a tag on the entity

    Removals are deferred until the end of update

    Parameters

    • tag: string
    • force: boolean = false

      Remove component immediately, no deferred

    Returns Entity

  • unparent(): void
  • update(engine: Engine, delta: number): void