AnimationController
Defined in: renderer/src/AnimationController.ts:80
High-level animation controller that manages named animations on top of a sibling AnimatedSpriteComponent.
Provides one-shot locking, per-animation anchors, and type-safe animation names via the generic parameter.
Narrowing the animation-name type — entity.get(AnimationController)
returns AnimationController<string> (the default T); the runtime class
isn’t generic, and a string-typed instance can’t substitute for a narrower
one (the current: T | "" getter is covariant on T). Cast at the field
declaration so every consumer downstream sees the narrow type:
type Anim = "idle" | "walk" | "shoot";
class HeroController extends Component { private readonly _anim = this.sibling(AnimationController) as AnimationController<Anim>;}For multi-sprite (head + body + outfit) characters, see
LayeredAnimationController — it fans play()/playOneShot() across
a list of sibling controllers with a single shared lock timer.
Extends
Section titled “Extends”Component
Type Parameters
Section titled “Type Parameters”T extends string = string
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AnimationController<
T>(animations):AnimationController<T>
Defined in: renderer/src/AnimationController.ts:95
Parameters
Section titled “Parameters”animations
Section titled “animations”Record<T, AnimationDef>
Returns
Section titled “Returns”AnimationController<T>
Overrides
Section titled “Overrides”Component.constructor
Properties
Section titled “Properties”entity
Section titled “entity”entity:
Entity
Defined in: core/dist/index.d.ts:4116
Back-reference to the owning entity. Set by the engine when the component is added to an entity. Do not set manually.
Inherited from
Section titled “Inherited from”Component.entity
inspectExclude?
Section titled “inspectExclude?”
staticoptionalinspectExclude?: readonlystring[]
Defined in: core/dist/index.d.ts:4338
Own fields and getters the Inspector leaves out of this component’s reflected state. Use it for bulk data that is not worth a diagnostic copy — a parsed tilemap, a large lookup table. Lists merge down the class chain, so a subclass adds to its base class’s exclusions.
class TilemapComponent extends VisualComponent { static inspectExclude = ["data"];}Inherited from
Section titled “Inherited from”Component.inspectExclude
updatePriority?
Section titled “updatePriority?”
staticoptionalupdatePriority?:number
Defined in: core/dist/index.d.ts:4325
Class-level default for updatePriority: every instance runs at
this priority unless its own updatePriority is written. Undeclared = 0.
Subclasses inherit their base class’s value unless they declare their
own. Declare it on a component whose behavior depends on running after
(or before) a sibling, so the entity that adds it does not have to
control the add order.
class BoundsClamp extends Component { static updatePriority = 10; // after the follow that moves the camera}Inherited from
Section titled “Inherited from”Component.updatePriority
Accessors
Section titled “Accessors”context
Section titled “context”Get Signature
Section titled “Get Signature”get context():
EngineContext
Defined in: core/dist/index.d.ts:4171
Access the EngineContext from the entity’s scene. Throws if the entity is not in a scene.
Returns
Section titled “Returns”EngineContext
Inherited from
Section titled “Inherited from”Component.context
current
Section titled “current”Get Signature
Section titled “Get Signature”get current():
""|T
Defined in: renderer/src/AnimationController.ts:113
Currently playing animation name, or "" if none.
Returns
Section titled “Returns”"" | T
effectiveEnabled
Section titled “effectiveEnabled”Get Signature
Section titled “Get Signature”get effectiveEnabled():
boolean
Defined in: core/dist/index.d.ts:4141
Whether the component is actually running: enabled, on an active
entity, and past onAdd. This is the state onEnable and
onDisable track — read it when a method has to behave one way
live and another way dormant.
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”Component.effectiveEnabled
enabled
Section titled “enabled”Get Signature
Section titled “Get Signature”get enabled():
boolean
Defined in: core/dist/index.d.ts:4133
Whether this component runs. Disabled components are skipped by ComponentUpdateSystem.
Writing this fires onEnable / onDisable when the
effective state changes — enabled && entity.isActive. A component
disabled here stays disabled through a setActive(false) /
setActive(true) cycle on its entity.
Returns
Section titled “Returns”boolean
Set Signature
Section titled “Set Signature”set enabled(
value):void
Defined in: core/dist/index.d.ts:4134
Parameters
Section titled “Parameters”boolean
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Get Signature
Section titled “Get Signature”get frame():
number
Defined in: renderer/src/AnimationController.ts:123
Current frame index of the underlying AnimatedSprite.
Returns
Section titled “Returns”number
locked
Section titled “locked”Get Signature
Section titled “Get Signature”get locked():
boolean
Defined in: renderer/src/AnimationController.ts:118
True if a one-shot animation is blocking.
Returns
Section titled “Returns”boolean
Get Signature
Section titled “Get Signature”get scene():
Scene
Defined in: core/dist/index.d.ts:4166
Access the entity’s scene. Throws if the entity is not in a scene.
Prefer this over threading through this.entity.scene in component
code.
Returns
Section titled “Returns”Scene
Inherited from
Section titled “Inherited from”Component.scene
Get Signature
Section titled “Get Signature”get speed():
number
Defined in: renderer/src/AnimationController.ts:131
Runtime speed multiplier (default 1). A controller owned by a LayeredAnimationController shares this value with every layer.
Returns
Section titled “Returns”number
Set Signature
Section titled “Set Signature”set speed(
value):void
Defined in: renderer/src/AnimationController.ts:135
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
updatePriority
Section titled “updatePriority”Get Signature
Section titled “Get Signature”get updatePriority():
number
Defined in: core/dist/index.d.ts:4159
Where this component runs among its siblings. ComponentUpdateSystem
calls update / fixedUpdate on an entity’s components in ascending
priority; equal priorities run in add order. Undeclared = 0, so a
negative value runs before siblings that keep the default and a positive
value runs after them. Writable at any time, before or after add().
Defaults to the class’s static updatePriority.
class Player extends Entity { setup() { this.add(new Mover()); this.add(new Brain()).updatePriority = -1; // decides before Mover moves }}Returns
Section titled “Returns”number
Set Signature
Section titled “Set Signature”set updatePriority(
value):void
Defined in: core/dist/index.d.ts:4160
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.updatePriority
Methods
Section titled “Methods”_applyEnabled()
Section titled “_applyEnabled()”_applyEnabled(
effective):void
Defined in: core/dist/index.d.ts:4273
Internal
Force an effective-enabled transition, firing the hook on a flip. Used by
Entity for teardown, where enabled and the entity’s activeness both
still read true.
Parameters
Section titled “Parameters”effective
Section titled “effective”boolean
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component._applyEnabled
_assertTiming()
Section titled “_assertTiming()”_assertTiming(
name,options):void
Defined in: renderer/src/AnimationController.ts:258
Internal
Throw if this controller would reject the timing, without deriving a
duration from it. LayeredAnimationController checks every layer before
any layer switches; when the caller passes an explicit shared duration,
no layer’s own duration feeds the timer, so only the frame and speed
gates apply.
Parameters
Section titled “Parameters”T
options
Section titled “options”AnimationTimingOptions | undefined
Returns
Section titled “Returns”void
_isTornDown()
Section titled “_isTornDown()”_isTornDown():
boolean
Defined in: core/dist/index.d.ts:4254
Internal
Internal: true once this component has been removed or its entity
destroyed. Components are terminal — Entity.add uses this to reject
re-attaching an instance whose cleanups and onDestroy already ran.
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”Component._isTornDown
_markTornDown()
Section titled “_markTornDown()”_markTornDown():
void
Defined in: core/dist/index.d.ts:4260
Internal
Internal: mark this component torn down. Called by Entity.remove() and
Entity._performDestroy() after onDestroy runs.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component._markTornDown
_refreshEnabled()
Section titled “_refreshEnabled()”_refreshEnabled():
void
Defined in: core/dist/index.d.ts:4266
Internal
Recompute effective enabled-ness from enabled and the entity’s
activeness, firing the hook on a flip.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component._refreshEnabled
_runCleanups()
Section titled “_runCleanups()”_runCleanups(
onError?):void
Defined in: core/dist/index.d.ts:4241
Internal
Run and clear all registered cleanups. Called by Entity.remove() and Entity._performDestroy() before onDestroy.
Parameters
Section titled “Parameters”onError?
Section titled “onError?”(error) => void
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component._runCleanups
addCleanup()
Section titled “addCleanup()”
protectedaddCleanup(fn):void
Defined in: core/dist/index.d.ts:4229
Register a cleanup function to run when this component is removed or
destroyed, before onDestroy. Use it for what listen, listenScene
and listenBus do not cover, such as an unsubscribe from a custom
emitter.
Parameters
Section titled “Parameters”() => void
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.addCleanup
calcDuration()
Section titled “calcDuration()”calcDuration(
name,options?):number
Defined in: renderer/src/AnimationController.ts:242
Calculate the engine-scaled duration (seconds) a one-shot of this
animation would take, matching what playOneShot locks for.
Frame-rate independent: PixiJS normalises deltaTime via
Ticker.targetFPMS (0.06), so the formula holds at any actual fps. The
controller timer and animated sprite both receive engine-scaled time.
Throws unless the effective speed is positive and produces a finite
duration. Use an explicit one-shot duration for paused or reverse playback.
Parameters
Section titled “Parameters”T
options?
Section titled “options?”Returns
Section titled “Returns”number
destroy()
Section titled “destroy()”destroy():
void
Defined in: core/dist/index.d.ts:4247
End this component’s life on its own — the same as
entity.remove(SomeClass), without having to name its own class from
inside itself, which breaks under subclassing.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.destroy
fixedUpdate()?
Section titled “fixedUpdate()?”
optionalfixedUpdate(dt):void
Defined in: core/dist/index.d.ts:4310
Called every fixed timestep by the built-in ComponentUpdateSystem.
Parameters
Section titled “Parameters”number
Fixed timestep in seconds, scaled by scene and entity timeScale.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.fixedUpdate
forcePlay()
Section titled “forcePlay()”forcePlay(
name):void
Defined in: renderer/src/AnimationController.ts:217
Clear lock and force-switch to the given animation.
Parameters
Section titled “Parameters”T
Returns
Section titled “Returns”void
has(
name):name is T
Defined in: renderer/src/AnimationController.ts:166
Whether this controller defines the given animation name.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”name is T
inFrameRange()
Section titled “inFrameRange()”inFrameRange(
start,end):boolean
Defined in: renderer/src/AnimationController.ts:293
Check whether the current frame is within [start, end] inclusive.
Parameters
Section titled “Parameters”number
number
Returns
Section titled “Returns”boolean
listen()
Section titled “listen()”
protectedlisten<T>(source,token,handler):void
Defined in: core/dist/index.d.ts:4211
Subscribe to events from an entity or a state machine, auto-unsubscribe on removal.
this.listen(this.entity, Hurt, ({ dir }) => this.knockback(dir));this.listen(brain.mode, brain.mode.events.entered, ({ state }) => this.anim.play(state),);Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”source
Section titled “source”EventSource
EventToken<T>
handler
Section titled “handler”(data) => void
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.listen
listenBus()
Section titled “listenBus()”
protectedlistenBus<K>(event,handler):void
Defined in: core/dist/index.d.ts:4222
Subscribe to an engine EventBus event, auto-unsubscribe on removal.
Throws when the entity is not in a scene, like listenScene.
Type Parameters
Section titled “Type Parameters”K extends keyof EngineEvents
Parameters
Section titled “Parameters”K
handler
Section titled “handler”(data) => void
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.listenBus
listenScene()
Section titled “listenScene()”
protectedlistenScene<T>(token,handler):void
Defined in: core/dist/index.d.ts:4217
Subscribe to scene-level events, auto-unsubscribe on removal. Handlers
fire for bubbled entity events (entity = source) and scene.emit
events (entity = undefined).
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”EventToken<T>
handler
Section titled “handler”(data, entity?) => void
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.listenScene
onAdd()
Section titled “onAdd()”onAdd():
void
Defined in: renderer/src/AnimationController.ts:299
Auto-play the first defined animation.
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”Component.onAdd
onDestroy()
Section titled “onDestroy()”onDestroy():
void
Defined in: renderer/src/AnimationController.ts:308
A live one-shot ends with the component, so its onCancel still runs.
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”Component.onDestroy
onDisable()?
Section titled “onDisable()?”
optionalonDisable():void
Defined in: core/dist/index.d.ts:4298
Called when the component stops being effectively enabled — enabled
went false, the entity (or an ancestor) was deactivated, or the
component is being removed or destroyed. Put live resources to sleep
here; the component is reused afterwards, so do not free anything
onEnable cannot rebuild.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.onDisable
onEnable()?
Section titled “onEnable()?”
optionalonEnable():void
Defined in: core/dist/index.d.ts:4290
Called when the component becomes effectively enabled — enabled is
true and the entity is active. Fires right after onAdd() for a
component added to an active entity, and again on every later flip.
Bring live resources back online here (unpause a sound, show a display
object, re-enable a physics body). Game-state reset does not belong here:
the hook sees whatever state the component held while dormant.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.onEnable
play()
Section titled “play()”play(
name):void
Defined in: renderer/src/AnimationController.ts:171
Play a named animation. No-op if already current or locked.
Parameters
Section titled “Parameters”T
Returns
Section titled “Returns”void
playOneShot()
Section titled “playOneShot()”playOneShot(
name,options?):void
Defined in: renderer/src/AnimationController.ts:191
Play an animation as a one-shot, locking out other plays until complete. No-op if already locked on the same animation (prevents restart flicker).
Exactly one of onComplete and onCancel runs per one-shot:
onComplete when the lock timer plays out, onCancel when another
one-shot, forcePlay, unlock or component destruction ends it first.
A cancel callback runs after the new state is in place, so calling
playOneShot from inside it takes effect.
When options.duration is omitted, the lock duration is auto-calculated
from the frames that will actually play — the frame count from
startFrame on, at the controller speed times options.speed. Pass an
explicit duration to synchronise lock release across multiple
controllers (see LayeredAnimationController).
Parameters
Section titled “Parameters”T
options?
Section titled “options?”Returns
Section titled “Returns”void
service()
Section titled “service()”
protectedservice<T>(key):T
Defined in: core/dist/index.d.ts:4188
Lazy proxy-based service resolution. Can be used at field-declaration time:
readonly input = this.service(InputManagerKey);The actual resolution is deferred until first property access.
Type Parameters
Section titled “Type Parameters”T extends object
Parameters
Section titled “Parameters”ServiceKey<T>
Returns
Section titled “Returns”T
Inherited from
Section titled “Inherited from”Component.service
sibling()
Section titled “sibling()”
protectedsibling<C>(cls):C
Defined in: core/dist/index.d.ts:4199
Lazy proxy-based sibling component resolution. Can be used at field-declaration time:
readonly anim = this.sibling(AnimatedSpriteComponent);The actual resolution is deferred until first property access. The
reference passes instanceof cls before it resolves, so an engine API
that checks the type of what it is handed (camera.follow(this.transform))
accepts it.
Type Parameters
Section titled “Type Parameters”C extends Component
Parameters
Section titled “Parameters”ComponentClass<C>
Returns
Section titled “Returns”C
Inherited from
Section titled “Inherited from”Component.sibling
stateMachine()
Section titled “stateMachine()”
protectedstateMachine<S>(states,initial,options?):StateMachine<S>
Defined in: core/dist/index.d.ts:4235
Create a state machine whose hooks and event handlers are attributed to this component when they throw. The machine can be declared as a field because service lookup waits until a hook runs.
Type Parameters
Section titled “Type Parameters”S extends string
Parameters
Section titled “Parameters”states
Section titled “states”StateDefinitions<S>
initial
Section titled “initial”NoInfer<S>
options?
Section titled “options?”StateMachineOptions
Returns
Section titled “Returns”StateMachine<S>
Inherited from
Section titled “Inherited from”Component.stateMachine
unlock()
Section titled “unlock()”unlock():
void
Defined in: renderer/src/AnimationController.ts:226
Manually release the one-shot lock, firing a pending onCancel.
Returns
Section titled “Returns”void
update()
Section titled “update()”update(
dt):void
Defined in: renderer/src/AnimationController.ts:313
Tick the one-shot lock timer.
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”Component.update
protecteduse<T>(key):T
Defined in: core/dist/index.d.ts:4179
Resolve a service by key, cached after first lookup. Scene-scoped values
(registered via scene._registerScoped) take precedence over engine
scope. A key declared with scope: "scene" that falls back to engine
scope emits a one-shot dev warning — almost always signals a missed
beforeEnter hook.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”ServiceKey<T>
Returns
Section titled “Returns”T
Inherited from
Section titled “Inherited from”Component.use
Coding agents: fetch https://yage.dev/llms.txt first and prefer the Markdown references it links over these HTML pages. This page's Markdown counterpart is /llms/packages/renderer.md.