incanto 0.72.0 → 0.74.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.
Files changed (84) hide show
  1. package/bin/incanto-check.mjs +114 -42
  2. package/bin/incanto-verify.mjs +9 -2
  3. package/dist/2d.d.ts +29 -4
  4. package/dist/2d.js +3 -3
  5. package/dist/3d.d.ts +137 -15
  6. package/dist/3d.js +6 -6
  7. package/dist/{agent8-BqZ0_O1u.js → agent8-CHTT4unP.js} +1 -1
  8. package/dist/{audio-player-ioZ7VKC6.d.ts → audio-player-BOrk4eQx.d.ts} +1 -1
  9. package/dist/{behavior-Bf9P9oB2.d.ts → behavior-J1cmVah0.d.ts} +8 -0
  10. package/dist/{create-game-CmFAtLZp.js → create-game-BAiA-FjP.js} +7 -7
  11. package/dist/{create-game-C9rWqqAC.js → create-game-ssvGvP7W.js} +7 -7
  12. package/dist/debug.d.ts +1 -1
  13. package/dist/debug.js +1 -1
  14. package/dist/editor.js +965 -893
  15. package/dist/{environment-presets-BeHoaGhy.js → environment-presets-BkqlWewf.js} +277 -60
  16. package/dist/{gameplay-BlQe-M07.js → gameplay-Bxe1sMVT.js} +611 -39
  17. package/dist/gameplay.d.ts +141 -7
  18. package/dist/gameplay.js +2 -2
  19. package/dist/index.d.ts +6 -4
  20. package/dist/index.js +6 -6
  21. package/dist/{loader-CBfQzB6S.d.ts → loader-BAeWMYfF.d.ts} +1 -1
  22. package/dist/net.d.ts +2 -2
  23. package/dist/net.js +2 -2
  24. package/dist/{physics-2d-DrIgTlLk.js → physics-2d-C-SfvjzH.js} +94 -11
  25. package/dist/{physics-3d-BzOCw1VS.js → physics-3d-rOzeg890.js} +202 -15
  26. package/dist/{picking-C9McVJrO.js → picking-BMV34Pjl.js} +2 -2
  27. package/dist/react.d.ts +1 -1
  28. package/dist/react.js +1 -1
  29. package/dist/{register-5IYfooAN.js → register-CjociOtt.js} +19 -4
  30. package/dist/{register-C8HuRkOf.js → register-DRQyZKGU.js} +45 -9
  31. package/dist/{replay-datiAE-b.js → replay-B6BbgGM_.js} +42 -6
  32. package/dist/{replay-CBEChqXq.d.ts → replay-wZK5Ok5c.d.ts} +1 -1
  33. package/dist/{save-slots-CEuJPUle.js → save-slots-CEUGeLuB.js} +11 -2
  34. package/dist/{split-screen-Bm5DTElG.js → split-screen-BxZ5rBe7.js} +4 -4
  35. package/dist/{split-screen-DkqLng6q.d.ts → split-screen-D6sx8z3Z.d.ts} +2 -2
  36. package/dist/{sprite-animation-CqR2o3SA.js → sprite-animation-Bz3DHD_4.js} +1 -1
  37. package/dist/{src-DRSsRleD.js → src-CqtvYtSN.js} +1 -1
  38. package/dist/{test-Djuq3Vhq.js → test-CEl0y2Sw.js} +162 -30
  39. package/dist/test.d.ts +56 -5
  40. package/dist/test.js +2 -2
  41. package/dist/{touch-BnCyPA0G.js → touch-CioTZB-y.js} +1 -1
  42. package/dist/vite.js +3 -3
  43. package/editor/assets/{agent8-CMKz2cax.js → agent8-BlzturGi.js} +1 -1
  44. package/editor/assets/{debug-DLrQm-az.js → debug-BMUi8usj.js} +1 -1
  45. package/editor/assets/{index-BEKuxYcE.js → index-CrUCQoaB.js} +53 -53
  46. package/editor/index.html +1 -1
  47. package/package.json +1 -1
  48. package/schemas/scene.schema.json +634 -10
  49. package/skills/incanto-3d-character.md +113 -5
  50. package/skills/incanto-assets.md +9 -3
  51. package/skills/incanto-behaviors-and-scripts.md +26 -2
  52. package/skills/incanto-building-2d-games.md +9 -0
  53. package/skills/incanto-building-3d-games.md +45 -0
  54. package/skills/incanto-editor.md +6 -1
  55. package/skills/incanto-environment.md +7 -2
  56. package/skills/incanto-game-feel.md +16 -11
  57. package/skills/incanto-gameplay-behaviors.md +179 -16
  58. package/skills/incanto-node-reference.md +124 -45
  59. package/skills/incanto-physics-and-input.md +67 -5
  60. package/skills/incanto-scene-json-authoring.md +9 -3
  61. package/skills/incanto-verifying-your-game.md +19 -2
  62. package/templates-app/beacon-isle-3d/PROJECT/Status.md +8 -0
  63. package/templates-app/beacon-isle-3d/PROJECT/Structure.md +3 -0
  64. package/templates-app/beacon-isle-3d/package.json +1 -1
  65. package/templates-app/beacon-isle-3d/src/game.scene.json +136 -0
  66. package/templates-app/beacon-isle-3d/verify.ts +144 -0
  67. package/templates-app/molehill-2d/package.json +1 -1
  68. package/templates-app/platformer-2d/PROJECT/Status.md +7 -0
  69. package/templates-app/platformer-2d/PROJECT/Structure.md +3 -0
  70. package/templates-app/platformer-2d/package.json +1 -1
  71. package/templates-app/platformer-2d/src/game.scene.json +126 -0
  72. package/templates-app/platformer-2d/verify.ts +54 -0
  73. package/templates-app/star-survivor/package.json +1 -1
  74. package/templates-app/tps-3d/PROJECT/Context.md +1 -1
  75. package/templates-app/tps-3d/PROJECT/Status.md +40 -1
  76. package/templates-app/tps-3d/PROJECT/Structure.md +19 -0
  77. package/templates-app/tps-3d/package.json +1 -1
  78. package/templates-app/tps-3d/src/behaviors.ts +9 -0
  79. package/templates-app/tps-3d/src/cover.scene.json +26 -0
  80. package/templates-app/tps-3d/src/game.scene.json +331 -75
  81. package/templates-app/tps-3d/src/main.ts +14 -0
  82. package/templates-app/tps-3d/src/pillar.scene.json +25 -0
  83. package/templates-app/tps-3d/verify.ts +582 -3
  84. package/templates-app/village-quest-3d/package.json +1 -1
@@ -55,7 +55,7 @@ Methods: `play(name)` · `stop()`
55
55
  | `visible` | `true` | boolean |
56
56
  | `renderOrder` | `0` | number |
57
57
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
58
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
58
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
59
59
  | `texture` | `""` | string |
60
60
  | `size` | `[1,1]` | array |
61
61
  | `billboard` | `"y"` | one of: `y` `full` `none` |
@@ -106,7 +106,7 @@ Methods: `overlapping(group?)`
106
106
  | `visible` | `true` | boolean |
107
107
  | `renderOrder` | `0` | number |
108
108
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
109
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
109
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
110
110
  | `collider` | `{}` | object |
111
111
  | `enabled` | `true` | boolean |
112
112
 
@@ -148,7 +148,7 @@ Reads: `playing: boolean`
148
148
  | `visible` | `true` | boolean |
149
149
  | `renderOrder` | `0` | number |
150
150
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
151
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
151
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
152
152
  | `mode` | `"screen"` | one of: `screen` `y` `none` |
153
153
 
154
154
  ## `BoneAttachment3D` — `incanto/3d`
@@ -162,7 +162,7 @@ Reads: `playing: boolean`
162
162
  | `visible` | `true` | boolean |
163
163
  | `renderOrder` | `0` | number |
164
164
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
165
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
165
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
166
166
  | `target` | `""` | node path · **required** |
167
167
  | `bone` | `""` | string |
168
168
 
@@ -181,7 +181,7 @@ Reads: `attachedBone: Object3D | null`
181
181
  | `visible` | `true` | boolean |
182
182
  | `renderOrder` | `0` | number |
183
183
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
184
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
184
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
185
185
  | `target` | `""` | node path · **required** |
186
186
  | `bone` | `"Head"` | string |
187
187
  | `lookAt` | `""` | node path |
@@ -223,7 +223,7 @@ Reads: `effectiveZoom: number`
223
223
  | `visible` | `true` | boolean |
224
224
  | `renderOrder` | `0` | number |
225
225
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
226
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
226
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
227
227
  | `fov` | `60` | number |
228
228
  | `near` | `0.1` | number |
229
229
  | `far` | `1000` | number |
@@ -247,6 +247,7 @@ Reads: `effectiveZoom: number`
247
247
  | `stickToGround` | `true` | boolean |
248
248
  | `slopeLimitDeg` | `45` | number |
249
249
  | `stepHeight` | `35` | number |
250
+ | `collideWithCharacters` | `true` | boolean |
250
251
 
251
252
  Signals: `triggerEnter(other)` · `triggerExit(other)`
252
253
 
@@ -263,13 +264,14 @@ Methods: `moveAndSlide()` · `isOnWall()` · `wallSide()` · `isOnCeiling()` ·
263
264
  | `visible` | `true` | boolean |
264
265
  | `renderOrder` | `0` | number |
265
266
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
266
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
267
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
267
268
  | `collider` | `{}` | object |
268
269
  | `enabled` | `true` | boolean |
269
270
  | `velocity` | `[0,0,0]` | array |
270
271
  | `stickToGround` | `true` | boolean |
271
272
  | `slopeLimitDeg` | `45` | number |
272
273
  | `stepHeight` | `0.35` | number |
274
+ | `collideWithCharacters` | `true` | boolean |
273
275
 
274
276
  Signals: `triggerEnter(other)` · `triggerExit(other)`
275
277
 
@@ -307,7 +309,7 @@ Signals: `movementStateChanged(state)`
307
309
  | `visible` | `true` | boolean |
308
310
  | `renderOrder` | `0` | number |
309
311
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
310
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
312
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
311
313
  | `view` | `"free"` | one of: `free` `firstPerson` `quarter` `side` |
312
314
  | `camDistance` | `4` | number |
313
315
  | `eyeHeight` | `0.64` | number |
@@ -320,6 +322,8 @@ Signals: `movementStateChanged(state)`
320
322
  | `jumpCutMultiplier` | `1` | number |
321
323
  | `maxJumps` | `1` | number |
322
324
  | `airControl` | `0.2` | number |
325
+ | `wallJumpImpulse` | `[0,0]` | array |
326
+ | `wallSlideSpeed` | `0` | number |
323
327
  | `fallGravity` | `2.5` | number |
324
328
  | `floatHeight` | `0.01` | number |
325
329
  | `stepHeight` | `0.35` | number |
@@ -339,7 +343,7 @@ Signals: `movementStateChanged(state)`
339
343
  | `skinYawOffset` | `0` | number |
340
344
  | `animations` | `{}` | object |
341
345
 
342
- Signals: `movementStateChanged(state)`
346
+ Signals: `movementStateChanged(state)` · `wallJumped`
343
347
 
344
348
  ## `ColorRect2D` — `incanto/2d`
345
349
 
@@ -370,7 +374,7 @@ Methods: `free()`
370
374
  | `visible` | `true` | boolean |
371
375
  | `renderOrder` | `0` | number |
372
376
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
373
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
377
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
374
378
  | `color` | `"#ffffff"` | string |
375
379
  | `intensity` | `1` | number |
376
380
  | `castShadow` | `false` | boolean |
@@ -389,7 +393,7 @@ Methods: `free()`
389
393
  | `visible` | `true` | boolean |
390
394
  | `renderOrder` | `0` | number |
391
395
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
392
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
396
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
393
397
  | `density` | `"sparse"` | one of: `lush` `sparse` `none`, or number |
394
398
  | `area` | `[20,20]` | array |
395
399
  | `seed` | `1` | number |
@@ -398,7 +402,7 @@ Methods: `free()`
398
402
  | `height` | `0.45` | number |
399
403
  | `clustering` | `0.6` | number |
400
404
  | `sway` | `0.5` | number |
401
- | `drape` | `null` | any JSON — see the skill for the accepted shapes |
405
+ | `drape` | `null` | any JSON — see the skill for the accepted shapes, or boolean |
402
406
  | `avoidWater` | `true` | boolean |
403
407
  | `terrain` | `""` | node path |
404
408
 
@@ -415,7 +419,7 @@ Methods: `free()`
415
419
  | `visible` | `true` | boolean |
416
420
  | `renderOrder` | `2` | number |
417
421
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
418
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
422
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
419
423
  | `kind` | `"grass"` | one of: `grass` `flowers` `reeds` |
420
424
  | `style` | `"mesh"` | one of: `blades` `simple` `mesh` `tufts` |
421
425
  | `tuftStyle` | `"grass"` | one of: `grass` `fern` |
@@ -434,7 +438,7 @@ Methods: `free()`
434
438
  | `coverage` | `0.85` | number |
435
439
  | `flowers` | `0` | number |
436
440
  | `seed` | `1` | number |
437
- | `drape` | `null` | any JSON — see the skill for the accepted shapes |
441
+ | `drape` | `null` | any JSON — see the skill for the accepted shapes, or boolean |
438
442
  | `avoidWater` | `true` | boolean |
439
443
  | `terrain` | `""` | node path |
440
444
 
@@ -461,14 +465,14 @@ Methods: `focusables()` · `focus(widget)`
461
465
  | `visible` | `true` | boolean |
462
466
  | `renderOrder` | `0` | number |
463
467
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
464
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
468
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
465
469
  | `mesh` | `"box"` | one of: `box` `sphere` `capsule` `plane` `cylinder` `gem` |
466
470
  | `size` | `[1,1,1]` | array |
467
471
  | `material` | `{}` | object |
468
472
  | `transforms` | `[]` | array |
469
473
  | `castShadow` | `false` | boolean |
470
474
  | `receiveShadow` | `false` | boolean |
471
- | `collider` | `null` | any JSON — see the skill for the accepted shapes |
475
+ | `collider` | `null` | any JSON — see the skill for the accepted shapes, or object |
472
476
 
473
477
  Methods: `free()`
474
478
 
@@ -492,7 +496,7 @@ Reads: `instanceCount: number`
492
496
  | `length` | `0` | number |
493
497
  | `stiffness` | `50` | number |
494
498
  | `damping` | `5` | number |
495
- | `collide` | `null` | any JSON — see the skill for the accepted shapes |
499
+ | `collide` | `null` | any JSON — see the skill for the accepted shapes, or boolean |
496
500
 
497
501
  ## `Joint3D` — `incanto/3d`
498
502
 
@@ -505,7 +509,7 @@ Reads: `instanceCount: number`
505
509
  | `visible` | `true` | boolean |
506
510
  | `renderOrder` | `0` | number |
507
511
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
508
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
512
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
509
513
  | `type` | `"spherical"` | one of: `fixed` `spherical` `rope` `spring` |
510
514
  | `target` | `""` | node path · **required** |
511
515
  | `anchor` | `[0,0,0]` | array |
@@ -513,7 +517,7 @@ Reads: `instanceCount: number`
513
517
  | `length` | `0` | number |
514
518
  | `stiffness` | `50` | number |
515
519
  | `damping` | `5` | number |
516
- | `collide` | `null` | any JSON — see the skill for the accepted shapes |
520
+ | `collide` | `null` | any JSON — see the skill for the accepted shapes, or boolean |
517
521
 
518
522
  ## `Label` — `incanto/2d`
519
523
 
@@ -546,7 +550,7 @@ Methods: `free()`
546
550
  | `visible` | `true` | boolean |
547
551
  | `renderOrder` | `0` | number |
548
552
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
549
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
553
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
550
554
  | `texture` | `""` | string |
551
555
  | `size` | `[1,1]` | array |
552
556
  | `billboard` | `"full"` | one of: `y` `full` `none` |
@@ -577,7 +581,7 @@ Methods: `free()`
577
581
  | `visible` | `true` | boolean |
578
582
  | `renderOrder` | `0` | number |
579
583
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
580
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
584
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
581
585
  | `sections` | `[]` | array |
582
586
  | `slices` | `24` | number |
583
587
  | `smooth` | `4` | number |
@@ -598,7 +602,7 @@ Methods: `free()`
598
602
  | `visible` | `true` | boolean |
599
603
  | `renderOrder` | `0` | number |
600
604
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
601
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
605
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
602
606
  | `mesh` | `"box"` | one of: `box` `sphere` `capsule` `plane` `cylinder` `gem` |
603
607
  | `size` | `[1,1,1]` | array |
604
608
  | `material` | `{}` | object |
@@ -618,7 +622,7 @@ Methods: `free()`
618
622
  | `visible` | `true` | boolean |
619
623
  | `renderOrder` | `0` | number |
620
624
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
621
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
625
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
622
626
  | `model` | `""` | string |
623
627
  | `animation` | `""` | string |
624
628
  | `targetHeight` | `0` | number |
@@ -685,7 +689,7 @@ Reads: `effectiveRenderOrder: number`
685
689
  | `visible` | `true` | boolean |
686
690
  | `renderOrder` | `0` | number |
687
691
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
688
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
692
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
689
693
 
690
694
  Methods: `applyGroundSnap()` · `free()`
691
695
 
@@ -702,7 +706,7 @@ Reads: `effectiveRenderOrder: number`
702
706
  | `visible` | `true` | boolean |
703
707
  | `renderOrder` | `0` | number |
704
708
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
705
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
709
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
706
710
  | `color` | `"#ffffff"` | string |
707
711
  | `intensity` | `1` | number |
708
712
  | `range` | `0` | number |
@@ -757,7 +761,7 @@ Reads: `aliveCount: number`
757
761
  | `visible` | `true` | boolean |
758
762
  | `renderOrder` | `0` | number |
759
763
  | `orderGroup` | `"effects"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
760
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
764
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
761
765
  | `preset` | `"custom"` | one of: `custom` `fire` `smoke` `sparks` `fireworks` `explosion` `flash` `lightning` `rain` `snow` `magic` |
762
766
  | `emitting` | `true` | boolean |
763
767
  | `worldSpace` | `false` | boolean |
@@ -792,7 +796,7 @@ Reads: `aliveCount: number`
792
796
  | Prop | Default | Kind |
793
797
  |---|---|---|
794
798
  | `target` | `".."` | node path |
795
- | `below` | `null` | any JSON — see the skill for the accepted shapes |
799
+ | `below` | `null` | any JSON — see the skill for the accepted shapes, or number |
796
800
  | `to` | `[]` | array |
797
801
  | `resetVelocity` | `true` | boolean |
798
802
 
@@ -818,6 +822,8 @@ Signals: `respawned`
818
822
  | `restitution` | `0` | number |
819
823
  | `linearVelocity` | `[0,0]` | array |
820
824
  | `angularVelocity` | `0` | number |
825
+ | `linearDamping` | `0` | number |
826
+ | `angularDamping` | `0` | number |
821
827
 
822
828
  Signals: `triggerEnter(other)` · `triggerExit(other)`
823
829
 
@@ -836,7 +842,7 @@ Reads: `velocity: number[]`
836
842
  | `visible` | `true` | boolean |
837
843
  | `renderOrder` | `0` | number |
838
844
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
839
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
845
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
840
846
  | `collider` | `{}` | object |
841
847
  | `enabled` | `true` | boolean |
842
848
  | `mass` | `1` | number |
@@ -846,6 +852,8 @@ Reads: `velocity: number[]`
846
852
  | `restitution` | `0` | number |
847
853
  | `linearVelocity` | `[0,0,0]` | array |
848
854
  | `angularVelocity` | `[0,0,0]` | array |
855
+ | `linearDamping` | `0` | number |
856
+ | `angularDamping` | `0` | number |
849
857
 
850
858
  Signals: `triggerEnter(other)` · `triggerExit(other)`
851
859
 
@@ -864,7 +872,7 @@ Reads: `velocity: number[]`
864
872
  | `visible` | `true` | boolean |
865
873
  | `renderOrder` | `0` | number |
866
874
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
867
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
875
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
868
876
  | `path` | `[]` | array |
869
877
  | `width` | `6` | number |
870
878
  | `widths` | `[]` | array |
@@ -885,6 +893,27 @@ Reads: `velocity: number[]`
885
893
 
886
894
  Methods: `sampleAt(x, z)` · `fallsAt()` · `free()`
887
895
 
896
+ ## `SpotLight3D` — `incanto/3d`
897
+
898
+ | Prop | Default | Kind |
899
+ |---|---|---|
900
+ | `position` | `[0,0,0]` | array |
901
+ | `rotation` | `[0,0,0]` | array |
902
+ | `static` | `false` | boolean |
903
+ | `scale` | `[1,1,1]` | array |
904
+ | `visible` | `true` | boolean |
905
+ | `renderOrder` | `0` | number |
906
+ | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
907
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
908
+ | `color` | `"#ffffff"` | string |
909
+ | `intensity` | `1` | number |
910
+ | `range` | `0` | number |
911
+ | `coneDeg` | `60` | number |
912
+ | `penumbra` | `0.3` | number |
913
+ | `castShadow` | `false` | boolean |
914
+ | `shadowMapSize` | `1024` | number |
915
+ | `lookAt` | `""` | node path |
916
+
888
917
  ## `Sprite2D` — `incanto/2d`
889
918
 
890
919
  | Prop | Default | Kind |
@@ -916,7 +945,7 @@ Methods: `free()`
916
945
  | `visible` | `true` | boolean |
917
946
  | `renderOrder` | `0` | number |
918
947
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
919
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
948
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
920
949
  | `texture` | `""` | string |
921
950
  | `size` | `[1,1]` | array |
922
951
  | `billboard` | `"y"` | one of: `y` `full` `none` |
@@ -944,6 +973,8 @@ Methods: `free()`
944
973
  | `visible` | `true` | boolean |
945
974
  | `collider` | `{}` | object |
946
975
  | `enabled` | `true` | boolean |
976
+ | `friction` | `0.5` | number |
977
+ | `restitution` | `0` | number |
947
978
 
948
979
  Signals: `triggerEnter(other)` · `triggerExit(other)`
949
980
 
@@ -958,9 +989,11 @@ Signals: `triggerEnter(other)` · `triggerExit(other)`
958
989
  | `visible` | `true` | boolean |
959
990
  | `renderOrder` | `0` | number |
960
991
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
961
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
992
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
962
993
  | `collider` | `{}` | object |
963
994
  | `enabled` | `true` | boolean |
995
+ | `friction` | `0.5` | number |
996
+ | `restitution` | `0` | number |
964
997
 
965
998
  Signals: `triggerEnter(other)` · `triggerExit(other)`
966
999
 
@@ -975,7 +1008,7 @@ Signals: `triggerEnter(other)` · `triggerExit(other)`
975
1008
  | `visible` | `true` | boolean |
976
1009
  | `renderOrder` | `0` | number |
977
1010
  | `orderGroup` | `"terrain"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
978
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
1011
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
979
1012
  | `size` | `[200,200]` | array |
980
1013
  | `maxHeight` | `28` | number |
981
1014
  | `seed` | `1` | number |
@@ -984,12 +1017,12 @@ Signals: `triggerEnter(other)` · `triggerExit(other)`
984
1017
  | `roughness` | `0.5` | number |
985
1018
  | `detail` | `4` | number |
986
1019
  | `flatThreshold` | `0.95` | number |
987
- | `islandEdge` | `null` | any JSON — see the skill for the accepted shapes |
1020
+ | `islandEdge` | `null` | any JSON — see the skill for the accepted shapes, or boolean |
988
1021
  | `layers` | `[]` | array |
989
1022
  | `textureBase` | `"https://agent8-games.verse8.io/assets/3D/default/textures/terrain"` | string |
990
1023
  | `basins` | `[]` | array |
991
1024
  | `channels` | `[]` | array |
992
- | `wetline` | `null` | any JSON — see the skill for the accepted shapes |
1025
+ | `wetline` | `null` | any JSON — see the skill for the accepted shapes, or object |
993
1026
 
994
1027
  Methods: `heightAt(x, z)` · `resolvedLayers()` · `free()`
995
1028
 
@@ -1029,6 +1062,8 @@ Signals: `timeout`
1029
1062
 
1030
1063
  Methods: `start(time?)` · `stop()`
1031
1064
 
1065
+ Reads: `timeLeft: number`
1066
+
1032
1067
  ## `Trail3D` — `incanto/3d`
1033
1068
 
1034
1069
  | Prop | Default | Kind |
@@ -1040,7 +1075,7 @@ Methods: `start(time?)` · `stop()`
1040
1075
  | `visible` | `true` | boolean |
1041
1076
  | `renderOrder` | `0` | number |
1042
1077
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
1043
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
1078
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
1044
1079
  | `width` | `0.3` | number |
1045
1080
  | `color` | `"#ffffff"` | string |
1046
1081
  | `opacity` | `0.8` | number |
@@ -1064,7 +1099,7 @@ Reads: `pointCount: number`
1064
1099
  | `visible` | `true` | boolean |
1065
1100
  | `renderOrder` | `0` | number |
1066
1101
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
1067
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
1102
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
1068
1103
  | `tier` | `"medium"` | one of: `simple` `medium` `high` |
1069
1104
  | `type` | `"conifer"` | one of: `conifer` `broadleaf` `dead` `bush` |
1070
1105
  | `seed` | `1` | number |
@@ -1077,7 +1112,7 @@ Reads: `pointCount: number`
1077
1112
  | `leafFadeStart` | `0` | number |
1078
1113
  | `leafFadeEnd` | `0` | number |
1079
1114
  | `leafShadows` | `true` | boolean |
1080
- | `drape` | `null` | any JSON — see the skill for the accepted shapes |
1115
+ | `drape` | `null` | any JSON — see the skill for the accepted shapes, or boolean |
1081
1116
  | `terrain` | `""` | node path |
1082
1117
 
1083
1118
  Methods: `free()`
@@ -1387,7 +1422,7 @@ Signals: `dragStarted` · `dragCancelled` · `droppedOn` · `dropped` · `change
1387
1422
  | `visible` | `true` | boolean |
1388
1423
  | `renderOrder` | `0` | number |
1389
1424
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
1390
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
1425
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
1391
1426
  | `voxels` | `[]` | array |
1392
1427
 
1393
1428
  Signals: `blocksChanged`
@@ -1405,7 +1440,7 @@ Methods: `blockCount()` · `tileAt(x, y, z)` · `setBlocks(blocks)` · `addBlock
1405
1440
  | `visible` | `true` | boolean |
1406
1441
  | `renderOrder` | `1` | number |
1407
1442
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
1408
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
1443
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
1409
1444
  | `size` | `[40,40]` | array |
1410
1445
  | `color` | `"#2a6fbe"` | string |
1411
1446
  | `opacity` | `0.8` | number |
@@ -1419,7 +1454,7 @@ Methods: `blockCount()` · `tileAt(x, y, z)` · `setBlocks(blocks)` · `addBlock
1419
1454
  | `mirrorInterval` | `33` | number |
1420
1455
  | `swellSteepness` | `0.35` | number |
1421
1456
  | `foam` | `true` | boolean |
1422
- | `reflectivity` | `null` | any JSON — see the skill for the accepted shapes |
1457
+ | `reflectivity` | `null` | any JSON — see the skill for the accepted shapes, or number |
1423
1458
  | `interaction` | `true` | boolean |
1424
1459
  | `splash` | `true` | boolean |
1425
1460
  | `sunDirection` | `[0.5,0.8,0.3]` | array |
@@ -1452,7 +1487,7 @@ Methods: `underwaterAt(camX, camY, camZ)` · `free()` · `heightAt(x, z)`
1452
1487
  | `visible` | `true` | boolean |
1453
1488
  | `renderOrder` | `0` | number |
1454
1489
  | `orderGroup` | `"default"` | one of: `background` `terrain` `default` `characters` `effects` `overlay` |
1455
- | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes |
1490
+ | `snapToGround` | `null` | any JSON — see the skill for the accepted shapes, or boolean or number |
1456
1491
  | `size` | `[2,1,1]` | array |
1457
1492
  | `enabled` | `true` | boolean |
1458
1493
 
@@ -1492,16 +1527,31 @@ Methods: `shake(magnitude, seconds?)`
1492
1527
  | Prop | Default | Kind |
1493
1528
  |---|---|---|
1494
1529
  | `enabled` | `true` | boolean |
1495
- | `target` | `""` | node path · **required** |
1530
+ | `target` | `""` | node path |
1531
+ | `targetGroup` | `""` | string |
1532
+ | `retargetEvery` | `0.25` | number |
1496
1533
  | `speed` | `60` | number |
1497
1534
  | `stopRange` | `0` | number |
1498
1535
  | `loseRange` | `0` | number |
1499
1536
  | `moveParent` | `false` | boolean |
1537
+ | `ground` | `null` | any JSON — see the skill for the accepted shapes, or boolean |
1500
1538
  | `facePath` | `""` | node path |
1501
1539
  | `turnSpeed` | `100` | number |
1502
1540
 
1503
1541
  Signals: `reachedTarget` · `lostTarget`
1504
1542
 
1543
+ ### `Checkpoint`
1544
+
1545
+ | Prop | Default | Kind |
1546
+ |---|---|---|
1547
+ | `enabled` | `true` | boolean |
1548
+ | `respawn` | `""` | node path · **required** |
1549
+ | `group` | `"player"` | string |
1550
+ | `once` | `true` | boolean |
1551
+ | `dropBelow` | `0` | number |
1552
+
1553
+ Signals: `activated`
1554
+
1505
1555
  ### `Clickable`
1506
1556
 
1507
1557
  | Prop | Default | Kind |
@@ -1626,7 +1676,7 @@ Methods: `gameOver(text?, color?)` · `win(text?, color?)` · `pause()` · `resu
1626
1676
 
1627
1677
  Signals: `damaged(amount, current)` · `healed(amount, current)` · `died` · `revived` · `healthChanged`
1628
1678
 
1629
- Methods: `damage(n)` · `heal(n)` · `revive(hp?)` · `reviveFull()` · `kill()` · `announce()`
1679
+ Methods: `damage(n)` · `protect(seconds)` · `heal(n)` · `revive(hp?)` · `reviveFull()` · `kill()` · `announce()`
1630
1680
 
1631
1681
  Reads: `isDead: boolean` · `invulnerableRemaining: number`
1632
1682
 
@@ -1638,8 +1688,11 @@ Reads: `isDead: boolean` · `invulnerableRemaining: number`
1638
1688
  | `action` | `"interact"` | string |
1639
1689
  | `range` | `2` | number |
1640
1690
  | `actorGroup` | `"player"` | string |
1691
+ | `prompt` | `""` | string |
1692
+ | `focus` | `"any"` | one of: `any` `nearest` `facing` |
1693
+ | `coneDeg` | `40` | number |
1641
1694
 
1642
- Signals: `interacted(actor)`
1695
+ Signals: `interacted(actor)` · `focused` · `unfocused`
1643
1696
 
1644
1697
  ### `Lifetime`
1645
1698
 
@@ -1685,6 +1738,9 @@ Methods: `start()`
1685
1738
  | `enabled` | `true` | boolean |
1686
1739
  | `speed` | `120` | number |
1687
1740
  | `loop` | `false` | boolean |
1741
+ | `moveParent` | `false` | boolean |
1742
+ | `facePath` | `""` | node path |
1743
+ | `turnSpeed` | `100` | number |
1688
1744
 
1689
1745
  Signals: `waypointReached` · `arrived`
1690
1746
 
@@ -1734,7 +1790,7 @@ Methods: `names()` · `make(name)`
1734
1790
  |---|---|---|
1735
1791
  | `enabled` | `true` | boolean |
1736
1792
  | `speed` | `300` | number |
1737
- | `direction` | `null` | any JSON — see the skill for the accepted shapes |
1793
+ | `direction` | `null` | any JSON — see the skill for the accepted shapes, or array or string |
1738
1794
  | `gravity` | `0` | number |
1739
1795
 
1740
1796
  Methods: `aim(direction?)`
@@ -1770,6 +1826,8 @@ Signals: `scoreChanged(score)` · `won` · `lost` · `lifeLost(lives)` · `lives
1770
1826
 
1771
1827
  Methods: `addScore(n)` · `setScore(value)` · `loseLife()` · `announce()`
1772
1828
 
1829
+ Reads: `won: boolean` · `lost: boolean`
1830
+
1773
1831
  ### `Spawner`
1774
1832
 
1775
1833
  | Prop | Default | Kind |
@@ -1781,6 +1839,7 @@ Methods: `addScore(n)` · `setScore(value)` · `loseLife()` · `announce()`
1781
1839
  | `at` | `[]` | array |
1782
1840
  | `autoStart` | `true` | boolean |
1783
1841
  | `total` | `0` | number |
1842
+ | `into` | `""` | node path |
1784
1843
 
1785
1844
  Signals: `spawned(node)` · `finished`
1786
1845
 
@@ -1788,6 +1847,24 @@ Methods: `start()` · `stop()` · `spawn()`
1788
1847
 
1789
1848
  Reads: `liveCount: number`
1790
1849
 
1850
+ ### `Turret`
1851
+
1852
+ | Prop | Default | Kind |
1853
+ |---|---|---|
1854
+ | `enabled` | `true` | boolean |
1855
+ | `targetGroup` | `"enemy"` | string |
1856
+ | `range` | `6` | number |
1857
+ | `damage` | `10` | number |
1858
+ | `cooldown` | `0.6` | number |
1859
+ | `shelf` | `""` | node path |
1860
+ | `prefab` | `""` | string |
1861
+ | `muzzle` | `[]` | array |
1862
+ | `into` | `""` | node path |
1863
+ | `facePath` | `""` | node path |
1864
+ | `turnSpeed` | `100` | number |
1865
+
1866
+ Signals: `acquired` · `fired` · `lost`
1867
+
1791
1868
  ### `Wander`
1792
1869
 
1793
1870
  | Prop | Default | Kind |
@@ -1809,6 +1886,8 @@ Signals: `spawned(node)` · `waveStarted(index)` · `waveCleared(index)` · `all
1809
1886
 
1810
1887
  Methods: `start()`
1811
1888
 
1889
+ Reads: `wave: number` · `waveCount: number`
1890
+
1812
1891
  ### `ZombieAI`
1813
1892
 
1814
1893
  | Prop | Default | Kind |