@moku-labs/game 0.15.43 → 0.15.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { m as StartedPage, r as GameConfig, t as AnyGameApp, u as PageOptions } from "../types-CvNJ5uBn.mjs";
1
+ import { m as StartedPage, r as GameConfig, t as AnyGameApp, u as PageOptions } from "../types-CtpKlJTd.mjs";
2
2
 
3
3
  //#region src/app/page.d.ts
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { Nr as PlayerStateProvider } from "../types-BntRSM-J.mjs";
2
- import { ht as PlatformProvider } from "../index-_C1-1QKZ.mjs";
3
- import { _ as SystemShellFactory, g as SystemName, h as SystemModules } from "../types-CvNJ5uBn.mjs";
1
+ import { Nr as PlayerStateProvider } from "../types-iOQUUB2R.mjs";
2
+ import { ht as PlatformProvider } from "../index-Cerx_CN_.mjs";
3
+ import { _ as SystemShellFactory, g as SystemName, h as SystemModules } from "../types-CtpKlJTd.mjs";
4
4
  import { Back, Haptics, KeepAwake, Lifecycle, Store } from "@moku-labs/system";
5
5
 
6
6
  //#region src/app/system.d.ts
package/dist/app.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { Or as Json } from "./types-BntRSM-J.mjs";
2
- import { U as StringTable } from "./types-D-lzvzni.mjs";
3
- import { a as GameHandle, c as MemoryProvider, d as SaveKind, f as Scenario, g as SystemName, i as GameDefinition, l as PageAgent, n as GameApp, o as GamePluginConfigs, p as ScreenSeams, r as GameConfig, s as HeadlessSeams, v as WithGameState } from "./types-CvNJ5uBn.mjs";
1
+ import { Or as Json } from "./types-iOQUUB2R.mjs";
2
+ import { U as StringTable } from "./types-GbVNkvJ4.mjs";
3
+ import { a as GameHandle, c as MemoryProvider, d as SaveKind, f as Scenario, g as SystemName, i as GameDefinition, l as PageAgent, n as GameApp, o as GamePluginConfigs, p as ScreenSeams, r as GameConfig, s as HeadlessSeams, v as WithGameState } from "./types-CtpKlJTd.mjs";
4
4
  import { AnyPluginInstance } from "@moku-labs/core";
5
5
 
6
6
  //#region src/app/define.d.ts
package/dist/app.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { Ft as audioPlugin, H as platformPlugin, i as screen, m as flattenFeatures, t as createApp, wt as effectsPlugin } from "./src-BzqInIoY.mjs";
1
+ import { Ft as audioPlugin, H as platformPlugin, i as screen, m as flattenFeatures, t as createApp, wt as effectsPlugin } from "./src-oM78C1_G.mjs";
2
2
  import { t as memory } from "./memory-CWlqhS7l.mjs";
3
3
  import { n as fakeClock, r as isFakeClock } from "./fake-hnJcJeYf.mjs";
4
4
  //#region src/app/define.ts
package/dist/assets.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { d as Manifest } from "./types-BntRSM-J.mjs";
1
+ import { d as Manifest } from "./types-iOQUUB2R.mjs";
2
2
 
3
3
  //#region src/plugins/assets/scan/cli.d.ts
4
4
  /**
@@ -1,8 +1,8 @@
1
- import { D as DebugSwitches, Hr as Api, Lr as Snapshot, Xr as FrameRate, Y as Api$1, ei as Time, nn as Api$2, or as FlowState, ot as Captured, rr as Bookmark, w as ScenesApi, zr as StoreApi } from "./types-BntRSM-J.mjs";
2
- import { P as AnimApi, a as AudioApi, h as EffectsApi, r as UiApi } from "./types-CSjZgE6t.mjs";
3
- import { N as InputApi } from "./types-D-lzvzni.mjs";
4
- import { t as HeadlessApp } from "./headless-Yp430oEG.mjs";
5
- import { n as Command, r as ControlApp } from "./types-D7DVKiFe.mjs";
1
+ import { D as DebugSwitches, Hr as Api, Lr as Snapshot, Xr as FrameRate, Y as Api$1, ei as Time, nn as Api$2, or as FlowState, ot as Captured, rr as Bookmark, w as ScenesApi, zr as StoreApi } from "./types-iOQUUB2R.mjs";
2
+ import { P as AnimApi, a as AudioApi, h as EffectsApi, r as UiApi } from "./types-BgVaFqhF.mjs";
3
+ import { N as InputApi } from "./types-GbVNkvJ4.mjs";
4
+ import { t as HeadlessApp } from "./headless-U4E0LOq0.mjs";
5
+ import { n as Command, r as ControlApp } from "./types--0ZwljWq.mjs";
6
6
 
7
7
  //#region src/plugins/flow/doors/commands.d.ts
8
8
  /**
@@ -1,7 +1,7 @@
1
- import { t as HeadlessApp } from "./headless-Yp430oEG.mjs";
2
- import { i as InputArguments, n as Command, o as InputSchema, s as Ran } from "./types-D7DVKiFe.mjs";
3
- import { t as commands } from "./commands-Cata5EXh.mjs";
4
- import { t as defineCommand } from "./define-CosSXoWD.mjs";
1
+ import { t as HeadlessApp } from "./headless-U4E0LOq0.mjs";
2
+ import { i as InputArguments, n as Command, o as InputSchema, s as Ran } from "./types--0ZwljWq.mjs";
3
+ import { t as commands } from "./commands-D8GHxQD8.mjs";
4
+ import { t as defineCommand } from "./define-DSl-sLvA.mjs";
5
5
 
6
6
  //#region src/plugins/flow/doors/dev.d.ts
7
7
  /**
@@ -1,5 +1,5 @@
1
- import { t as HeadlessApp } from "./headless-Yp430oEG.mjs";
2
- import { c as Source, n as Command, o as InputSchema } from "./types-D7DVKiFe.mjs";
1
+ import { t as HeadlessApp } from "./headless-U4E0LOq0.mjs";
2
+ import { c as Source, n as Command, o as InputSchema } from "./types--0ZwljWq.mjs";
3
3
 
4
4
  //#region src/plugins/flow/doors/define.d.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { Jr as Api, Ln as Api$1, Or as Json, Vr as RngState, lr as RouteStep, or as FlowState, sr as JournalEntry, vr as Answer } from "./types-BntRSM-J.mjs";
1
+ import { Jr as Api, Ln as Api$1, Or as Json, Vr as RngState, lr as RouteStep, or as FlowState, sr as JournalEntry, vr as Answer } from "./types-iOQUUB2R.mjs";
2
2
 
3
3
  //#region src/plugins/flow/headless.d.ts
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { $n as FeatureDescription, $r as ThermalReading, An as NumericFields, Ar as State$5, B as ShapeValue, Bn as EmitterIdOf, Br as RngApi, C as SceneSpec, Cn as TagType, Cr as State$2, Dt as PassKind, En as Ease, Er as Config$5, F as NineSliceValue, Gn as TextStylesOf, Gr as PauseReason, Hn as HudKeysOf, Hr as Api$3, Jn as defineFlow, Jr as Api$5, K as TransformValue, Kr as State$4, L as OverlayValue, Ln as Api$2, Mn as ProjectionSpec, Mr as Patch, N as HudPartValue, Nn as ReducedMotion, Or as Json, Qr as State$8, Rn as BundlesOf, S as SceneDefinition, Sn as SystemFor, T as State$7, Tn as DescriptionNode, U as SpriteOptions, Ur as Config$4, Vn as GameTypes, W as SpriteValue, Wn as State$3, Wr as Events, X as Config$6, Y as Api$4, Yr as Config$8, Zr as RateChange, _ as AnySceneProjection, _n as Mut, _t as FrameRing, a as Config$1, an as State$9, bn as ResourceType, c as LoadBundles, dt as ViewportSize, er as FeaturePlugin, f as ReadyBundles, fn as ComponentType, fr as Descriptor, gr as Hint, gt as FrameRecord, hr as GuideOptions, i as BundleSpec, ii as Require, ir as DefineNode, jn as ProjectionMotion, kr as Root, l as LoadReason, m as Tier, mr as EffectOptions, ni as Config$10, nn as Api$6, o as DefineBundles, p as State$1, pn as ComponentValue, pr as Effect, q as sprite, r as BundleMap, ri as Events$1, rn as Config$9, rt as State$6, t as Api, tr as FeatureTree, u as LoadResult, un as ComponentHandle, ur as SceneIdOf, v as Config$7, vn as Narrowed, vr as Answer, w as ScenesApi, x as LayerMap, xn as SystemDefinition, xr as Config$2, y as DefineScene, yn as QueryTerm, yr as Api$1, zn as Config$3, zr as StoreApi } from "./types-BntRSM-J.mjs";
2
- import { A as GlowValue, B as Target, C as BlurValue, D as FilterComponent, F as AnimPlayerValue, H as HapticKind, I as Config$11, K as defineAnimation, L as FramesValue, M as OutlineValue, N as UniformDeclaration, O as FilterSpec, P as AnimApi, Q as play, R as MotionKeyframe, S as AlphaValue, T as DisplacementValue, U as SfxDescriptor, W as Step, _ as State$12, a as AudioApi, b as EmitterDefinition, c as MusicDescriptor, d as State$11, f as VolumesFor, h as EffectsApi, j as NoiseValue, k as FilterValueOf, l as MusicOptions, lt as OverlayApi, m as Config$13, n as State$13, r as UiApi, s as Config$12, t as Config$14, w as ColorMatrixValue, x as EmitterValue, y as EmitterConfig, z as State$10 } from "./types-CSjZgE6t.mjs";
3
- import { B as Message, C as State$16, D as TextStyleInput, G as TypedTr, H as State$14, I as Argument, J as ResolvedStyle, L as Config$15, M as Config$16, N as InputApi, O as TextStyles, P as State$15, R as I18nApi, S as Point, T as TextBind, V as Part, W as TextKey, Y as Style, Z as WhenFlags, b as Config$17, g as IntrinsicElementsFor, h as defineTokens, j as defineComponent, k as TextValue, q as IsFlags, s as PopupComponent, v as BindField, w as TextApi, x as CountdownValue, y as BindOptions, z as IntlKit } from "./types-D-lzvzni.mjs";
1
+ import { $n as FeatureDescription, $r as ThermalReading, An as NumericFields, Ar as State$5, B as ShapeValue, Bn as EmitterIdOf, Br as RngApi, C as SceneSpec, Cn as TagType, Cr as State$2, Dt as PassKind, En as Ease, Er as Config$5, F as NineSliceValue, Gn as TextStylesOf, Gr as PauseReason, Hn as HudKeysOf, Hr as Api$3, Jn as defineFlow, Jr as Api$5, K as TransformValue, Kr as State$4, L as OverlayValue, Ln as Api$2, Mn as ProjectionSpec, Mr as Patch, N as HudPartValue, Nn as ReducedMotion, Or as Json, Qr as State$8, Rn as BundlesOf, S as SceneDefinition, Sn as SystemFor, T as State$7, Tn as DescriptionNode, U as SpriteOptions, Ur as Config$4, Vn as GameTypes, W as SpriteValue, Wn as State$3, Wr as Events, X as Config$6, Y as Api$4, Yr as Config$8, Zr as RateChange, _ as AnySceneProjection, _n as Mut, _t as FrameRing, a as Config$1, an as State$9, bn as ResourceType, c as LoadBundles, dt as ViewportSize, er as FeaturePlugin, f as ReadyBundles, fn as ComponentType, fr as Descriptor, gr as Hint, gt as FrameRecord, hr as GuideOptions, i as BundleSpec, ii as Require, ir as DefineNode, jn as ProjectionMotion, kr as Root, l as LoadReason, m as Tier, mr as EffectOptions, ni as Config$10, nn as Api$6, o as DefineBundles, p as State$1, pn as ComponentValue, pr as Effect, q as sprite, r as BundleMap, ri as Events$1, rn as Config$9, rt as State$6, t as Api, tr as FeatureTree, u as LoadResult, un as ComponentHandle, ur as SceneIdOf, v as Config$7, vn as Narrowed, vr as Answer, w as ScenesApi, x as LayerMap, xn as SystemDefinition, xr as Config$2, y as DefineScene, yn as QueryTerm, yr as Api$1, zn as Config$3, zr as StoreApi } from "./types-iOQUUB2R.mjs";
2
+ import { A as GlowValue, B as Target, C as BlurValue, D as FilterComponent, F as AnimPlayerValue, H as HapticKind, I as Config$11, K as defineAnimation, L as FramesValue, M as OutlineValue, N as UniformDeclaration, O as FilterSpec, P as AnimApi, Q as play, R as MotionKeyframe, S as AlphaValue, T as DisplacementValue, U as SfxDescriptor, W as Step, _ as State$12, a as AudioApi, b as EmitterDefinition, c as MusicDescriptor, d as State$11, f as VolumesFor, h as EffectsApi, j as NoiseValue, k as FilterValueOf, l as MusicOptions, lt as OverlayApi, m as Config$13, n as State$13, r as UiApi, s as Config$12, t as Config$14, w as ColorMatrixValue, x as EmitterValue, y as EmitterConfig, z as State$10 } from "./types-BgVaFqhF.mjs";
3
+ import { B as Message, C as State$16, D as TextStyleInput, G as TypedTr, H as State$14, I as Argument, J as ResolvedStyle, L as Config$15, M as Config$16, N as InputApi, O as TextStyles, P as State$15, R as I18nApi, S as Point, T as TextBind, V as Part, W as TextKey, Y as Style, Z as WhenFlags, b as Config$17, g as IntrinsicElementsFor, h as defineTokens, j as defineComponent, k as TextValue, q as IsFlags, s as PopupComponent, v as BindField, w as TextApi, x as CountdownValue, y as BindOptions, z as IntlKit } from "./types-GbVNkvJ4.mjs";
4
4
  import { Log } from "@moku-labs/common/browser";
5
5
  import { PluginCtx } from "@moku-labs/core";
6
6
 
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { $t as ShaderWhat, At as PerfChange, Bt as PerfLongFrameLine, Ct as PERF_CAUSES, Dt as PassKind, E as types_d_exports$13, Et as PROBLEM_RULES, Ft as PerfEventLine, G as Transform, Gt as PerfStartupLine, H as SpriteBlend, Ht as PerfMeasured, I as Overlay, Ir as SaveUnreadableError, It as PerfEventName, J as AdaptiveScale, Jt as PoolTrimDetail, Kn as types_d_exports$6, Kt as PerfTelemetryLine, L as OverlayValue, Lt as PerfGapLine, M as HudPart, Mt as PerfCollectorLine, N as HudPartValue, Nt as PerfCounts, Ot as PassRecord, P as NineSlice, Pt as PerfDisplay, Qn as type, Qt as ShaderEventDetail, R as Parent, Rt as PerfHeaderLine, St as OverlayWhat, Tn as DescriptionNode, Tt as PERF_LOG_VERSION, Ut as PerfSampleLine, V as Sprite, Vt as PerfMarkLine, Wt as PerfSpikeLine, Xn as slot, Xt as ProblemRule, Yn as exit, Yt as ProblemEventDetail, Z as MonitorConfig, Zn as to, Zt as SHADER_WHATS, _t as FrameRing, at as types_d_exports$12, bt as MonitorSections, en as WarmDetail, g as types_d_exports$1, gt as FrameRecord, ht as FrameReadout, j as Display, jr as types_d_exports$10, jt as PerfChangeEntry, kt as PerfCause, mt as FrameReadResult, nt as PoolTrim, on as types_d_exports$17, pt as FrameColumns, q as sprite, qn as contribution, qr as types_d_exports$9, qt as PerfThermalLine, st as MonitorCounts, ti as types_d_exports$15, tn as DEMAND_REASONS, vt as LongFrameEntry, wr as types_d_exports$3, wt as PERF_GAP_BUCKETS, xt as OverlayEventDetail, yt as MONITOR_SECTIONS, z as Shape, zt as PerfLogLine } from "./types-BntRSM-J.mjs";
2
- import { $ as sequence, E as FilterArea, G as HAPTIC_KINDS, H as HapticKind, J as frames, K as defineAnimation, Q as play, V as types_d_exports, X as mark, Y as haptic, Z as parallel, at as stopSfx, ct as wait, et as set, i as types_d_exports$16, it as stagger, nt as spawn, ot as tween, p as types_d_exports$2, q as external, rt as spawned, st as use, tt as sfx, ut as types_d_exports$4, v as types_d_exports$5 } from "./types-CSjZgE6t.mjs";
3
- import { A as types_d_exports$14, E as TextFormat, F as types_d_exports$8, K as types_d_exports$7, d as DebugTrigger, f as LocalWrite, h as defineTokens, j as defineComponent, m as popup, p as ScrollState, u as Box, x as CountdownValue, y as BindOptions } from "./types-D-lzvzni.mjs";
4
- import { $ as system, A as Draggable, At as Text, B as Touchable, C as AnimPlayer, Ct as debugPlugin, D as defineBundles, Dt as animPlugin, E as defineScene, Et as assetsPlugin, F as PointerOver, G as Exiting, H as Traced, I as Pressable, J as Order, K as Layer, L as Pressed, M as Held, Mt as defineTextStyles, N as Hovered, Nt as label, O as load, Ot as projection, P as Pointer, Q as resource, R as Swipeable, S as defineMotion, St as effectsPlugin, T as Frames, Tt as audioPlugin, U as PASS_KINDS, V as Traceable, W as frameAt, X as component, Y as Tree, Z as mut, _ as defineStyle, _t as modelPlugin, a as defineEmitter, at as defineFeature, b as messageDuration, bt as i18nPlugin, c as Alpha, ct as uiPlugin, d as Displacement, dt as scenesPlugin, et as tag, f as Glow, ft as rendererPlugin, g as resolve, gt as types_d_exports$11, h as music, ht as PlatformProvider, i as screen, it as schedule, j as DropTarget, jt as bind, k as ready, kt as Countdown, l as Blur, lt as timePlugin, m as Outline, mt as BackResult, n as createPlugin, nt as guide, o as Emitter, ot as flattenFeatures, p as Noise, pt as platformPlugin, q as Now, r as defineGame, rt as hint, s as defineFilter, st as worldPlugin, t as createApp, tt as defineEffect, u as ColorMatrix, ut as textPlugin, v as tr, vt as lifecyclePlugin, w as Animation, wt as clockPlugin, x as cubicBezier, xt as flowPlugin, y as messageArgument, yt as inputPlugin, z as Tappable } from "./index-_C1-1QKZ.mjs";
1
+ import { $t as ShaderWhat, At as PerfChange, Bt as PerfLongFrameLine, Ct as PERF_CAUSES, Dt as PassKind, E as types_d_exports$13, Et as PROBLEM_RULES, Ft as PerfEventLine, G as Transform, Gt as PerfStartupLine, H as SpriteBlend, Ht as PerfMeasured, I as Overlay, Ir as SaveUnreadableError, It as PerfEventName, J as AdaptiveScale, Jt as PoolTrimDetail, Kn as types_d_exports$6, Kt as PerfTelemetryLine, L as OverlayValue, Lt as PerfGapLine, M as HudPart, Mt as PerfCollectorLine, N as HudPartValue, Nt as PerfCounts, Ot as PassRecord, P as NineSlice, Pt as PerfDisplay, Qn as type, Qt as ShaderEventDetail, R as Parent, Rt as PerfHeaderLine, St as OverlayWhat, Tn as DescriptionNode, Tt as PERF_LOG_VERSION, Ut as PerfSampleLine, V as Sprite, Vt as PerfMarkLine, Wt as PerfSpikeLine, Xn as slot, Xt as ProblemRule, Yn as exit, Yt as ProblemEventDetail, Z as MonitorConfig, Zn as to, Zt as SHADER_WHATS, _t as FrameRing, at as types_d_exports$12, bt as MonitorSections, en as WarmDetail, g as types_d_exports$1, gt as FrameRecord, ht as FrameReadout, j as Display, jr as types_d_exports$10, jt as PerfChangeEntry, kt as PerfCause, mt as FrameReadResult, nt as PoolTrim, on as types_d_exports$17, pt as FrameColumns, q as sprite, qn as contribution, qr as types_d_exports$9, qt as PerfThermalLine, st as MonitorCounts, ti as types_d_exports$15, tn as DEMAND_REASONS, vt as LongFrameEntry, wr as types_d_exports$3, wt as PERF_GAP_BUCKETS, xt as OverlayEventDetail, yt as MONITOR_SECTIONS, z as Shape, zt as PerfLogLine } from "./types-iOQUUB2R.mjs";
2
+ import { $ as sequence, E as FilterArea, G as HAPTIC_KINDS, H as HapticKind, J as frames, K as defineAnimation, Q as play, V as types_d_exports, X as mark, Y as haptic, Z as parallel, at as stopSfx, ct as wait, et as set, i as types_d_exports$16, it as stagger, nt as spawn, ot as tween, p as types_d_exports$2, q as external, rt as spawned, st as use, tt as sfx, ut as types_d_exports$4, v as types_d_exports$5 } from "./types-BgVaFqhF.mjs";
3
+ import { A as types_d_exports$14, E as TextFormat, F as types_d_exports$8, K as types_d_exports$7, d as DebugTrigger, f as LocalWrite, h as defineTokens, j as defineComponent, m as popup, p as ScrollState, u as Box, x as CountdownValue, y as BindOptions } from "./types-GbVNkvJ4.mjs";
4
+ import { $ as system, A as Draggable, At as Text, B as Touchable, C as AnimPlayer, Ct as debugPlugin, D as defineBundles, Dt as animPlugin, E as defineScene, Et as assetsPlugin, F as PointerOver, G as Exiting, H as Traced, I as Pressable, J as Order, K as Layer, L as Pressed, M as Held, Mt as defineTextStyles, N as Hovered, Nt as label, O as load, Ot as projection, P as Pointer, Q as resource, R as Swipeable, S as defineMotion, St as effectsPlugin, T as Frames, Tt as audioPlugin, U as PASS_KINDS, V as Traceable, W as frameAt, X as component, Y as Tree, Z as mut, _ as defineStyle, _t as modelPlugin, a as defineEmitter, at as defineFeature, b as messageDuration, bt as i18nPlugin, c as Alpha, ct as uiPlugin, d as Displacement, dt as scenesPlugin, et as tag, f as Glow, ft as rendererPlugin, g as resolve, gt as types_d_exports$11, h as music, ht as PlatformProvider, i as screen, it as schedule, j as DropTarget, jt as bind, k as ready, kt as Countdown, l as Blur, lt as timePlugin, m as Outline, mt as BackResult, n as createPlugin, nt as guide, o as Emitter, ot as flattenFeatures, p as Noise, pt as platformPlugin, q as Now, r as defineGame, rt as hint, s as defineFilter, st as worldPlugin, t as createApp, tt as defineEffect, u as ColorMatrix, ut as textPlugin, v as tr, vt as lifecyclePlugin, w as Animation, wt as clockPlugin, x as cubicBezier, xt as flowPlugin, y as messageArgument, yt as inputPlugin, z as Tappable } from "./index-Cerx_CN_.mjs";
5
5
  export { type AdaptiveScale, Alpha, types_d_exports as Anim, AnimPlayer, Animation, types_d_exports$1 as Assets, types_d_exports$2 as Audio, type BackResult, type BindOptions, Blur, Box, types_d_exports$3 as Clock, ColorMatrix, Countdown, type CountdownValue, DEMAND_REASONS, types_d_exports$4 as Debug, DebugTrigger, type DescriptionNode, Displacement, Display, Draggable, DropTarget, types_d_exports$5 as Effects, Emitter, Exiting, type FilterArea, types_d_exports$6 as Flow, type FrameColumns, type FrameReadResult, type FrameReadout, type FrameRecord, type FrameRing, Frames, Glow, HAPTIC_KINDS, type HapticKind, Held, Hovered, HudPart, type HudPartValue, types_d_exports$7 as I18n, types_d_exports$8 as Input, Layer, types_d_exports$9 as Lifecycle, LocalWrite, type LongFrameEntry, MONITOR_SECTIONS, types_d_exports$10 as Model, type MonitorConfig, type MonitorCounts, type MonitorSections, NineSlice, Noise, Now, Order, Outline, Overlay, type OverlayEventDetail, type OverlayValue, type OverlayWhat, PASS_KINDS, PERF_CAUSES, PERF_GAP_BUCKETS, PERF_LOG_VERSION, PROBLEM_RULES, Parent, type PassKind, type PassRecord, type PerfCause, type PerfChange, type PerfChangeEntry, type PerfCollectorLine, type PerfCounts, type PerfDisplay, type PerfEventLine, type PerfEventName, type PerfGapLine, type PerfHeaderLine, type PerfLogLine, type PerfLongFrameLine, type PerfMarkLine, type PerfMeasured, type PerfSampleLine, type PerfSpikeLine, type PerfStartupLine, type PerfTelemetryLine, type PerfThermalLine, types_d_exports$11 as Platform, type PlatformProvider, Pointer, PointerOver, type PoolTrim, type PoolTrimDetail, Pressable, Pressed, type ProblemEventDetail, type ProblemRule, types_d_exports$12 as Renderer, SHADER_WHATS, SaveUnreadableError, types_d_exports$13 as Scenes, ScrollState, type ShaderEventDetail, type ShaderWhat, Shape, Sprite, type SpriteBlend, Swipeable, Tappable, Text, type TextFormat, types_d_exports$14 as TextTypes, types_d_exports$15 as Time, Touchable, Traceable, Traced, Transform, Tree, types_d_exports$16 as Ui, type WarmDetail, types_d_exports$17 as World, animPlugin, assetsPlugin, audioPlugin, bind, clockPlugin, component, contribution, createApp, createPlugin, cubicBezier, debugPlugin, defineAnimation, defineBundles, defineComponent, defineEffect, defineEmitter, defineFeature, defineFilter, defineGame, defineMotion, defineScene, defineStyle, defineTextStyles, defineTokens, effectsPlugin, exit, external, flattenFeatures, flowPlugin, frameAt, frames, guide, haptic, hint, i18nPlugin, inputPlugin, label, lifecyclePlugin, load, mark, messageArgument, messageDuration, modelPlugin, music, mut, parallel, platformPlugin, play, popup, projection, ready, rendererPlugin, resolve, resource, scenesPlugin, schedule, screen, sequence, set, sfx, slot, spawn, spawned, sprite, stagger, stopSfx, system, tag, textPlugin, timePlugin, to, tr, tween, type, uiPlugin, use, wait, worldPlugin };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as sfx, $t as flowPlugin, A as types_exports$7, At as Glow, B as defineMotion, Bt as Animation, C as types_exports$14, Ct as messageDuration, D as types_exports$10, Dt as Blur, E as types_exports$11, Et as Alpha, F as types_exports$2, Ft as audioPlugin, G as external, Gt as MONITOR_SECTIONS, H as platformPlugin, Ht as rendererPlugin, I as types_exports$1, It as scenesPlugin, J as mark, Jt as PERF_LOG_VERSION, K as frames, Kt as PERF_CAUSES, L as types_exports, Lt as assetsPlugin, M as types_exports$5, Mt as Outline, N as types_exports$4, Nt as defineFilter, O as types_exports$9, Ot as ColorMatrix, P as types_exports$3, Pt as debugPlugin, Q as set, Qt as worldPlugin, R as uiPlugin, Rt as animPlugin, S as types_exports$15, St as messageArgument, T as types_exports$12, Tt as Emitter, U as HAPTIC_KINDS, Ut as PASS_KINDS, V as textPlugin, Vt as Frames, W as defineAnimation, Wt as frameAt, X as play, Xt as SHADER_WHATS, Y as parallel, Yt as PROBLEM_RULES, Z as sequence, Zt as DEMAND_REASONS, _ as defineBundles, _t as Tappable, a as cubicBezier, an as type, at as use, b as types_exports$17, bt as Traced, c as hint, cn as lifecyclePlugin, ct as Draggable, d as defineScene, dt as Hovered, et as spawn, f as tr, ft as Pointer, g as music, gt as Swipeable, h as defineEmitter, ht as Pressed, i as screen, in as to, it as tween, j as types_exports$6, jt as Noise, k as types_exports$8, kt as Displacement, l as schedule, ln as timePlugin, lt as DropTarget, m as flattenFeatures, mt as Pressable, n as createPlugin, nn as exit, nt as stagger, o as defineEffect, on as modelPlugin, ot as wait, p as defineFeature, pt as PointerOver, q as haptic, qt as PERF_GAP_BUCKETS, r as defineGame, rn as slot, rt as stopSfx, s as guide, sn as SaveUnreadableError, st as inputPlugin, t as createApp, tn as contribution, tt as spawned, u as projection, un as clockPlugin, ut as Held, v as load, vt as Touchable, w as types_exports$13, wt as effectsPlugin, x as types_exports$16, xt as i18nPlugin, y as ready, yt as Traceable, z as resolve, zt as AnimPlayer } from "./src-BzqInIoY.mjs";
1
+ import { $ as sfx, $t as flowPlugin, A as types_exports$7, At as Glow, B as defineMotion, Bt as Animation, C as types_exports$14, Ct as messageDuration, D as types_exports$10, Dt as Blur, E as types_exports$11, Et as Alpha, F as types_exports$2, Ft as audioPlugin, G as external, Gt as MONITOR_SECTIONS, H as platformPlugin, Ht as rendererPlugin, I as types_exports$1, It as scenesPlugin, J as mark, Jt as PERF_LOG_VERSION, K as frames, Kt as PERF_CAUSES, L as types_exports, Lt as assetsPlugin, M as types_exports$5, Mt as Outline, N as types_exports$4, Nt as defineFilter, O as types_exports$9, Ot as ColorMatrix, P as types_exports$3, Pt as debugPlugin, Q as set, Qt as worldPlugin, R as uiPlugin, Rt as animPlugin, S as types_exports$15, St as messageArgument, T as types_exports$12, Tt as Emitter, U as HAPTIC_KINDS, Ut as PASS_KINDS, V as textPlugin, Vt as Frames, W as defineAnimation, Wt as frameAt, X as play, Xt as SHADER_WHATS, Y as parallel, Yt as PROBLEM_RULES, Z as sequence, Zt as DEMAND_REASONS, _ as defineBundles, _t as Tappable, a as cubicBezier, an as type, at as use, b as types_exports$17, bt as Traced, c as hint, cn as lifecyclePlugin, ct as Draggable, d as defineScene, dt as Hovered, et as spawn, f as tr, ft as Pointer, g as music, gt as Swipeable, h as defineEmitter, ht as Pressed, i as screen, in as to, it as tween, j as types_exports$6, jt as Noise, k as types_exports$8, kt as Displacement, l as schedule, ln as timePlugin, lt as DropTarget, m as flattenFeatures, mt as Pressable, n as createPlugin, nn as exit, nt as stagger, o as defineEffect, on as modelPlugin, ot as wait, p as defineFeature, pt as PointerOver, q as haptic, qt as PERF_GAP_BUCKETS, r as defineGame, rn as slot, rt as stopSfx, s as guide, sn as SaveUnreadableError, st as inputPlugin, t as createApp, tn as contribution, tt as spawned, u as projection, un as clockPlugin, ut as Held, v as load, vt as Touchable, w as types_exports$13, wt as effectsPlugin, x as types_exports$16, xt as i18nPlugin, y as ready, yt as Traceable, z as resolve, zt as AnimPlayer } from "./src-oM78C1_G.mjs";
2
2
  import { $ as component, H as Shape, I as Display, J as Exiting, L as HudPart, Q as Tree, R as NineSlice, S as bind, T as label, U as Sprite, V as Parent, W as Transform, X as Now, Y as Layer, Z as Order, b as Countdown, d as LocalWrite, et as mut, g as popup, it as tag, l as DebugTrigger, nt as system, p as ScrollState, q as sprite, s as Box, tt as resource, v as defineTokens, w as defineTextStyles, x as Text, y as defineStyle, z as Overlay } from "./visual-ClVRMUAi.mjs";
3
3
  import { t as defineComponent } from "./component-DGg5DqKK.mjs";
4
4
  export { Alpha, types_exports as Anim, AnimPlayer, Animation, types_exports$1 as Assets, types_exports$2 as Audio, Blur, Box, types_exports$3 as Clock, ColorMatrix, Countdown, DEMAND_REASONS, types_exports$4 as Debug, DebugTrigger, Displacement, Display, Draggable, DropTarget, types_exports$5 as Effects, Emitter, Exiting, types_exports$6 as Flow, Frames, Glow, HAPTIC_KINDS, Held, Hovered, HudPart, types_exports$7 as I18n, types_exports$8 as Input, Layer, types_exports$9 as Lifecycle, LocalWrite, MONITOR_SECTIONS, types_exports$10 as Model, NineSlice, Noise, Now, Order, Outline, Overlay, PASS_KINDS, PERF_CAUSES, PERF_GAP_BUCKETS, PERF_LOG_VERSION, PROBLEM_RULES, Parent, types_exports$11 as Platform, Pointer, PointerOver, Pressable, Pressed, types_exports$12 as Renderer, SHADER_WHATS, SaveUnreadableError, types_exports$13 as Scenes, ScrollState, Shape, Sprite, Swipeable, Tappable, Text, types_exports$14 as TextTypes, types_exports$15 as Time, Touchable, Traceable, Traced, Transform, Tree, types_exports$16 as Ui, types_exports$17 as World, animPlugin, assetsPlugin, audioPlugin, bind, clockPlugin, component, contribution, createApp, createPlugin, cubicBezier, debugPlugin, defineAnimation, defineBundles, defineComponent, defineEffect, defineEmitter, defineFeature, defineFilter, defineGame, defineMotion, defineScene, defineStyle, defineTextStyles, defineTokens, effectsPlugin, exit, external, flattenFeatures, flowPlugin, frameAt, frames, guide, haptic, hint, i18nPlugin, inputPlugin, label, lifecyclePlugin, load, mark, messageArgument, messageDuration, modelPlugin, music, mut, parallel, platformPlugin, play, popup, projection, ready, rendererPlugin, resolve, resource, scenesPlugin, schedule, screen, sequence, set, sfx, slot, spawn, spawned, sprite, stagger, stopSfx, system, tag, textPlugin, timePlugin, to, tr, tween, type, uiPlugin, use, wait, worldPlugin };
@@ -1,9 +1,9 @@
1
- import { Lr as Snapshot, Tr as Api, Un as Position, Y as Api$2, ar as FlowGraph, ct as RenderStats, dn as ComponentSchema, gn as FrameDiff, h as Usage, hn as EntitySnapshot, in as Explained, it as Under, nn as Api$1, sr as JournalEntry, t as Api$3 } from "./types-BntRSM-J.mjs";
2
- import { a as AudioApi, g as EffectsStats, h as EffectsApi, r as UiApi, u as SoundEntry } from "./types-CSjZgE6t.mjs";
3
- import { c as UiNode } from "./types-D-lzvzni.mjs";
4
- import { t as HeadlessApp } from "./headless-Yp430oEG.mjs";
5
- import { a as InputOf, c as Source, i as InputArguments, l as WatchApp, o as InputSchema, t as CheatEntry, u as WatchInput } from "./types-D7DVKiFe.mjs";
6
- import { n as defineSource } from "./define-CosSXoWD.mjs";
1
+ import { Lr as Snapshot, Tr as Api, Un as Position, Y as Api$2, ar as FlowGraph, ct as RenderStats, dn as ComponentSchema, gn as FrameDiff, h as Usage, hn as EntitySnapshot, in as Explained, it as Under, nn as Api$1, sr as JournalEntry, t as Api$3 } from "./types-iOQUUB2R.mjs";
2
+ import { a as AudioApi, g as EffectsStats, h as EffectsApi, r as UiApi, u as SoundEntry } from "./types-BgVaFqhF.mjs";
3
+ import { c as UiNode } from "./types-GbVNkvJ4.mjs";
4
+ import { t as HeadlessApp } from "./headless-U4E0LOq0.mjs";
5
+ import { a as InputOf, c as Source, i as InputArguments, l as WatchApp, o as InputSchema, t as CheatEntry, u as WatchInput } from "./types--0ZwljWq.mjs";
6
+ import { n as defineSource } from "./define-DSl-sLvA.mjs";
7
7
 
8
8
  //#region src/plugins/flow/doors/read.d.ts
9
9
  /**
@@ -1,2 +1,2 @@
1
- import { a as jsxs, i as jsxDEV, n as JSX, r as jsx, t as Fragment } from "./runtime-Df5v47FR.mjs";
1
+ import { a as jsxs, i as jsxDEV, n as JSX, r as jsx, t as Fragment } from "./runtime-D1cxQae3.mjs";
2
2
  export { Fragment, type JSX, jsx, jsxDEV, jsxs };
@@ -1,2 +1,2 @@
1
- import { a as jsxs, n as JSX, r as jsx, t as Fragment } from "./runtime-Df5v47FR.mjs";
1
+ import { a as jsxs, n as JSX, r as jsx, t as Fragment } from "./runtime-D1cxQae3.mjs";
2
2
  export { Fragment, type JSX, jsx, jsxs };
@@ -1,4 +1,4 @@
1
- import { _ as UiIntrinsicElements, a as JsxChild, t as DescriptionNode } from "./types-D-lzvzni.mjs";
1
+ import { _ as UiIntrinsicElements, a as JsxChild, t as DescriptionNode } from "./types-GbVNkvJ4.mjs";
2
2
 
3
3
  //#region src/plugins/ui/jsx/runtime.d.ts
4
4
  /** What the compiler passes as props: the children plus whatever the tag declared. */
@@ -11302,6 +11302,8 @@ function reseedViews(state, name, from, to) {
11302
11302
  }
11303
11303
  //#endregion
11304
11304
  //#region src/plugins/world/projection/reconcile.ts
11305
+ /** The components of a view of the build at its spawn: none, so it is flagged before the first `onAdded`. */
11306
+ const NO_COMPONENTS = [];
11305
11307
  /**
11306
11308
  * Creates the empty set of used hints. It lives in its own non-exported function because lint
11307
11309
  * rule L5 refuses a collection built inside an exported declaration.
@@ -11370,8 +11372,8 @@ function hintFor$1(pctx, projection, key, used) {
11370
11372
  * play the `enter` hook and the `loop` hook when the reconcile plays motions. The loop is not
11371
11373
  * kept with the view's handles: a change cancels those, and the loop runs until the view dies.
11372
11374
  * A direct reconcile plays neither hook. The view then owes its loop, which the sweep starts.
11373
- * A view of a projection the running build mounts is flagged building right after its spawn: the
11374
- * spawn fires `onAdded` inside the call, so no flag can come before it.
11375
+ * A view of a projection the running build mounts is spawned bare, flagged building, then given
11376
+ * its components in the same order: the `onAdded` hooks of a plugin then tell it apart (F97).
11375
11377
  *
11376
11378
  * @param pctx - Domain context of the projection module.
11377
11379
  * @param spec - The projection spec.
@@ -11385,18 +11387,26 @@ function hintFor$1(pctx, projection, key, used) {
11385
11387
  */
11386
11388
  function enterEntry(pctx, spec, mounted, entry) {
11387
11389
  const values = collectView(pctx, spec, entry.item);
11388
- const entity = pctx.deps.ecs.spawn({
11390
+ const state = pctx.ctx.state.projection;
11391
+ const building = state.building;
11392
+ const ecs = pctx.deps.ecs;
11393
+ const owner = {
11389
11394
  kind: "projection",
11390
11395
  name: spec.name
11391
- }, [pctx.deps.components.Layer({ name: spec.layer }), ...values.values()]);
11396
+ };
11397
+ const layer = pctx.deps.components.Layer({ name: spec.layer });
11398
+ let entity;
11399
+ if (building?.mounted.get(spec.name) === mounted) {
11400
+ entity = ecs.spawn(owner, NO_COMPONENTS);
11401
+ building.entities.add(entity);
11402
+ ecs.add(entity, layer);
11403
+ for (const value of values.values()) ecs.add(entity, value);
11404
+ } else entity = ecs.spawn(owner, [layer, ...values.values()]);
11392
11405
  const view = createViewRecord(entity, spec.name, entry.key, entry.item, values, entry.direct ? "mount" : "change");
11393
- const state = pctx.ctx.state.projection;
11394
- const building = state.building;
11395
11406
  seedMutes(state, spec, entity);
11396
11407
  mounted.live.set(entry.key, view);
11397
11408
  state.byEntity.set(entity, view);
11398
11409
  state.membershipVersion += 1;
11399
- if (building?.mounted.get(spec.name) === mounted) building.entities.add(entity);
11400
11410
  const hook = spec.motion?.enter;
11401
11411
  const loop = spec.motion?.loop;
11402
11412
  if (entry.direct) {
@@ -1,7 +1,7 @@
1
- import { Or as Json, Sr as FakeClock, _r as NodeFx, br as ClockSource, cr as NodeTable, er as FeaturePlugin, fr as Descriptor, gr as Hint, nr as AnyFlow } from "./types-BntRSM-J.mjs";
2
- import { t as createApp } from "./index-_C1-1QKZ.mjs";
3
- import { b as saveOf, v as WithGameState, y as memory } from "./types-CvNJ5uBn.mjs";
4
- import { a as createHeadless, i as ReproResult, n as HeadlessGame, o as runRepro, r as Repro, s as stepFrames, t as HeadlessApp } from "./headless-Yp430oEG.mjs";
1
+ import { Or as Json, Sr as FakeClock, _r as NodeFx, br as ClockSource, cr as NodeTable, er as FeaturePlugin, fr as Descriptor, gr as Hint, nr as AnyFlow } from "./types-iOQUUB2R.mjs";
2
+ import { t as createApp } from "./index-Cerx_CN_.mjs";
3
+ import { b as saveOf, v as WithGameState, y as memory } from "./types-CtpKlJTd.mjs";
4
+ import { a as createHeadless, i as ReproResult, n as HeadlessGame, o as runRepro, r as Repro, s as stepFrames, t as HeadlessApp } from "./headless-U4E0LOq0.mjs";
5
5
  import { AnyPluginInstance } from "@moku-labs/core";
6
6
 
7
7
  //#region src/plugins/clock/fake.d.ts
package/dist/testing.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { an as type, en as refuseStart, m as flattenFeatures, nn as exit, t as createApp } from "./src-BzqInIoY.mjs";
1
+ import { an as type, en as refuseStart, m as flattenFeatures, nn as exit, t as createApp } from "./src-oM78C1_G.mjs";
2
2
  import { n as saveOf, t as memory } from "./memory-CWlqhS7l.mjs";
3
3
  import { n as fakeClock } from "./fake-hnJcJeYf.mjs";
4
4
  import { i as stepFrames, r as runRepro, t as createHeadless } from "./headless-CCiUwvlp.mjs";
@@ -1,5 +1,5 @@
1
- import { Lr as Snapshot, Or as Json } from "./types-BntRSM-J.mjs";
2
- import { t as HeadlessApp } from "./headless-Yp430oEG.mjs";
1
+ import { Lr as Snapshot, Or as Json } from "./types-iOQUUB2R.mjs";
2
+ import { t as HeadlessApp } from "./headless-U4E0LOq0.mjs";
3
3
  import { Log } from "@moku-labs/common/browser";
4
4
 
5
5
  //#region src/plugins/flow/doors/types.d.ts
@@ -1,5 +1,5 @@
1
- import { $ as PixiModule, A as SyncApi, An as NumericFields, Dr as Events$3, En as Ease, Fn as TrackSegment, Jr as Api$1, Ln as Api$2, Nn as ReducedMotion, O as FilterSlot, Or as Json, Pn as TrackOptions, Q as PixiFilter, Tr as Api$6, Wr as Events$5, Y as Api$4, b as Events$4, dr as TypeTag, et as PixiSprite, fn as ComponentType, fr as Descriptor, ft as FilterCache, ii as Require, k as FilterSlotInputs, kn as MotionHandle, ln as AnyComponentValue, mn as Entity, nn as Api$3, ri as Events$2, s as Events$1, sn as AnyComponent, t as Api$5, tt as PixiTexture, un as ComponentHandle, ut as Point } from "./types-BntRSM-J.mjs";
2
- import { N as InputApi, R as I18nApi, X as StylesState, c as UiNode, i as Finding, l as LayoutState, n as ElementChange, o as JsxState, r as ElementMotion, w as TextApi } from "./types-D-lzvzni.mjs";
1
+ import { $ as PixiModule, A as SyncApi, An as NumericFields, Dr as Events$3, En as Ease, Fn as TrackSegment, Jr as Api$1, Ln as Api$2, Nn as ReducedMotion, O as FilterSlot, Or as Json, Pn as TrackOptions, Q as PixiFilter, Tr as Api$6, Wr as Events$5, Y as Api$4, b as Events$4, dr as TypeTag, et as PixiSprite, fn as ComponentType, fr as Descriptor, ft as FilterCache, ii as Require, k as FilterSlotInputs, kn as MotionHandle, ln as AnyComponentValue, mn as Entity, nn as Api$3, ri as Events$2, s as Events$1, sn as AnyComponent, t as Api$5, tt as PixiTexture, un as ComponentHandle, ut as Point } from "./types-iOQUUB2R.mjs";
2
+ import { N as InputApi, R as I18nApi, X as StylesState, c as UiNode, i as Finding, l as LayoutState, n as ElementChange, o as JsxState, r as ElementMotion, w as TextApi } from "./types-GbVNkvJ4.mjs";
3
3
  import { Log } from "@moku-labs/common/browser";
4
4
  import { PluginCtx } from "@moku-labs/core";
5
5
 
@@ -1,7 +1,7 @@
1
- import { $ as PixiModule, Er as Config, Fr as SaveDoc, Nr as PlayerStateProvider, Or as Json, Pr as ProviderCall, Rr as SnapshotOf, Sr as FakeClock, X as Config$2, a as Config$3, br as ClockSource, d as Manifest, dr as TypeTag, er as FeaturePlugin, lt as Orientation, n as AssetsIo, nr as AnyFlow, zn as Config$1 } from "./types-BntRSM-J.mjs";
2
- import { o as AudioContextLike, s as Config$4 } from "./types-CSjZgE6t.mjs";
3
- import { R as I18nApi, U as StringTable, W as TextKey } from "./types-D-lzvzni.mjs";
4
- import { St as effectsPlugin, Tt as audioPlugin, ht as PlatformProvider, i as screen, pt as platformPlugin, t as createApp } from "./index-_C1-1QKZ.mjs";
1
+ import { $ as PixiModule, Er as Config, Fr as SaveDoc, Nr as PlayerStateProvider, Or as Json, Pr as ProviderCall, Rr as SnapshotOf, Sr as FakeClock, X as Config$2, a as Config$3, br as ClockSource, d as Manifest, dr as TypeTag, er as FeaturePlugin, lt as Orientation, n as AssetsIo, nr as AnyFlow, zn as Config$1 } from "./types-iOQUUB2R.mjs";
2
+ import { o as AudioContextLike, s as Config$4 } from "./types-BgVaFqhF.mjs";
3
+ import { R as I18nApi, U as StringTable, W as TextKey } from "./types-GbVNkvJ4.mjs";
4
+ import { St as effectsPlugin, Tt as audioPlugin, ht as PlatformProvider, i as screen, pt as platformPlugin, t as createApp } from "./index-Cerx_CN_.mjs";
5
5
  import { AnyPluginInstance } from "@moku-labs/core";
6
6
 
7
7
  //#region src/plugins/model/store/providers/memory.d.ts
@@ -1,4 +1,4 @@
1
- import { An as NumericFields, Cn as TagType, Dn as Motion, En as Ease, In as ViewHandle, Jr as Api, K as TransformValue, Ln as Api$1, Nn as ReducedMotion, On as MotionCause, Or as Json, Y as Api$3, cn as AnyComponentType, dt as ViewportSize, fn as ComponentType, fr as Descriptor, gr as Hint, ii as Require, jn as ProjectionMotion, kn as MotionHandle, ln as AnyComponentValue, mn as Entity, nn as Api$2, s as Events$1, sn as AnyComponent, t as Api$4, vr as Answer, wn as ChangeHook, yr as Api$5 } from "./types-BntRSM-J.mjs";
1
+ import { An as NumericFields, Cn as TagType, Dn as Motion, En as Ease, In as ViewHandle, Jr as Api, K as TransformValue, Ln as Api$1, Nn as ReducedMotion, On as MotionCause, Or as Json, Y as Api$3, cn as AnyComponentType, dt as ViewportSize, fn as ComponentType, fr as Descriptor, gr as Hint, ii as Require, jn as ProjectionMotion, kn as MotionHandle, ln as AnyComponentValue, mn as Entity, nn as Api$2, s as Events$1, sn as AnyComponent, t as Api$4, vr as Answer, wn as ChangeHook, yr as Api$5 } from "./types-iOQUUB2R.mjs";
2
2
  import { Log } from "@moku-labs/common/browser";
3
3
  import { PluginCtx } from "@moku-labs/core";
4
4
  import { Node, Yoga } from "yoga-layout/load";
@@ -5202,8 +5202,9 @@ type ProjectionApi = {
5202
5202
  */
5203
5203
  left(): number;
5204
5204
  /**
5205
- * Whether an entity belongs to the running build: a view it spawned, or an entity `adopt` marked. One set lookup;
5206
- * false with no build and after the commit. Allocates nothing.
5205
+ * Whether an entity belongs to the running build: a view it spawned, or an entity `adopt` marked. A view is flagged
5206
+ * before the `onAdded` hooks of its components, so a hook can ask. One set lookup; false with no build and after the
5207
+ * commit. Allocates nothing.
5207
5208
  *
5208
5209
  * @param entity - The entity to ask about.
5209
5210
  * @returns True for an entity of the running build.
@@ -5213,6 +5214,11 @@ type ProjectionApi = {
5213
5214
  * const projection = ctx.require(worldPlugin).projection;
5214
5215
  * projection.isBuilding(1_048_600); // true: a board item the build spawned
5215
5216
  * projection.isBuilding(1_048_576); // false: a ward bed on screen
5217
+ *
5218
+ * // A game plugin keeps one camera root: the root of the scene built aside is not a second one.
5219
+ * ctx.require(worldPlugin).ecs.onAdded(Pan, entity => {
5220
+ * if (projection.isBuilding(entity)) return; // true for the memory's root, built while the ward shows
5221
+ * });
5216
5222
  * ```
5217
5223
  */
5218
5224
  isBuilding(entity: Entity): boolean;
@@ -1,9 +1,9 @@
1
- import { Hr as Api$3, Tr as Api$2, Y as Api, nn as Api$1, yr as Api$4 } from "./types-BntRSM-J.mjs";
2
- import { P as AnimApi, r as UiApi } from "./types-CSjZgE6t.mjs";
3
- import { N as InputApi } from "./types-D-lzvzni.mjs";
4
- import { r as Repro } from "./headless-Yp430oEG.mjs";
5
- import { a as InputOf, r as ControlApp } from "./types-D7DVKiFe.mjs";
6
- import { t as commands } from "./commands-Cata5EXh.mjs";
1
+ import { Hr as Api$3, Tr as Api$2, Y as Api, nn as Api$1, yr as Api$4 } from "./types-iOQUUB2R.mjs";
2
+ import { P as AnimApi, r as UiApi } from "./types-BgVaFqhF.mjs";
3
+ import { N as InputApi } from "./types-GbVNkvJ4.mjs";
4
+ import { r as Repro } from "./headless-U4E0LOq0.mjs";
5
+ import { a as InputOf, r as ControlApp } from "./types--0ZwljWq.mjs";
6
+ import { t as commands } from "./commands-D8GHxQD8.mjs";
7
7
 
8
8
  //#region src/visual/types.d.ts
9
9
  /** The base commands of the `/control` door, keyed by their short names. */
package/dist/visual.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as VisualApp, c as VisualRenderer, d as VisualStart, f as VisualStep, h as VisualTolerance, i as CheckpointResult, l as VisualReport, m as VisualTestResult, n as runVisualTests, o as VisualOptions, p as VisualTest, r as defineVisualTest, s as VisualPage, t as parseVisualArgv, u as VisualSetup } from "./visual-nS5PMQQ1.mjs";
1
+ import { a as VisualApp, c as VisualRenderer, d as VisualStart, f as VisualStep, h as VisualTolerance, i as CheckpointResult, l as VisualReport, m as VisualTestResult, n as runVisualTests, o as VisualOptions, p as VisualTest, r as defineVisualTest, s as VisualPage, t as parseVisualArgv, u as VisualSetup } from "./visual-BYv2iKd3.mjs";
2
2
  export { type CheckpointResult, type VisualApp, type VisualOptions, type VisualPage, type VisualRenderer, type VisualReport, type VisualSetup, type VisualStart, type VisualStep, type VisualTest, type VisualTestResult, type VisualTolerance, defineVisualTest, parseVisualArgv, runVisualTests };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moku-labs/game",
3
- "version": "0.15.43",
3
+ "version": "0.15.44",
4
4
  "description": "2D puzzle game engine on TypeScript and PixiJS, built on @moku-labs/core.",
5
5
  "type": "module",
6
6
  "sideEffects": [