incanto 0.50.0 → 0.52.0
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/2d.d.ts +38 -2
- package/dist/2d.js +3 -3
- package/dist/3d.d.ts +4 -3
- package/dist/3d.js +4 -4
- package/dist/{behavior-62q0HWBO.d.ts → behavior-uPEuZrUB.d.ts} +47 -3
- package/dist/{create-game-BLDjy_PW.js → create-game-B_e9hJf7.js} +92 -10
- package/dist/{create-game-DqqxEax1.js → create-game-CGnoypjL.js} +6 -6
- package/dist/debug.d.ts +1 -1
- package/dist/debug.js +1 -1
- package/dist/{duplicate-CI9WF_bg.js → duplicate-B-OtSRFL.js} +1 -1
- package/dist/editor.js +1917 -1579
- package/dist/{environment-presets-XFuqu5jv.js → environment-presets-DSZwsKPs.js} +3 -3
- package/dist/{gameplay-DbaI313d.js → gameplay-B6jqvYeM.js} +163 -6
- package/dist/gameplay.d.ts +79 -2
- package/dist/gameplay.js +2 -2
- package/dist/index.d.ts +74 -5
- package/dist/index.js +7 -7
- package/dist/{loader-DwazzlQb.js → loader-B-Gft32x.js} +372 -23
- package/dist/{loader-CeyU_bm1.d.ts → loader-B9iTqs27.d.ts} +1 -1
- package/dist/net.d.ts +15 -410
- package/dist/net.js +1 -822
- package/dist/{pathfinding-C49JSNNq.d.ts → pathfinding-CAR9DjQQ.d.ts} +1 -1
- package/dist/{physics-2d-_9VBOHn6.js → physics-2d-Dns-oZlE.js} +7 -2
- package/dist/{physics-3d-DrpF5hcG.js → physics-3d-BhI0ehpe.js} +8 -3
- package/dist/react.d.ts +1 -1
- package/dist/react.js +1 -1
- package/dist/{register-uvaZj1KX.js → register-DVwlnZAZ.js} +20 -266
- package/dist/{register-BNPZYJmd.js → register-Trx7WHnD.js} +3 -3
- package/dist/{registry-IyWCGe4q.js → registry-C7u42TID.js} +23 -1
- package/dist/{replay-DYdy1wb0.d.ts → replay-BU1CCM15.d.ts} +1 -1
- package/dist/{replay-j-m6lJ4W.js → replay-BicPOMX0.js} +214 -2
- package/dist/split-screen-CZ9ccBBQ.js +1267 -0
- package/dist/split-screen-paxkQs_q.d.ts +441 -0
- package/dist/{src-B3HrKuAi.js → src-5gbZO47I.js} +1 -1
- package/dist/{teardown-BKTCzLek.js → teardown-ks3d5W9n.js} +2 -1
- package/dist/{test-D16igj4C.js → test-DAojuFdb.js} +119 -22
- package/dist/test.d.ts +60 -5
- package/dist/test.js +3 -3
- package/dist/vite.js +2 -2
- package/editor/assets/{agent8-t3kl5q9K.js → agent8-CCvckvbw.js} +1 -1
- package/editor/assets/{debug-Bu3eeAlO.js → debug-CLNCOnbc.js} +1 -1
- package/editor/assets/{index-Df5g8ofT.js → index-Cb5Brupb.js} +99 -92
- package/editor/index.html +1 -1
- package/package.json +1 -1
- package/skills/incanto-assets.md +4 -1
- package/skills/incanto-building-2d-games.md +6 -1
- package/skills/incanto-editor.md +48 -11
- package/skills/incanto-gameplay-behaviors.md +14 -5
- package/skills/incanto-multiplayer.md +39 -3
- package/skills/incanto-node-reference.md +13 -0
- package/skills/incanto-save-slots.md +134 -12
- package/skills/incanto-verifying-your-game.md +56 -0
- package/templates/agent8-server.ts +79 -2
- package/templates-app/beacon-isle-3d/package.json +1 -1
- package/templates-app/tps-3d/package.json +1 -1
- package/templates-app/village-quest-3d/package.json +1 -1
- package/dist/register-CB11yp21.js +0 -374
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { t as registerCoreNodes } from "./register-
|
|
1
|
+
import { t as registerCoreNodes } from "./register-DVwlnZAZ.js";
|
|
2
2
|
import { t as IncantoError } from "./errors-BpWbnbb_.js";
|
|
3
3
|
import { t as Rng } from "./rng-DP-SR7eg.js";
|
|
4
|
-
import { i as getNodeSchema, l as registerNode } from "./registry-
|
|
4
|
+
import { i as getNodeSchema, l as registerNode } from "./registry-C7u42TID.js";
|
|
5
5
|
import { t as createNoise2D } from "./noise-CGUMx44x.js";
|
|
6
6
|
import { i as ParticleSim, n as resolveFrames, o as PARTICLE_PRESET_NAMES, r as validateAnimationAliases, s as applyParticlePreset, t as resolveAnimation } from "./sprite-animation-D_p28jwU.js";
|
|
7
|
-
import {
|
|
7
|
+
import { F as CharacterBody3D, I as PhysicsBody3D, L as RigidBody3D, N as WaterCutout3D, P as Area3D, R as StaticBody3D, U as colliderFootDrop, j as Water3D, z as Node3D } from "./gameplay-B6jqvYeM.js";
|
|
8
8
|
import { n as splatWeights, t as buildHeightmap } from "./heightmap-CRK0M4jT.js";
|
|
9
9
|
import { AdditiveBlending, AnimationClip, AnimationMixer, Box3, BoxGeometry, BufferAttribute, BufferGeometry, CanvasTexture, CapsuleGeometry, ClampToEdgeWrapping, Color, ConeGeometry, CylinderGeometry, DataTexture, DirectionalLight, DoubleSide, DynamicDrawUsage, Euler, Group, IcosahedronGeometry, ImageBitmapLoader, InstancedBufferAttribute, InstancedMesh, LinearFilter, LinearMipmapLinearFilter, LoopOnce, LoopRepeat, Matrix4, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshPhysicalMaterial, MeshStandardMaterial, NearestFilter, NoBlending, NoColorSpace, NormalBlending, PerspectiveCamera, PlaneGeometry, PointLight, Points, PointsMaterial, Quaternion, QuaternionKeyframeTrack, RGBADepthPacking, RGBAFormat, RepeatWrapping, SRGBColorSpace, ShaderChunk, ShaderMaterial, SphereGeometry, Texture, TextureLoader, UniformsLib, UniformsUtils, Vector3, Vector4, VectorKeyframeTrack } from "three";
|
|
10
10
|
import { clone } from "three/addons/utils/SkeletonUtils.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { A as registerBehavior, T as Behavior, b as effectiveOrder, f as Node, n as loadScene, p as SaveSlots } from "./loader-B-Gft32x.js";
|
|
2
2
|
import { t as IncantoError } from "./errors-BpWbnbb_.js";
|
|
3
3
|
import { t as jsonClone } from "./json-BLk7H2Qa.js";
|
|
4
|
-
import { t as duplicateNode } from "./duplicate-
|
|
4
|
+
import { t as duplicateNode } from "./duplicate-B-OtSRFL.js";
|
|
5
5
|
import { Color, CubeCamera, DepthTexture, DoubleSide, Euler, FloatType, Frustum, HalfFloatType, LinearMipmapLinearFilter, MathUtils, Matrix4, Mesh, MeshDepthMaterial, Object3D, PerspectiveCamera, Plane, PlaneGeometry, Quaternion, ShaderMaterial, Sphere, Vector2, Vector3, Vector4, WebGLCubeRenderTarget, WebGLRenderTarget } from "three";
|
|
6
6
|
//#region src/3d/frustum.ts
|
|
7
7
|
const scratchFrustum = new Frustum();
|
|
@@ -4374,7 +4374,8 @@ var Chase = class extends Behavior {
|
|
|
4374
4374
|
/** NodePath of the node to chase (resolved from THIS behavior's node). */
|
|
4375
4375
|
target: {
|
|
4376
4376
|
default: "",
|
|
4377
|
-
nodePath: true
|
|
4377
|
+
nodePath: true,
|
|
4378
|
+
required: true
|
|
4378
4379
|
},
|
|
4379
4380
|
/** Units per second toward the target. */
|
|
4380
4381
|
speed: { default: 60 },
|
|
@@ -4909,7 +4910,8 @@ var FollowCamera = class extends Behavior {
|
|
|
4909
4910
|
/** NodePath of the node to follow (relative to this node, or absolute). */
|
|
4910
4911
|
target: {
|
|
4911
4912
|
default: "",
|
|
4912
|
-
nodePath: true
|
|
4913
|
+
nodePath: true,
|
|
4914
|
+
required: true
|
|
4913
4915
|
},
|
|
4914
4916
|
/** Constant offset added to the target's position ([x,y] or [x,y,z]). */
|
|
4915
4917
|
offset: { default: [] },
|
|
@@ -5754,8 +5756,8 @@ var Pickup = class extends Behavior {
|
|
|
5754
5756
|
const collector = findCollector(other, this.collectorGroup);
|
|
5755
5757
|
if (!collector) return;
|
|
5756
5758
|
this.collectedAlready = true;
|
|
5757
|
-
this.emit("collected", this.value, collector);
|
|
5758
5759
|
this.node.queueFree();
|
|
5760
|
+
this.emit("collected", this.value, collector);
|
|
5759
5761
|
}
|
|
5760
5762
|
};
|
|
5761
5763
|
/**
|
|
@@ -5856,6 +5858,160 @@ var Projectile = class extends Behavior {
|
|
|
5856
5858
|
}
|
|
5857
5859
|
};
|
|
5858
5860
|
//#endregion
|
|
5861
|
+
//#region src/gameplay/save-point.ts
|
|
5862
|
+
/**
|
|
5863
|
+
* The save, as something the scene can point a signal at.
|
|
5864
|
+
*
|
|
5865
|
+
* Every other common wiring in this engine became declarative — score to
|
|
5866
|
+
* screen, damage to health bar, waves, win and lose — and saving stayed the one
|
|
5867
|
+
* thing that needed TypeScript. The skill's own autosave example is a
|
|
5868
|
+
* connection to `Game.onCheckpoint`, a method the author has to go and write.
|
|
5869
|
+
*
|
|
5870
|
+
* "*When* to save is a design decision and only your game knows" is right, and
|
|
5871
|
+
* it is untouched here: the SCENE still says when, by choosing which signal to
|
|
5872
|
+
* wire — a level exit's `triggerEnter`, `won`, a key. What it gets is something
|
|
5873
|
+
* to wire TO.
|
|
5874
|
+
*
|
|
5875
|
+
* ```json
|
|
5876
|
+
* { "name": "Save", "type": "Node", "uid": "n_…",
|
|
5877
|
+
* "script": { "name": "SavePoint", "props": { "game": "vault", "slot": "1" } } }
|
|
5878
|
+
* ```
|
|
5879
|
+
* ```json
|
|
5880
|
+
* { "signal": "triggerEnter", "from": "Level/Exit", "to": "Save", "handler": "save" }
|
|
5881
|
+
* ```
|
|
5882
|
+
*/
|
|
5883
|
+
var SavePoint = class extends Behavior {
|
|
5884
|
+
static props = {
|
|
5885
|
+
/** Namespace for this game's slots — keeps two games on one origin apart. */
|
|
5886
|
+
game: { default: "game" },
|
|
5887
|
+
/** Which slot this node writes and reads. */
|
|
5888
|
+
slot: { default: "1" },
|
|
5889
|
+
/** Shown in a load menu. */
|
|
5890
|
+
label: { default: "" },
|
|
5891
|
+
/**
|
|
5892
|
+
* The scene key a load should route back to. Empty = this scene's `name`.
|
|
5893
|
+
* The engine does not route scenes; it records what your loader will need.
|
|
5894
|
+
*/
|
|
5895
|
+
scene: { default: "" },
|
|
5896
|
+
/** Read the slot back as soon as the scene is ready — a "Continue" boot. */
|
|
5897
|
+
restoreOnReady: { default: false },
|
|
5898
|
+
/**
|
|
5899
|
+
* Ask, without loading: on the first frame, emit `hasSave(label, playtime)`
|
|
5900
|
+
* or `noSave`. A title screen needs this and nothing else — the scene can
|
|
5901
|
+
* then wire `noSave → Continue.hide` and `hasSave → SlotInfo.setText`.
|
|
5902
|
+
*/
|
|
5903
|
+
probeOnReady: { default: false }
|
|
5904
|
+
};
|
|
5905
|
+
static signals = [
|
|
5906
|
+
"saved",
|
|
5907
|
+
"restored",
|
|
5908
|
+
"noSave",
|
|
5909
|
+
"hasSave"
|
|
5910
|
+
];
|
|
5911
|
+
game = "game";
|
|
5912
|
+
slot = "1";
|
|
5913
|
+
label = "";
|
|
5914
|
+
scene = "";
|
|
5915
|
+
restoreOnReady = false;
|
|
5916
|
+
probeOnReady = false;
|
|
5917
|
+
/** Seconds this run has been playing — written into the slot as `playtime`. */
|
|
5918
|
+
elapsed = 0;
|
|
5919
|
+
slots = null;
|
|
5920
|
+
store() {
|
|
5921
|
+
this.slots ??= new SaveSlots(this.game);
|
|
5922
|
+
return this.slots;
|
|
5923
|
+
}
|
|
5924
|
+
pendingRestore = false;
|
|
5925
|
+
pendingProbe = false;
|
|
5926
|
+
onReady() {
|
|
5927
|
+
this.pendingRestore = this.restoreOnReady;
|
|
5928
|
+
this.pendingProbe = this.probeOnReady;
|
|
5929
|
+
}
|
|
5930
|
+
update(dt) {
|
|
5931
|
+
if (this.pendingProbe) {
|
|
5932
|
+
this.pendingProbe = false;
|
|
5933
|
+
this.probe();
|
|
5934
|
+
}
|
|
5935
|
+
if (this.pendingRestore) {
|
|
5936
|
+
this.pendingRestore = false;
|
|
5937
|
+
this.restore();
|
|
5938
|
+
}
|
|
5939
|
+
this.elapsed += dt;
|
|
5940
|
+
}
|
|
5941
|
+
/**
|
|
5942
|
+
* Is there anything to continue? Emits `hasSave(label, playtime, scene)` or
|
|
5943
|
+
* `noSave`, and touches nothing.
|
|
5944
|
+
*
|
|
5945
|
+
* The label leads because that is what a menu shows; an unlabelled slot
|
|
5946
|
+
* falls back to its scene key, so `hasSave → SlotInfo.setText` always says
|
|
5947
|
+
* something rather than nothing.
|
|
5948
|
+
*/
|
|
5949
|
+
probe() {
|
|
5950
|
+
const slot = this.store().read(this.slot);
|
|
5951
|
+
if (!slot) {
|
|
5952
|
+
this.emit("noSave");
|
|
5953
|
+
return;
|
|
5954
|
+
}
|
|
5955
|
+
this.emit("hasSave", slot.label || slot.scene, slot.playtime, slot.scene);
|
|
5956
|
+
}
|
|
5957
|
+
/** Seconds this run has been playing, including time carried over a continue. */
|
|
5958
|
+
get playtime() {
|
|
5959
|
+
return Math.round(this.elapsed);
|
|
5960
|
+
}
|
|
5961
|
+
/**
|
|
5962
|
+
* The scene key this slot was saved from — what a loader needs to route.
|
|
5963
|
+
* Null when the slot is empty.
|
|
5964
|
+
*/
|
|
5965
|
+
slotScene() {
|
|
5966
|
+
return this.store().read(this.slot)?.scene ?? null;
|
|
5967
|
+
}
|
|
5968
|
+
/**
|
|
5969
|
+
* Write the run to its slot. Emits `saved(slotId)`.
|
|
5970
|
+
*
|
|
5971
|
+
* Wire it to whatever marks the moment. Extra signal arguments are ignored,
|
|
5972
|
+
* so `triggerEnter → save` works as-is.
|
|
5973
|
+
*/
|
|
5974
|
+
save() {
|
|
5975
|
+
const engine = this.engine;
|
|
5976
|
+
this.store().write(this.slot, {
|
|
5977
|
+
scene: this.scene || (engine.scene?.source.name ?? ""),
|
|
5978
|
+
state: engine.captureState(),
|
|
5979
|
+
label: this.label,
|
|
5980
|
+
savedAt: Date.now(),
|
|
5981
|
+
playtime: Math.round(this.elapsed)
|
|
5982
|
+
});
|
|
5983
|
+
this.emit("saved", this.slot);
|
|
5984
|
+
}
|
|
5985
|
+
/**
|
|
5986
|
+
* Give this scene the slot's state back. Emits `restored(count)`, or
|
|
5987
|
+
* `noSave` when the slot is empty — which is what greys out a Continue button.
|
|
5988
|
+
*
|
|
5989
|
+
* Restoring does NOT route: if the slot names another scene, that is your
|
|
5990
|
+
* loader's business, and `slot.scene` is the key it needs.
|
|
5991
|
+
*/
|
|
5992
|
+
restore() {
|
|
5993
|
+
const slot = this.store().read(this.slot);
|
|
5994
|
+
if (!slot) {
|
|
5995
|
+
this.emit("noSave");
|
|
5996
|
+
return;
|
|
5997
|
+
}
|
|
5998
|
+
const report = this.engine.restoreState(slot.state);
|
|
5999
|
+
this.emit("restored", report.restored);
|
|
6000
|
+
}
|
|
6001
|
+
/** Forget this slot — a "delete save" button. */
|
|
6002
|
+
clear() {
|
|
6003
|
+
this.store().remove(this.slot);
|
|
6004
|
+
}
|
|
6005
|
+
/** The run's own clock survives a save/continue cycle. */
|
|
6006
|
+
serialize() {
|
|
6007
|
+
return { playtime: Math.round(this.elapsed) };
|
|
6008
|
+
}
|
|
6009
|
+
deserialize(data) {
|
|
6010
|
+
const d = data;
|
|
6011
|
+
if (typeof d.playtime === "number" && d.playtime >= 0) this.elapsed = d.playtime;
|
|
6012
|
+
}
|
|
6013
|
+
};
|
|
6014
|
+
//#endregion
|
|
5859
6015
|
//#region src/gameplay/score-keeper.ts
|
|
5860
6016
|
/**
|
|
5861
6017
|
* The game's state hub — score, lives, and win/lose detection. Put it on the
|
|
@@ -6460,6 +6616,7 @@ const GAMEPLAY_BEHAVIORS = {
|
|
|
6460
6616
|
DamageOnContact,
|
|
6461
6617
|
Interactable,
|
|
6462
6618
|
Clickable,
|
|
6619
|
+
SavePoint,
|
|
6463
6620
|
FollowCamera,
|
|
6464
6621
|
Patrol,
|
|
6465
6622
|
Chase,
|
|
@@ -6482,4 +6639,4 @@ function registerGameplayBehaviors(opts) {
|
|
|
6482
6639
|
for (const [name, ctor] of Object.entries(GAMEPLAY_BEHAVIORS)) registerBehavior(name, ctor, { replace });
|
|
6483
6640
|
}
|
|
6484
6641
|
//#endregion
|
|
6485
|
-
export {
|
|
6642
|
+
export { Chase as A, validateCollider3D as B, restartScene as C, DamageOnContact as D, phaseOf as E, CharacterBody3D as F, WATER_MAX_RIPPLES as H, PhysicsBody3D as I, RigidBody3D as L, WATER_CUTOUT_MAX as M, WaterCutout3D as N, Health as O, Area3D as P, StaticBody3D as R, goToScene as S, DayNight as T, colliderFootDrop as U, createCausticsQuad as V, Cooldown as _, Wander as a, Interactable as b, SavePoint as c, Patrol as d, PathFollow as f, CameraShake as g, Lifetime as h, WaveSpawner as i, Water3D as j, Collector as k, Projectile as l, MoveTo as m, registerGameplayBehaviors as n, Spawner as o, Oscillate as p, ZombieAI as r, ScoreKeeper as s, GAMEPLAY_BEHAVIORS as t, Pickup as u, hitStop as v, FollowCamera as w, GameFlow as x, screenFlash as y, Node3D as z };
|
package/dist/gameplay.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Dt as Node, b as Engine, d as PropSchema, n as BehaviorCtor, t as Behavior } from "./behavior-uPEuZrUB.js";
|
|
2
2
|
import { c as JsonValue, s as JsonObject } from "./schema-CFeioQRE.js";
|
|
3
3
|
|
|
4
4
|
//#region src/gameplay/chase.d.ts
|
|
@@ -375,6 +375,83 @@ declare class Projectile extends Behavior {
|
|
|
375
375
|
private forwardFromRotation;
|
|
376
376
|
}
|
|
377
377
|
//#endregion
|
|
378
|
+
//#region src/gameplay/save-point.d.ts
|
|
379
|
+
/**
|
|
380
|
+
* The save, as something the scene can point a signal at.
|
|
381
|
+
*
|
|
382
|
+
* Every other common wiring in this engine became declarative — score to
|
|
383
|
+
* screen, damage to health bar, waves, win and lose — and saving stayed the one
|
|
384
|
+
* thing that needed TypeScript. The skill's own autosave example is a
|
|
385
|
+
* connection to `Game.onCheckpoint`, a method the author has to go and write.
|
|
386
|
+
*
|
|
387
|
+
* "*When* to save is a design decision and only your game knows" is right, and
|
|
388
|
+
* it is untouched here: the SCENE still says when, by choosing which signal to
|
|
389
|
+
* wire — a level exit's `triggerEnter`, `won`, a key. What it gets is something
|
|
390
|
+
* to wire TO.
|
|
391
|
+
*
|
|
392
|
+
* ```json
|
|
393
|
+
* { "name": "Save", "type": "Node", "uid": "n_…",
|
|
394
|
+
* "script": { "name": "SavePoint", "props": { "game": "vault", "slot": "1" } } }
|
|
395
|
+
* ```
|
|
396
|
+
* ```json
|
|
397
|
+
* { "signal": "triggerEnter", "from": "Level/Exit", "to": "Save", "handler": "save" }
|
|
398
|
+
* ```
|
|
399
|
+
*/
|
|
400
|
+
declare class SavePoint extends Behavior {
|
|
401
|
+
static readonly props: PropSchema;
|
|
402
|
+
static readonly signals: readonly string[];
|
|
403
|
+
game: string;
|
|
404
|
+
slot: string;
|
|
405
|
+
label: string;
|
|
406
|
+
scene: string;
|
|
407
|
+
restoreOnReady: boolean;
|
|
408
|
+
probeOnReady: boolean;
|
|
409
|
+
/** Seconds this run has been playing — written into the slot as `playtime`. */
|
|
410
|
+
private elapsed;
|
|
411
|
+
private slots;
|
|
412
|
+
private store;
|
|
413
|
+
private pendingRestore;
|
|
414
|
+
private pendingProbe;
|
|
415
|
+
override onReady(): void;
|
|
416
|
+
override update(dt: number): void;
|
|
417
|
+
/**
|
|
418
|
+
* Is there anything to continue? Emits `hasSave(label, playtime, scene)` or
|
|
419
|
+
* `noSave`, and touches nothing.
|
|
420
|
+
*
|
|
421
|
+
* The label leads because that is what a menu shows; an unlabelled slot
|
|
422
|
+
* falls back to its scene key, so `hasSave → SlotInfo.setText` always says
|
|
423
|
+
* something rather than nothing.
|
|
424
|
+
*/
|
|
425
|
+
probe(): void;
|
|
426
|
+
/** Seconds this run has been playing, including time carried over a continue. */
|
|
427
|
+
get playtime(): number;
|
|
428
|
+
/**
|
|
429
|
+
* The scene key this slot was saved from — what a loader needs to route.
|
|
430
|
+
* Null when the slot is empty.
|
|
431
|
+
*/
|
|
432
|
+
slotScene(): string | null;
|
|
433
|
+
/**
|
|
434
|
+
* Write the run to its slot. Emits `saved(slotId)`.
|
|
435
|
+
*
|
|
436
|
+
* Wire it to whatever marks the moment. Extra signal arguments are ignored,
|
|
437
|
+
* so `triggerEnter → save` works as-is.
|
|
438
|
+
*/
|
|
439
|
+
save(): void;
|
|
440
|
+
/**
|
|
441
|
+
* Give this scene the slot's state back. Emits `restored(count)`, or
|
|
442
|
+
* `noSave` when the slot is empty — which is what greys out a Continue button.
|
|
443
|
+
*
|
|
444
|
+
* Restoring does NOT route: if the slot names another scene, that is your
|
|
445
|
+
* loader's business, and `slot.scene` is the key it needs.
|
|
446
|
+
*/
|
|
447
|
+
restore(): void;
|
|
448
|
+
/** Forget this slot — a "delete save" button. */
|
|
449
|
+
clear(): void;
|
|
450
|
+
/** The run's own clock survives a save/continue cycle. */
|
|
451
|
+
override serialize(): JsonValue;
|
|
452
|
+
override deserialize(data: JsonValue): void;
|
|
453
|
+
}
|
|
454
|
+
//#endregion
|
|
378
455
|
//#region src/gameplay/score-keeper.d.ts
|
|
379
456
|
/**
|
|
380
457
|
* The game's state hub — score, lives, and win/lose detection. Put it on the
|
|
@@ -787,4 +864,4 @@ declare function registerGameplayBehaviors(opts?: {
|
|
|
787
864
|
replace?: boolean;
|
|
788
865
|
}): void;
|
|
789
866
|
//#endregion
|
|
790
|
-
export { CameraShake, Chase, Collector, Cooldown, DamageOnContact, DayNight, type DayPhase, FollowCamera, GAMEPLAY_BEHAVIORS, GameFlow, type GameFlowState, Health, Interactable, Lifetime, MoveTo, Oscillate, PathFollow, Patrol, Pickup, Projectile, ScoreKeeper, Spawner, Wander, WaveSpawner, ZombieAI, goToScene, hitStop, phaseOf, registerGameplayBehaviors, restartScene, screenFlash };
|
|
867
|
+
export { CameraShake, Chase, Collector, Cooldown, DamageOnContact, DayNight, type DayPhase, FollowCamera, GAMEPLAY_BEHAVIORS, GameFlow, type GameFlowState, Health, Interactable, Lifetime, MoveTo, Oscillate, PathFollow, Patrol, Pickup, Projectile, SavePoint, ScoreKeeper, Spawner, Wander, WaveSpawner, ZombieAI, goToScene, hitStop, phaseOf, registerGameplayBehaviors, restartScene, screenFlash };
|
package/dist/gameplay.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
export { CameraShake, Chase, Collector, Cooldown, DamageOnContact, DayNight, FollowCamera, GAMEPLAY_BEHAVIORS, GameFlow, Health, Interactable, Lifetime, MoveTo, Oscillate, PathFollow, Patrol, Pickup, Projectile, ScoreKeeper, Spawner, Wander, WaveSpawner, ZombieAI, goToScene, hitStop, phaseOf, registerGameplayBehaviors, restartScene, screenFlash };
|
|
1
|
+
import { A as Chase, C as restartScene, D as DamageOnContact, E as phaseOf, O as Health, S as goToScene, T as DayNight, _ as Cooldown, a as Wander, b as Interactable, c as SavePoint, d as Patrol, f as PathFollow, g as CameraShake, h as Lifetime, i as WaveSpawner, k as Collector, l as Projectile, m as MoveTo, n as registerGameplayBehaviors, o as Spawner, p as Oscillate, r as ZombieAI, s as ScoreKeeper, t as GAMEPLAY_BEHAVIORS, u as Pickup, v as hitStop, w as FollowCamera, x as GameFlow, y as screenFlash } from "./gameplay-B6jqvYeM.js";
|
|
2
|
+
export { CameraShake, Chase, Collector, Cooldown, DamageOnContact, DayNight, FollowCamera, GAMEPLAY_BEHAVIORS, GameFlow, Health, Interactable, Lifetime, MoveTo, Oscillate, PathFollow, Patrol, Pickup, Projectile, SavePoint, ScoreKeeper, Spawner, Wander, WaveSpawner, ZombieAI, goToScene, hitStop, phaseOf, registerGameplayBehaviors, restartScene, screenFlash };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as T_PREFIX, A as SettingsValues, At as LogEntry, B as captureBehaviors, C as EngineStats, Ct as MusicTrack, Dt as Node, E as DeviceHints, Et as BusName, F as BehaviorState, G as ORDER_GROUP_BASE, H as savesWithoutUid, I as RestoreReport, J as effectiveOrder, K as OrderGroup, L as SaveSlot, M as readDeviceHints, Mt as LogManager, N as suggestQuality, Nt as Signal, O as QualityTier, Ot as NodeLifecycle, P as Scene, Pt as SignalListener, Q as Localization, R as SaveSlots, S as Scheduler, St as MusicManager, T as RendererStats, Tt as AudioBuses, U as SaveStore, V as restoreBehaviors, W as createSaveStore, X as BASE_LOCALE, Y as resolveOrderGroups, Z as LocaleTables, _ as mergeStaticSignals, _t as SfxParams, a as clearBehaviors, at as isAudioContextAvailable, b as Engine, bt as synthSfx, c as registeredBehaviors, ct as Listener, d as PropSchema, dt as SpatialParams, et as suggestLocale, f as clearRegistry, ft as Vec3, g as getNodeType, gt as SFX_PRESET_NAMES, h as getNodeSignals, ht as SFX_PRESETS, i as behaviorSignals, it as SfxPlayOptions, j as qualityEnvironment, jt as LogLevel, k as Settings, kt as SceneTree, l as NodeCtor, lt as ROLLOFF_MODELS, m as getNodeSchema, mt as spatialPan, n as BehaviorCtor, nt as InputMap, o as getBehavior, ot as Voice, p as createNode, pt as spatialGain, q as OrderGroupTable, r as behaviorSchema, rt as SfxEngine, s as registerBehavior, st as VoicePreset, t as Behavior, tt as translationKey, u as PropDef, ut as RolloffModel, v as registerNode, vt as SfxWave, w as GameStats, wt as PlayMusicOptions, x as EngineOptions, xt as MusicBackend, y as registeredTypes, yt as SynthOptions, z as behaviorsWithoutSave } from "./behavior-uPEuZrUB.js";
|
|
2
2
|
import { a as Rng, c as JsonValue, d as jsonKind, i as SceneJson, l as jsonClone, n as NodeJson, o as JsonKind, r as SCENE_FORMAT, s as JsonObject, t as ConnectionJson, u as jsonEquals } from "./schema-CFeioQRE.js";
|
|
3
|
-
import { n as loadScene, t as LoadSceneOptions } from "./loader-
|
|
3
|
+
import { n as loadScene, t as LoadSceneOptions } from "./loader-B9iTqs27.js";
|
|
4
4
|
import { i as resolveFrames, n as AnimationEntry, r as resolveAnimation, t as AnimationDef } from "./sprite-animation-CMr6f1K2.js";
|
|
5
5
|
import { n as ParticleSimConfig, r as ParticleView, t as ParticleSim } from "./particle-sim-BzJ1yxoE.js";
|
|
6
|
-
import { a as AudioElementLike, i as gridFromRows, n as PathGrid, o as AudioPlayer, r as findPath, t as FindPathOptions } from "./pathfinding-
|
|
7
|
-
import { a as startRecording, c as IncantoErrorDetails, i as replay, l as auditScene, n as ReplayEvent, o as IncantoError, r as ReplayJson, s as IncantoErrorCode, t as Recorder } from "./replay-
|
|
6
|
+
import { a as AudioElementLike, i as gridFromRows, n as PathGrid, o as AudioPlayer, r as findPath, t as FindPathOptions } from "./pathfinding-CAR9DjQQ.js";
|
|
7
|
+
import { a as startRecording, c as IncantoErrorDetails, i as replay, l as auditScene, n as ReplayEvent, o as IncantoError, r as ReplayJson, s as IncantoErrorCode, t as Recorder } from "./replay-BU1CCM15.js";
|
|
8
8
|
|
|
9
9
|
//#region src/core/audio/crossfade.d.ts
|
|
10
10
|
/**
|
|
@@ -189,6 +189,66 @@ type ParsedNodePath = {
|
|
|
189
189
|
};
|
|
190
190
|
declare function parseNodePath(path: string): ParsedNodePath;
|
|
191
191
|
//#endregion
|
|
192
|
+
//#region src/core/node-refs.d.ts
|
|
193
|
+
/** The scene-JSON shape this walks. */
|
|
194
|
+
interface RefNode {
|
|
195
|
+
name?: string;
|
|
196
|
+
type?: string;
|
|
197
|
+
props?: JsonObject;
|
|
198
|
+
script?: {
|
|
199
|
+
name?: string;
|
|
200
|
+
props?: JsonObject;
|
|
201
|
+
};
|
|
202
|
+
children?: RefNode[];
|
|
203
|
+
}
|
|
204
|
+
/** Why a written path leads nowhere. Structured so callers can localize it. */
|
|
205
|
+
type RefProblem = {
|
|
206
|
+
kind: "grammar";
|
|
207
|
+
message: string;
|
|
208
|
+
} | {
|
|
209
|
+
kind: "noMatch";
|
|
210
|
+
name: string;
|
|
211
|
+
} | {
|
|
212
|
+
kind: "ambiguous";
|
|
213
|
+
name: string;
|
|
214
|
+
count: number;
|
|
215
|
+
} | {
|
|
216
|
+
kind: "wrongRoot";
|
|
217
|
+
first: string;
|
|
218
|
+
root: string;
|
|
219
|
+
} | {
|
|
220
|
+
kind: "noChild";
|
|
221
|
+
parent: string;
|
|
222
|
+
segment: string;
|
|
223
|
+
} | {
|
|
224
|
+
kind: "aboveRoot";
|
|
225
|
+
};
|
|
226
|
+
type RefResult = {
|
|
227
|
+
ok: true;
|
|
228
|
+
path: number[];
|
|
229
|
+
} | {
|
|
230
|
+
ok: false;
|
|
231
|
+
problem: RefProblem;
|
|
232
|
+
};
|
|
233
|
+
/**
|
|
234
|
+
* Resolve `value` from the node at `owner`, the way the engine would.
|
|
235
|
+
*
|
|
236
|
+
* Note the asymmetry with connections, whose paths resolve from the SCENE ROOT:
|
|
237
|
+
* a prop's path resolves from the node holding it, which is why `'../Skin'` is
|
|
238
|
+
* the documented default of `CharacterController3D.skinPath` and would mean
|
|
239
|
+
* nothing in a connection.
|
|
240
|
+
*/
|
|
241
|
+
declare function resolveRefInJson(root: RefNode | undefined, owner: readonly number[], value: string): RefResult;
|
|
242
|
+
/** The problem in English, for `incanto-check` and as the editor's base text. */
|
|
243
|
+
declare function describeRefProblem(problem: RefProblem, value: string): string;
|
|
244
|
+
/**
|
|
245
|
+
* Scene lints for node-path props that point at nothing.
|
|
246
|
+
*
|
|
247
|
+
* An EMPTY value is not reported: `''` is the default of most of these props and
|
|
248
|
+
* means "not set", which is a choice rather than a typo.
|
|
249
|
+
*/
|
|
250
|
+
declare function nodeRefWarnings(scene: JsonObject): string[];
|
|
251
|
+
//#endregion
|
|
192
252
|
//#region src/core/nodes/hud.d.ts
|
|
193
253
|
/**
|
|
194
254
|
* DOM-backed HUD widgets — the layer 18 of 22 example games hand-rolled.
|
|
@@ -258,6 +318,15 @@ declare class HudLayer extends Node {
|
|
|
258
318
|
}
|
|
259
319
|
/** Shared plumbing: mount into the parent HudLayer's anchor slot. */
|
|
260
320
|
declare abstract class HudWidgetBase extends Node {
|
|
321
|
+
/**
|
|
322
|
+
* Wireable visibility: `noSave → Continue.hide`.
|
|
323
|
+
*
|
|
324
|
+
* `visible` is a prop, and a `connections[]` handler has to be a METHOD — the
|
|
325
|
+
* same wall that kept a score off the screen until widgets grew `setText`. A
|
|
326
|
+
* title screen greying out its own Continue button is the case that asked.
|
|
327
|
+
*/
|
|
328
|
+
show(..._args: unknown[]): void;
|
|
329
|
+
hide(): void;
|
|
261
330
|
static readonly props: PropSchema;
|
|
262
331
|
static readonly signals: readonly string[];
|
|
263
332
|
anchor: HudAnchor;
|
|
@@ -848,4 +917,4 @@ declare function computeViewport(canvasW: number, canvasH: number, viewport: {
|
|
|
848
917
|
/** Engine version. Kept in sync with package.json by the release pipeline. */
|
|
849
918
|
declare const VERSION: string;
|
|
850
919
|
//#endregion
|
|
851
|
-
export { type AnimationDef, type AnimationEntry, type AssetFailure, AudioBuses, type AudioElementLike, AudioPlayer, BASE_LOCALE, Behavior, type BehaviorCtor, type BehaviorState, type BusName, CONST_REF_KEY, type ComputedViewport, type ConnectionJson, type CrossfadeGains, type DebugLineSource, type DeviceHints, type DriveScript, type DriveStep, Engine, type EngineOptions, type EngineStats, type FindPathOptions, type GameStats, type GroupedLog, type HudAnchor, HudLayer, IncantoError, type IncantoErrorCode, type IncantoErrorDetails, InputMap, type JsonKind, type JsonObject, type JsonValue, type Listener, type LiveInput, type LiveReport, type LoadSceneOptions, type LocaleTables, Localization, type LogEntry, type LogLevel, LogManager, type MusicBackend, MusicManager, type MusicTrack, Node, type NodeCtor, type NodeJson, type NodeLifecycle, ORDER_GROUP_BASE, type OrderGroup, type OrderGroupTable, PARTICLE_PRESETS, PARTICLE_PRESET_NAMES, type ParsedNodePath, type ParticlePresetValues, ParticleSim, type ParticleSimConfig, type ParticleView, type PathGrid, type PlayMusicOptions, type PreloadResult, type PropDef, type PropSchema, type QualityTier, ROLLOFF_MODELS, type Recorder, type RendererStats, type ReplayEvent, type ReplayJson, type ResolvedRendering, type ResolvedViewport, type RestoreReport, Rng, type RolloffModel, SCENE_FORMAT, SFX_PRESETS, SFX_PRESET_NAMES, type SaveSlot, SaveSlots, type SaveStore, Scene, type SceneJson, SceneTree, type Scheduler, Settings, type SettingsValues, SfxEngine, type SfxParams, type SfxPlayOptions, type SfxWave, Signal, type SignalListener, type SpatialParams, type SynthOptions, T_PREFIX, Timer, TouchControls, type TouchControlsOptions, UiBanner, UiBar, UiButton, UiDialogue, UiImage, UiPanel, UiSelect, UiSlider, UiText, UiToggle, VERSION, type Vec3, type ViewportFit, type Voice, type VoicePreset, WebAudioMusicBackend, applyParticlePreset, assetUrls, attachTouchControls, auditScene, behaviorSchema, behaviorSignals, behaviorsWithoutSave, captureBehaviors, clearBehaviors, clearRegistry, computeViewport, createNode, createNoise2D, createSaveStore, crossfadeGains, duplicateNode, effectiveOrder, fadeGain, findPath, getBehavior, getNodeSchema, getNodeSignals, getNodeType, gridFromRows, isAudioContextAvailable, isConstRef, joystickVector, jsonClone, jsonEquals, jsonKind, loadScene, logReport, logText, mergeStaticSignals, newUid, parseDrive, parseNodePath, preloadUrls, qualityEnvironment, readDeviceHints, registerBehavior, registerCoreNodes, registerNode, registeredBehaviors, registeredTypes, replay, resolveAnimation, resolveConstants, resolveFrames, resolveOrderGroups, resolveRendering, resolveViewport, restoreBehaviors, serializeNode, spatialGain, spatialPan, startRecording, suggestLocale, suggestQuality, synthSfx, translationKey };
|
|
920
|
+
export { type AnimationDef, type AnimationEntry, type AssetFailure, AudioBuses, type AudioElementLike, AudioPlayer, BASE_LOCALE, Behavior, type BehaviorCtor, type BehaviorState, type BusName, CONST_REF_KEY, type ComputedViewport, type ConnectionJson, type CrossfadeGains, type DebugLineSource, type DeviceHints, type DriveScript, type DriveStep, Engine, type EngineOptions, type EngineStats, type FindPathOptions, type GameStats, type GroupedLog, type HudAnchor, HudLayer, IncantoError, type IncantoErrorCode, type IncantoErrorDetails, InputMap, type JsonKind, type JsonObject, type JsonValue, type Listener, type LiveInput, type LiveReport, type LoadSceneOptions, type LocaleTables, Localization, type LogEntry, type LogLevel, LogManager, type MusicBackend, MusicManager, type MusicTrack, Node, type NodeCtor, type NodeJson, type NodeLifecycle, ORDER_GROUP_BASE, type OrderGroup, type OrderGroupTable, PARTICLE_PRESETS, PARTICLE_PRESET_NAMES, type ParsedNodePath, type ParticlePresetValues, ParticleSim, type ParticleSimConfig, type ParticleView, type PathGrid, type PlayMusicOptions, type PreloadResult, type PropDef, type PropSchema, type QualityTier, ROLLOFF_MODELS, type Recorder, type RefNode, type RefProblem, type RefResult, type RendererStats, type ReplayEvent, type ReplayJson, type ResolvedRendering, type ResolvedViewport, type RestoreReport, Rng, type RolloffModel, SCENE_FORMAT, SFX_PRESETS, SFX_PRESET_NAMES, type SaveSlot, SaveSlots, type SaveStore, Scene, type SceneJson, SceneTree, type Scheduler, Settings, type SettingsValues, SfxEngine, type SfxParams, type SfxPlayOptions, type SfxWave, Signal, type SignalListener, type SpatialParams, type SynthOptions, T_PREFIX, Timer, TouchControls, type TouchControlsOptions, UiBanner, UiBar, UiButton, UiDialogue, UiImage, UiPanel, UiSelect, UiSlider, UiText, UiToggle, VERSION, type Vec3, type ViewportFit, type Voice, type VoicePreset, WebAudioMusicBackend, applyParticlePreset, assetUrls, attachTouchControls, auditScene, behaviorSchema, behaviorSignals, behaviorsWithoutSave, captureBehaviors, clearBehaviors, clearRegistry, computeViewport, createNode, createNoise2D, createSaveStore, crossfadeGains, describeRefProblem, duplicateNode, effectiveOrder, fadeGain, findPath, getBehavior, getNodeSchema, getNodeSignals, getNodeType, gridFromRows, isAudioContextAvailable, isConstRef, joystickVector, jsonClone, jsonEquals, jsonKind, loadScene, logReport, logText, mergeStaticSignals, newUid, nodeRefWarnings, parseDrive, parseNodePath, preloadUrls, qualityEnvironment, readDeviceHints, registerBehavior, registerCoreNodes, registerNode, registeredBehaviors, registeredTypes, replay, resolveAnimation, resolveConstants, resolveFrames, resolveOrderGroups, resolveRefInJson, resolveRendering, resolveViewport, restoreBehaviors, savesWithoutUid, serializeNode, spatialGain, spatialPan, startRecording, suggestLocale, suggestQuality, synthSfx, translationKey };
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { A as
|
|
1
|
+
import { A as registerBehavior, D as behaviorSignals, E as behaviorSchema, M as Signal, O as clearBehaviors, S as InputMap, T as Behavior, _ as savesWithoutUid, a as SCENE_FORMAT, b as effectiveOrder, c as SceneTree, d as resolveConstants, f as Node, g as restoreBehaviors, h as captureBehaviors, i as serializeNode, j as registeredBehaviors, k as getBehavior, l as CONST_REF_KEY, m as behaviorsWithoutSave, n as loadScene, o as computeViewport, p as SaveSlots, r as Scene, s as resolveViewport, u as isConstRef, v as createSaveStore, w as parseNodePath, x as resolveOrderGroups, y as ORDER_GROUP_BASE } from "./loader-B-Gft32x.js";
|
|
2
|
+
import { A as ROLLOFF_MODELS, B as AudioBuses, C as BASE_LOCALE, D as translationKey, E as suggestLocale, F as synthSfx, I as MusicManager, L as WebAudioMusicBackend, M as spatialPan, N as SFX_PRESETS, O as SfxEngine, P as SFX_PRESET_NAMES, R as crossfadeGains, S as LogManager, T as T_PREFIX, a as UiSlider, b as readDeviceHints, c as UiButton, d as UiBanner, f as UiBar, g as Settings, h as Engine, i as UiSelect, j as spatialGain, k as isAudioContextAvailable, l as UiDialogue, m as AudioPlayer, n as UiImage, o as UiToggle, p as UiText, r as UiPanel, s as Timer, t as registerCoreNodes, u as HudLayer, v as qualityEnvironment, w as Localization, x as suggestQuality, z as fadeGain } from "./register-DVwlnZAZ.js";
|
|
3
3
|
import { t as IncantoError } from "./errors-BpWbnbb_.js";
|
|
4
4
|
import { t as Rng } from "./rng-DP-SR7eg.js";
|
|
5
|
-
import { n as startRecording, r as auditScene, t as replay } from "./replay-j-m6lJ4W.js";
|
|
6
5
|
import { n as jsonEquals, r as jsonKind, t as jsonClone } from "./json-BLk7H2Qa.js";
|
|
7
|
-
import { a as getNodeSignals, c as mergeStaticSignals, i as getNodeSchema, l as registerNode, n as clearRegistry, o as getNodeType, r as createNode, u as registeredTypes } from "./registry-
|
|
6
|
+
import { a as getNodeSignals, c as mergeStaticSignals, i as getNodeSchema, l as registerNode, n as clearRegistry, o as getNodeType, r as createNode, u as registeredTypes } from "./registry-C7u42TID.js";
|
|
7
|
+
import { a as nodeRefWarnings, i as describeRefProblem, n as startRecording, o as resolveRefInJson, r as auditScene, t as replay } from "./replay-BicPOMX0.js";
|
|
8
8
|
import { n as logText, r as parseDrive, t as logReport } from "./log-report-lxrQY9cH.js";
|
|
9
9
|
import { t as createNoise2D } from "./noise-CGUMx44x.js";
|
|
10
10
|
import { a as PARTICLE_PRESETS, i as ParticleSim, n as resolveFrames, o as PARTICLE_PRESET_NAMES, s as applyParticlePreset, t as resolveAnimation } from "./sprite-animation-D_p28jwU.js";
|
|
11
|
-
import { a as findPath, i as preloadUrls, n as newUid, o as gridFromRows, r as assetUrls, t as VERSION } from "./src-
|
|
11
|
+
import { a as findPath, i as preloadUrls, n as newUid, o as gridFromRows, r as assetUrls, t as VERSION } from "./src-5gbZO47I.js";
|
|
12
12
|
import { i as resolveRendering, n as attachTouchControls, r as joystickVector, t as TouchControls } from "./touch-BoNg_MnF.js";
|
|
13
|
-
import { t as duplicateNode } from "./duplicate-
|
|
14
|
-
export { AudioBuses, AudioPlayer, BASE_LOCALE, Behavior, CONST_REF_KEY, Engine, HudLayer, IncantoError, InputMap, Localization, LogManager, MusicManager, Node, ORDER_GROUP_BASE, PARTICLE_PRESETS, PARTICLE_PRESET_NAMES, ParticleSim, ROLLOFF_MODELS, Rng, SCENE_FORMAT, SFX_PRESETS, SFX_PRESET_NAMES, SaveSlots, Scene, SceneTree, Settings, SfxEngine, Signal, T_PREFIX, Timer, TouchControls, UiBanner, UiBar, UiButton, UiDialogue, UiImage, UiPanel, UiSelect, UiSlider, UiText, UiToggle, VERSION, WebAudioMusicBackend, applyParticlePreset, assetUrls, attachTouchControls, auditScene, behaviorSchema, behaviorSignals, behaviorsWithoutSave, captureBehaviors, clearBehaviors, clearRegistry, computeViewport, createNode, createNoise2D, createSaveStore, crossfadeGains, duplicateNode, effectiveOrder, fadeGain, findPath, getBehavior, getNodeSchema, getNodeSignals, getNodeType, gridFromRows, isAudioContextAvailable, isConstRef, joystickVector, jsonClone, jsonEquals, jsonKind, loadScene, logReport, logText, mergeStaticSignals, newUid, parseDrive, parseNodePath, preloadUrls, qualityEnvironment, readDeviceHints, registerBehavior, registerCoreNodes, registerNode, registeredBehaviors, registeredTypes, replay, resolveAnimation, resolveConstants, resolveFrames, resolveOrderGroups, resolveRendering, resolveViewport, restoreBehaviors, serializeNode, spatialGain, spatialPan, startRecording, suggestLocale, suggestQuality, synthSfx, translationKey };
|
|
13
|
+
import { t as duplicateNode } from "./duplicate-B-OtSRFL.js";
|
|
14
|
+
export { AudioBuses, AudioPlayer, BASE_LOCALE, Behavior, CONST_REF_KEY, Engine, HudLayer, IncantoError, InputMap, Localization, LogManager, MusicManager, Node, ORDER_GROUP_BASE, PARTICLE_PRESETS, PARTICLE_PRESET_NAMES, ParticleSim, ROLLOFF_MODELS, Rng, SCENE_FORMAT, SFX_PRESETS, SFX_PRESET_NAMES, SaveSlots, Scene, SceneTree, Settings, SfxEngine, Signal, T_PREFIX, Timer, TouchControls, UiBanner, UiBar, UiButton, UiDialogue, UiImage, UiPanel, UiSelect, UiSlider, UiText, UiToggle, VERSION, WebAudioMusicBackend, applyParticlePreset, assetUrls, attachTouchControls, auditScene, behaviorSchema, behaviorSignals, behaviorsWithoutSave, captureBehaviors, clearBehaviors, clearRegistry, computeViewport, createNode, createNoise2D, createSaveStore, crossfadeGains, describeRefProblem, duplicateNode, effectiveOrder, fadeGain, findPath, getBehavior, getNodeSchema, getNodeSignals, getNodeType, gridFromRows, isAudioContextAvailable, isConstRef, joystickVector, jsonClone, jsonEquals, jsonKind, loadScene, logReport, logText, mergeStaticSignals, newUid, nodeRefWarnings, parseDrive, parseNodePath, preloadUrls, qualityEnvironment, readDeviceHints, registerBehavior, registerCoreNodes, registerNode, registeredBehaviors, registeredTypes, replay, resolveAnimation, resolveConstants, resolveFrames, resolveOrderGroups, resolveRefInJson, resolveRendering, resolveViewport, restoreBehaviors, savesWithoutUid, serializeNode, spatialGain, spatialPan, startRecording, suggestLocale, suggestQuality, synthSfx, translationKey };
|