incanto 0.21.0 → 0.23.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.js +3 -3
- package/dist/3d.d.ts +28 -0
- package/dist/3d.js +4 -3
- package/dist/{create-game-Ct86zczq.js → create-game-DrcEgRup.js} +3 -3
- package/dist/{create-game-xbxZRFwR.js → create-game-OyjhYUL3.js} +6 -3
- package/dist/{duplicate-BINwP0WG.js → duplicate-BgtFrFo4.js} +15 -1
- package/dist/gameplay-BJ5gXIks.js +5516 -0
- package/dist/gameplay.js +1 -1
- package/dist/index.js +3 -3
- package/dist/{particle-sim-CyUU7HVU.js → particle-sim-Bw7hB93B.js} +1 -15
- package/dist/{physics-2d-BiIdl51r.js → physics-2d-DiVFFlH3.js} +1 -1
- package/dist/{physics-3d-DHTZUrr0.js → physics-3d-CpIB9C-F.js} +2 -1
- package/dist/react.js +1 -1
- package/dist/{register-BC55Ez6I.js → register-CpJORtm4.js} +16 -3201
- package/dist/{register-Djwckzgx.js → register-CvpSUU3O.js} +2 -1
- package/dist/test.js +7 -7
- package/editor/assets/{agent8-Cdd8g6w6.js → agent8-C_pbgaQC.js} +1 -1
- package/editor/assets/{index-Dt44Z9ka.js → index-D-bWhSDj.js} +3036 -2926
- package/editor/index.html +1 -1
- package/package.json +1 -1
- package/schemas/scene.schema.json +4 -0
- package/skills/incanto-environment.md +68 -0
- package/skills/incanto-gameplay-behaviors.md +36 -1
- package/skills/incanto-node-reference.md +16 -0
- 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/gameplay-sSqrUcnz.js +0 -1978
package/dist/2d.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as IncantoError } from "./errors-BpWbnbb_.js";
|
|
2
|
-
import { a as AssetStore2D, i as syncTree2D, r as Renderer2D, t as createGame2D } from "./create-game-
|
|
3
|
-
import { _ as RigidBody2D, a as parseCells, c as ColorRect2D, d as AnimatedSprite2D, f as Sprite2D, g as PhysicsBody2D, h as CharacterBody2D, i as mergeSolidRects, l as CharacterController2D, m as Area2D, n as UILayer, o as Particles2D, p as Joint2D, r as TileMap2D, s as Label, t as registerNodes2D, u as Camera2D, v as StaticBody2D, y as Node2D } from "./register-
|
|
4
|
-
import { n as enablePhysics2D, t as Physics2D } from "./physics-2d-
|
|
2
|
+
import { a as AssetStore2D, i as syncTree2D, r as Renderer2D, t as createGame2D } from "./create-game-DrcEgRup.js";
|
|
3
|
+
import { _ as RigidBody2D, a as parseCells, c as ColorRect2D, d as AnimatedSprite2D, f as Sprite2D, g as PhysicsBody2D, h as CharacterBody2D, i as mergeSolidRects, l as CharacterController2D, m as Area2D, n as UILayer, o as Particles2D, p as Joint2D, r as TileMap2D, s as Label, t as registerNodes2D, u as Camera2D, v as StaticBody2D, y as Node2D } from "./register-CvpSUU3O.js";
|
|
4
|
+
import { n as enablePhysics2D, t as Physics2D } from "./physics-2d-DiVFFlH3.js";
|
|
5
5
|
//#region src/2d/library-sprite.ts
|
|
6
6
|
/**
|
|
7
7
|
* Turn a library sprite-animation JSON into a scene-ready spritesheet asset
|
package/dist/3d.d.ts
CHANGED
|
@@ -532,6 +532,15 @@ interface CausticsConfig {
|
|
|
532
532
|
/** Animation speed multiplier. */
|
|
533
533
|
speed: number;
|
|
534
534
|
}
|
|
535
|
+
/**
|
|
536
|
+
* God rays: the shafts of sunlight the surface's own ripples focus into the
|
|
537
|
+
* water column. Caustics light what the beams LAND on; this is the beam itself.
|
|
538
|
+
*/
|
|
539
|
+
interface LightShaftConfig {
|
|
540
|
+
enabled: boolean;
|
|
541
|
+
/** Brightness of the accumulated shafts. */
|
|
542
|
+
strength: number;
|
|
543
|
+
}
|
|
535
544
|
/** Resolved underwater look: fog color, view distance, and the caustics layer. */
|
|
536
545
|
interface UnderwaterConfig {
|
|
537
546
|
enabled: boolean;
|
|
@@ -541,6 +550,8 @@ interface UnderwaterConfig {
|
|
|
541
550
|
visibility: number;
|
|
542
551
|
/** Caustics projected onto submerged surfaces (the floor especially). */
|
|
543
552
|
caustics: CausticsConfig;
|
|
553
|
+
/** Sunlight shafts hanging in the water column. */
|
|
554
|
+
rays: LightShaftConfig;
|
|
544
555
|
}
|
|
545
556
|
//#endregion
|
|
546
557
|
//#region src/3d/environment-3d.d.ts
|
|
@@ -2274,6 +2285,12 @@ declare class Water3D extends Node3D implements RenderHook3D, SunConsumer3D {
|
|
|
2274
2285
|
* render per frame, so it is off by default; a still lake earns it.
|
|
2275
2286
|
*/
|
|
2276
2287
|
mirror: boolean;
|
|
2288
|
+
/**
|
|
2289
|
+
* Milliseconds between planar-mirror re-renders. A reflection seen through a
|
|
2290
|
+
* rippling surface does not need 60 Hz — 33 ms halves the pass's cost and
|
|
2291
|
+
* nobody can tell. 0 re-renders every frame.
|
|
2292
|
+
*/
|
|
2293
|
+
mirrorInterval: number;
|
|
2277
2294
|
/** ms between reflection (and foam depth) re-renders. */
|
|
2278
2295
|
reflectionInterval: number;
|
|
2279
2296
|
/** Depth-texture shoreline foam — rides the always-on fancy scene pass. */
|
|
@@ -2367,6 +2384,8 @@ declare class Water3D extends Node3D implements RenderHook3D, SunConsumer3D {
|
|
|
2367
2384
|
private readonly _scratchA;
|
|
2368
2385
|
private readonly _scratchB;
|
|
2369
2386
|
private readonly _bodies;
|
|
2387
|
+
/** Scratch for the side-pass cull (no per-frame allocation). */
|
|
2388
|
+
private readonly _passHidden;
|
|
2370
2389
|
private cubeTarget;
|
|
2371
2390
|
private cubeCamera;
|
|
2372
2391
|
/** Reflection near plane (max half extent) — recreate the camera on resize. */
|
|
@@ -2377,6 +2396,7 @@ declare class Water3D extends Node3D implements RenderHook3D, SunConsumer3D {
|
|
|
2377
2396
|
private mirrorTarget;
|
|
2378
2397
|
private readonly mirrorCamera;
|
|
2379
2398
|
private readonly mirrorMatrix;
|
|
2399
|
+
private lastMirrorAt;
|
|
2380
2400
|
protected override _createObject3D(): Object3D;
|
|
2381
2401
|
override update(dt: number): void;
|
|
2382
2402
|
override _syncObject3D(): void;
|
|
@@ -2418,6 +2438,14 @@ declare class Water3D extends Node3D implements RenderHook3D, SunConsumer3D {
|
|
|
2418
2438
|
private resolvePalette;
|
|
2419
2439
|
private syncSimple;
|
|
2420
2440
|
private stepInteraction;
|
|
2441
|
+
/**
|
|
2442
|
+
* Surface height at WORLD (x, z) — the CPU twin of the shader's own waves,
|
|
2443
|
+
* so gameplay can float a raft, bob a buoy or place a jetty on the sea state
|
|
2444
|
+
* the player is actually looking at. Interaction ripples are excluded (a
|
|
2445
|
+
* splash must not re-trigger itself); outside the footprint it still answers
|
|
2446
|
+
* the still-water level, which is what a caller comparing heights wants.
|
|
2447
|
+
*/
|
|
2448
|
+
heightAt(x: number, z: number): number;
|
|
2421
2449
|
/** Base wave height at world (x, z) — the CPU twin of the active shader.
|
|
2422
2450
|
* Ripples are excluded on purpose: a splash must not re-trigger itself. */
|
|
2423
2451
|
private waveOffsetAt;
|
package/dist/3d.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { t as IncantoError } from "./errors-BpWbnbb_.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { A as Water3D, F as StaticBody3D, I as Node3D, M as CharacterBody3D, N as PhysicsBody3D, P as RigidBody3D, j as Area3D, z as WATER_MAX_RIPPLES } from "./gameplay-BJ5gXIks.js";
|
|
3
|
+
import { a as Environment3D, c as sunDirectionFromElevationAzimuth, i as syncTree, l as sunDirectionFromSky, o as horizonColorFromSky, r as Renderer3D, s as parseEnvironment3D, t as createGame3D, u as AssetStore3D } from "./create-game-OyjhYUL3.js";
|
|
4
|
+
import { A as QUARTER_PITCH, C as BoneAttachment3D, D as TERRAIN_THEMES, E as DEFAULT_TERRAIN_TEXTURE_BASE, M as keyboardIntensity, N as movementState, O as terrainThemeLayers, P as rigPose, S as BoneLookAt3D, T as Terrain3D, _ as Flowers3D, a as Trail3D, b as CharacterController3D, c as Particles3D, d as DirectionalLight3D, f as OmniLight3D, g as DENSITY_PRESETS, h as Foliage3D, i as Tree3D, j as cameraRelative, k as Joint3D, l as ModelInstance3D, m as MeshInstance3D, n as VOXEL_PALETTE, o as River3D, p as InstancedMesh3D, r as VoxelGrid3D, s as traceDownhillPath, t as registerNodes3D, u as LoftMesh3D, v as resolveFlowerDensity, w as Billboard3D, x as Camera3D, y as FLOWER_VARIETIES } from "./register-CpJORtm4.js";
|
|
4
5
|
import { n as splatWeights, t as buildHeightmap } from "./heightmap-CRK0M4jT.js";
|
|
5
|
-
import { n as enablePhysics3D, t as Physics3D } from "./physics-3d-
|
|
6
|
+
import { n as enablePhysics3D, t as Physics3D } from "./physics-3d-CpIB9C-F.js";
|
|
6
7
|
//#region src/3d/environment-runtime.ts
|
|
7
8
|
/**
|
|
8
9
|
* Live environment editing — the renderer re-applies `scene.environment`
|
|
@@ -3,10 +3,10 @@ import { _ as registerBehavior, n as loadScene, o as computeViewport, s as resol
|
|
|
3
3
|
import { l as AudioPlayer, u as Engine } from "./register-nObreUQR.js";
|
|
4
4
|
import { t as IncantoError } from "./errors-BpWbnbb_.js";
|
|
5
5
|
import { i as resolveRendering, n as attachTouchControls } from "./touch-031PxtCR.js";
|
|
6
|
-
import { n as registerGameplayBehaviors } from "./gameplay-
|
|
7
|
-
import { g as PhysicsBody2D, n as UILayer, t as registerNodes2D, u as Camera2D, y as Node2D } from "./register-
|
|
6
|
+
import { n as registerGameplayBehaviors } from "./gameplay-BJ5gXIks.js";
|
|
7
|
+
import { g as PhysicsBody2D, n as UILayer, t as registerNodes2D, u as Camera2D, y as Node2D } from "./register-CvpSUU3O.js";
|
|
8
8
|
import { t as debugSources } from "./debug-draw-CZmOYjL2.js";
|
|
9
|
-
import { n as enablePhysics2D } from "./physics-2d-
|
|
9
|
+
import { n as enablePhysics2D } from "./physics-2d-DiVFFlH3.js";
|
|
10
10
|
import { Box3, BufferAttribute, BufferGeometry, Color, LineBasicMaterial, LineSegments, LinearFilter, NearestFilter, OrthographicCamera, Raycaster, SRGBColorSpace, Scene, TextureLoader, Vector2, Vector3, WebGLRenderer } from "three";
|
|
11
11
|
//#region src/2d/assets.ts
|
|
12
12
|
/**
|
|
@@ -3,10 +3,10 @@ import { _ as registerBehavior, n as loadScene } from "./loader-BZqOKfI2.js";
|
|
|
3
3
|
import { l as AudioPlayer, u as Engine } from "./register-nObreUQR.js";
|
|
4
4
|
import { t as IncantoError } from "./errors-BpWbnbb_.js";
|
|
5
5
|
import { i as resolveRendering, n as attachTouchControls } from "./touch-031PxtCR.js";
|
|
6
|
-
import { n as registerGameplayBehaviors } from "./gameplay-
|
|
6
|
+
import { I as Node3D, N as PhysicsBody3D, R as createCausticsQuad, n as registerGameplayBehaviors } from "./gameplay-BJ5gXIks.js";
|
|
7
7
|
import { t as debugSources } from "./debug-draw-CZmOYjL2.js";
|
|
8
|
-
import {
|
|
9
|
-
import { n as enablePhysics3D } from "./physics-3d-
|
|
8
|
+
import { d as DirectionalLight3D, l as ModelInstance3D, t as registerNodes3D, x as Camera3D } from "./register-CpJORtm4.js";
|
|
9
|
+
import { n as enablePhysics3D } from "./physics-3d-CpIB9C-F.js";
|
|
10
10
|
import { ACESFilmicToneMapping, AmbientLight, Box3, BufferAttribute, BufferGeometry, Color, DepthTexture, EquirectangularReflectionMapping, FloatType, Fog, HalfFloatType, LineBasicMaterial, LineSegments, Matrix4, Mesh, PCFShadowMap, PMREMGenerator, PerspectiveCamera, PlaneGeometry, Quaternion, Raycaster, Scene, ShaderMaterial, Vector2, Vector3, WebGLRenderTarget, WebGLRenderer } from "three";
|
|
11
11
|
import { VRMLoaderPlugin, VRMUtils } from "@pixiv/three-vrm";
|
|
12
12
|
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
|
|
@@ -1762,6 +1762,9 @@ var Renderer3D = class {
|
|
|
1762
1762
|
u.uCausticIntensity.value = underwater.caustics.intensity;
|
|
1763
1763
|
u.uCausticScale.value = underwater.caustics.scale;
|
|
1764
1764
|
u.uMaxDist.value = underwater.visibility;
|
|
1765
|
+
const sunDir = this.environment.sunDirection;
|
|
1766
|
+
if (sunDir) u.uSunDirection.value.set(sunDir[0], sunDir[1], sunDir[2]);
|
|
1767
|
+
u.uRayStrength.value = underwater.rays.enabled ? underwater.rays.strength : 0;
|
|
1765
1768
|
this.webgl.render(this.causticsScene, camera);
|
|
1766
1769
|
}
|
|
1767
1770
|
/**
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { i as serializeNode, t as buildNodeJson } from "./loader-BZqOKfI2.js";
|
|
2
|
+
//#region src/core/order-groups.ts
|
|
3
|
+
const ORDER_GROUP_BASE = {
|
|
4
|
+
background: -2e3,
|
|
5
|
+
terrain: -1e3,
|
|
6
|
+
default: 0,
|
|
7
|
+
characters: 1e3,
|
|
8
|
+
effects: 2e3,
|
|
9
|
+
overlay: 3e3
|
|
10
|
+
};
|
|
11
|
+
/** base + fine offset (unknown group names fall back to `default`). */
|
|
12
|
+
function effectiveOrder(group, renderOrder) {
|
|
13
|
+
return (ORDER_GROUP_BASE[group] ?? 0) + renderOrder;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
2
16
|
//#region src/core/scene/duplicate.ts
|
|
3
17
|
function stripUids(json) {
|
|
4
18
|
const { uid: _uid, ...rest } = json;
|
|
@@ -19,4 +33,4 @@ function duplicateNode(node) {
|
|
|
19
33
|
return buildNodeJson(stripUids(serializeNode(node)));
|
|
20
34
|
}
|
|
21
35
|
//#endregion
|
|
22
|
-
export { duplicateNode as t };
|
|
36
|
+
export { ORDER_GROUP_BASE as n, effectiveOrder as r, duplicateNode as t };
|