@moku-labs/game 0.15.28 → 0.15.30
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/page.mjs +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-BJ4gG5WZ.d.mts → commands-BUfZJUx6.d.mts} +31 -31
- package/dist/control.d.mts +4 -4
- package/dist/control.mjs +2 -2
- package/dist/{define-CVYadV_I.d.mts → define-CE1uxbe9.d.mts} +2 -2
- package/dist/{headless-DBYmnluy.d.mts → headless-f31cEZ7f.d.mts} +1 -1
- package/dist/{index-Dn_v0Fqs.d.mts → index-B2GejbLf.d.mts} +26 -23
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +1 -1
- package/dist/inspect.d.mts +16 -16
- package/dist/inspect.mjs +2 -2
- package/dist/jsx-dev-runtime.d.mts +1 -1
- package/dist/jsx-runtime.d.mts +1 -1
- package/dist/{run-DRcc2SKF.mjs → run-DyL8rl2P.mjs} +15 -43
- package/dist/{runtime-DnjJ4Zo9.d.mts → runtime-HwTBjkIL.d.mts} +1 -1
- package/dist/{session-CeKgO2hy.mjs → session-DuZfGZWk.mjs} +20 -1
- package/dist/{sources-ncFMQIus.mjs → sources-DM5Zcl4o.mjs} +8 -17
- package/dist/{src-DPvSTM8O.mjs → src-B4JjsuEy.mjs} +1704 -603
- package/dist/testing.d.mts +4 -4
- package/dist/testing.mjs +1 -1
- package/dist/{types-bEJEga5m.d.mts → types-BAp9HdR4.d.mts} +10 -2
- package/dist/{types-Bsa1nFyU.d.mts → types-BWRJcZ3n.d.mts} +4 -4
- package/dist/{types-DTetCcBC.d.mts → types-CgE5L_7f.d.mts} +2 -2
- package/dist/{types-C_nC_M4p.d.mts → types-D27I4Q7b.d.mts} +312 -22
- package/dist/{types-C76NQm-h.d.mts → types-DjQkfbfZ.d.mts} +2 -2
- package/dist/{visual-BMRHt4IB.d.mts → visual-f6mtELhG.d.mts} +6 -6
- package/dist/visual.d.mts +1 -1
- package/dist/visual.mjs +2 -2
- package/llms.txt +12 -11
- package/package.json +1 -1
package/dist/testing.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
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-D27I4Q7b.mjs";
|
|
2
|
+
import { t as createApp } from "./index-B2GejbLf.mjs";
|
|
3
|
+
import { b as saveOf, v as WithGameState, y as memory } from "./types-BWRJcZ3n.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-f31cEZ7f.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-B4JjsuEy.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,4 +1,4 @@
|
|
|
1
|
-
import { An as
|
|
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-D27I4Q7b.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";
|
|
@@ -2790,6 +2790,12 @@ type Root = {
|
|
|
2790
2790
|
h: number;
|
|
2791
2791
|
} | undefined;
|
|
2792
2792
|
pending?: boolean;
|
|
2793
|
+
/**
|
|
2794
|
+
* Present from the reconcile that found the root in the scene `world` builds aside (spec 31)
|
|
2795
|
+
* until the reconcile that finds it committed, which gives the slots out again. Absent on every
|
|
2796
|
+
* other root.
|
|
2797
|
+
*/
|
|
2798
|
+
aside?: true;
|
|
2793
2799
|
};
|
|
2794
2800
|
/**
|
|
2795
2801
|
* Where the focus ring was last drawn: the layer and order of its root, the rect grown by the
|
|
@@ -2950,6 +2956,7 @@ type JsxState = {
|
|
|
2950
2956
|
/**
|
|
2951
2957
|
* The elements whose `Box` came since the last `sync`: their enter hooks played at the `Box` (F49) and are settled
|
|
2952
2958
|
* there, after the game's systems, played again when a system changed what a hook read (F48). The first `count` slots are the queue; the array keeps its length, so a frame allocates nothing.
|
|
2959
|
+
* An element of a scene `world` builds aside stays queued, its hook unplayed, until the swap (spec 31).
|
|
2953
2960
|
*/
|
|
2954
2961
|
entering: {
|
|
2955
2962
|
list: Entity[];
|
|
@@ -2969,7 +2976,8 @@ type JsxState = {
|
|
|
2969
2976
|
written: number; /** The wall times of the last taps on a `DebugTrigger` view, five at the most. */
|
|
2970
2977
|
debugTaps: number[]; /** Whether `ui:debug-trigger-no-agent` was logged: once per app. */
|
|
2971
2978
|
debugWarned: boolean; /** Elements that carry `Overlay`, from their enter to their despawn (spec 22 O4.5). */
|
|
2972
|
-
overlays: Set<Entity>;
|
|
2979
|
+
overlays: Set<Entity>; /** How many roots carry `aside`, as the last reconcile counted them: 0 while no scene is built aside. */
|
|
2980
|
+
asideRoots: number;
|
|
2973
2981
|
};
|
|
2974
2982
|
/**
|
|
2975
2983
|
* One node of the snapshot `tree()` answers with. `rect` is natural: under a `fit` ancestor it
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
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-D27I4Q7b.mjs";
|
|
2
|
+
import { o as AudioContextLike, s as Config$4 } from "./types-DjQkfbfZ.mjs";
|
|
3
|
+
import { R as I18nApi, U as StringTable, W as TextKey } from "./types-BAp9HdR4.mjs";
|
|
4
|
+
import { St as effectsPlugin, Tt as audioPlugin, ht as PlatformProvider, i as screen, pt as platformPlugin, t as createApp } from "./index-B2GejbLf.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 {
|
|
2
|
-
import { t as HeadlessApp } from "./headless-
|
|
1
|
+
import { Dr as Json, Ir as Snapshot } from "./types-D27I4Q7b.mjs";
|
|
2
|
+
import { t as HeadlessApp } from "./headless-f31cEZ7f.mjs";
|
|
3
3
|
import { Log } from "@moku-labs/common/browser";
|
|
4
4
|
|
|
5
5
|
//#region src/plugins/flow/doors/types.d.ts
|
|
@@ -3969,14 +3969,16 @@ type Motion = MotionHandle | void;
|
|
|
3969
3969
|
/**
|
|
3970
3970
|
* Why a motion hook plays: `"mount"` when the view or element comes or goes with its screen (a scene mount or
|
|
3971
3971
|
* unmount, a load, a restore, a paused or fast world), `"change"` when a commit changed a live screen (a new key,
|
|
3972
|
-
* a key that left, a new element in a live tree, a popup).
|
|
3972
|
+
* a key that left, a new element in a live tree, a popup). `"discard"` when an aborted scene build dropped the view
|
|
3973
|
+
* before it was ever drawn (`projection.discard()`): it plays no exit, so a game's hook never sees it; the removal
|
|
3974
|
+
* hook of `ui` reads it through `causeOf` and drops the root at once.
|
|
3973
3975
|
*
|
|
3974
3976
|
* @example
|
|
3975
3977
|
* ```ts
|
|
3976
3978
|
* const cause: MotionCause = "change";
|
|
3977
3979
|
* ```
|
|
3978
3980
|
*/
|
|
3979
|
-
type MotionCause = "mount" | "change";
|
|
3981
|
+
type MotionCause = "mount" | "change" | "discard";
|
|
3980
3982
|
/**
|
|
3981
3983
|
* What reduced motion does to one track: `"cut"` (the default) lands it on its target at the next frame step, or holds
|
|
3982
3984
|
* a loop on its first key; `"keep"` plays it as written. The engine never guesses which tracks are fades: the author
|
|
@@ -4481,7 +4483,29 @@ type ProjectionState = {
|
|
|
4481
4483
|
* The despawn count of the ecs when the sweep last looked for dead elements; -1 after a new
|
|
4482
4484
|
* key, so the next sweep looks.
|
|
4483
4485
|
*/
|
|
4484
|
-
sweptDespawns: number;
|
|
4486
|
+
sweptDespawns: number; /** The running build of the next scene; absent when none runs, never written as `undefined`. */
|
|
4487
|
+
building?: Building; /** The `onBuild` checks: every one answers true before `built()` does. Kept across builds. */
|
|
4488
|
+
buildChecks: Array<() => boolean>;
|
|
4489
|
+
};
|
|
4490
|
+
/**
|
|
4491
|
+
* The build of the next scene aside (spec 31): its projections mounted into a table of their own, so a name never has
|
|
4492
|
+
* two records in `mounted`, and every entity the build spawned, so `isBuilding` answers with one lookup. Absent while
|
|
4493
|
+
* no build runs.
|
|
4494
|
+
*/
|
|
4495
|
+
type Building = {
|
|
4496
|
+
/** The projection list of the coming scene, in its order: the places of its screen roots. */names: readonly string[]; /** The layer list of the coming scene, as the caller handed it: the build checked the names against it. */
|
|
4497
|
+
layers: ReadonlyArray<LayerSpec>; /** Who owns the entities of the projections the build mounts. */
|
|
4498
|
+
owner: Owner; /** The projections only the coming list names, mounted aside until the commit moves them into `mounted`. */
|
|
4499
|
+
mounted: Map<string, Mounted>; /** Every entity of the build: the views it spawned and the entities `adopt` marked. */
|
|
4500
|
+
entities: Set<Entity>; /** The game clock at the start of this frame (world's `input` phase), or at the build start in its own frame. */
|
|
4501
|
+
frameStart: number; /** Milliseconds per frame the building work may take. */
|
|
4502
|
+
budgetMs: number;
|
|
4503
|
+
/**
|
|
4504
|
+
* Whether a reconcile passed over a mounted projection the coming list drops, which keeps what it showed when the
|
|
4505
|
+
* switch began: `"change"`, or `"rerun"` when that reconcile forced `view`. The commit and the discard then mark the
|
|
4506
|
+
* world dirty, so one still mounted reads the store in the next frame. Absent while none was passed over.
|
|
4507
|
+
*/
|
|
4508
|
+
held?: "change" | "rerun";
|
|
4485
4509
|
};
|
|
4486
4510
|
/**
|
|
4487
4511
|
* projection module API, `app.world.projection`: the bridge from the model to entities.
|
|
@@ -4680,8 +4704,8 @@ type ProjectionApi = {
|
|
|
4680
4704
|
membershipVersion(): number;
|
|
4681
4705
|
/**
|
|
4682
4706
|
* How the view of an entity came, or how it is leaving: `"mount"` when a direct reconcile or an unmount moved it,
|
|
4683
|
-
* `"change"` when a live commit did
|
|
4684
|
-
* can ask. `undefined` for an entity no projection made.
|
|
4707
|
+
* `"change"` when a live commit did, `"discard"` when `discard()` dropped the build it belonged to. A despawned view
|
|
4708
|
+
* still answers until the next sweep, so a hook on its removal can ask. `undefined` for an entity no projection made.
|
|
4685
4709
|
*
|
|
4686
4710
|
* @param entity - A view, or a view in its removal hook.
|
|
4687
4711
|
* @returns The cause, or `undefined`.
|
|
@@ -4744,11 +4768,12 @@ type ProjectionApi = {
|
|
|
4744
4768
|
entityOf(projection: string, key: string): Entity | undefined;
|
|
4745
4769
|
/**
|
|
4746
4770
|
* The live view entities of a mounted projection, in the order of its model keys. A view that
|
|
4747
|
-
* plays its exit is left out, and so is an element registered with `registerKey`.
|
|
4748
|
-
*
|
|
4771
|
+
* plays its exit is left out, and so is an element registered with `registerKey`. A projection
|
|
4772
|
+
* the running build mounts answers its building views (`isBuilding` tells them apart), so a host
|
|
4773
|
+
* of the coming scene can take them before the swap. Every call hands out a new array.
|
|
4749
4774
|
*
|
|
4750
4775
|
* @param name - Name of the projection.
|
|
4751
|
-
* @returns The entities, or `[]` when the projection is
|
|
4776
|
+
* @returns The entities, or `[]` when the projection is neither mounted nor being built.
|
|
4752
4777
|
* @example
|
|
4753
4778
|
* ```ts
|
|
4754
4779
|
* // `ui` hosts the board inside a slot and parents every board item to it on reconcile.
|
|
@@ -4864,6 +4889,161 @@ type ProjectionApi = {
|
|
|
4864
4889
|
* ```
|
|
4865
4890
|
*/
|
|
4866
4891
|
rerunAll(): void;
|
|
4892
|
+
/**
|
|
4893
|
+
* Starts building the next scene aside, while the current one stays mounted, drawn and alive. The projections only
|
|
4894
|
+
* the coming list names are mounted at once, direct, against the committed state, into a table of their own: their
|
|
4895
|
+
* views are spawned and flagged building (`isBuilding`), and their screen roots take the `Order` of their place in
|
|
4896
|
+
* the coming list. `entityOf` does not answer for them until `commit`. A projection the current scene mounts and
|
|
4897
|
+
* the coming list declares alike (F23) is not touched now. Answers `false` and touches nothing when a listed
|
|
4898
|
+
* projection is mounted now under other layer rules: building it beside its live twin would need two records under
|
|
4899
|
+
* one name, so the caller takes the one-block path (`setLayers`, `unmount`, `mount`). Nothing is built when the call
|
|
4900
|
+
* throws: the entities a throwing `view` left behind are despawned first.
|
|
4901
|
+
*
|
|
4902
|
+
* @param names - The projection list of the coming scene, in its order.
|
|
4903
|
+
* @param owner - Who owns the entities of the projections the build mounts.
|
|
4904
|
+
* @param layers - The layer list of the coming scene: the names are checked against it, not the current list.
|
|
4905
|
+
* @param budgetMs - Milliseconds per frame the building work of the other plugins may take, read through `left`.
|
|
4906
|
+
* @returns True when the build runs, false when a listed projection is mounted now under other layer rules.
|
|
4907
|
+
* @throws {Error} When a build already runs, for an unknown name, for a `layer` or `lift` the coming list does not
|
|
4908
|
+
* declare, and when a `view` throws.
|
|
4909
|
+
* @example
|
|
4910
|
+
* ```ts
|
|
4911
|
+
* // `scenes` leaves the ward, whose HUD draws in `ui` sorted by order.
|
|
4912
|
+
* const projection = ctx.require(worldPlugin).projection;
|
|
4913
|
+
*
|
|
4914
|
+
* // The shop sorts `ui` otherwise: nothing is built, `scenes` mounts the shop in one block.
|
|
4915
|
+
* projection.build(
|
|
4916
|
+
* ["hud", "shop.shelf"],
|
|
4917
|
+
* { kind: "plugin", name: "scenes" },
|
|
4918
|
+
* [{ name: "ui", sort: "none" }],
|
|
4919
|
+
* 4
|
|
4920
|
+
* ); // false
|
|
4921
|
+
*
|
|
4922
|
+
* // The board declares `ui` alike: the HUD stays, the board items are built aside.
|
|
4923
|
+
* projection.build(
|
|
4924
|
+
* ["board.items", "hud"],
|
|
4925
|
+
* { kind: "plugin", name: "scenes" },
|
|
4926
|
+
* [{ name: "items", sort: "y" }, { name: "ui", sort: "order" }],
|
|
4927
|
+
* 4
|
|
4928
|
+
* ); // true
|
|
4929
|
+
* projection.entityOf("board.items", "i7"); // undefined until the commit
|
|
4930
|
+
*
|
|
4931
|
+
* // A second build before the commit or the discard of the first:
|
|
4932
|
+
* projection.build(["shop.shelf"], { kind: "plugin", name: "scenes" }, [{ name: "ui", sort: "none" }], 4);
|
|
4933
|
+
* // throws: A scene is already being built
|
|
4934
|
+
* ```
|
|
4935
|
+
*/
|
|
4936
|
+
build(names: readonly string[], owner: Owner, layers: ReadonlyArray<LayerSpec>, budgetMs: number): boolean;
|
|
4937
|
+
/**
|
|
4938
|
+
* Whether the running build is done: true when a build runs and every `onBuild` check answers true, false without a
|
|
4939
|
+
* build. A caller polls it once a frame; it is never an event.
|
|
4940
|
+
*
|
|
4941
|
+
* @returns True when the build can be committed.
|
|
4942
|
+
* @example
|
|
4943
|
+
* ```ts
|
|
4944
|
+
* // `scenes`, in its `signals` callback while the board builds:
|
|
4945
|
+
* const projection = ctx.require(worldPlugin).projection;
|
|
4946
|
+
* projection.built(); // false on the first build frame: the renderer still creates views
|
|
4947
|
+
* projection.built(); // true two frames later: commit now
|
|
4948
|
+
* ```
|
|
4949
|
+
*/
|
|
4950
|
+
built(): boolean;
|
|
4951
|
+
/**
|
|
4952
|
+
* The swap of a build: its projections become mounted, each at the `Order` of its place in the coming list as
|
|
4953
|
+
* `mount` would write it, a kept projection (F23) takes its new place, every building flag clears and the table is
|
|
4954
|
+
* dropped. Each moved and kept projection takes the layer list `setLayers` stored just before, so the next scene
|
|
4955
|
+
* compares it by identity as after a `mount`. The loops of the moved views start in the next live sweep. Does nothing
|
|
4956
|
+
* without a build.
|
|
4957
|
+
*
|
|
4958
|
+
* @example
|
|
4959
|
+
* ```ts
|
|
4960
|
+
* // `scenes`, in the frame `built()` first answers true: the layers, the leaving list out, the build in.
|
|
4961
|
+
* const projection = ctx.require(worldPlugin).projection;
|
|
4962
|
+
* projection.setLayers([{ name: "items", sort: "y" }, { name: "ui", sort: "order" }]);
|
|
4963
|
+
* projection.unmount(["ward.beds"]);
|
|
4964
|
+
* projection.commit();
|
|
4965
|
+
* projection.entityOf("board.items", "i7"); // 1048600: mounted now
|
|
4966
|
+
* projection.built(); // false: nothing builds any more
|
|
4967
|
+
* ```
|
|
4968
|
+
*/
|
|
4969
|
+
commit(): void;
|
|
4970
|
+
/**
|
|
4971
|
+
* Drops the running build: every entity it spawned, its views and the entities `adopt` marked, is despawned at once
|
|
4972
|
+
* with no motion, and the table is dropped. A dropped view leaves with the cause `"discard"`, which a removal hook
|
|
4973
|
+
* reads through `causeOf`. The mounted projections, the layer list and the scene of the world are not touched. Does
|
|
4974
|
+
* nothing without a build.
|
|
4975
|
+
*
|
|
4976
|
+
* @example
|
|
4977
|
+
* ```ts
|
|
4978
|
+
* // `scenes`: a restore aborted the node while the board was built.
|
|
4979
|
+
* const projection = ctx.require(worldPlugin).projection;
|
|
4980
|
+
* projection.discard();
|
|
4981
|
+
* projection.causeOf(1_048_600); // "discard", until the next sweep
|
|
4982
|
+
* projection.isBuilding(1_048_600); // false
|
|
4983
|
+
* ```
|
|
4984
|
+
*/
|
|
4985
|
+
discard(): void;
|
|
4986
|
+
/**
|
|
4987
|
+
* Milliseconds of building budget left in this frame: the build's `budgetMs` minus the game clock time since the
|
|
4988
|
+
* frame started (read at the start of world's `input` phase). The clock counts whole milliseconds. Negative once
|
|
4989
|
+
* the frame spent more; `Infinity` with no build. Allocates nothing.
|
|
4990
|
+
*
|
|
4991
|
+
* @returns The milliseconds left, or `Infinity`.
|
|
4992
|
+
* @example
|
|
4993
|
+
* ```ts
|
|
4994
|
+
* // A renderer build step creates held views while the frame has budget, at least one a frame.
|
|
4995
|
+
* const projection = ctx.require(worldPlugin).projection;
|
|
4996
|
+
* projection.left(); // 3: 1 ms of the 4 ms budget is spent
|
|
4997
|
+
* projection.left(); // -1 after 4 ms more of views: the rest waits for the next frame
|
|
4998
|
+
* ```
|
|
4999
|
+
*/
|
|
5000
|
+
left(): number;
|
|
5001
|
+
/**
|
|
5002
|
+
* Whether an entity belongs to the running build: a view it spawned, or an entity `adopt` marked. One set lookup;
|
|
5003
|
+
* false with no build and after the commit. Allocates nothing.
|
|
5004
|
+
*
|
|
5005
|
+
* @param entity - The entity to ask about.
|
|
5006
|
+
* @returns True for an entity of the running build.
|
|
5007
|
+
* @example
|
|
5008
|
+
* ```ts
|
|
5009
|
+
* // The renderer pass sorts the views of the coming scene out of its live work.
|
|
5010
|
+
* const projection = ctx.require(worldPlugin).projection;
|
|
5011
|
+
* projection.isBuilding(1_048_600); // true: a board item the build spawned
|
|
5012
|
+
* projection.isBuilding(1_048_576); // false: a ward bed on screen
|
|
5013
|
+
* ```
|
|
5014
|
+
*/
|
|
5015
|
+
isBuilding(entity: Entity): boolean;
|
|
5016
|
+
/**
|
|
5017
|
+
* Registers one part of the build that has to be done before the swap: `built()` answers true only when every
|
|
5018
|
+
* registered check does. A registration stays across builds.
|
|
5019
|
+
*
|
|
5020
|
+
* @param check - Answers true when the caller's part of the running build is done.
|
|
5021
|
+
* @returns The remover; calling it twice is safe.
|
|
5022
|
+
* @example
|
|
5023
|
+
* ```ts
|
|
5024
|
+
* // The renderer, at start: its part is done when no building view waits for its Pixi object.
|
|
5025
|
+
* const off = ctx.require(worldPlugin).projection.onBuild(() => state.aside.count === 0);
|
|
5026
|
+
*
|
|
5027
|
+
* off(); // onStop: the renderer is gone
|
|
5028
|
+
* ```
|
|
5029
|
+
*/
|
|
5030
|
+
onBuild(check: () => boolean): () => void;
|
|
5031
|
+
/**
|
|
5032
|
+
* Marks an entity another plugin spawned for a building root as building, so `isBuilding` answers for the whole
|
|
5033
|
+
* tree and `discard` despawns it with the rest. Does nothing with no build; the commit clears the mark with every
|
|
5034
|
+
* other.
|
|
5035
|
+
*
|
|
5036
|
+
* @param entity - The entity to mark.
|
|
5037
|
+
* @example
|
|
5038
|
+
* ```ts
|
|
5039
|
+
* // `ui` spawns an element of a building root and marks it right away.
|
|
5040
|
+
* const world = ctx.require(worldPlugin);
|
|
5041
|
+
* const button = world.ecs.spawn({ kind: "plugin", name: "ui" }, []);
|
|
5042
|
+
* world.projection.adopt(button);
|
|
5043
|
+
* world.projection.isBuilding(button); // true until the commit
|
|
5044
|
+
* ```
|
|
5045
|
+
*/
|
|
5046
|
+
adopt(entity: Entity): void;
|
|
4867
5047
|
};
|
|
4868
5048
|
/**
|
|
4869
5049
|
* projection methods the plugin root drives from the frame and the hooks. Not public.
|
|
@@ -4880,6 +5060,13 @@ type ProjectionInternal = {
|
|
|
4880
5060
|
* Reconciles when the world is dirty. Runs at the start of `time` phase `input`.
|
|
4881
5061
|
*/
|
|
4882
5062
|
reconcileIfDirty(): void;
|
|
5063
|
+
/**
|
|
5064
|
+
* Records the moment a frame starts, for the budget `left()` counts down. Runs first in `time`
|
|
5065
|
+
* phase `input`, with the moment `Now` gets; a frame without a build only reads a field.
|
|
5066
|
+
*
|
|
5067
|
+
* @param now - The game clock at the start of the frame.
|
|
5068
|
+
*/
|
|
5069
|
+
startFrame(now: number): void;
|
|
4883
5070
|
/**
|
|
4884
5071
|
* Empties the hint buffer. Runs once per frame, reconcile or not.
|
|
4885
5072
|
*/
|
|
@@ -7142,9 +7329,11 @@ type PerfLongFrameLine = PerfLine<"longFrame"> & LongFrameEntry & {
|
|
|
7142
7329
|
* it on the 2b debug build; `"pool-trim"` is the pool trim of spec 25, detail `PoolTrimDetail`; `"warm"` is the end of
|
|
7143
7330
|
* a pipeline warm-up run of spec 27, detail `WarmDetail`; `"sections"` is a switch of the monitor's sections, detail
|
|
7144
7331
|
* `{ on, off }`: the names of the sections on and off, in the order of `MONITOR_SECTIONS`; `"scale"` is a move of the
|
|
7145
|
-
* render scale of the adaptive frame rate, detail `{ from, to, reason, fps }`
|
|
7332
|
+
* render scale of the adaptive frame rate, detail `{ from, to, reason, fps }`; `"scene:build"` is the start of a
|
|
7333
|
+
* scene built aside on a live switch (spec 31), detail `{ from, to }`, and the `"scene"` line of its commit carries
|
|
7334
|
+
* `buildFrames`, `buildMs` and the budget of a frame it ran with, `budgetMs`, too).
|
|
7146
7335
|
*/
|
|
7147
|
-
type PerfEventName = "scene" | "overlay" | "bundle" | "compile" | "upload" | "resolution" | "device-lost" | "device-restored" | "pause" | "resume" | "switch" | "display" | "command" | "recorder" | "rate" | "devtools" | "pool-trim" | "warm" | "shader" | "problem" | "debug" | "sections" | "scale";
|
|
7336
|
+
type PerfEventName = "scene" | "scene:build" | "overlay" | "bundle" | "compile" | "upload" | "resolution" | "device-lost" | "device-restored" | "pause" | "resume" | "switch" | "display" | "command" | "recorder" | "rate" | "devtools" | "pool-trim" | "warm" | "shader" | "problem" | "debug" | "sections" | "scale";
|
|
7148
7337
|
/**
|
|
7149
7338
|
* What an `overlay` event line says happened to an overlay (spec 22 O10.2): it opened, landed (its enter motion is
|
|
7150
7339
|
* over), started to leave, is gone, or its range went live or was kept again (the live fallback).
|
|
@@ -10040,6 +10229,12 @@ type View = {
|
|
|
10040
10229
|
hiddenSelf: number; /** The reasons that hide the whole subtree, on the top (`hidden.ts`). */
|
|
10041
10230
|
hiddenTop: number; /** The HUD factor an overlay fades this view with (a `HudPart`), 1 for every other view (spec 22 O7). */
|
|
10042
10231
|
hud: number;
|
|
10232
|
+
/**
|
|
10233
|
+
* A held top of a scene build (spec 31): a view of the next scene with no parent, or with a live parent, built while
|
|
10234
|
+
* the current scene stays drawn. It hangs nowhere in the stage, is listed in `SyncState.heldViews`, and is attached
|
|
10235
|
+
* in the pass after the commit.
|
|
10236
|
+
*/
|
|
10237
|
+
held: boolean;
|
|
10043
10238
|
};
|
|
10044
10239
|
/**
|
|
10045
10240
|
* The crop of a `"cover"` sprite: a texture that shows the part of `base` covering one box.
|
|
@@ -10800,8 +10995,10 @@ type SyncInternal = {
|
|
|
10800
10995
|
*/
|
|
10801
10996
|
rebuildAll(): void;
|
|
10802
10997
|
/**
|
|
10803
|
-
* One pass over the change sets: removed, layers,
|
|
10804
|
-
* whose parent has a view now, the adapters' values, the invalidated
|
|
10998
|
+
* One pass over the change sets: removed, layers, the held views of a scene build that was committed, added, changed,
|
|
10999
|
+
* the views that lost their `Parent`, the orphans whose parent has a view now, the adapters' values, the invalidated
|
|
11000
|
+
* keys and the nine-slice switch; then, while a scene is built aside, the views of its aside queue under the build
|
|
11001
|
+
* budget (spec 31).
|
|
10805
11002
|
*/
|
|
10806
11003
|
pass(): void;
|
|
10807
11004
|
/**
|
|
@@ -10864,6 +11061,13 @@ type SyncInternal = {
|
|
|
10864
11061
|
* @returns True when it drew a probe in this frame: the frame is then no sample of the adaptive rate.
|
|
10865
11062
|
*/
|
|
10866
11063
|
warmStep(): boolean;
|
|
11064
|
+
/**
|
|
11065
|
+
* The render phase's half of a scene build (spec 31): tells whether the pass made views of the build aside in this
|
|
11066
|
+
* frame, and clears the count, so a frame the pass did not run in reads false. A field read and no allocation.
|
|
11067
|
+
*
|
|
11068
|
+
* @returns True when this frame did building work: such a frame is no sample of the adaptive rate.
|
|
11069
|
+
*/
|
|
11070
|
+
takeBuildWork(): boolean;
|
|
10867
11071
|
/**
|
|
10868
11072
|
* Uploads up to `renderer.uploads` queued texture sources (F60), in a drawn frame, right after the warm-up's probes
|
|
10869
11073
|
* and before the stage pass. Asks for the next frame while sources wait. One compare and no allocation while the
|
|
@@ -11170,6 +11374,28 @@ type SyncCounts = {
|
|
|
11170
11374
|
views: number;
|
|
11171
11375
|
pooled: number;
|
|
11172
11376
|
};
|
|
11377
|
+
/**
|
|
11378
|
+
* The building entities whose view waits to be made (spec 31): sorted out of `added` by the pass while a scene is
|
|
11379
|
+
* built aside, made in chunks after the live pass under `world.projection.left()`. The queue is dense, from `head` to
|
|
11380
|
+
* `count`, in the order the pass sorted them, and emptied when the head reaches the end. Private to `sync`.
|
|
11381
|
+
*/
|
|
11382
|
+
type AsideQueue = {
|
|
11383
|
+
entities: Entity[];
|
|
11384
|
+
count: number;
|
|
11385
|
+
head: number; /** The entities of the queue that have no view yet: a parent that waits here is made before its child. */
|
|
11386
|
+
waiting: Set<Entity>; /** The views the pass made aside in the current frame, read and cleared by the render phase (`takeBuildWork`). */
|
|
11387
|
+
made: number;
|
|
11388
|
+
};
|
|
11389
|
+
/**
|
|
11390
|
+
* The held tops of a scene build, in the order they were made (spec 31): dense, from 0 to `count`. A slot whose view
|
|
11391
|
+
* went, or that hangs under a building parent by now, is stale and skipped. Not `held`, the unseen cache of the
|
|
11392
|
+
* loops. Private to `sync`.
|
|
11393
|
+
*/
|
|
11394
|
+
type HeldViews = {
|
|
11395
|
+
entities: Entity[];
|
|
11396
|
+
count: number; /** The dev check named a building view under the stage in this build: named once. */
|
|
11397
|
+
reported: boolean;
|
|
11398
|
+
};
|
|
11173
11399
|
/**
|
|
11174
11400
|
* sync module state.
|
|
11175
11401
|
*/
|
|
@@ -11253,7 +11479,9 @@ type SyncState = {
|
|
|
11253
11479
|
*/
|
|
11254
11480
|
passesVersion: number; /** The filtered views' passes of `renderPassesOf`, counted at `passesVersion` `at` under `root`. */
|
|
11255
11481
|
passes: PassCount; /** The name of the scene's HUD layer (`above: "overlays"`), kept with the layers; `undefined` without one. */
|
|
11256
|
-
hudLayer: string | undefined;
|
|
11482
|
+
hudLayer: string | undefined; /** The building entities waiting for their view (spec 31). */
|
|
11483
|
+
aside: AsideQueue; /** The held tops of the scene build, attached in the pass after its commit (spec 31). */
|
|
11484
|
+
heldViews: HeldViews;
|
|
11257
11485
|
cleanups: Array<() => void>;
|
|
11258
11486
|
};
|
|
11259
11487
|
/**
|
|
@@ -11288,7 +11516,7 @@ type PassCount = {
|
|
|
11288
11516
|
enabled: boolean[];
|
|
11289
11517
|
};
|
|
11290
11518
|
declare namespace types_d_exports$1 {
|
|
11291
|
-
export { AnySceneProjection, CheckedProjections, Config$1 as Config, DefineScene, Deps$1 as Deps, Events$1 as Events, KernelSlice$1 as KernelSlice, LayerMap, RunContext, SceneDefinition, SceneLayer, SceneOwner, SceneProjection, SceneSpec, SceneState, ScenesApi, ScenesCtx, SortRule, State$1 as State, UiLayer };
|
|
11519
|
+
export { AnySceneProjection, CheckedProjections, Config$1 as Config, DefineScene, Deps$1 as Deps, Events$1 as Events, KernelSlice$1 as KernelSlice, LayerMap, RunContext, SceneBuild, SceneDefinition, SceneLayer, SceneOwner, SceneProjection, SceneSpec, SceneState, ScenesApi, ScenesCtx, SortRule, State$1 as State, UiLayer };
|
|
11292
11520
|
}
|
|
11293
11521
|
/**
|
|
11294
11522
|
* How a layer orders what is drawn in it. The scene's name for the rule `world` stores.
|
|
@@ -11483,15 +11711,45 @@ type SceneOwner = Owner & {
|
|
|
11483
11711
|
name: "scenes";
|
|
11484
11712
|
};
|
|
11485
11713
|
/**
|
|
11486
|
-
* scenes plugin config
|
|
11487
|
-
* of `anim`, so a key here would have no reader.
|
|
11714
|
+
* scenes plugin config. A scene is data in a feature; the one key is the budget of a live switch.
|
|
11488
11715
|
*
|
|
11489
11716
|
* @example
|
|
11490
11717
|
* ```ts
|
|
11491
|
-
*
|
|
11718
|
+
* // The default: half of each frame, read at the start of every build: 8.33… ms at 60 Hz, 4.17 ms at 120 Hz.
|
|
11719
|
+
* const config: Config = { buildMs: "auto" };
|
|
11720
|
+
*
|
|
11721
|
+
* // A game on a slow phone gives the next scene a fixed 3 ms of each frame: the switch takes more frames.
|
|
11722
|
+
* const fixed: Config = { buildMs: 3 };
|
|
11492
11723
|
* ```
|
|
11493
11724
|
*/
|
|
11494
|
-
type Config$1 =
|
|
11725
|
+
type Config$1 = {
|
|
11726
|
+
/**
|
|
11727
|
+
* Milliseconds per frame the next scene's building work may take on a live switch with a
|
|
11728
|
+
* drawing renderer: a finite number above 0, or `"auto"` (the default) for half of the frame
|
|
11729
|
+
* interval the loop runs at, `500 / time.rate().fps`, read once at the build start.
|
|
11730
|
+
*/
|
|
11731
|
+
buildMs: number | "auto";
|
|
11732
|
+
};
|
|
11733
|
+
/**
|
|
11734
|
+
* The running build of the next scene (spec 31): what the commit needs, and how to stop
|
|
11735
|
+
* listening. Absent while no build runs.
|
|
11736
|
+
*/
|
|
11737
|
+
type SceneBuild = {
|
|
11738
|
+
/** The scene being built. */scene: SceneDefinition; /** The bundles it names, as they were awaited. */
|
|
11739
|
+
named: readonly string[]; /** The scene current at the build start, the one that leaves at the commit. */
|
|
11740
|
+
from: string | undefined; /** Frames the build waited in so far. */
|
|
11741
|
+
frames: number; /** The building budget of a frame the build runs with, ms: `buildMs`, or what `"auto"` gave at its start. */
|
|
11742
|
+
budgetMs: number; /** The page clock of an agent build at the build start, ms; 0 in a build without the flag. */
|
|
11743
|
+
startedAt: number; /** Removes the frame callback and the abort listener of the build. */
|
|
11744
|
+
off: () => void; /** Settles the switch once the build is committed, discarded or dropped by a stop. */
|
|
11745
|
+
resolve: () => void;
|
|
11746
|
+
/**
|
|
11747
|
+
* Rejects the switch when the commit threw.
|
|
11748
|
+
*
|
|
11749
|
+
* @param error - What the commit threw.
|
|
11750
|
+
*/
|
|
11751
|
+
reject: (error: unknown) => void;
|
|
11752
|
+
};
|
|
11495
11753
|
/**
|
|
11496
11754
|
* scenes plugin state.
|
|
11497
11755
|
*/
|
|
@@ -11513,6 +11771,11 @@ type State$1 = {
|
|
|
11513
11771
|
named: readonly string[];
|
|
11514
11772
|
owner: SceneOwner; /** The remover of the `onEnter` callback: set in `onStart`, run in `onStop`. */
|
|
11515
11773
|
teardown: (() => void) | undefined;
|
|
11774
|
+
/**
|
|
11775
|
+
* The build of the next scene on a live switch, from its start to its commit or discard.
|
|
11776
|
+
* Absent otherwise: deleted, never written as `undefined`.
|
|
11777
|
+
*/
|
|
11778
|
+
build?: SceneBuild;
|
|
11516
11779
|
};
|
|
11517
11780
|
/**
|
|
11518
11781
|
* scenes plugin events.
|
|
@@ -11588,7 +11851,11 @@ type Deps$1 = {
|
|
|
11588
11851
|
world: Api$2;
|
|
11589
11852
|
assets: Api;
|
|
11590
11853
|
time: Api$7;
|
|
11591
|
-
model: Api$5;
|
|
11854
|
+
model: Api$5;
|
|
11855
|
+
/**
|
|
11856
|
+
* Whether the renderer draws, which chooses the path of a switch, and the performance log of
|
|
11857
|
+
* an agent build that names every switch.
|
|
11858
|
+
*/
|
|
11592
11859
|
renderer: Api$1;
|
|
11593
11860
|
};
|
|
11594
11861
|
/**
|
|
@@ -12212,7 +12479,12 @@ type State = {
|
|
|
12212
12479
|
* The bundles a scene named before and the list names no more: held until a phase `sync` finds nothing carrying
|
|
12213
12480
|
* `Exiting`, so a leaving scene's pictures stay until its elements played their exit (F51, F51b).
|
|
12214
12481
|
*/
|
|
12215
|
-
sceneLeaving: string[];
|
|
12482
|
+
sceneLeaving: string[];
|
|
12483
|
+
/**
|
|
12484
|
+
* The bundles of the scene being built aside, from the last `sceneComing` call: held like `sceneNamed` from the
|
|
12485
|
+
* build start until `sceneBundles` names them at the swap, or until a discarded build empties the list (F61 S2).
|
|
12486
|
+
*/
|
|
12487
|
+
sceneComing: string[]; /** How many entities carry `Exiting` now, counted from the world's `onAdded` and `onRemoved` of the tag. */
|
|
12216
12488
|
exiting: number; /** Registered companions, in registration order. */
|
|
12217
12489
|
companions: BundleCompanion[]; /** A live rest was announced; the arriving node's `load` stage runs the release. */
|
|
12218
12490
|
restPending: boolean;
|
|
@@ -12465,7 +12737,8 @@ type Api = {
|
|
|
12465
12737
|
* released by `release: "leave"` while it stays in the list. A bundle the list named before and names no more
|
|
12466
12738
|
* stays held until a phase `sync` finds nothing carrying `Exiting`, so a leaving scene's pictures stay until its
|
|
12467
12739
|
* elements played their exit, also when the exit starts only in the frame after the switch; then a `"leave"` one
|
|
12468
|
-
* goes (F51, F51b).
|
|
12740
|
+
* goes (F51, F51b). It empties the list of `sceneComing`: the coming scene is now the mounted one. Called by
|
|
12741
|
+
* `scenes`; a game never calls it.
|
|
12469
12742
|
*
|
|
12470
12743
|
* @param named - The bundle names of the mounted scene, the scene bundle first.
|
|
12471
12744
|
* @example
|
|
@@ -12478,6 +12751,23 @@ type Api = {
|
|
|
12478
12751
|
* ```
|
|
12479
12752
|
*/
|
|
12480
12753
|
sceneBundles(named: readonly string[]): void;
|
|
12754
|
+
/**
|
|
12755
|
+
* Tells assets which bundles the scene being built aside names, while the scene before stays mounted (F61 S2).
|
|
12756
|
+
* Each call replaces the list. A bundle in it is held as a mounted scene's is: never a victim of the budget, never
|
|
12757
|
+
* released by `release: "leave"`. The next `sceneBundles` call empties it, because the coming scene is then the
|
|
12758
|
+
* mounted one; a discarded build calls it with `[]`. Called by `scenes`; a game never calls it.
|
|
12759
|
+
*
|
|
12760
|
+
* @param named - The bundle names of the coming scene, the scene bundle first.
|
|
12761
|
+
* @example
|
|
12762
|
+
* ```ts
|
|
12763
|
+
* // scenes, at the build start of the switch from the ward to the board of episode 1.
|
|
12764
|
+
* ctx.require(assetsPlugin).sceneComing(["board", "ep01"]);
|
|
12765
|
+
* // a rest or budget pressure during the build leaves board and ep01 loaded
|
|
12766
|
+
* ctx.require(assetsPlugin).sceneComing([]);
|
|
12767
|
+
* // the build was discarded: board and ep01 are held no more
|
|
12768
|
+
* ```
|
|
12769
|
+
*/
|
|
12770
|
+
sceneComing(named: readonly string[]): void;
|
|
12481
12771
|
/**
|
|
12482
12772
|
* Tells whether the manifest carries a bundle, loaded or not. It reads the manifest only, so it
|
|
12483
12773
|
* answers the same live and headless.
|
|
@@ -12597,4 +12887,4 @@ type BundleCompanion = {
|
|
|
12597
12887
|
unload(bundle: string): void;
|
|
12598
12888
|
};
|
|
12599
12889
|
//#endregion
|
|
12600
|
-
export {
|
|
12890
|
+
export { PixiModule as $, FeaturePlugin as $n, Time as $r, ShaderWhat as $t, SyncApi as A, NumericFields as An, types_d_exports$6 as Ar, PerfChange as At, ShapeValue as B, EmitterIdOf as Bn, RngState as Br, PerfLongFrameLine as Bt, SceneSpec as C, TagType as Cn, types_d_exports$5 as Cr, PERF_CAUSES as Ct, DebugSwitches as D, Motion as Dn, Json as Dr, PassKind as Dt, types_d_exports$1 as E, Ease as En, Events$5 as Er, PROBLEM_RULES as Et, NineSliceValue as F, TrackSegment as Fn, SaveUnreadableError as Fr, PerfEventLine as Ft, Transform as G, TextStylesOf as Gn, State$7 as Gr, PerfStartupLine as Gt, SpriteBlend as H, HudKeysOf as Hn, Config$7 as Hr, PerfMeasured as Ht, Overlay as I, ViewHandle as In, Snapshot as Ir, PerfEventName as It, AdaptiveScale as J, exit as Jn, Config$8 as Jr, PoolTrimDetail as Jt, TransformValue as K, types_d_exports$4 as Kn, types_d_exports$7 as Kr, PerfTelemetryLine as Kt, OverlayValue as L, Api$3 as Ln, SnapshotOf as Lr, PerfGapLine as Lt, HudPart as M, ProjectionSpec as Mn, PlayerStateProvider as Mr, PerfCollectorLine as Mt, HudPartValue as N, ReducedMotion as Nn, ProviderCall as Nr, PerfCounts as Nt, FilterSlot as O, MotionCause as On, Root as Or, PassRecord as Ot, NineSlice$1 as P, TrackOptions as Pn, SaveDoc as Pr, PerfDisplay as Pt, PixiFilter as Q, FeatureDescription as Qn, ThermalReading as Qr, ShaderEventDetail as Qt, Parent as R, BundlesOf as Rn, StoreApi as Rr, PerfHeaderLine as Rt, SceneDefinition as S, SystemFor as Sn, State$5 as Sr, OverlayWhat as St, State$1 as T, DescriptionNode as Tn, Config$6 as Tr, PERF_LOG_VERSION as Tt, SpriteOptions as U, Position as Un, Events$6 as Ur, PerfSampleLine as Ut, Sprite as V, GameTypes as Vn, Api$6 as Vr, PerfMarkLine as Vt, SpriteValue as W, State$4 as Wn, PauseReason as Wr, PerfSpikeLine as Wt, Config$2 as X, to as Xn, RateChange as Xr, ProblemRule as Xt, Api$1 as Y, slot as Yn, FrameRate as Yr, ProblemEventDetail as Yt, MonitorConfig as Z, type as Zn, State$8 as Zr, SHADER_WHATS as Zt, AnySceneProjection as _, Mut as _n, Answer as _r, FrameRing as _t, Config as a, State$3 as an, FlowState as ar, types_d_exports$2 as at, Events$1 as b, ResourceType as bn, Config$5 as br, MonitorSections as bt, LoadBundles as c, AnyComponentType as cn, RouteStep as cr, RenderStats as ct, Manifest as d, ComponentSchema as dn, Descriptor as dr, ViewportSize as dt, types_d_exports$8 as ei, WarmDetail as en, FeatureTree as er, PixiSprite as et, ReadyBundles as f, ComponentType as fn, Effect as fr, FilterCache as ft, types_d_exports as g, FrameDiff as gn, NodeFx as gr, FrameRecord as gt, Usage as h, EntitySnapshot as hn, Hint as hr, FrameReadout as ht, BundleSpec as i, Explained as in, FlowGraph as ir, Under as it, Display as j, ProjectionMotion as jn, Patch as jr, PerfChangeEntry as jt, FilterSlotInputs as k, MotionHandle as kn, State$6 as kr, PerfCause as kt, LoadReason as l, AnyComponentValue as ln, SceneIdOf as lr, Orientation as lt, Tier as m, Entity as mn, GuideOptions as mr, FrameReadResult as mt, AssetsIo as n, Events$8 as ni, Api$2 as nn, Bookmark as nr, PoolTrim as nt, DefineBundles as o, types_d_exports$3 as on, JournalEntry as or, Captured as ot, State as p, ComponentValue as pn, EffectOptions as pr, FrameColumns as pt, sprite as q, defineFlow as qn, Api$7 as qr, PerfThermalLine as qt, BundleMap as r, Require as ri, Config$3 as rn, DefineNode as rr, State$2 as rt, Events as s, AnyComponent as sn, NodeTable as sr, MonitorCounts as st, Api as t, Config$9 as ti, DEMAND_REASONS as tn, AnyFlow as tr, PixiTexture as tt, LoadResult as u, ComponentHandle as un, TypeTag as ur, Point as ut, Config$1 as v, Narrowed as vn, Api$4 as vr, LongFrameEntry as vt, ScenesApi as w, ChangeHook as wn, Api$5 as wr, PERF_GAP_BUCKETS as wt, LayerMap as x, SystemDefinition as xn, FakeClock as xr, OverlayEventDetail as xt, DefineScene as y, QueryTerm as yn, ClockSource as yr, MONITOR_SECTIONS as yt, Shape as z, Config$4 as zn, RngApi as zr, PerfLogLine as zt };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as
|
|
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-D27I4Q7b.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-BAp9HdR4.mjs";
|
|
3
3
|
import { Log } from "@moku-labs/common/browser";
|
|
4
4
|
import { PluginCtx } from "@moku-labs/core";
|
|
5
5
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
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, wr as Api$2 } from "./types-D27I4Q7b.mjs";
|
|
2
|
+
import { P as AnimApi, r as UiApi } from "./types-DjQkfbfZ.mjs";
|
|
3
|
+
import { N as InputApi } from "./types-BAp9HdR4.mjs";
|
|
4
|
+
import { r as Repro } from "./headless-f31cEZ7f.mjs";
|
|
5
|
+
import { a as InputOf, r as ControlApp } from "./types-CgE5L_7f.mjs";
|
|
6
|
+
import { t as commands } from "./commands-BUfZJUx6.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-f6mtELhG.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/dist/visual.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as read, t as sources } from "./sources-
|
|
2
|
-
import { n as commands, t as run } from "./run-
|
|
1
|
+
import { n as read, t as sources } from "./sources-DM5Zcl4o.mjs";
|
|
2
|
+
import { n as commands, t as run } from "./run-DyL8rl2P.mjs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { createBrandConsole } from "@moku-labs/common/cli";
|
|
5
5
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|