@moku-labs/game 0.15.33 → 0.15.35
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.
- package/dist/app/page.d.mts +1 -1
- package/dist/app/system.d.mts +3 -3
- package/dist/app.d.mts +3 -3
- package/dist/app.mjs +1 -1
- package/dist/assets.d.mts +1 -1
- package/dist/{commands-C1gTg70a.d.mts → commands-BGrtxBga.d.mts} +5 -5
- package/dist/control.d.mts +4 -4
- package/dist/{define-CE1uxbe9.d.mts → define-0af8h-Ro.d.mts} +2 -2
- package/dist/{headless-f31cEZ7f.d.mts → headless-BFI7EXHo.d.mts} +1 -1
- package/dist/{index-ChuOBsZB.d.mts → index-Cs4qaPMq.d.mts} +3 -3
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +1 -1
- package/dist/inspect.d.mts +6 -6
- package/dist/jsx-dev-runtime.d.mts +1 -1
- package/dist/jsx-runtime.d.mts +1 -1
- package/dist/{runtime-CgJuBIYZ.d.mts → runtime-DIOe0nCH.d.mts} +1 -1
- package/dist/{src-D5Nyvdhu.mjs → src-C6XBMo4Q.mjs} +207 -103
- package/dist/testing.d.mts +4 -4
- package/dist/testing.mjs +1 -1
- package/dist/{types-BqfwZ_lM.d.mts → types-B1W2CPUu.d.mts} +4 -3
- package/dist/{types-DGHVGP5i.d.mts → types-BAv5qOZX.d.mts} +13 -2
- package/dist/{types-CgE5L_7f.d.mts → types-D52biu5v.d.mts} +2 -2
- package/dist/{types-CF6CJ55K.d.mts → types-Dh2cyp0H.d.mts} +4 -4
- package/dist/{types-D27I4Q7b.d.mts → types-K3qfyTu0.d.mts} +14 -4
- package/dist/{visual-C2HHHs46.d.mts → visual-DMx0vv_3.d.mts} +6 -6
- package/dist/visual.d.mts +1 -1
- package/package.json +1 -1
package/dist/app/page.d.mts
CHANGED
package/dist/app/system.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Mr as PlayerStateProvider } from "../types-
|
|
2
|
-
import { ht as PlatformProvider } from "../index-
|
|
3
|
-
import { _ as SystemShellFactory, g as SystemName, h as SystemModules } from "../types-
|
|
1
|
+
import { Mr as PlayerStateProvider } from "../types-K3qfyTu0.mjs";
|
|
2
|
+
import { ht as PlatformProvider } from "../index-Cs4qaPMq.mjs";
|
|
3
|
+
import { _ as SystemShellFactory, g as SystemName, h as SystemModules } from "../types-Dh2cyp0H.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 { Dr as Json } from "./types-
|
|
2
|
-
import { U as StringTable } from "./types-
|
|
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-
|
|
1
|
+
import { Dr as Json } from "./types-K3qfyTu0.mjs";
|
|
2
|
+
import { U as StringTable } from "./types-BAv5qOZX.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-Dh2cyp0H.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-
|
|
1
|
+
import { Ft as audioPlugin, H as platformPlugin, i as screen, m as flattenFeatures, t as createApp, wt as effectsPlugin } from "./src-C6XBMo4Q.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,8 +1,8 @@
|
|
|
1
|
-
import { $r as Time, D as DebugSwitches, Ir as Snapshot, Rr as StoreApi, Vr as Api, Y as Api$1, Yr as FrameRate, ar as FlowState, nn as Api$2, nr as Bookmark, ot as Captured, w as ScenesApi } from "./types-
|
|
2
|
-
import { P as AnimApi, a as AudioApi, h as EffectsApi, r as UiApi } from "./types-
|
|
3
|
-
import { N as InputApi } from "./types-
|
|
4
|
-
import { t as HeadlessApp } from "./headless-
|
|
5
|
-
import { n as Command, r as ControlApp } from "./types-
|
|
1
|
+
import { $r as Time, D as DebugSwitches, Ir as Snapshot, Rr as StoreApi, Vr as Api, Y as Api$1, Yr as FrameRate, ar as FlowState, nn as Api$2, nr as Bookmark, ot as Captured, w as ScenesApi } from "./types-K3qfyTu0.mjs";
|
|
2
|
+
import { P as AnimApi, a as AudioApi, h as EffectsApi, r as UiApi } from "./types-B1W2CPUu.mjs";
|
|
3
|
+
import { N as InputApi } from "./types-BAv5qOZX.mjs";
|
|
4
|
+
import { t as HeadlessApp } from "./headless-BFI7EXHo.mjs";
|
|
5
|
+
import { n as Command, r as ControlApp } from "./types-D52biu5v.mjs";
|
|
6
6
|
|
|
7
7
|
//#region src/plugins/flow/doors/commands.d.ts
|
|
8
8
|
/**
|
package/dist/control.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as HeadlessApp } from "./headless-
|
|
2
|
-
import { i as InputArguments, n as Command, o as InputSchema, s as Ran } from "./types-
|
|
3
|
-
import { t as commands } from "./commands-
|
|
4
|
-
import { t as defineCommand } from "./define-
|
|
1
|
+
import { t as HeadlessApp } from "./headless-BFI7EXHo.mjs";
|
|
2
|
+
import { i as InputArguments, n as Command, o as InputSchema, s as Ran } from "./types-D52biu5v.mjs";
|
|
3
|
+
import { t as commands } from "./commands-BGrtxBga.mjs";
|
|
4
|
+
import { t as defineCommand } from "./define-0af8h-Ro.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-
|
|
2
|
-
import { c as Source, n as Command, o as InputSchema } from "./types-
|
|
1
|
+
import { t as HeadlessApp } from "./headless-BFI7EXHo.mjs";
|
|
2
|
+
import { c as Source, n as Command, o as InputSchema } from "./types-D52biu5v.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/plugins/flow/doors/define.d.ts
|
|
5
5
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Br as RngState, Dr as Json, Ln as Api$1, _r as Answer, ar as FlowState, cr as RouteStep, or as JournalEntry, qr as Api } from "./types-
|
|
1
|
+
import { Br as RngState, Dr as Json, Ln as Api$1, _r as Answer, ar as FlowState, cr as RouteStep, or as JournalEntry, qr as Api } from "./types-K3qfyTu0.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/plugins/flow/headless.d.ts
|
|
4
4
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $n as FeaturePlugin, An as NumericFields, B as ShapeValue, Bn as EmitterIdOf, C as SceneSpec, Cn as TagType, Dr as Json, Dt as PassKind, En as Ease, F as NineSliceValue, Gn as TextStylesOf, Gr as State$4, Hn as HudKeysOf, Hr as Config$4, Jr as Config$8, K as TransformValue, L as OverlayValue, Ln as Api$2, Mn as ProjectionSpec, N as HudPartValue, Nn as ReducedMotion, Or as Root, Qn as FeatureDescription, Qr as ThermalReading, Rn as BundlesOf, Rr as StoreApi, S as SceneDefinition, Sn as SystemFor, Sr as State$2, T as State$7, Tn as DescriptionNode, Tr as Config$5, U as SpriteOptions, Ur as Events, Vn as GameTypes, Vr as Api$3, W as SpriteValue, Wn as State$3, Wr as PauseReason, X as Config$6, Xr as RateChange, Y as Api$4, Zr as State$8, _ as AnySceneProjection, _n as Mut, _r as Answer, _t as FrameRing, a as Config$1, an as State$9, bn as ResourceType, br as Config$2, c as LoadBundles, dr as Descriptor, dt as ViewportSize, er as FeatureTree, f as ReadyBundles, fn as ComponentType, fr as Effect, gt as FrameRecord, hr as Hint, i as BundleSpec, jn as ProjectionMotion, jr as Patch, kr as State$5, l as LoadReason, lr as SceneIdOf, m as Tier, mr as GuideOptions, ni as Events$1, nn as Api$6, o as DefineBundles, p as State$1, pn as ComponentValue, pr as EffectOptions, q as sprite, qn as defineFlow, qr as Api$5, r as BundleMap, ri as Require, rn as Config$9, rr as DefineNode, rt as State$6, t as Api, ti as Config$10, u as LoadResult, un as ComponentHandle, v as Config$7, vn as Narrowed, vr as Api$1, w as ScenesApi, x as LayerMap, xn as SystemDefinition, y as DefineScene, yn as QueryTerm, zn as Config$3, zr as RngApi } from "./types-
|
|
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-
|
|
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-
|
|
1
|
+
import { $n as FeaturePlugin, An as NumericFields, B as ShapeValue, Bn as EmitterIdOf, C as SceneSpec, Cn as TagType, Dr as Json, Dt as PassKind, En as Ease, F as NineSliceValue, Gn as TextStylesOf, Gr as State$4, Hn as HudKeysOf, Hr as Config$4, Jr as Config$8, K as TransformValue, L as OverlayValue, Ln as Api$2, Mn as ProjectionSpec, N as HudPartValue, Nn as ReducedMotion, Or as Root, Qn as FeatureDescription, Qr as ThermalReading, Rn as BundlesOf, Rr as StoreApi, S as SceneDefinition, Sn as SystemFor, Sr as State$2, T as State$7, Tn as DescriptionNode, Tr as Config$5, U as SpriteOptions, Ur as Events, Vn as GameTypes, Vr as Api$3, W as SpriteValue, Wn as State$3, Wr as PauseReason, X as Config$6, Xr as RateChange, Y as Api$4, Zr as State$8, _ as AnySceneProjection, _n as Mut, _r as Answer, _t as FrameRing, a as Config$1, an as State$9, bn as ResourceType, br as Config$2, c as LoadBundles, dr as Descriptor, dt as ViewportSize, er as FeatureTree, f as ReadyBundles, fn as ComponentType, fr as Effect, gt as FrameRecord, hr as Hint, i as BundleSpec, jn as ProjectionMotion, jr as Patch, kr as State$5, l as LoadReason, lr as SceneIdOf, m as Tier, mr as GuideOptions, ni as Events$1, nn as Api$6, o as DefineBundles, p as State$1, pn as ComponentValue, pr as EffectOptions, q as sprite, qn as defineFlow, qr as Api$5, r as BundleMap, ri as Require, rn as Config$9, rr as DefineNode, rt as State$6, t as Api, ti as Config$10, u as LoadResult, un as ComponentHandle, v as Config$7, vn as Narrowed, vr as Api$1, w as ScenesApi, x as LayerMap, xn as SystemDefinition, y as DefineScene, yn as QueryTerm, zn as Config$3, zr as RngApi } from "./types-K3qfyTu0.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-B1W2CPUu.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-BAv5qOZX.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, Ar as types_d_exports$10, At as PerfChange, Bt as PerfLongFrameLine, Cr as types_d_exports$3, Ct as PERF_CAUSES, Dt as PassKind, E as types_d_exports$13, Et as PROBLEM_RULES, Fr as SaveUnreadableError, Ft as PerfEventLine, G as Transform, Gt as PerfStartupLine, H as SpriteBlend, Ht as PerfMeasured, I as Overlay, It as PerfEventName, J as AdaptiveScale, Jn as exit, Jt as PoolTrimDetail, Kn as types_d_exports$6, Kr as types_d_exports$9, 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, 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 to, Xt as ProblemRule, Yn as slot, Yt as ProblemEventDetail, Z as MonitorConfig, Zn as type, Zt as SHADER_WHATS, _t as FrameRing, at as types_d_exports$12, bt as MonitorSections, ei as types_d_exports$15, en as WarmDetail, g as types_d_exports$1, gt as FrameRecord, ht as FrameReadout, j as Display, jt as PerfChangeEntry, kt as PerfCause, mt as FrameReadResult, nt as PoolTrim, on as types_d_exports$17, pt as FrameColumns, q as sprite, qt as PerfThermalLine, st as MonitorCounts, tn as DEMAND_REASONS, vt as LongFrameEntry, wt as PERF_GAP_BUCKETS, xt as OverlayEventDetail, yt as MONITOR_SECTIONS, z as Shape, zt as PerfLogLine } from "./types-
|
|
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-
|
|
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-
|
|
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-
|
|
1
|
+
import { $t as ShaderWhat, Ar as types_d_exports$10, At as PerfChange, Bt as PerfLongFrameLine, Cr as types_d_exports$3, Ct as PERF_CAUSES, Dt as PassKind, E as types_d_exports$13, Et as PROBLEM_RULES, Fr as SaveUnreadableError, Ft as PerfEventLine, G as Transform, Gt as PerfStartupLine, H as SpriteBlend, Ht as PerfMeasured, I as Overlay, It as PerfEventName, J as AdaptiveScale, Jn as exit, Jt as PoolTrimDetail, Kn as types_d_exports$6, Kr as types_d_exports$9, 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, 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 to, Xt as ProblemRule, Yn as slot, Yt as ProblemEventDetail, Z as MonitorConfig, Zn as type, Zt as SHADER_WHATS, _t as FrameRing, at as types_d_exports$12, bt as MonitorSections, ei as types_d_exports$15, en as WarmDetail, g as types_d_exports$1, gt as FrameRecord, ht as FrameReadout, j as Display, jt as PerfChangeEntry, kt as PerfCause, mt as FrameReadResult, nt as PoolTrim, on as types_d_exports$17, pt as FrameColumns, q as sprite, qt as PerfThermalLine, st as MonitorCounts, tn as DEMAND_REASONS, vt as LongFrameEntry, wt as PERF_GAP_BUCKETS, xt as OverlayEventDetail, yt as MONITOR_SECTIONS, z as Shape, zt as PerfLogLine } from "./types-K3qfyTu0.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-B1W2CPUu.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-BAv5qOZX.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-Cs4qaPMq.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-
|
|
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-C6XBMo4Q.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 };
|
package/dist/inspect.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Ir as Snapshot, Un as Position, Y as Api$2, ct as RenderStats, dn as ComponentSchema, gn as FrameDiff, h as Usage, hn as EntitySnapshot, in as Explained, ir as FlowGraph, it as Under, nn as Api$1, or as JournalEntry, t as Api$3, wr as Api } from "./types-
|
|
2
|
-
import { a as AudioApi, g as EffectsStats, h as EffectsApi, r as UiApi, u as SoundEntry } from "./types-
|
|
3
|
-
import { c as UiNode } from "./types-
|
|
4
|
-
import { t as HeadlessApp } from "./headless-
|
|
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-
|
|
6
|
-
import { n as defineSource } from "./define-
|
|
1
|
+
import { Ir as Snapshot, Un as Position, Y as Api$2, ct as RenderStats, dn as ComponentSchema, gn as FrameDiff, h as Usage, hn as EntitySnapshot, in as Explained, ir as FlowGraph, it as Under, nn as Api$1, or as JournalEntry, t as Api$3, wr as Api } from "./types-K3qfyTu0.mjs";
|
|
2
|
+
import { a as AudioApi, g as EffectsStats, h as EffectsApi, r as UiApi, u as SoundEntry } from "./types-B1W2CPUu.mjs";
|
|
3
|
+
import { c as UiNode } from "./types-BAv5qOZX.mjs";
|
|
4
|
+
import { t as HeadlessApp } from "./headless-BFI7EXHo.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-D52biu5v.mjs";
|
|
6
|
+
import { n as defineSource } from "./define-0af8h-Ro.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-
|
|
1
|
+
import { a as jsxs, i as jsxDEV, n as JSX, r as jsx, t as Fragment } from "./runtime-DIOe0nCH.mjs";
|
|
2
2
|
export { Fragment, type JSX, jsx, jsxDEV, jsxs };
|
package/dist/jsx-runtime.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as jsxs, n as JSX, r as jsx, t as Fragment } from "./runtime-
|
|
1
|
+
import { a as jsxs, n as JSX, r as jsx, t as Fragment } from "./runtime-DIOe0nCH.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-
|
|
1
|
+
import { _ as UiIntrinsicElements, a as JsxChild, t as DescriptionNode } from "./types-BAv5qOZX.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. */
|
|
@@ -3372,9 +3372,10 @@ function hold$1(ctx, answer) {
|
|
|
3372
3372
|
if (!ctx.deps.time.isRunning()) return;
|
|
3373
3373
|
if (ctx.config.holdMs <= 0 && ctx.state.gate.held !== void 0) return;
|
|
3374
3374
|
const { frame, elapsed } = ctx.deps.time.snapshot();
|
|
3375
|
+
const heldFor = frame === ctx.state.gate.aged ? frame + 1 : frame;
|
|
3375
3376
|
ctx.state.gate.held = {
|
|
3376
3377
|
answer,
|
|
3377
|
-
frame,
|
|
3378
|
+
frame: heldFor,
|
|
3378
3379
|
at: elapsed
|
|
3379
3380
|
};
|
|
3380
3381
|
}
|
|
@@ -3437,6 +3438,7 @@ function createGateApi(ctx) {
|
|
|
3437
3438
|
},
|
|
3438
3439
|
clearHeld: (frame, elapsed) => {
|
|
3439
3440
|
const held = ctx.state.gate.held;
|
|
3441
|
+
ctx.state.gate.aged = frame;
|
|
3440
3442
|
if (held === void 0) return;
|
|
3441
3443
|
if (held.frame === frame) return;
|
|
3442
3444
|
if (ctx.config.holdMs > 0 && elapsed - held.at <= ctx.config.holdMs) return;
|
|
@@ -6656,6 +6658,7 @@ function createGateState() {
|
|
|
6656
6658
|
open: void 0,
|
|
6657
6659
|
resolve: void 0,
|
|
6658
6660
|
held: void 0,
|
|
6661
|
+
aged: 0,
|
|
6659
6662
|
narrow: void 0,
|
|
6660
6663
|
pointerActive: false,
|
|
6661
6664
|
wake: void 0
|
|
@@ -33535,6 +33538,145 @@ function dropEnded(list) {
|
|
|
33535
33538
|
while (list.length > kept) list.pop();
|
|
33536
33539
|
}
|
|
33537
33540
|
//#endregion
|
|
33541
|
+
//#region src/plugins/anim/timeline/checks.ts
|
|
33542
|
+
/**
|
|
33543
|
+
* Checks the keyframe segments of a `tween` step: at least one, every `at` in 0..1, each after the
|
|
33544
|
+
* one before, and the last at 1, because `to` is where the walk lands.
|
|
33545
|
+
*
|
|
33546
|
+
* @param component - Name of the component the step drives, for the error.
|
|
33547
|
+
* @param segments - The segments the author gave.
|
|
33548
|
+
* @throws {Error} When the list is empty, an `at` is out of range or out of order, or the last
|
|
33549
|
+
* segment ends before 1.
|
|
33550
|
+
* @example
|
|
33551
|
+
* ```ts
|
|
33552
|
+
* checkSegments("Transform", [{ at: 0.5 }, { at: 1 }]); // returns; [{ at: 0.5 }] throws
|
|
33553
|
+
* ```
|
|
33554
|
+
*/
|
|
33555
|
+
function checkSegments(component, segments) {
|
|
33556
|
+
if (segments.length === 0) throw new Error(`[game] A tween of ${component} has no segments.\n Give it at least one segment, the last one at 1.`);
|
|
33557
|
+
let previous = Number.NEGATIVE_INFINITY;
|
|
33558
|
+
for (const { at } of segments) {
|
|
33559
|
+
if (Number.isNaN(at) || at < 0 || at > 1) throw new Error(`[game] A tween of ${component} has a segment at ${at}.\n Keep every at between 0 and 1.`);
|
|
33560
|
+
if (at <= previous) throw new Error(`[game] A tween of ${component} has its segments out of order at ${at}.\n Sort the segments by at, each one after the one before.`);
|
|
33561
|
+
previous = at;
|
|
33562
|
+
}
|
|
33563
|
+
if (previous !== 1) throw new Error(`[game] A tween of ${component} ends its last segment at ${previous}.\n End the last segment at 1: to is where the walk lands.`);
|
|
33564
|
+
}
|
|
33565
|
+
/**
|
|
33566
|
+
* Checks the space of a keyframe walk: an additive one names offsets, and the root space would
|
|
33567
|
+
* turn each offset as if it were a root position, so a chest under a slot at root y 500 would jump
|
|
33568
|
+
* by about 500 at its first segment. An additive walk stays in the local space.
|
|
33569
|
+
*
|
|
33570
|
+
* @param component - Name of the component the step drives, for the error.
|
|
33571
|
+
* @param additive - Whether the walk adds offsets.
|
|
33572
|
+
* @param space - The space the step names.
|
|
33573
|
+
* @throws {Error} When an additive walk names the root space.
|
|
33574
|
+
* @example
|
|
33575
|
+
* ```ts
|
|
33576
|
+
* checkWalkSpace("Transform", true, "local"); // returns; (…, true, "root") throws
|
|
33577
|
+
* ```
|
|
33578
|
+
*/
|
|
33579
|
+
function checkWalkSpace(component, additive, space) {
|
|
33580
|
+
if (!additive || space === "local") return;
|
|
33581
|
+
throw new Error(`[game] An additive tween of ${component} walks segments in the root space.\n Use space "local" for an additive walk.`);
|
|
33582
|
+
}
|
|
33583
|
+
/**
|
|
33584
|
+
* Checks the repeat of a `tween` step: a whole number of extra runs, 0 or more, or `"forever"`.
|
|
33585
|
+
*
|
|
33586
|
+
* @param component - Name of the component the step drives, for the error.
|
|
33587
|
+
* @param repeat - The repeat the author gave.
|
|
33588
|
+
* @throws {Error} When the repeat is negative, not whole or not a number.
|
|
33589
|
+
* @example
|
|
33590
|
+
* ```ts
|
|
33591
|
+
* checkRepeat("Transform", "forever"); // returns; checkRepeat("Transform", 1.5) throws
|
|
33592
|
+
* ```
|
|
33593
|
+
*/
|
|
33594
|
+
function checkRepeat(component, repeat) {
|
|
33595
|
+
if (repeat === "forever" || Number.isInteger(repeat) && repeat >= 0) return;
|
|
33596
|
+
throw new Error(`[game] A tween of ${component} has repeat ${repeat}.\n Give repeat a whole number of extra runs, 0 or more, or "forever".`);
|
|
33597
|
+
}
|
|
33598
|
+
/**
|
|
33599
|
+
* Tells whether a step never ends by itself: a `tween` that repeats forever, a `parallel` or a
|
|
33600
|
+
* `sequence` that holds one, and a `use` of one. Only a cancel or a finish ends it.
|
|
33601
|
+
*
|
|
33602
|
+
* @param step - The step to look into.
|
|
33603
|
+
* @returns True when the step never ends by itself.
|
|
33604
|
+
* @example
|
|
33605
|
+
* ```ts
|
|
33606
|
+
* neverEnds(wait(100)); // false
|
|
33607
|
+
* neverEnds(tween(1_048_576, Transform, { y: 0 }, { ms: 2400, repeat: "forever" })); // true
|
|
33608
|
+
* ```
|
|
33609
|
+
*/
|
|
33610
|
+
function neverEnds(step) {
|
|
33611
|
+
switch (step.kind) {
|
|
33612
|
+
case "tween": return step.repeat === "forever";
|
|
33613
|
+
case "sequence":
|
|
33614
|
+
case "parallel": return step.steps.some((child) => neverEnds(child));
|
|
33615
|
+
case "use": return neverEnds(step.step);
|
|
33616
|
+
default: return false;
|
|
33617
|
+
}
|
|
33618
|
+
}
|
|
33619
|
+
/**
|
|
33620
|
+
* Checks the children of a `sequence`: a child that never ends may only be the last one, since
|
|
33621
|
+
* the children after it would never play. A `parallel` takes one anywhere.
|
|
33622
|
+
*
|
|
33623
|
+
* @param steps - The children, in order.
|
|
33624
|
+
* @throws {Error} When a child that never ends has another child after it.
|
|
33625
|
+
* @example
|
|
33626
|
+
* ```ts
|
|
33627
|
+
* checkSequence([wait(100), mark("landed")]); // returns; a forever tween before the mark throws
|
|
33628
|
+
* ```
|
|
33629
|
+
*/
|
|
33630
|
+
function checkSequence(steps) {
|
|
33631
|
+
for (let index = 0; index < steps.length - 1; index++) {
|
|
33632
|
+
const step = steps[index];
|
|
33633
|
+
if (step !== void 0 && neverEnds(step)) throw new Error(`[game] Step ${index + 1} of a sequence never ends, so the steps after it would never play.\n Put the forever step last, or run it in a parallel.`);
|
|
33634
|
+
}
|
|
33635
|
+
}
|
|
33636
|
+
/**
|
|
33637
|
+
* Tells whether a step loops a frame list for ever: a `frames` step with `loop`, or a `parallel`,
|
|
33638
|
+
* a `sequence` or a `use` that holds one where it never lets go.
|
|
33639
|
+
*
|
|
33640
|
+
* @param step - The step to look into.
|
|
33641
|
+
* @returns True when a looping frame list keeps the step from ending.
|
|
33642
|
+
* @example
|
|
33643
|
+
* ```ts
|
|
33644
|
+
* loopsFrames(frames(1_048_576, { keys: ["fx.spark-1"], fps: 12, loop: true })); // true
|
|
33645
|
+
* ```
|
|
33646
|
+
*/
|
|
33647
|
+
function loopsFrames(step) {
|
|
33648
|
+
switch (step.kind) {
|
|
33649
|
+
case "frames": return step.loop;
|
|
33650
|
+
case "parallel": return step.steps.some((child) => loopsFrames(child));
|
|
33651
|
+
case "sequence": {
|
|
33652
|
+
const last = step.steps.at(-1);
|
|
33653
|
+
return last !== void 0 && loopsFrames(last);
|
|
33654
|
+
}
|
|
33655
|
+
case "use": return loopsFrames(step.step);
|
|
33656
|
+
default: return false;
|
|
33657
|
+
}
|
|
33658
|
+
}
|
|
33659
|
+
/**
|
|
33660
|
+
* Tells whether a step tree holds a `sequence` whose step before the last loops a frame list for
|
|
33661
|
+
* ever, so the steps after it never play. A forever `tween` there already throws when it is built;
|
|
33662
|
+
* a looping `frames` only warns, while games written before the rule are fixed.
|
|
33663
|
+
*
|
|
33664
|
+
* @param step - The root of the tree.
|
|
33665
|
+
* @returns True when a looping frame list blocks the rest of a sequence somewhere in the tree.
|
|
33666
|
+
* @example
|
|
33667
|
+
* ```ts
|
|
33668
|
+
* loopBlocksSequence(sequence(frames(1_048_576, { keys: ["fx.spark-1"], fps: 12, loop: true }), mark("lit"))); // true
|
|
33669
|
+
* ```
|
|
33670
|
+
*/
|
|
33671
|
+
function loopBlocksSequence(step) {
|
|
33672
|
+
switch (step.kind) {
|
|
33673
|
+
case "sequence": return step.steps.slice(0, -1).some((child) => loopsFrames(child)) || step.steps.some((child) => loopBlocksSequence(child));
|
|
33674
|
+
case "parallel": return step.steps.some((child) => loopBlocksSequence(child));
|
|
33675
|
+
case "use": return loopBlocksSequence(step.step);
|
|
33676
|
+
default: return false;
|
|
33677
|
+
}
|
|
33678
|
+
}
|
|
33679
|
+
//#endregion
|
|
33538
33680
|
//#region src/plugins/anim/timeline/play.ts
|
|
33539
33681
|
/**
|
|
33540
33682
|
* @file anim/timeline — one running timeline: the bookkeeping around a cursor. It builds the step
|
|
@@ -33640,6 +33782,20 @@ function endTimeline(actx, running, finished) {
|
|
|
33640
33782
|
running.resolve();
|
|
33641
33783
|
}
|
|
33642
33784
|
/**
|
|
33785
|
+
* Warns once per animation, in a dev build, when a looping `frames` step stands before another step of a `sequence`:
|
|
33786
|
+
* the steps after it never play. A warning, not an error, while the games written before the rule are fixed.
|
|
33787
|
+
*
|
|
33788
|
+
* @param actx - Domain context of the anim plugin.
|
|
33789
|
+
* @param animation - The id of the animation that is played.
|
|
33790
|
+
* @param step - Its built step tree.
|
|
33791
|
+
*/
|
|
33792
|
+
function warnLoopBlocks(actx, animation, step) {
|
|
33793
|
+
if (typeof __MOKU_GAME_DEV__ === "undefined" || !__MOKU_GAME_DEV__) return;
|
|
33794
|
+
if (actx.state.warnedLoops.has(animation) || !loopBlocksSequence(step)) return;
|
|
33795
|
+
actx.state.warnedLoops.add(animation);
|
|
33796
|
+
actx.log.warn("anim:loop-blocks-sequence", { animation });
|
|
33797
|
+
}
|
|
33798
|
+
/**
|
|
33643
33799
|
* Builds the step tree of an animation with the given targets and starts it. The build runs here,
|
|
33644
33800
|
* once per play, so the same animation may play twice at once, each play with its own spawn table.
|
|
33645
33801
|
* Every `{ projection, key }` target is resolved here, once: each step writes the entity that held
|
|
@@ -33656,6 +33812,7 @@ function startTimeline(actx, rt, definition, slots) {
|
|
|
33656
33812
|
const spawned = emptySpawnTable();
|
|
33657
33813
|
const step = definition.build(slots, { at: (target) => restPoseOf(actx, target, spawned) });
|
|
33658
33814
|
assertUniqueSpawns(definition.id, step);
|
|
33815
|
+
warnLoopBlocks(actx, definition.id, step);
|
|
33659
33816
|
const id = actx.state.nextId;
|
|
33660
33817
|
actx.state.nextId += 1;
|
|
33661
33818
|
const cursor = createCursor(step);
|
|
@@ -35220,7 +35377,8 @@ function createAnimState(ctx) {
|
|
|
35220
35377
|
framesHeld: emptyMap$5(),
|
|
35221
35378
|
frameMutes: emptyMap$5(),
|
|
35222
35379
|
offFrames: [],
|
|
35223
|
-
loopsHeld: void 0
|
|
35380
|
+
loopsHeld: void 0,
|
|
35381
|
+
warnedLoops: emptySet$3()
|
|
35224
35382
|
};
|
|
35225
35383
|
}
|
|
35226
35384
|
/**
|
|
@@ -48734,7 +48892,10 @@ function attach(canvas, ctx) {
|
|
|
48734
48892
|
clientY: event.clientY
|
|
48735
48893
|
};
|
|
48736
48894
|
record(state, sample);
|
|
48737
|
-
if (isDoorKind(entry.kind))
|
|
48895
|
+
if (isDoorKind(entry.kind)) {
|
|
48896
|
+
runPointerListeners(ctx, sample);
|
|
48897
|
+
state.resolveNow?.();
|
|
48898
|
+
}
|
|
48738
48899
|
};
|
|
48739
48900
|
canvas.addEventListener(entry.name, listener);
|
|
48740
48901
|
return {
|
|
@@ -48945,8 +49106,9 @@ function traceLost(ctx) {
|
|
|
48945
49106
|
//#endregion
|
|
48946
49107
|
//#region src/plugins/input/gestures.ts
|
|
48947
49108
|
/**
|
|
48948
|
-
* @file input plugin — the
|
|
48949
|
-
*
|
|
49109
|
+
* @file input plugin — the gesture machine. The DOM handlers queue raw samples; the machine
|
|
49110
|
+
* drains them in `time.onFrame("input")`, and a down, an up and a cancel of a live world at their
|
|
49111
|
+
* event (`resolveEarly`): a move waits for the frame step. No `Date.now`, no `performance.now`, no
|
|
48950
49112
|
* `event.timeStamp`: every duration is a sum of `time.delta`, so `time.step(dt)` drives the
|
|
48951
49113
|
* machine in a test and a time scale or a pause applies to it.
|
|
48952
49114
|
*/
|
|
@@ -49364,6 +49526,7 @@ function syncCanvas(ctx) {
|
|
|
49364
49526
|
function pauseGestures(ctx) {
|
|
49365
49527
|
const pointer = ctx.deps.world.ecs.resource(Pointer);
|
|
49366
49528
|
ctx.state.samples = [];
|
|
49529
|
+
ctx.state.resolvedEarly = false;
|
|
49367
49530
|
clearPointerOver(ctx);
|
|
49368
49531
|
letGestureGo(ctx);
|
|
49369
49532
|
pointer.down = false;
|
|
@@ -49373,6 +49536,37 @@ function pauseGestures(ctx) {
|
|
|
49373
49536
|
toIdle(ctx);
|
|
49374
49537
|
}
|
|
49375
49538
|
/**
|
|
49539
|
+
* Clears `justPressed` and `justReleased` of the `Pointer` resource: they tell one frame of a press or a release.
|
|
49540
|
+
*
|
|
49541
|
+
* @param pointer - The `Pointer` resource.
|
|
49542
|
+
*/
|
|
49543
|
+
function clearJust(pointer) {
|
|
49544
|
+
pointer.justPressed = false;
|
|
49545
|
+
pointer.justReleased = false;
|
|
49546
|
+
}
|
|
49547
|
+
/**
|
|
49548
|
+
* Resolves the queued samples at the DOM event of a down, an up or a cancel, between two frames
|
|
49549
|
+
* (F61): the pressed view is tagged and a release answers the gate now, so the press look starts
|
|
49550
|
+
* in the next frame and a node that awaits nothing commits before it. The first resolve after a
|
|
49551
|
+
* frame clears that frame's flags; the next frame step keeps the ones it wrote. Only a live world
|
|
49552
|
+
* resolves early: fast and paused leave the samples to the frame step, as before.
|
|
49553
|
+
*
|
|
49554
|
+
* @param ctx - Domain context of the input plugin.
|
|
49555
|
+
*/
|
|
49556
|
+
function resolveEarly(ctx) {
|
|
49557
|
+
if (ctx.deps.world.ecs.mode() !== "live") return;
|
|
49558
|
+
const pointer = ctx.deps.world.ecs.resource(Pointer);
|
|
49559
|
+
const queue = ctx.state.samples;
|
|
49560
|
+
if (!ctx.state.resolvedEarly) {
|
|
49561
|
+
clearJust(pointer);
|
|
49562
|
+
ctx.state.resolvedEarly = true;
|
|
49563
|
+
}
|
|
49564
|
+
ctx.state.samples = [];
|
|
49565
|
+
drainSamples(ctx, pointer, queue);
|
|
49566
|
+
syncCursor(ctx);
|
|
49567
|
+
pointer.id = ctx.state.pointerId ?? -1;
|
|
49568
|
+
}
|
|
49569
|
+
/**
|
|
49376
49570
|
* The one frame step of the plugin, registered with `time.onFrame("input")` in `onInit`, so it
|
|
49377
49571
|
* runs before the `world` callback of the same phase: `Pointer`, `Held`, `Hovered` and `Pressed`
|
|
49378
49572
|
* are fresh when game systems of phase `input` read them.
|
|
@@ -49387,6 +49581,7 @@ function stepGestures(ctx, time) {
|
|
|
49387
49581
|
const mode = ctx.deps.world.ecs.mode();
|
|
49388
49582
|
if (mode === "fast") {
|
|
49389
49583
|
ctx.state.samples = [];
|
|
49584
|
+
ctx.state.resolvedEarly = false;
|
|
49390
49585
|
if (ctx.state.phase !== "idle") pauseGestures(ctx);
|
|
49391
49586
|
return;
|
|
49392
49587
|
}
|
|
@@ -49397,8 +49592,8 @@ function stepGestures(ctx, time) {
|
|
|
49397
49592
|
}
|
|
49398
49593
|
const pointer = ctx.deps.world.ecs.resource(Pointer);
|
|
49399
49594
|
const queue = ctx.state.samples;
|
|
49400
|
-
|
|
49401
|
-
pointer
|
|
49595
|
+
if (ctx.state.resolvedEarly) ctx.state.resolvedEarly = false;
|
|
49596
|
+
else clearJust(pointer);
|
|
49402
49597
|
ctx.state.samples = [];
|
|
49403
49598
|
drainSamples(ctx, pointer, queue);
|
|
49404
49599
|
syncCursor(ctx);
|
|
@@ -49454,6 +49649,8 @@ function createInputState(_ctx) {
|
|
|
49454
49649
|
pointerListeners: [],
|
|
49455
49650
|
detachKeys: void 0,
|
|
49456
49651
|
wake: void 0,
|
|
49652
|
+
resolveNow: void 0,
|
|
49653
|
+
resolvedEarly: false,
|
|
49457
49654
|
cursor: void 0,
|
|
49458
49655
|
controls: []
|
|
49459
49656
|
};
|
|
@@ -49513,6 +49710,7 @@ function withDeps$2(ctx) {
|
|
|
49513
49710
|
function initInput(ctx) {
|
|
49514
49711
|
const inputCtx = withDeps$2(ctx);
|
|
49515
49712
|
inputCtx.state.wake = () => inputCtx.deps.time.wake();
|
|
49713
|
+
inputCtx.state.resolveNow = () => resolveEarly(inputCtx);
|
|
49516
49714
|
inputCtx.state.offFrame = inputCtx.deps.time.onFrame("input", (time) => stepGestures(inputCtx, time));
|
|
49517
49715
|
}
|
|
49518
49716
|
/**
|
|
@@ -49567,6 +49765,8 @@ function stopInput(state) {
|
|
|
49567
49765
|
state.restScale = void 0;
|
|
49568
49766
|
state.heldPose = void 0;
|
|
49569
49767
|
state.wake = void 0;
|
|
49768
|
+
state.resolveNow = void 0;
|
|
49769
|
+
state.resolvedEarly = false;
|
|
49570
49770
|
state.tapListeners = [];
|
|
49571
49771
|
state.keyListeners = [];
|
|
49572
49772
|
state.pointerListeners = [];
|
|
@@ -49917,102 +50117,6 @@ function createHandlers$1(ctx) {
|
|
|
49917
50117
|
} };
|
|
49918
50118
|
}
|
|
49919
50119
|
//#endregion
|
|
49920
|
-
//#region src/plugins/anim/timeline/checks.ts
|
|
49921
|
-
/**
|
|
49922
|
-
* Checks the keyframe segments of a `tween` step: at least one, every `at` in 0..1, each after the
|
|
49923
|
-
* one before, and the last at 1, because `to` is where the walk lands.
|
|
49924
|
-
*
|
|
49925
|
-
* @param component - Name of the component the step drives, for the error.
|
|
49926
|
-
* @param segments - The segments the author gave.
|
|
49927
|
-
* @throws {Error} When the list is empty, an `at` is out of range or out of order, or the last
|
|
49928
|
-
* segment ends before 1.
|
|
49929
|
-
* @example
|
|
49930
|
-
* ```ts
|
|
49931
|
-
* checkSegments("Transform", [{ at: 0.5 }, { at: 1 }]); // returns; [{ at: 0.5 }] throws
|
|
49932
|
-
* ```
|
|
49933
|
-
*/
|
|
49934
|
-
function checkSegments(component, segments) {
|
|
49935
|
-
if (segments.length === 0) throw new Error(`[game] A tween of ${component} has no segments.\n Give it at least one segment, the last one at 1.`);
|
|
49936
|
-
let previous = Number.NEGATIVE_INFINITY;
|
|
49937
|
-
for (const { at } of segments) {
|
|
49938
|
-
if (Number.isNaN(at) || at < 0 || at > 1) throw new Error(`[game] A tween of ${component} has a segment at ${at}.\n Keep every at between 0 and 1.`);
|
|
49939
|
-
if (at <= previous) throw new Error(`[game] A tween of ${component} has its segments out of order at ${at}.\n Sort the segments by at, each one after the one before.`);
|
|
49940
|
-
previous = at;
|
|
49941
|
-
}
|
|
49942
|
-
if (previous !== 1) throw new Error(`[game] A tween of ${component} ends its last segment at ${previous}.\n End the last segment at 1: to is where the walk lands.`);
|
|
49943
|
-
}
|
|
49944
|
-
/**
|
|
49945
|
-
* Checks the space of a keyframe walk: an additive one names offsets, and the root space would
|
|
49946
|
-
* turn each offset as if it were a root position, so a chest under a slot at root y 500 would jump
|
|
49947
|
-
* by about 500 at its first segment. An additive walk stays in the local space.
|
|
49948
|
-
*
|
|
49949
|
-
* @param component - Name of the component the step drives, for the error.
|
|
49950
|
-
* @param additive - Whether the walk adds offsets.
|
|
49951
|
-
* @param space - The space the step names.
|
|
49952
|
-
* @throws {Error} When an additive walk names the root space.
|
|
49953
|
-
* @example
|
|
49954
|
-
* ```ts
|
|
49955
|
-
* checkWalkSpace("Transform", true, "local"); // returns; (…, true, "root") throws
|
|
49956
|
-
* ```
|
|
49957
|
-
*/
|
|
49958
|
-
function checkWalkSpace(component, additive, space) {
|
|
49959
|
-
if (!additive || space === "local") return;
|
|
49960
|
-
throw new Error(`[game] An additive tween of ${component} walks segments in the root space.\n Use space "local" for an additive walk.`);
|
|
49961
|
-
}
|
|
49962
|
-
/**
|
|
49963
|
-
* Checks the repeat of a `tween` step: a whole number of extra runs, 0 or more, or `"forever"`.
|
|
49964
|
-
*
|
|
49965
|
-
* @param component - Name of the component the step drives, for the error.
|
|
49966
|
-
* @param repeat - The repeat the author gave.
|
|
49967
|
-
* @throws {Error} When the repeat is negative, not whole or not a number.
|
|
49968
|
-
* @example
|
|
49969
|
-
* ```ts
|
|
49970
|
-
* checkRepeat("Transform", "forever"); // returns; checkRepeat("Transform", 1.5) throws
|
|
49971
|
-
* ```
|
|
49972
|
-
*/
|
|
49973
|
-
function checkRepeat(component, repeat) {
|
|
49974
|
-
if (repeat === "forever" || Number.isInteger(repeat) && repeat >= 0) return;
|
|
49975
|
-
throw new Error(`[game] A tween of ${component} has repeat ${repeat}.\n Give repeat a whole number of extra runs, 0 or more, or "forever".`);
|
|
49976
|
-
}
|
|
49977
|
-
/**
|
|
49978
|
-
* Tells whether a step never ends by itself: a `tween` that repeats forever, a `parallel` or a
|
|
49979
|
-
* `sequence` that holds one, and a `use` of one. Only a cancel or a finish ends it.
|
|
49980
|
-
*
|
|
49981
|
-
* @param step - The step to look into.
|
|
49982
|
-
* @returns True when the step never ends by itself.
|
|
49983
|
-
* @example
|
|
49984
|
-
* ```ts
|
|
49985
|
-
* neverEnds(wait(100)); // false
|
|
49986
|
-
* neverEnds(tween(1_048_576, Transform, { y: 0 }, { ms: 2400, repeat: "forever" })); // true
|
|
49987
|
-
* ```
|
|
49988
|
-
*/
|
|
49989
|
-
function neverEnds(step) {
|
|
49990
|
-
switch (step.kind) {
|
|
49991
|
-
case "tween": return step.repeat === "forever";
|
|
49992
|
-
case "sequence":
|
|
49993
|
-
case "parallel": return step.steps.some((child) => neverEnds(child));
|
|
49994
|
-
case "use": return neverEnds(step.step);
|
|
49995
|
-
default: return false;
|
|
49996
|
-
}
|
|
49997
|
-
}
|
|
49998
|
-
/**
|
|
49999
|
-
* Checks the children of a `sequence`: a child that never ends may only be the last one, since
|
|
50000
|
-
* the children after it would never play. A `parallel` takes one anywhere.
|
|
50001
|
-
*
|
|
50002
|
-
* @param steps - The children, in order.
|
|
50003
|
-
* @throws {Error} When a child that never ends has another child after it.
|
|
50004
|
-
* @example
|
|
50005
|
-
* ```ts
|
|
50006
|
-
* checkSequence([wait(100), mark("landed")]); // returns; a forever tween before the mark throws
|
|
50007
|
-
* ```
|
|
50008
|
-
*/
|
|
50009
|
-
function checkSequence(steps) {
|
|
50010
|
-
for (let index = 0; index < steps.length - 1; index++) {
|
|
50011
|
-
const step = steps[index];
|
|
50012
|
-
if (step !== void 0 && neverEnds(step)) throw new Error(`[game] Step ${index + 1} of a sequence never ends, so the steps after it would never play.\n Put the forever step last, or run it in a parallel.`);
|
|
50013
|
-
}
|
|
50014
|
-
}
|
|
50015
|
-
//#endregion
|
|
50016
50120
|
//#region src/plugins/anim/timeline/steps.ts
|
|
50017
50121
|
/**
|
|
50018
50122
|
* Every haptic tick `haptic(kind)` takes, in one frozen list: the three impacts, the selection
|
package/dist/testing.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $n as FeaturePlugin, Dr as Json, dr as Descriptor, gr as NodeFx, hr as Hint, sr as NodeTable, tr as AnyFlow, xr as FakeClock, yr as ClockSource } from "./types-
|
|
2
|
-
import { t as createApp } from "./index-
|
|
3
|
-
import { b as saveOf, v as WithGameState, y as memory } from "./types-
|
|
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-
|
|
1
|
+
import { $n as FeaturePlugin, Dr as Json, dr as Descriptor, gr as NodeFx, hr as Hint, sr as NodeTable, tr as AnyFlow, xr as FakeClock, yr as ClockSource } from "./types-K3qfyTu0.mjs";
|
|
2
|
+
import { t as createApp } from "./index-Cs4qaPMq.mjs";
|
|
3
|
+
import { b as saveOf, v as WithGameState, y as memory } from "./types-Dh2cyp0H.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-BFI7EXHo.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-
|
|
1
|
+
import { en as refuseStart, in as type, m as flattenFeatures, t as createApp, tn as exit } from "./src-C6XBMo4Q.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-Bxxl_mQX.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as PixiModule, A as SyncApi, An as NumericFields, Dr as Json, En as Ease, Er as Events$3, Fn as TrackSegment, Ln as Api$2, Nn as ReducedMotion, O as FilterSlot, Pn as TrackOptions, Q as PixiFilter, Ur as Events$5, Y as Api$4, b as Events$4, dr as Descriptor, et as PixiSprite, fn as ComponentType, ft as FilterCache, k as FilterSlotInputs, kn as MotionHandle, ln as AnyComponentValue, mn as Entity, ni as Events$2, nn as Api$3, qr as Api$1, ri as Require, s as Events$1, sn as AnyComponent, t as Api$5, tt as PixiTexture, un as ComponentHandle, ur as TypeTag, ut as Point, wr as Api$6 } from "./types-
|
|
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-
|
|
1
|
+
import { $ as PixiModule, A as SyncApi, An as NumericFields, Dr as Json, En as Ease, Er as Events$3, Fn as TrackSegment, Ln as Api$2, Nn as ReducedMotion, O as FilterSlot, Pn as TrackOptions, Q as PixiFilter, Ur as Events$5, Y as Api$4, b as Events$4, dr as Descriptor, et as PixiSprite, fn as ComponentType, ft as FilterCache, k as FilterSlotInputs, kn as MotionHandle, ln as AnyComponentValue, mn as Entity, ni as Events$2, nn as Api$3, qr as Api$1, ri as Require, s as Events$1, sn as AnyComponent, t as Api$5, tt as PixiTexture, un as ComponentHandle, ur as TypeTag, ut as Point, wr as Api$6 } from "./types-K3qfyTu0.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-BAv5qOZX.mjs";
|
|
3
3
|
import { Log } from "@moku-labs/common/browser";
|
|
4
4
|
import { PluginCtx } from "@moku-labs/core";
|
|
5
5
|
|
|
@@ -1151,7 +1151,8 @@ type State$3 = {
|
|
|
1151
1151
|
registry: Map<string, AnyAnimationDefinition>; /** `onMark` subscribers, in subscription order. */
|
|
1152
1152
|
markListeners: Set<MarkListener>; /** Counter of the frame steps. A track born in the running step is not advanced by it. */
|
|
1153
1153
|
frame: number; /** True while the track count is over `maxTracks`, so the warning is one per crossing. */
|
|
1154
|
-
overMaxTracks: boolean; /** The
|
|
1154
|
+
overMaxTracks: boolean; /** The animations already warned for a looping `frames` step that blocks the rest of a `sequence` (dev). */
|
|
1155
|
+
warnedLoops: Set<string>; /** The live reduced-motion switch. The frozen `Config.reducedMotion` only seeds it. */
|
|
1155
1156
|
reducedMotion: boolean; /** Remover of `world.projection.setDriver`. */
|
|
1156
1157
|
removeDriver: (() => void) | undefined; /** Remover of `time.onFrame("animate")`. */
|
|
1157
1158
|
offFrame: (() => void) | undefined; /** Remover of `flow.fx.handle("play")`. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { An as NumericFields, Cn as TagType, Dn as Motion, Dr as Json, En as Ease, In as ViewHandle, K as TransformValue, Ln as Api$1, Nn as ReducedMotion, On as MotionCause, Y as Api$3, _r as Answer, cn as AnyComponentType, dr as Descriptor, dt as ViewportSize, fn as ComponentType, hr as Hint, jn as ProjectionMotion, kn as MotionHandle, ln as AnyComponentValue, mn as Entity, nn as Api$2, qr as Api, ri as Require, s as Events$1, sn as AnyComponent, t as Api$4, vr as Api$5, wn as ChangeHook } from "./types-
|
|
1
|
+
import { An as NumericFields, Cn as TagType, Dn as Motion, Dr as Json, En as Ease, In as ViewHandle, K as TransformValue, Ln as Api$1, Nn as ReducedMotion, On as MotionCause, Y as Api$3, _r as Answer, cn as AnyComponentType, dr as Descriptor, dt as ViewportSize, fn as ComponentType, hr as Hint, jn as ProjectionMotion, kn as MotionHandle, ln as AnyComponentValue, mn as Entity, nn as Api$2, qr as Api, ri as Require, s as Events$1, sn as AnyComponent, t as Api$4, vr as Api$5, wn as ChangeHook } from "./types-K3qfyTu0.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";
|
|
@@ -1068,7 +1068,18 @@ type State$1 = {
|
|
|
1068
1068
|
keyListeners: KeyListener[]; /** Registered through `onPointer`, called in this order inside the DOM listener. */
|
|
1069
1069
|
pointerListeners: PointerListener[]; /** Takes the one `keydown` listener off `window`; set while a canvas is attached. */
|
|
1070
1070
|
detachKeys: (() => void) | undefined; /** `time.wake`, bound in `onInit`: every pointer sample leaves the idle frame rate. */
|
|
1071
|
-
wake: (() => void) | undefined;
|
|
1071
|
+
wake: (() => void) | undefined;
|
|
1072
|
+
/**
|
|
1073
|
+
* Resolves the queued samples at once, bound in `onInit`: the DOM listener calls it after a
|
|
1074
|
+
* down, an up or a cancel, so the press is tagged and the release answered before the next
|
|
1075
|
+
* frame (F61). A move waits for the frame unless such a sample comes after it.
|
|
1076
|
+
*/
|
|
1077
|
+
resolveNow: (() => void) | undefined;
|
|
1078
|
+
/**
|
|
1079
|
+
* True from a resolve at an event to the next frame step: that step keeps the `justPressed` and
|
|
1080
|
+
* `justReleased` the event wrote, so the game systems of its frame read them.
|
|
1081
|
+
*/
|
|
1082
|
+
resolvedEarly: boolean; /** The cursor last written on the attached canvas; `undefined` while nothing was written. */
|
|
1072
1083
|
cursor: string | undefined; /** Component types other plugins registered through `controls.add`, once per registration. */
|
|
1073
1084
|
controls: AnyComponentType[];
|
|
1074
1085
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Dr as Json, Ir as Snapshot } from "./types-
|
|
2
|
-
import { t as HeadlessApp } from "./headless-
|
|
1
|
+
import { Dr as Json, Ir as Snapshot } from "./types-K3qfyTu0.mjs";
|
|
2
|
+
import { t as HeadlessApp } from "./headless-BFI7EXHo.mjs";
|
|
3
3
|
import { Log } from "@moku-labs/common/browser";
|
|
4
4
|
|
|
5
5
|
//#region src/plugins/flow/doors/types.d.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $ as PixiModule, $n as FeaturePlugin, Dr as Json, Lr as SnapshotOf, Mr as PlayerStateProvider, Nr as ProviderCall, Pr as SaveDoc, Tr as Config, X as Config$2, a as Config$3, d as Manifest, lt as Orientation, n as AssetsIo, tr as AnyFlow, ur as TypeTag, xr as FakeClock, yr as ClockSource, zn as Config$1 } from "./types-
|
|
2
|
-
import { o as AudioContextLike, s as Config$4 } from "./types-
|
|
3
|
-
import { R as I18nApi, U as StringTable, W as TextKey } from "./types-
|
|
4
|
-
import { St as effectsPlugin, Tt as audioPlugin, ht as PlatformProvider, i as screen, pt as platformPlugin, t as createApp } from "./index-
|
|
1
|
+
import { $ as PixiModule, $n as FeaturePlugin, Dr as Json, Lr as SnapshotOf, Mr as PlayerStateProvider, Nr as ProviderCall, Pr as SaveDoc, Tr as Config, X as Config$2, a as Config$3, d as Manifest, lt as Orientation, n as AssetsIo, tr as AnyFlow, ur as TypeTag, xr as FakeClock, yr as ClockSource, zn as Config$1 } from "./types-K3qfyTu0.mjs";
|
|
2
|
+
import { o as AudioContextLike, s as Config$4 } from "./types-B1W2CPUu.mjs";
|
|
3
|
+
import { R as I18nApi, U as StringTable, W as TextKey } from "./types-BAv5qOZX.mjs";
|
|
4
|
+
import { St as effectsPlugin, Tt as audioPlugin, ht as PlatformProvider, i as screen, pt as platformPlugin, t as createApp } from "./index-Cs4qaPMq.mjs";
|
|
5
5
|
import { AnyPluginInstance } from "@moku-labs/core";
|
|
6
6
|
|
|
7
7
|
//#region src/plugins/model/store/providers/memory.d.ts
|
|
@@ -1914,14 +1914,23 @@ type GateState = {
|
|
|
1914
1914
|
resolve: ((answer: Answer) => void) | undefined;
|
|
1915
1915
|
/**
|
|
1916
1916
|
* An answer given while the gate was closed, kept for the next gate: for the frame it was given
|
|
1917
|
-
* in, or for `config.holdMs` of game time. `frame` is the frame
|
|
1918
|
-
*
|
|
1917
|
+
* in, or for `config.holdMs` of game time. `frame` is the frame the hold lives through: the frame
|
|
1918
|
+
* of the refusal, or the next one for a refusal after its `signals` (see `aged`). `at` is
|
|
1919
|
+
* `time.snapshot().elapsed` at the refusal: the age is counted from it.
|
|
1919
1920
|
*/
|
|
1920
1921
|
held: {
|
|
1921
1922
|
answer: Answer;
|
|
1922
1923
|
frame: number;
|
|
1923
1924
|
at: number;
|
|
1924
|
-
} | undefined;
|
|
1925
|
+
} | undefined;
|
|
1926
|
+
/**
|
|
1927
|
+
* The last frame whose `signals` phase aged the hold; 0 before the first, since frame 0 runs no
|
|
1928
|
+
* phases. An answer refused
|
|
1929
|
+
* after it (later in that frame, or between two frames, as a tap resolved at its DOM event) is
|
|
1930
|
+
* held for the next frame: it lives through that frame's `signals`, as one refused in its input
|
|
1931
|
+
* phase does.
|
|
1932
|
+
*/
|
|
1933
|
+
aged: number; /** The one answer a running `guide` lets through. */
|
|
1925
1934
|
narrow: Allow | undefined; /** True while a pointer is down. Entering an `over` node waits for false. */
|
|
1926
1935
|
pointerActive: boolean; /** Ends the pending pointer wait of the runner. Set while the wait runs, so a stop needs no frame. */
|
|
1927
1936
|
wake: (() => void) | undefined;
|
|
@@ -1942,7 +1951,8 @@ type GateApi = {
|
|
|
1942
1951
|
* Gives one answer. Accepted only while the gate is open and the intent is allowed. An answer
|
|
1943
1952
|
* to a closed gate is refused and held: it is offered once to the next gate that opens, which
|
|
1944
1953
|
* takes it when it lists the intent and a running `guide` lets it through. With `holdMs: 0` the
|
|
1945
|
-
* hold lives for the frame the answer was given in
|
|
1954
|
+
* hold lives for the frame the answer was given in, or through the next frame for an answer given
|
|
1955
|
+
* after that frame's `signals` or between two frames, and the first answer wins. With `holdMs`
|
|
1946
1956
|
* above 0 the last answer wins and it is kept for that much game time. Nothing is held in fast
|
|
1947
1957
|
* mode or while no frame source runs.
|
|
1948
1958
|
*
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Vr as Api$3, Y as Api, nn as Api$1, vr as Api$4, wr as Api$2 } from "./types-
|
|
2
|
-
import { P as AnimApi, r as UiApi } from "./types-
|
|
3
|
-
import { N as InputApi } from "./types-
|
|
4
|
-
import { r as Repro } from "./headless-
|
|
5
|
-
import { a as InputOf, r as ControlApp } from "./types-
|
|
6
|
-
import { t as commands } from "./commands-
|
|
1
|
+
import { Vr as Api$3, Y as Api, nn as Api$1, vr as Api$4, wr as Api$2 } from "./types-K3qfyTu0.mjs";
|
|
2
|
+
import { P as AnimApi, r as UiApi } from "./types-B1W2CPUu.mjs";
|
|
3
|
+
import { N as InputApi } from "./types-BAv5qOZX.mjs";
|
|
4
|
+
import { r as Repro } from "./headless-BFI7EXHo.mjs";
|
|
5
|
+
import { a as InputOf, r as ControlApp } from "./types-D52biu5v.mjs";
|
|
6
|
+
import { t as commands } from "./commands-BGrtxBga.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-
|
|
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-DMx0vv_3.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 };
|