Skip to content

UIPanel

Defined in: ui/src/UIPanel.ts:309

Root UI panel component. Added to an entity via entity.add(new UIPanel({…})). Provides builder methods (.text(), .button(), .panel()) for constructing UI trees. Layout is driven by UILayoutSystem each frame.

  • Component

new UIPanel(opts?): UIPanel

Defined in: ui/src/UIPanel.ts:316

UIPanelOptions

UIPanel

Component.constructor

readonly _anchor: Anchor | undefined

Defined in: ui/src/UIPanel.ts:311

Internal


readonly _layer: string | undefined

Defined in: ui/src/UIPanel.ts:313

Internal


readonly _node: PanelNode

Defined in: ui/src/UIPanel.ts:310

Internal


readonly _offset: object

Defined in: ui/src/UIPanel.ts:312

Internal

x: number

y: number


readonly _positioning: "anchor" | "transform"

Defined in: ui/src/UIPanel.ts:314

Internal


enabled: boolean

Defined in: core/dist/index.d.ts:647

Whether this component is active. Disabled components are skipped by ComponentUpdateSystem.

Component.enabled


entity: Entity

Defined in: core/dist/index.d.ts:645

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

Component.entity

get container(): Container

Defined in: ui/src/UIPanel.ts:326

The PixiJS Container for this panel.

Container


get context(): EngineContext

Defined in: core/dist/index.d.ts:660

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

EngineContext

Component.context


get scene(): Scene

Defined in: core/dist/index.d.ts:655

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 visible(): boolean

Defined in: ui/src/UIPanel.ts:368

Whether this panel is visible.

boolean

set visible(v): void

Defined in: ui/src/UIPanel.ts:372

boolean

void

_runCleanups(): void

Defined in: core/dist/index.d.ts:697

Internal

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

void

Component._runCleanups


protected addCleanup(fn): void

Defined in: core/dist/index.d.ts:691

Register a cleanup function to run when this component is removed or destroyed.

() => void

void

Component.addCleanup


addElement(child): void

Defined in: ui/src/UIPanel.ts:350

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.

UIElement

void


optional afterRestore(data, resolve): void

Defined in: core/dist/index.d.ts:711

Called after onAdd() during save/load restoration. Apply state that depends on onAdd() having run.

unknown

SnapshotResolver

void

Component.afterRestore


button(label, opts): UIButton

Defined in: ui/src/UIPanel.ts:336

Add a button element.

string

Omit<UIButtonProps, "children">

UIButton


optional fixedUpdate(dt): void

Defined in: core/dist/index.d.ts:707

Called every fixed timestep by the built-in ComponentUpdateSystem.

number

void

Component.fixedUpdate


insertElementBefore(child, before): void

Defined in: ui/src/UIPanel.ts:363

Insert child immediately before before in this panel’s child list. Falls back to append if before isn’t a current child.

UIElement

UIElement

void


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

Defined in: core/dist/index.d.ts:687

Subscribe to events on any entity, auto-unsubscribe on removal.

T

Entity

EventToken<T>

(data) => void

void

Component.listen


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

Defined in: core/dist/index.d.ts:689

Subscribe to scene-level bubbled events, auto-unsubscribe on removal.

T

EventToken<T>

(data, entity) => void

void

Component.listenScene


onAdd(): void

Defined in: ui/src/UIPanel.ts:376

Called when the component is added to an entity.

void

Component.onAdd


onDestroy(): void

Defined in: ui/src/UIPanel.ts:407

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

void

Component.onDestroy


optional onRemove(): void

Defined in: core/dist/index.d.ts:701

Called when the component is removed from an entity.

void

Component.onRemove


panel(opts?): PanelNode

Defined in: ui/src/UIPanel.ts:341

Add a nested child panel.

PanelProps

PanelNode


removeElement(child): void

Defined in: ui/src/UIPanel.ts:355

Remove a previously added element. No-op if the element isn’t a child.

UIElement

void


optional serialize(): unknown

Defined in: core/dist/index.d.ts:709

Return a JSON-serializable snapshot of this component’s state. Used by the save system.

unknown

Component.serialize


protected service<T>(key): T

Defined in: core/dist/index.d.ts:677

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


protected sibling<C>(cls): C

Defined in: core/dist/index.d.ts:685

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.

C extends Component

ComponentClass<C>

C

Component.sibling


text(content, style?): UIText

Defined in: ui/src/UIPanel.ts:331

Add a text element.

string

Partial<TextStyleOptions>

UIText


optional update(dt): void

Defined in: core/dist/index.d.ts:705

Called every frame by the built-in ComponentUpdateSystem.

number

void

Component.update


protected use<T>(key): T

Defined in: core/dist/index.d.ts:668

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