Skip to content

Transform

Defined in: Transform.ts:8

Mutable transform component for entity positioning.

new Transform(options?): Transform

Defined in: Transform.ts:37

Vec2Like

number

Vec2Like

Transform

Component.constructor

entity: Entity

Defined in: Component.ts:26

Back-reference to the owning entity. Set by the engine when the component is added to an entity. Do not set manually.

Component.entity


static optional inspectExclude?: readonly string[]

Defined in: Component.ts:462

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"];
}

Component.inspectExclude


static optional updatePriority?: number

Defined in: Component.ts:448

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
}

Component.updatePriority

get context(): EngineContext

Defined in: Component.ts:114

Access the EngineContext from the entity’s scene. Throws if the entity is not in a scene.

EngineContext

Component.context


get effectiveEnabled(): boolean

Defined in: Component.ts:61

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.

boolean

Component.effectiveEnabled


get enabled(): boolean

Defined in: Component.ts:45

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.

boolean

set enabled(value): void

Defined in: Component.ts:49

boolean

void

KeyframeAnimator.enabled


get position(): Vec2

Defined in: Transform.ts:75

Local position (relative to parent, or world if no parent).

Vec2

set position(v): void

Defined in: Transform.ts:79

Vec2

void


get rotation(): number

Defined in: Transform.ts:89

Local rotation in radians.

number

set rotation(v): void

Defined in: Transform.ts:93

number

void


get scale(): Vec2

Defined in: Transform.ts:100

Local scale factor.

Vec2

set scale(v): void

Defined in: Transform.ts:104

Vec2

void


get scene(): Scene

Defined in: Component.ts:100

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.

Scene

Component.scene


get updatePriority(): number

Defined in: Component.ts:82

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
}
}

number

set updatePriority(value): void

Defined in: Component.ts:90

number

void

KeyframeAnimator.updatePriority


get worldPosition(): Vec2

Defined in: Transform.ts:114

Computed world position. Recomputed lazily when dirty.

Vec2

set worldPosition(v): void

Defined in: Transform.ts:129

Set position in world space. Back-computes the local position from the parent chain. On an axis where the parent’s world scale is 0 no local value can reach the requested world value, so the local value on that axis is kept unchanged (and a dev-mode warning is emitted).

Vec2

void


get worldRotation(): number

Defined in: Transform.ts:182

Computed world rotation. Recomputed lazily when dirty.

number

set worldRotation(v): void

Defined in: Transform.ts:188

Set rotation in world space. Back-computes the local rotation from the parent chain.

number

void


get worldScale(): Vec2

Defined in: Transform.ts:204

Computed world scale. Recomputed lazily when dirty.

Vec2

_applyEnabled(effective): void

Defined in: Component.ts:376

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.

boolean

void

Component._applyEnabled


_isTornDown(): boolean

Defined in: Component.ts:347

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.

boolean

Component._isTornDown


_markDirty(): void

Defined in: Transform.ts:335

Internal

Mark this transform and all descendant transforms as dirty.

void


_markTornDown(): void

Defined in: Component.ts:356

Internal

Internal: mark this component torn down. Called by Entity.remove() and Entity._performDestroy() after onDestroy runs.

void

Component._markTornDown


_refreshEnabled(): void

Defined in: Component.ts:365

Internal

Recompute effective enabled-ness from enabled and the entity’s activeness, firing the hook on a flip.

void

Component._refreshEnabled


_runCleanups(onError?): void

Defined in: Component.ts:319

Internal

Run and clear all registered cleanups. Called by Entity.remove() and Entity._performDestroy() before onDestroy.

(error) => void

void

Component._runCleanups


protected addCleanup(fn): void

Defined in: Component.ts:277

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.

() => void

void

Component.addCleanup


destroy(): void

Defined in: Component.ts:335

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.

void

Component.destroy


optional fixedUpdate(dt): void

Defined in: Component.ts:432

Called every fixed timestep by the built-in ComponentUpdateSystem.

number

Fixed timestep in seconds, scaled by scene and entity timeScale.

void

Component.fixedUpdate


getPositionInto(out): Vec2Buffer

Defined in: Transform.ts:214

Copy local coordinates into caller-owned scratch.

Vec2Buffer

Vec2Buffer


getScaleInto(out): Vec2Buffer

Defined in: Transform.ts:225

Copy local scale into caller-owned scratch.

Vec2Buffer

Vec2Buffer


getWorldPositionInto(out): Vec2Buffer

Defined in: Transform.ts:219

Copy world coordinates into caller-owned scratch.

Vec2Buffer

Vec2Buffer


getWorldScaleInto(out): Vec2Buffer

Defined in: Transform.ts:230

Copy composed world scale into caller-owned scratch.

Vec2Buffer

Vec2Buffer


protected listen<T>(source, token, handler): void

Defined in: Component.ts:237

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),
);

T

EventSource

EventToken<T>

(data) => void

void

Component.listen


protected listenBus<K>(event, handler): void

Defined in: Component.ts:263

Subscribe to an engine EventBus event, auto-unsubscribe on removal. Throws when the entity is not in a scene, like listenScene.

K extends keyof EngineEvents

K

(data) => void

void

Component.listenBus


protected listenScene<T>(token, handler): void

Defined in: Component.ts:251

Subscribe to scene-level events, auto-unsubscribe on removal. Handlers fire for bubbled entity events (entity = source) and scene.emit events (entity = undefined).

T

EventToken<T>

(data, entity?) => void

void

Component.listenScene


localToWorld(point): Vec2

Defined in: Transform.ts:297

A point in this entity’s own space, expressed in world space.

The point is scaled by the world scale, turned by the world rotation, and offset by the world position — the same composition a child transform goes through — so an offset authored beside the entity lands where the artwork does whatever the parent chain does.

const muzzle = this.get(Transform).localToWorld({ x: 24, y: -6 });

Vec2Like

Vec2


optional onAdd(): void

Defined in: Component.ts:398

Called when the component is added to an entity. Validate dependencies here — a service, a sibling component, a render layer — and throw when one is missing. The throw is attributed to this component, recorded in Inspector.getErrors().callbackErrors, and rethrown, so it reaches the caller of entity.add() unchanged.

void

Component.onAdd


optional onDestroy(): void

Defined in: Component.ts:420

Called when the component is destroyed (entity destroyed or component removed).

void

Component.onDestroy


optional onDisable(): void

Defined in: Component.ts:417

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.

void

Component.onDisable


optional onEnable(): void

Defined in: Component.ts:408

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.

void

Component.onEnable


rotate(deltaRadians): void

Defined in: Transform.ts:265

Rotate by a delta in radians.

number

void


protected service<T>(key): T

Defined in: Component.ts:177

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.

T extends object

ServiceKey<T>

T

Component.service


setPosition(x, y): void

Defined in: Transform.ts:236

Set position directly.

number

number

void


setRotation(radians): void

Defined in: Transform.ts:258

Set rotation in radians.

number

void


setScale(x, y): void

Defined in: Transform.ts:276

Set scale.

number

number

void


setWorldPosition(x, y): void

Defined in: Transform.ts:134

Set world coordinates without constructing a vector.

number

number

void


protected sibling<C>(cls): C

Defined in: Component.ts:205

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.

C extends Component

ComponentClass<C>

C

Component.sibling


protected stateMachine<S>(states, initial, options?): StateMachine<S>

Defined in: Component.ts:287

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.

S extends string

StateDefinitions<S>

NoInfer<S>

StateMachineOptions

StateMachine<S>

Component.stateMachine


translate(dx, dy): void

Defined in: Transform.ts:246

Translate by an offset.

number

number

void


optional update(dt): void

Defined in: Component.ts:426

Called every frame by the built-in ComponentUpdateSystem.

number

Frame delta in seconds, scaled by scene and entity timeScale.

void

Component.update


protected use<T>(key): T

Defined in: Component.ts:125

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.

T

ServiceKey<T>

T

Component.use


worldToLocal(point): Vec2

Defined in: Transform.ts:319

Convert a world-space point into this entity’s own local space — the inverse of this transform’s world position, rotation and scale. Use it to ask where a world point falls inside an entity that is parented, rotated or scaled.

On an axis whose world scale is 0 the world transform collapses that axis, so no local point maps back and the result is non-finite there. A caller that can be handed such a transform checks Number.isFinite.

Vec2Like

Vec2

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/core.md.