@moku-labs/game 0.15.27 → 0.15.28

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-DHxDVC5b.mjs";
1
+ import { m as StartedPage, r as GameConfig, t as AnyGameApp, u as PageOptions } from "../types-Bsa1nFyU.mjs";
2
2
 
3
3
  //#region src/app/page.d.ts
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { jr as PlayerStateProvider } from "../types-DFROr3sM.mjs";
2
- import { ht as PlatformProvider } from "../index-CURQhlzb.mjs";
3
- import { _ as SystemShellFactory, g as SystemName, h as SystemModules } from "../types-DHxDVC5b.mjs";
1
+ import { jr as PlayerStateProvider } from "../types-C_nC_M4p.mjs";
2
+ import { ht as PlatformProvider } from "../index-Dn_v0Fqs.mjs";
3
+ import { _ as SystemShellFactory, g as SystemName, h as SystemModules } from "../types-Bsa1nFyU.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 { Er as Json } from "./types-DFROr3sM.mjs";
2
- import { U as StringTable } from "./types--1Zq5_6Q.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-DHxDVC5b.mjs";
1
+ import { Er as Json } from "./types-C_nC_M4p.mjs";
2
+ import { U as StringTable } from "./types-bEJEga5m.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-Bsa1nFyU.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-DLs4b_Vs.mjs";
1
+ import { Ft as audioPlugin, H as platformPlugin, i as screen, m as flattenFeatures, t as createApp, wt as effectsPlugin } from "./src-DPvSTM8O.mjs";
2
2
  import { t as memory } from "./memory-CWlqhS7l.mjs";
3
3
  import { n as isFakeClock, t as fakeClock } from "./fake-6mazmHK3.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-DFROr3sM.mjs";
1
+ import { d as Manifest } from "./types-C_nC_M4p.mjs";
2
2
 
3
3
  //#region src/plugins/assets/scan/cli.d.ts
4
4
  /**
@@ -1,8 +1,8 @@
1
- import { Br as Api, C as ScenesApi, E as DebugSwitches, Fr as Snapshot, J as Api$1, Jr as FrameRate, Lr as StoreApi, Qr as Time, at as Captured, ir as FlowState, tn as Api$2, tr as Bookmark } from "./types-DFROr3sM.mjs";
2
- import { P as AnimApi, a as AudioApi, h as EffectsApi, r as UiApi } from "./types-BbuRDHDK.mjs";
3
- import { N as InputApi } from "./types--1Zq5_6Q.mjs";
4
- import { t as HeadlessApp } from "./headless-DDymHw9o.mjs";
5
- import { n as Command, r as ControlApp } from "./types-WoDZEVQI.mjs";
1
+ import { Br as Api, C as ScenesApi, E as DebugSwitches, Fr as Snapshot, J as Api$1, Jr as FrameRate, Lr as StoreApi, Qr as Time, at as Captured, ir as FlowState, tn as Api$2, tr as Bookmark } from "./types-C_nC_M4p.mjs";
2
+ import { P as AnimApi, a as AudioApi, h as EffectsApi, r as UiApi } from "./types-C76NQm-h.mjs";
3
+ import { N as InputApi } from "./types-bEJEga5m.mjs";
4
+ import { t as HeadlessApp } from "./headless-DBYmnluy.mjs";
5
+ import { n as Command, r as ControlApp } from "./types-DTetCcBC.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-DDymHw9o.mjs";
2
- import { i as InputArguments, n as Command, o as InputSchema, s as Ran } from "./types-WoDZEVQI.mjs";
3
- import { t as commands } from "./commands-BTAIwlyn.mjs";
4
- import { t as defineCommand } from "./define-CIg6SOO0.mjs";
1
+ import { t as HeadlessApp } from "./headless-DBYmnluy.mjs";
2
+ import { i as InputArguments, n as Command, o as InputSchema, s as Ran } from "./types-DTetCcBC.mjs";
3
+ import { t as commands } from "./commands-BJ4gG5WZ.mjs";
4
+ import { t as defineCommand } from "./define-CVYadV_I.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-DDymHw9o.mjs";
2
- import { c as Source, n as Command, o as InputSchema } from "./types-WoDZEVQI.mjs";
1
+ import { t as HeadlessApp } from "./headless-DBYmnluy.mjs";
2
+ import { c as Source, n as Command, o as InputSchema } from "./types-DTetCcBC.mjs";
3
3
 
4
4
  //#region src/plugins/flow/doors/define.d.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { Er as Json, In as Api$1, Kr as Api, ar as JournalEntry, gr as Answer, ir as FlowState, sr as RouteStep, zr as RngState } from "./types-DFROr3sM.mjs";
1
+ import { Er as Json, In as Api$1, Kr as Api, ar as JournalEntry, gr as Answer, ir as FlowState, sr as RouteStep, zr as RngState } from "./types-C_nC_M4p.mjs";
2
2
 
3
3
  //#region src/plugins/flow/headless.d.ts
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { $n as FeatureTree, An as ProjectionMotion, Ar as Patch, Bn as GameTypes, Br as Api$3, C as ScenesApi, Dr as Root, Er as Json, Et as PassKind, G as TransformValue, H as SpriteOptions, Hr as Events, I as OverlayValue, In as Api$2, J as Api$4, K as sprite, Kn as defineFlow, Kr as Api$5, Ln as BundlesOf, Lr as StoreApi, M as HudPartValue, Mn as ReducedMotion, Or as State$5, P as NineSliceValue, Qn as FeaturePlugin, Rn as Config$3, Rr as RngApi, S as SceneSpec, Sn as TagType, Tn as Ease, U as SpriteValue, Un as State$3, Ur as PauseReason, Vn as HudKeysOf, Vr as Config$4, Wn as TextStylesOf, Wr as State$4, Xr as State$8, Y as Config$6, Yr as RateChange, Zn as FeatureDescription, Zr as ThermalReading, _ as AnySceneProjection, _n as Narrowed, _r as Api$1, a as Config$1, b as LayerMap, bn as SystemDefinition, c as LoadBundles, cr as SceneIdOf, dn as ComponentType, dr as Effect, ei as Config$9, f as ReadyBundles, fn as ComponentValue, fr as EffectOptions, gn as Mut, gr as Answer, gt as FrameRing, ht as FrameRecord, i as BundleSpec, in as State$9, jn as ProjectionSpec, kn as NumericFields, l as LoadReason, ln as ComponentHandle, m as Tier, mr as Hint, ni as Require, nn as Config$8, nr as DefineNode, nt as State$6, o as DefineBundles, p as State$1, pr as GuideOptions, qr as Config$7, r as BundleMap, t as Api, ti as Events$1, tn as Api$6, u as LoadResult, ur as Descriptor, ut as ViewportSize, v as DefineScene, vn as QueryTerm, w as State$7, wn as DescriptionNode, wr as Config$5, x as SceneDefinition, xn as SystemFor, xr as State$2, yn as ResourceType, yr as Config$2, z as ShapeValue, zn as EmitterIdOf } from "./types-DFROr3sM.mjs";
2
- import { A as GlowValue, B as Target, C as BlurValue, D as FilterComponent, F as AnimPlayerValue, H as HapticKind, I as Config$10, 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$12, n as State$13, r as UiApi, s as Config$11, t as Config$13, w as ColorMatrixValue, x as EmitterValue, y as EmitterConfig, z as State$10 } from "./types-BbuRDHDK.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$14, M as Config$15, 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$16, 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--1Zq5_6Q.mjs";
1
+ import { $n as FeatureTree, An as ProjectionMotion, Ar as Patch, Bn as GameTypes, Br as Api$3, C as ScenesApi, Dr as Root, Er as Json, Et as PassKind, G as TransformValue, H as SpriteOptions, Hr as Events, I as OverlayValue, In as Api$2, J as Api$4, K as sprite, Kn as defineFlow, Kr as Api$5, Ln as BundlesOf, Lr as StoreApi, M as HudPartValue, Mn as ReducedMotion, Or as State$5, P as NineSliceValue, Qn as FeaturePlugin, Rn as Config$3, Rr as RngApi, S as SceneSpec, Sn as TagType, Tn as Ease, U as SpriteValue, Un as State$3, Ur as PauseReason, Vn as HudKeysOf, Vr as Config$4, Wn as TextStylesOf, Wr as State$4, Xr as State$8, Y as Config$6, Yr as RateChange, Zn as FeatureDescription, Zr as ThermalReading, _ as AnySceneProjection, _n as Narrowed, _r as Api$1, a as Config$1, b as LayerMap, bn as SystemDefinition, c as LoadBundles, cr as SceneIdOf, dn as ComponentType, dr as Effect, ei as Config$9, f as ReadyBundles, fn as ComponentValue, fr as EffectOptions, gn as Mut, gr as Answer, gt as FrameRing, ht as FrameRecord, i as BundleSpec, in as State$9, jn as ProjectionSpec, kn as NumericFields, l as LoadReason, ln as ComponentHandle, m as Tier, mr as Hint, ni as Require, nn as Config$8, nr as DefineNode, nt as State$6, o as DefineBundles, p as State$1, pr as GuideOptions, qr as Config$7, r as BundleMap, t as Api, ti as Events$1, tn as Api$6, u as LoadResult, ur as Descriptor, ut as ViewportSize, v as DefineScene, vn as QueryTerm, w as State$7, wn as DescriptionNode, wr as Config$5, x as SceneDefinition, xn as SystemFor, xr as State$2, yn as ResourceType, yr as Config$2, z as ShapeValue, zn as EmitterIdOf } from "./types-C_nC_M4p.mjs";
2
+ import { A as GlowValue, B as Target, C as BlurValue, D as FilterComponent, F as AnimPlayerValue, H as HapticKind, I as Config$10, 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$12, n as State$13, r as UiApi, s as Config$11, t as Config$13, w as ColorMatrixValue, x as EmitterValue, y as EmitterConfig, z as State$10 } from "./types-C76NQm-h.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$14, M as Config$15, 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$16, 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-bEJEga5m.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 { $r as types_d_exports$15, $t as WarmDetail, A as Display, At as PerfChangeEntry, B as Sprite, Bt as PerfMarkLine, Ct as PERF_GAP_BUCKETS, Dt as PassRecord, Et as PassKind, F as Overlay, Ft as PerfEventName, Gn as types_d_exports$6, Gr as types_d_exports$9, Gt as PerfTelemetryLine, Ht as PerfSampleLine, I as OverlayValue, It as PerfGapLine, Jn as slot, Jt as ProblemEventDetail, K as sprite, Kt as PerfThermalLine, L as Parent, Lt as PerfHeaderLine, M as HudPartValue, Mt as PerfCounts, N as NineSlice, Nt as PerfDisplay, Ot as PerfCause, Pr as SaveUnreadableError, Pt as PerfEventLine, Qt as ShaderWhat, R as Shape, Rt as PerfLogLine, Sr as types_d_exports$3, St as PERF_CAUSES, T as types_d_exports$13, Tt as PROBLEM_RULES, Ut as PerfSpikeLine, V as SpriteBlend, Vt as PerfMeasured, W as Transform, Wt as PerfStartupLine, X as MonitorConfig, Xn as type, Xt as SHADER_WHATS, Yn as to, Yt as ProblemRule, Zt as ShaderEventDetail, _t as LongFrameEntry, an as types_d_exports$17, bt as OverlayEventDetail, en as DEMAND_REASONS, ft as FrameColumns, g as types_d_exports$1, gt as FrameRing, ht as FrameRecord, it as types_d_exports$12, j as HudPart, jt as PerfCollectorLine, kr as types_d_exports$10, kt as PerfChange, mt as FrameReadout, ot as MonitorCounts, pt as FrameReadResult, q as AdaptiveScale, qn as exit, qt as PoolTrimDetail, tt as PoolTrim, vt as MONITOR_SECTIONS, wn as DescriptionNode, wt as PERF_LOG_VERSION, xt as OverlayWhat, yt as MonitorSections, zt as PerfLongFrameLine } from "./types-DFROr3sM.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-BbuRDHDK.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--1Zq5_6Q.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-CURQhlzb.mjs";
1
+ import { $r as types_d_exports$15, $t as WarmDetail, A as Display, At as PerfChangeEntry, B as Sprite, Bt as PerfMarkLine, Ct as PERF_GAP_BUCKETS, Dt as PassRecord, Et as PassKind, F as Overlay, Ft as PerfEventName, Gn as types_d_exports$6, Gr as types_d_exports$9, Gt as PerfTelemetryLine, Ht as PerfSampleLine, I as OverlayValue, It as PerfGapLine, Jn as slot, Jt as ProblemEventDetail, K as sprite, Kt as PerfThermalLine, L as Parent, Lt as PerfHeaderLine, M as HudPartValue, Mt as PerfCounts, N as NineSlice, Nt as PerfDisplay, Ot as PerfCause, Pr as SaveUnreadableError, Pt as PerfEventLine, Qt as ShaderWhat, R as Shape, Rt as PerfLogLine, Sr as types_d_exports$3, St as PERF_CAUSES, T as types_d_exports$13, Tt as PROBLEM_RULES, Ut as PerfSpikeLine, V as SpriteBlend, Vt as PerfMeasured, W as Transform, Wt as PerfStartupLine, X as MonitorConfig, Xn as type, Xt as SHADER_WHATS, Yn as to, Yt as ProblemRule, Zt as ShaderEventDetail, _t as LongFrameEntry, an as types_d_exports$17, bt as OverlayEventDetail, en as DEMAND_REASONS, ft as FrameColumns, g as types_d_exports$1, gt as FrameRing, ht as FrameRecord, it as types_d_exports$12, j as HudPart, jt as PerfCollectorLine, kr as types_d_exports$10, kt as PerfChange, mt as FrameReadout, ot as MonitorCounts, pt as FrameReadResult, q as AdaptiveScale, qn as exit, qt as PoolTrimDetail, tt as PoolTrim, vt as MONITOR_SECTIONS, wn as DescriptionNode, wt as PERF_LOG_VERSION, xt as OverlayWhat, yt as MonitorSections, zt as PerfLongFrameLine } from "./types-C_nC_M4p.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-C76NQm-h.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-bEJEga5m.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-Dn_v0Fqs.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, 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 modelPlugin, at as use, b as types_exports$17, bt as Traced, c as hint, cn as timePlugin, 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 type, it as tween, j as types_exports$6, jt as Noise, k as types_exports$8, kt as Displacement, l as schedule, ln as clockPlugin, lt as DropTarget, m as flattenFeatures, mt as Pressable, n as createPlugin, nn as slot, nt as stagger, o as defineEffect, on as SaveUnreadableError, ot as wait, p as defineFeature, pt as PointerOver, q as haptic, qt as PERF_GAP_BUCKETS, r as defineGame, rn as to, rt as stopSfx, s as guide, sn as lifecyclePlugin, st as inputPlugin, t as createApp, tn as exit, tt as spawned, u as projection, 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-DLs4b_Vs.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 modelPlugin, at as use, b as types_exports$17, bt as Traced, c as hint, cn as timePlugin, 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 type, it as tween, j as types_exports$6, jt as Noise, k as types_exports$8, kt as Displacement, l as schedule, ln as clockPlugin, lt as DropTarget, m as flattenFeatures, mt as Pressable, n as createPlugin, nn as slot, nt as stagger, o as defineEffect, on as SaveUnreadableError, ot as wait, p as defineFeature, pt as PointerOver, q as haptic, qt as PERF_GAP_BUCKETS, r as defineGame, rn as to, rt as stopSfx, s as guide, sn as lifecyclePlugin, st as inputPlugin, t as createApp, tn as exit, tt as spawned, u as projection, 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-DPvSTM8O.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, 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 { Cr as Api, Fr as Snapshot, Hn as Position, J as Api$2, ar as JournalEntry, h as Usage, hn as FrameDiff, mn as EntitySnapshot, rn as Explained, rr as FlowGraph, rt as Under, st as RenderStats, t as Api$3, tn as Api$1, un as ComponentSchema } from "./types-DFROr3sM.mjs";
2
- import { a as AudioApi, g as EffectsStats, h as EffectsApi, r as UiApi, u as SoundEntry } from "./types-BbuRDHDK.mjs";
3
- import { c as UiNode } from "./types--1Zq5_6Q.mjs";
4
- import { t as HeadlessApp } from "./headless-DDymHw9o.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-WoDZEVQI.mjs";
6
- import { n as defineSource } from "./define-CIg6SOO0.mjs";
1
+ import { Cr as Api, Fr as Snapshot, Hn as Position, J as Api$2, ar as JournalEntry, h as Usage, hn as FrameDiff, mn as EntitySnapshot, rn as Explained, rr as FlowGraph, rt as Under, st as RenderStats, t as Api$3, tn as Api$1, un as ComponentSchema } from "./types-C_nC_M4p.mjs";
2
+ import { a as AudioApi, g as EffectsStats, h as EffectsApi, r as UiApi, u as SoundEntry } from "./types-C76NQm-h.mjs";
3
+ import { c as UiNode } from "./types-bEJEga5m.mjs";
4
+ import { t as HeadlessApp } from "./headless-DBYmnluy.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-DTetCcBC.mjs";
6
+ import { n as defineSource } from "./define-CVYadV_I.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-jtZ4eVu7.mjs";
1
+ import { a as jsxs, i as jsxDEV, n as JSX, r as jsx, t as Fragment } from "./runtime-DnjJ4Zo9.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-jtZ4eVu7.mjs";
1
+ import { a as jsxs, n as JSX, r as jsx, t as Fragment } from "./runtime-DnjJ4Zo9.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--1Zq5_6Q.mjs";
1
+ import { _ as UiIntrinsicElements, a as JsxChild, t as DescriptionNode } from "./types-bEJEga5m.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. */
@@ -5872,7 +5872,7 @@ function restorePosition(ctx, _modules, bookmark) {
5872
5872
  * @param view - The last view.
5873
5873
  * @returns True while nothing the state shows moved.
5874
5874
  */
5875
- function isCurrent$1(ctx, view) {
5875
+ function isCurrent$2(ctx, view) {
5876
5876
  const runner = ctx.state.runner;
5877
5877
  return view.running === (runner.running !== void 0) && view.depth === runner.stack.length && view.top === runner.stack.at(-1) && view.open === ctx.state.gate.open && view.mode === ctx.state.fx.mode && view.journalIndex === runner.journalIndex;
5878
5878
  }
@@ -5913,7 +5913,7 @@ function viewOf(ctx) {
5913
5913
  function readState(ctx) {
5914
5914
  const runner = ctx.state.runner;
5915
5915
  const view = runner.view;
5916
- if (view !== void 0 && isCurrent$1(ctx, view)) return view.state;
5916
+ if (view !== void 0 && isCurrent$2(ctx, view)) return view.state;
5917
5917
  const next = viewOf(ctx);
5918
5918
  runner.view = next;
5919
5919
  return next.state;
@@ -11262,6 +11262,7 @@ function reconcileOne(pctx, spec, mounted, snapshot, options, counts, used) {
11262
11262
  return;
11263
11263
  }
11264
11264
  mounted.items = next;
11265
+ mounted.seen = snapshot;
11265
11266
  if (options.direct) flushMounted(pctx, mounted);
11266
11267
  if (options.converge) convergeMounted(pctx, mounted);
11267
11268
  else {
@@ -11271,6 +11272,20 @@ function reconcileOne(pctx, spec, mounted, snapshot, options, counts, used) {
11271
11272
  counts.queued += mounted.queue.length;
11272
11273
  }
11273
11274
  /**
11275
+ * Tells whether a play reconcile would change nothing in a projection: its last reconcile read the same `player` and
11276
+ * `session` trees, and nothing forces, converges or settles it. A scene mounts its projections direct after the commit
11277
+ * of its node; the next frame's reconcile of that commit then skips them (≈2 ms a switch on a Galaxy A26, F61).
11278
+ *
11279
+ * @param mounted - The mounted projection.
11280
+ * @param snapshot - The state of this reconcile.
11281
+ * @param options - How this reconcile runs.
11282
+ * @returns True when the projection is passed over.
11283
+ */
11284
+ function isCurrent$1(mounted, snapshot, options) {
11285
+ const seen = mounted.seen;
11286
+ return seen !== void 0 && !options.direct && !options.force && !options.converge && !options.settle && seen.player === snapshot.player && seen.session === snapshot.session;
11287
+ }
11288
+ /**
11274
11289
  * Runs one reconcile over every mounted projection, or over the named ones only. A converging
11275
11290
  * one then brings the elements other plugins own home and tells their owners.
11276
11291
  *
@@ -11287,7 +11302,7 @@ function reconcile(pctx, options) {
11287
11302
  for (const [name, mounted] of state.mounted) {
11288
11303
  if (options.names !== void 0 && !options.names.includes(name)) continue;
11289
11304
  const spec = state.specs.get(name);
11290
- if (spec === void 0) continue;
11305
+ if (spec === void 0 || isCurrent$1(mounted, snapshot, options)) continue;
11291
11306
  counts.projections += 1;
11292
11307
  reconcileOne(pctx, spec, mounted, snapshot, options, counts, used);
11293
11308
  }
@@ -25176,7 +25191,7 @@ function resetObject(view) {
25176
25191
  }
25177
25192
  /**
25178
25193
  * Brings a detached object back to a fresh one's pose and look: drawn, opaque, unmoved, blending as its parent (no
25179
- * glow of the view it drew for), white for a sprite and a graphics.
25194
+ * glow of the view it drew for), white for a sprite and a graphics, and a graphics without a path.
25180
25195
  *
25181
25196
  * @param object - The object, out of the tree.
25182
25197
  */
@@ -25189,7 +25204,11 @@ function resetNode(object) {
25189
25204
  object.position.set(0, 0);
25190
25205
  object.pivot.set(0, 0);
25191
25206
  object.scale.set(1);
25192
- if (isSprite(object) || isGraphics(object)) object.tint = 16777215;
25207
+ if (isSprite(object)) object.tint = 16777215;
25208
+ if (isGraphics(object)) {
25209
+ object.tint = 16777215;
25210
+ object.clear();
25211
+ }
25193
25212
  }
25194
25213
  /**
25195
25214
  * Takes an object out of its pool, if one is waiting.
@@ -57629,7 +57648,10 @@ function createReconciler(ctx, modules, fields) {
57629
57648
  function reconcileDirtyRoot(root) {
57630
57649
  const tree = ecs.get(root.entity, Tree);
57631
57650
  const place = ctx.deps.world.projection.keyOf(root.entity);
57632
- if (place !== void 0) root.name = place.projection;
57651
+ if (place !== void 0 && place.projection !== root.name) {
57652
+ root.name = place.projection;
57653
+ hostsMoved(state);
57654
+ }
57633
57655
  if (tree !== void 0) root.tree = tree.node;
57634
57656
  refreshRootOrder(root);
57635
57657
  root.dirty = !modules.layout.loaded();
@@ -1,7 +1,7 @@
1
- import { Er as Json, Qn as FeaturePlugin, br as FakeClock, er as AnyFlow, hr as NodeFx, mr as Hint, or as NodeTable, ur as Descriptor, vr as ClockSource } from "./types-DFROr3sM.mjs";
2
- import { t as createApp } from "./index-CURQhlzb.mjs";
3
- import { b as saveOf, v as WithGameState, y as memory } from "./types-DHxDVC5b.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-DDymHw9o.mjs";
1
+ import { Er as Json, Qn as FeaturePlugin, br as FakeClock, er as AnyFlow, hr as NodeFx, mr as Hint, or as NodeTable, ur as Descriptor, vr as ClockSource } from "./types-C_nC_M4p.mjs";
2
+ import { t as createApp } from "./index-Dn_v0Fqs.mjs";
3
+ import { b as saveOf, v as WithGameState, y as memory } from "./types-Bsa1nFyU.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-DBYmnluy.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 { en as refuseStart, in as type, m as flattenFeatures, t as createApp, tn as exit } from "./src-DLs4b_Vs.mjs";
1
+ import { en as refuseStart, in as type, m as flattenFeatures, t as createApp, tn as exit } from "./src-DPvSTM8O.mjs";
2
2
  import { n as saveOf, t as memory } from "./memory-CWlqhS7l.mjs";
3
3
  import { t as fakeClock } from "./fake-6mazmHK3.mjs";
4
4
  import { i as stepFrames, r as runRepro, t as createHeadless } from "./headless-Bxxl_mQX.mjs";
@@ -1,7 +1,7 @@
1
- import { Er as Json, Ir as SnapshotOf, Mr as ProviderCall, Nr as SaveDoc, Q as PixiModule, Qn as FeaturePlugin, Rn as Config$1, Y as Config$2, a as Config$3, br as FakeClock, ct as Orientation, d as Manifest, er as AnyFlow, jr as PlayerStateProvider, lr as TypeTag, n as AssetsIo, vr as ClockSource, wr as Config } from "./types-DFROr3sM.mjs";
2
- import { o as AudioContextLike, s as Config$4 } from "./types-BbuRDHDK.mjs";
3
- import { R as I18nApi, U as StringTable, W as TextKey } from "./types--1Zq5_6Q.mjs";
4
- import { St as effectsPlugin, Tt as audioPlugin, ht as PlatformProvider, i as screen, pt as platformPlugin, t as createApp } from "./index-CURQhlzb.mjs";
1
+ import { Er as Json, Ir as SnapshotOf, Mr as ProviderCall, Nr as SaveDoc, Q as PixiModule, Qn as FeaturePlugin, Rn as Config$1, Y as Config$2, a as Config$3, br as FakeClock, ct as Orientation, d as Manifest, er as AnyFlow, jr as PlayerStateProvider, lr as TypeTag, n as AssetsIo, vr as ClockSource, wr as Config } from "./types-C_nC_M4p.mjs";
2
+ import { o as AudioContextLike, s as Config$4 } from "./types-C76NQm-h.mjs";
3
+ import { R as I18nApi, U as StringTable, W as TextKey } from "./types-bEJEga5m.mjs";
4
+ import { St as effectsPlugin, Tt as audioPlugin, ht as PlatformProvider, i as screen, pt as platformPlugin, t as createApp } from "./index-Dn_v0Fqs.mjs";
5
5
  import { AnyPluginInstance } from "@moku-labs/core";
6
6
 
7
7
  //#region src/plugins/model/store/providers/memory.d.ts
@@ -1,5 +1,5 @@
1
- import { $ as PixiSprite, Cr as Api$6, D as FilterSlot, Er as Json, Hr as Events$5, In as Api$2, J as Api$4, Kr as Api$1, Mn as ReducedMotion, Nn as TrackOptions, O as FilterSlotInputs, On as MotionHandle, Pn as TrackSegment, Q as PixiModule, Tn as Ease, Tr as Events$3, Z as PixiFilter, cn as AnyComponentValue, dn as ComponentType, dt as FilterCache, et as PixiTexture, k as SyncApi, kn as NumericFields, ln as ComponentHandle, lr as TypeTag, lt as Point, ni as Require, on as AnyComponent, pn as Entity, s as Events$1, t as Api$5, ti as Events$2, tn as Api$3, ur as Descriptor, y as Events$4 } from "./types-DFROr3sM.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--1Zq5_6Q.mjs";
1
+ import { $ as PixiSprite, Cr as Api$6, D as FilterSlot, Er as Json, Hr as Events$5, In as Api$2, J as Api$4, Kr as Api$1, Mn as ReducedMotion, Nn as TrackOptions, O as FilterSlotInputs, On as MotionHandle, Pn as TrackSegment, Q as PixiModule, Tn as Ease, Tr as Events$3, Z as PixiFilter, cn as AnyComponentValue, dn as ComponentType, dt as FilterCache, et as PixiTexture, k as SyncApi, kn as NumericFields, ln as ComponentHandle, lr as TypeTag, lt as Point, ni as Require, on as AnyComponent, pn as Entity, s as Events$1, t as Api$5, ti as Events$2, tn as Api$3, ur as Descriptor, y as Events$4 } from "./types-C_nC_M4p.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-bEJEga5m.mjs";
3
3
  import { Log } from "@moku-labs/common/browser";
4
4
  import { PluginCtx } from "@moku-labs/core";
5
5
 
@@ -4378,6 +4378,11 @@ type Mounted = {
4378
4378
  * identity: a `mount` under the same list is a second mount of one scene, a `mount` under a new one keeps it.
4379
4379
  */
4380
4380
  layers: ReadonlyArray<LayerSpec>;
4381
+ /**
4382
+ * The state of its last reconcile: a play reconcile against the same `player` and `session` trees changes nothing
4383
+ * and is passed over (the frame after a scene mounted it direct). Absent before the first reconcile.
4384
+ */
4385
+ seen?: Snapshot;
4381
4386
  };
4382
4387
  /**
4383
4388
  * One track the projection started on the driver. The world keeps the component name and the
@@ -1,5 +1,5 @@
1
- import { Er as Json, Fr as Snapshot } from "./types-DFROr3sM.mjs";
2
- import { t as HeadlessApp } from "./headless-DDymHw9o.mjs";
1
+ import { Er as Json, Fr as Snapshot } from "./types-C_nC_M4p.mjs";
2
+ import { t as HeadlessApp } from "./headless-DBYmnluy.mjs";
3
3
  import { Log } from "@moku-labs/common/browser";
4
4
 
5
5
  //#region src/plugins/flow/doors/types.d.ts
@@ -1,4 +1,4 @@
1
- import { An as ProjectionMotion, Cn as ChangeHook, Dn as MotionCause, En as Motion, Er as Json, Fn as ViewHandle, G as TransformValue, In as Api$1, J as Api$3, Kr as Api, Mn as ReducedMotion, On as MotionHandle, Sn as TagType, Tn as Ease, _r as Api$5, cn as AnyComponentValue, dn as ComponentType, gr as Answer, kn as NumericFields, mr as Hint, ni as Require, on as AnyComponent, pn as Entity, s as Events$1, sn as AnyComponentType, t as Api$4, tn as Api$2, ur as Descriptor, ut as ViewportSize } from "./types-DFROr3sM.mjs";
1
+ import { An as ProjectionMotion, Cn as ChangeHook, Dn as MotionCause, En as Motion, Er as Json, Fn as ViewHandle, G as TransformValue, In as Api$1, J as Api$3, Kr as Api, Mn as ReducedMotion, On as MotionHandle, Sn as TagType, Tn as Ease, _r as Api$5, cn as AnyComponentValue, dn as ComponentType, gr as Answer, kn as NumericFields, mr as Hint, ni as Require, on as AnyComponent, pn as Entity, s as Events$1, sn as AnyComponentType, t as Api$4, tn as Api$2, ur as Descriptor, ut as ViewportSize } from "./types-C_nC_M4p.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";
@@ -1,9 +1,9 @@
1
- import { Br as Api$3, Cr as Api$2, J as Api, tn as Api$1 } from "./types-DFROr3sM.mjs";
2
- import { P as AnimApi, r as UiApi } from "./types-BbuRDHDK.mjs";
3
- import { N as InputApi } from "./types--1Zq5_6Q.mjs";
4
- import { r as Repro } from "./headless-DDymHw9o.mjs";
5
- import { a as InputOf, r as ControlApp } from "./types-WoDZEVQI.mjs";
6
- import { t as commands } from "./commands-BTAIwlyn.mjs";
1
+ import { Br as Api$3, Cr as Api$2, J as Api, tn as Api$1 } from "./types-C_nC_M4p.mjs";
2
+ import { P as AnimApi, r as UiApi } from "./types-C76NQm-h.mjs";
3
+ import { N as InputApi } from "./types-bEJEga5m.mjs";
4
+ import { r as Repro } from "./headless-DBYmnluy.mjs";
5
+ import { a as InputOf, r as ControlApp } from "./types-DTetCcBC.mjs";
6
+ import { t as commands } from "./commands-BJ4gG5WZ.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-Dj1tlgUk.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-BMRHt4IB.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.27",
3
+ "version": "0.15.28",
4
4
  "description": "2D puzzle game engine on TypeScript and PixiJS, built on @moku-labs/core.",
5
5
  "type": "module",
6
6
  "sideEffects": [