UISurface
Defined in: ui/src/UISurface.ts:27
Mounts a UI tree on an entity: entity.add(new UISurface({...})).
Owns the tree’s root UIPanel element (exposed as root) and provides
builder methods (.text(), .button(), .panel()) for constructing it.
Layout is driven by UILayoutSystem each frame.
Extends
Section titled “Extends”Component
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new UISurface(
opts?):UISurface
Defined in: ui/src/UISurface.ts:42
Parameters
Section titled “Parameters”Returns
Section titled “Returns”UISurface
Overrides
Section titled “Overrides”Component.constructor
Properties
Section titled “Properties”_anchor
Section titled “_anchor”
readonly_anchor:Anchor|undefined
Defined in: ui/src/UISurface.ts:35
Internal
_layer
Section titled “_layer”
readonly_layer:string|undefined
Defined in: ui/src/UISurface.ts:37
Internal
_offset
Section titled “_offset”
readonly_offset:object
Defined in: ui/src/UISurface.ts:36
Internal
x:
number
y:
number
_positioning
Section titled “_positioning”
readonly_positioning:"anchor"|"transform"
Defined in: ui/src/UISurface.ts:38
Internal
entity
Section titled “entity”entity:
Entity
Defined in: core/dist/index.d.ts:3217
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
readonlyroot:UIPanel
Defined in: ui/src/UISurface.ts:34
Root element of the mounted UI tree — a UIPanel created with this
component and destroyed by it in onDestroy. Same instance for the
component’s whole lifetime; after onDestroy it is destroyed (its
destroy() is idempotent) and must not be re-added elsewhere.
inspectExclude?
Section titled “inspectExclude?”
staticoptionalinspectExclude?: readonlystring[]
Defined in: core/dist/index.d.ts:3420
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:3407
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”container
Section titled “container”Get Signature
Section titled “Get Signature”get container():
DisplayContainer
Defined in: ui/src/UISurface.ts:53
The PixiJS Container of the root panel.
Returns
Section titled “Returns”DisplayContainer
context
Section titled “context”Get Signature
Section titled “Get Signature”get context():
EngineContext
Defined in: core/dist/index.d.ts:3272
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:3242
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:3234
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:3235
Parameters
Section titled “Parameters”boolean
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.enabled
Get Signature
Section titled “Get Signature”get scene():
Scene
Defined in: core/dist/index.d.ts:3267
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:3260
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:3261
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.updatePriority
visible
Section titled “visible”Get Signature
Section titled “Get Signature”get visible():
boolean
Defined in: ui/src/UISurface.ts:117
Whether the mounted UI tree is visible. Reads back what you set, even while the entity is dormant and the tree is hidden.
Returns
Section titled “Returns”boolean
Set Signature
Section titled “Set Signature”set visible(
v):void
Defined in: ui/src/UISurface.ts:121
Parameters
Section titled “Parameters”boolean
Returns
Section titled “Returns”void
Methods
Section titled “Methods”_applyEnabled()
Section titled “_applyEnabled()”_applyEnabled(
effective):void
Defined in: core/dist/index.d.ts:3355
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:3336
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:3342
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:3348
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:3323
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:3317
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
addElement()
Section titled “addElement()”addElement(
child):void
Defined in: ui/src/UISurface.ts:96
Append an arbitrary UIElement (e.g. UIImage, UIProgressBar,
UICheckbox) as the last child. Prefer the .text(), .button(),
and .panel() builders for those element types — they’re shorter.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”void
button()
Section titled “button()”button(
label,opts):UIButton
Defined in: ui/src/UISurface.ts:77
Add a button element.
Parameters
Section titled “Parameters”string
Omit<UIButtonProps, "children">
Returns
Section titled “Returns”destroy()
Section titled “destroy()”destroy():
void
Defined in: core/dist/index.d.ts:3329
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:3392
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
insertElementBefore()
Section titled “insertElementBefore()”insertElementBefore(
child,before):void
Defined in: ui/src/UISurface.ts:109
Insert child immediately before before in the root panel’s child
list. Falls back to append if before isn’t a current child.
Parameters
Section titled “Parameters”before
Section titled “before”Returns
Section titled “Returns”void
listen()
Section titled “listen()”
protectedlisten<T>(entity,token,handler):void
Defined in: core/dist/index.d.ts:3299
Subscribe to events on any entity, auto-unsubscribe on removal.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”entity
Section titled “entity”Entity
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:3310
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:3305
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: ui/src/UISurface.ts:134
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
Overrides
Section titled “Overrides”Component.onAdd
onDestroy()
Section titled “onDestroy()”onDestroy():
void
Defined in: ui/src/UISurface.ts:170
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()”onDisable():
void
Defined in: ui/src/UISurface.ts:130
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
Overrides
Section titled “Overrides”Component.onDisable
onEnable()
Section titled “onEnable()”onEnable():
void
Defined in: ui/src/UISurface.ts:126
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
Overrides
Section titled “Overrides”Component.onEnable
panel()
Section titled “panel()”panel(
opts?):UIPanel
Defined in: ui/src/UISurface.ts:82
Add a nested child panel.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”removeElement()
Section titled “removeElement()”removeElement(
child):void
Defined in: ui/src/UISurface.ts:101
Remove a previously added element. No-op if the element isn’t a child.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”void
scrollView()
Section titled “scrollView()”scrollView(
opts?):UIScrollView
Defined in: ui/src/UISurface.ts:87
Add a nested scrollable viewport.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”service()
Section titled “service()”
protectedservice<T>(key):T
Defined in: core/dist/index.d.ts:3289
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
setPointerHandlers()
Section titled “setPointerHandlers()”setPointerHandlers(
handlers):void
Defined in: ui/src/UISurface.ts:67
Set the root panel’s pointer / hover handlers (onHover,
onPointerOver, onPointerOut) after construction — forwarded to
root. (update() can’t double as the prop setter here: on a
Component it’s the per-frame lifecycle hook the engine calls.) Like
the element update, a present key replaces that handler and an absent
key leaves it intact, so a partial setPointerHandlers({ onHover })
won’t drop the others. Handy for wiring attachTooltip:
surface.setPointerHandlers({ onHover: tip.setActive }).
Parameters
Section titled “Parameters”handlers
Section titled “handlers”Returns
Section titled “Returns”void
sibling()
Section titled “sibling()”
protectedsibling<C>(cls):C
Defined in: core/dist/index.d.ts:3297
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.
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
text()
Section titled “text()”text(
content,style?):UIText
Defined in: ui/src/UISurface.ts:72
Add a text element.
Parameters
Section titled “Parameters”content
Section titled “content”string
style?
Section titled “style?”Partial<TextStyleOptions>
Returns
Section titled “Returns”update()?
Section titled “update()?”
optionalupdate(dt):void
Defined in: core/dist/index.d.ts:3387
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:3280
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