CameraComponent
Defined in: renderer/src/CameraComponent.ts:104
Core camera state component. Added by CameraEntity; holds position,
zoom, rotation, and layer bindings. Provides convenience methods that
delegate to sibling behavior components (CameraFollow, CameraShake, etc.).
Added by CameraEntity; access via direct reference from spawn()
or by querying entities with this component.
Extends
Section titled “Extends”Component
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new CameraComponent(
options?):CameraComponent
Defined in: renderer/src/CameraComponent.ts:118
Parameters
Section titled “Parameters”options?
Section titled “options?”Returns
Section titled “Returns”CameraComponent
Overrides
Section titled “Overrides”Component.constructor
Properties
Section titled “Properties”autoBind
Section titled “autoBind”
readonlyautoBind:boolean
Defined in: renderer/src/CameraComponent.ts:114
Bind every world-space layer before applying bindings. Default: true.
bindings
Section titled “bindings”
readonlybindings:CameraBinding[] |null
Defined in: renderer/src/CameraComponent.ts:112
cameraName
Section titled “cameraName”
readonlycameraName:string|undefined
Defined in: renderer/src/CameraComponent.ts:116
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
modifiers
Section titled “modifiers”
readonlymodifiers:CameraModifierHost
Defined in: renderer/src/CameraComponent.ts:110
Transient position, rotation, and zoom contributions.
position
Section titled “position”position:
Vec2
Defined in: renderer/src/CameraComponent.ts:106
priority
Section titled “priority”
readonlypriority:number
Defined in: renderer/src/CameraComponent.ts:115
rotation
Section titled “rotation”rotation:
number
Defined in: renderer/src/CameraComponent.ts:108
zoom:
number
Defined in: renderer/src/CameraComponent.ts:107
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”bounds
Section titled “bounds”Get Signature
Section titled “Get Signature”get bounds():
CameraBounds|undefined
Defined in: renderer/src/CameraComponent.ts:192
Get or set camera bounds.
Returns
Section titled “Returns”CameraBounds | undefined
Set Signature
Section titled “Set Signature”set bounds(
value):void
Defined in: renderer/src/CameraComponent.ts:196
Parameters
Section titled “Parameters”CameraBounds | undefined
Returns
Section titled “Returns”void
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
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
effectivePosition
Section titled “effectivePosition”Get Signature
Section titled “Get Signature”get effectivePosition():
Vec2
Defined in: renderer/src/CameraComponent.ts:138
Effective position including every active camera modifier.
Returns
Section titled “Returns”Vec2
effectiveRotation
Section titled “effectiveRotation”Get Signature
Section titled “Get Signature”get effectiveRotation():
number
Defined in: renderer/src/CameraComponent.ts:149
Effective rotation including every active camera modifier.
Returns
Section titled “Returns”number
effectiveZoom
Section titled “effectiveZoom”Get Signature
Section titled “Get Signature”get effectiveZoom():
number
Defined in: renderer/src/CameraComponent.ts:154
Effective zoom including every active camera modifier.
Returns
Section titled “Returns”number
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 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
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
viewportHeight
Section titled “viewportHeight”Get Signature
Section titled “Get Signature”get viewportHeight():
number
Defined in: renderer/src/CameraComponent.ts:133
Returns
Section titled “Returns”number
viewportWidth
Section titled “viewportWidth”Get Signature
Section titled “Get Signature”get viewportWidth():
number
Defined in: renderer/src/CameraComponent.ts:129
Returns
Section titled “Returns”number
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
_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
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
follow()
Section titled “follow()”follow(
target,options?):void
Defined in: renderer/src/CameraComponent.ts:159
Start following a target.
Parameters
Section titled “Parameters”target
Section titled “target”options?
Section titled “options?”Returns
Section titled “Returns”void
getEffectivePositionInto()
Section titled “getEffectivePositionInto()”getEffectivePositionInto(
out):Vec2Buffer
Defined in: renderer/src/CameraComponent.ts:144
Copy the position including active modifiers into caller-owned scratch.
Parameters
Section titled “Parameters”Vec2Buffer
Returns
Section titled “Returns”Vec2Buffer
getResolvedBindings()
Section titled “getResolvedBindings()”getResolvedBindings(
tree): readonlyCameraBinding[]
Defined in: renderer/src/CameraComponent.ts:288
Resolve bindings for this camera against the given render tree.
Every world-space layer (LayerDef.space === "world", the default) is
bound at full strength. Screen-space layers — declared with
space: "screen" or auto-provisioned by plugins via
ensureLayer(def, { space: "screen" }), e.g. the UI layer — are skipped
so they stay fixed to the viewport.
An entry in bindings replaces the binding for the layer it names; an
entry naming a screen-space layer, or a layer the tree does not hold,
is added. With autoBind: false the camera binds exactly the entries in
bindings and nothing else — the only way to leave a world-space layer
untransformed, since a binding with all three ratios at 0 centres the
layer on the viewport instead.
Called once per camera per frame, so a layer created after the camera spawned is bound on the next frame.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”readonly CameraBinding[]
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()?”
optionalonAdd():void
Defined in: core/dist/index.d.ts:4281
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.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.onAdd
onDestroy()
Section titled “onDestroy()”onDestroy():
void
Defined in: renderer/src/CameraComponent.ts:309
Called when the component is destroyed (entity destroyed or component removed).
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
screenToWorld()
Section titled “screenToWorld()”screenToWorld(
screenX,screenY):Vec2
Defined in: renderer/src/CameraComponent.ts:209
Convert screen coordinates to world coordinates.
The conversion uses the camera’s own transform, not any layer’s. A layer
bound with a ratio below 1 (parallax, dampened zoom) renders under a
different transform, so this result does not name a point on that layer.
The result is undefined for a zoom of 0 or a non-finite camera value.
Parameters
Section titled “Parameters”screenX
Section titled “screenX”number
screenY
Section titled “screenY”number
Returns
Section titled “Returns”Vec2
screenToWorldInto()
Section titled “screenToWorldInto()”screenToWorldInto(
out,screenX,screenY):Vec2Buffer
Defined in: renderer/src/CameraComponent.ts:219
Copy a screen-to-world projection into caller-owned scratch.
Parameters
Section titled “Parameters”Vec2Buffer
screenX
Section titled “screenX”number
screenY
Section titled “screenY”number
Returns
Section titled “Returns”Vec2Buffer
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
shake()
Section titled “shake()”shake(
intensity,duration,options?):void
Defined in: renderer/src/CameraComponent.ts:178
Start a screen shake effect. intensity is the maximum displacement per
axis in world pixels, so what the player sees scales with zoom — the
same intensity moves twice as far on screen at zoom 2.
Parameters
Section titled “Parameters”intensity
Section titled “intensity”number
duration
Section titled “duration”number
options?
Section titled “options?”Returns
Section titled “Returns”void
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
snapToTarget()
Section titled “snapToTarget()”snapToTarget():
void
Defined in: renderer/src/CameraComponent.ts:169
Cut to the current follow target, skipping the smoothing ease.
Returns
Section titled “Returns”void
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
unfollow()
Section titled “unfollow()”unfollow():
void
Defined in: renderer/src/CameraComponent.ts:164
Stop following any target.
Returns
Section titled “Returns”void
update()?
Section titled “update()?”
optionalupdate(dt):void
Defined in: core/dist/index.d.ts:4305
Called every frame by the built-in ComponentUpdateSystem.
Parameters
Section titled “Parameters”number
Frame delta in seconds, scaled by scene and entity timeScale.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”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
worldToScreen()
Section titled “worldToScreen()”worldToScreen(
worldX,worldY):Vec2
Defined in: renderer/src/CameraComponent.ts:241
Convert world coordinates to screen coordinates.
The conversion uses the camera’s own transform, not any layer’s. Content
on a layer bound with a ratio below 1 (parallax, dampened zoom) is
drawn somewhere else on screen than this result says.
Parameters
Section titled “Parameters”worldX
Section titled “worldX”number
worldY
Section titled “worldY”number
Returns
Section titled “Returns”Vec2
worldToScreenInto()
Section titled “worldToScreenInto()”worldToScreenInto(
out,worldX,worldY):Vec2Buffer
Defined in: renderer/src/CameraComponent.ts:251
Copy a world-to-screen projection into caller-owned scratch.
Parameters
Section titled “Parameters”Vec2Buffer
worldX
Section titled “worldX”number
worldY
Section titled “worldY”number
Returns
Section titled “Returns”Vec2Buffer
zoomTo()
Section titled “zoomTo()”zoomTo(
target,duration,easing?):void
Defined in: renderer/src/CameraComponent.ts:187
Animate zoom to a target value over a duration.
Parameters
Section titled “Parameters”target
Section titled “target”number
duration
Section titled “duration”number
easing?
Section titled “easing?”EasingFunction
Returns
Section titled “Returns”void
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.