@vgai/engine 0.5.0 → 0.5.2

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 (538) hide show
  1. package/package.json +1 -1
  2. package/schemas/engine-capabilities.json +4 -4
  3. package/schemas/vgai-game.schema.json +2 -2
  4. package/src/adapter/authoring.ts +42 -0
  5. package/src/adapter/index.ts +3 -0
  6. package/src/adapter/ingest/overlay-apply.ts +50 -6
  7. package/src/adapter/ingest/scene-capture.ts +51 -2
  8. package/src/adapter/vgai-scene-game-adapter.ts +24 -0
  9. package/src/manifest/schema.ts +7 -3
  10. package/src/runtime/create-runtime.ts +97 -0
  11. package/src/runtime/game.ts +11 -1
  12. package/src/scene/asset-ref-check.ts +1 -1
  13. package/src/scene/scene-loader.ts +2 -2
  14. package/src/scene/user-data.ts +18 -0
  15. package/src/world3d-react/behavior.tsx +19 -11
  16. package/src/world3d-react/r3f-adapter.tsx +8 -0
  17. package/dist/adapter/adapter-surface.d.ts +0 -30
  18. package/dist/adapter/adapter-surface.d.ts.map +0 -1
  19. package/dist/adapter/adapter-surface.js +0 -18
  20. package/dist/adapter/authoring.d.ts +0 -461
  21. package/dist/adapter/authoring.d.ts.map +0 -1
  22. package/dist/adapter/authoring.js +0 -22
  23. package/dist/adapter/colyseus-networking-adapter.d.ts +0 -43
  24. package/dist/adapter/colyseus-networking-adapter.d.ts.map +0 -1
  25. package/dist/adapter/colyseus-networking-adapter.js +0 -38
  26. package/dist/adapter/first-party-systems.d.ts +0 -38
  27. package/dist/adapter/first-party-systems.d.ts.map +0 -1
  28. package/dist/adapter/first-party-systems.js +0 -77
  29. package/dist/adapter/game-adapter.d.ts +0 -133
  30. package/dist/adapter/game-adapter.d.ts.map +0 -1
  31. package/dist/adapter/game-adapter.js +0 -10
  32. package/dist/adapter/host-context.d.ts +0 -71
  33. package/dist/adapter/host-context.d.ts.map +0 -1
  34. package/dist/adapter/host-context.js +0 -16
  35. package/dist/adapter/index.d.ts +0 -22
  36. package/dist/adapter/index.d.ts.map +0 -1
  37. package/dist/adapter/index.js +0 -15
  38. package/dist/adapter/ingest/game-contract.d.ts +0 -53
  39. package/dist/adapter/ingest/game-contract.d.ts.map +0 -1
  40. package/dist/adapter/ingest/game-contract.js +0 -30
  41. package/dist/adapter/ingest/overlay-applier.d.ts +0 -118
  42. package/dist/adapter/ingest/overlay-applier.d.ts.map +0 -1
  43. package/dist/adapter/ingest/overlay-applier.js +0 -132
  44. package/dist/adapter/ingest/overlay-apply.d.ts +0 -60
  45. package/dist/adapter/ingest/overlay-apply.d.ts.map +0 -1
  46. package/dist/adapter/ingest/overlay-apply.js +0 -101
  47. package/dist/adapter/ingest/overlay-file.d.ts +0 -79
  48. package/dist/adapter/ingest/overlay-file.d.ts.map +0 -1
  49. package/dist/adapter/ingest/overlay-file.js +0 -66
  50. package/dist/adapter/ingest/overlay-report.d.ts +0 -113
  51. package/dist/adapter/ingest/overlay-report.d.ts.map +0 -1
  52. package/dist/adapter/ingest/overlay-report.js +0 -103
  53. package/dist/adapter/ingest/scene-capture.d.ts +0 -97
  54. package/dist/adapter/ingest/scene-capture.d.ts.map +0 -1
  55. package/dist/adapter/ingest/scene-capture.js +0 -248
  56. package/dist/adapter/ingest/upstream-pin.d.ts +0 -47
  57. package/dist/adapter/ingest/upstream-pin.d.ts.map +0 -1
  58. package/dist/adapter/ingest/upstream-pin.js +0 -50
  59. package/dist/adapter/loop-gate-report.d.ts +0 -34
  60. package/dist/adapter/loop-gate-report.d.ts.map +0 -1
  61. package/dist/adapter/loop-gate-report.js +0 -37
  62. package/dist/adapter/rapier-physics-adapter.d.ts +0 -12
  63. package/dist/adapter/rapier-physics-adapter.d.ts.map +0 -1
  64. package/dist/adapter/rapier-physics-adapter.js +0 -46
  65. package/dist/adapter/system-adapter.d.ts +0 -206
  66. package/dist/adapter/system-adapter.d.ts.map +0 -1
  67. package/dist/adapter/system-adapter.js +0 -13
  68. package/dist/adapter/transform.d.ts +0 -18
  69. package/dist/adapter/transform.d.ts.map +0 -1
  70. package/dist/adapter/transform.js +0 -1
  71. package/dist/adapter/vgai-scene-game-adapter.d.ts +0 -108
  72. package/dist/adapter/vgai-scene-game-adapter.d.ts.map +0 -1
  73. package/dist/adapter/vgai-scene-game-adapter.js +0 -762
  74. package/dist/ai/navigation.d.ts +0 -64
  75. package/dist/ai/navigation.d.ts.map +0 -1
  76. package/dist/ai/navigation.js +0 -133
  77. package/dist/animation/anim-graph-types.d.ts +0 -25
  78. package/dist/animation/anim-graph-types.d.ts.map +0 -1
  79. package/dist/animation/anim-graph-types.js +0 -1
  80. package/dist/animation/animation-clock.d.ts +0 -213
  81. package/dist/animation/animation-clock.d.ts.map +0 -1
  82. package/dist/animation/animation-clock.js +0 -301
  83. package/dist/animation/blend-node.d.ts +0 -22
  84. package/dist/animation/blend-node.d.ts.map +0 -1
  85. package/dist/animation/blend-node.js +0 -97
  86. package/dist/animation/camera-ownership.d.ts +0 -250
  87. package/dist/animation/camera-ownership.d.ts.map +0 -1
  88. package/dist/animation/camera-ownership.js +0 -169
  89. package/dist/animation/cinematic-cues.d.ts +0 -200
  90. package/dist/animation/cinematic-cues.d.ts.map +0 -1
  91. package/dist/animation/cinematic-cues.js +0 -213
  92. package/dist/animation/clip-map.d.ts +0 -12
  93. package/dist/animation/clip-map.d.ts.map +0 -1
  94. package/dist/animation/clip-map.js +0 -37
  95. package/dist/animation/gsap-registration.d.ts +0 -119
  96. package/dist/animation/gsap-registration.d.ts.map +0 -1
  97. package/dist/animation/gsap-registration.js +0 -92
  98. package/dist/animation/theatre-clock-binding.d.ts +0 -89
  99. package/dist/animation/theatre-clock-binding.d.ts.map +0 -1
  100. package/dist/animation/theatre-clock-binding.js +0 -29
  101. package/dist/animation/theatre-director.d.ts +0 -242
  102. package/dist/animation/theatre-director.d.ts.map +0 -1
  103. package/dist/animation/theatre-director.js +0 -235
  104. package/dist/animation/theatre-object-binding.d.ts +0 -305
  105. package/dist/animation/theatre-object-binding.d.ts.map +0 -1
  106. package/dist/animation/theatre-object-binding.js +0 -351
  107. package/dist/animation/xstate-animation-binding.d.ts +0 -56
  108. package/dist/animation/xstate-animation-binding.d.ts.map +0 -1
  109. package/dist/animation/xstate-animation-binding.js +0 -331
  110. package/dist/animation/xstate-animation-meta.d.ts +0 -266
  111. package/dist/animation/xstate-animation-meta.d.ts.map +0 -1
  112. package/dist/animation/xstate-animation-meta.js +0 -252
  113. package/dist/assets.d.ts +0 -26
  114. package/dist/assets.d.ts.map +0 -1
  115. package/dist/assets.js +0 -55
  116. package/dist/audio/index.d.ts +0 -4
  117. package/dist/audio/index.d.ts.map +0 -1
  118. package/dist/audio/index.js +0 -24
  119. package/dist/audio/tone-clock-binding.d.ts +0 -75
  120. package/dist/audio/tone-clock-binding.d.ts.map +0 -1
  121. package/dist/audio/tone-clock-binding.js +0 -29
  122. package/dist/audio/tone-context.d.ts +0 -114
  123. package/dist/audio/tone-context.d.ts.map +0 -1
  124. package/dist/audio/tone-context.js +0 -39
  125. package/dist/audio/tone-offline-render.d.ts +0 -90
  126. package/dist/audio/tone-offline-render.d.ts.map +0 -1
  127. package/dist/audio/tone-offline-render.js +0 -56
  128. package/dist/audio/wav-encode.d.ts +0 -38
  129. package/dist/audio/wav-encode.d.ts.map +0 -1
  130. package/dist/audio/wav-encode.js +0 -97
  131. package/dist/character/cloth-sim.d.ts +0 -179
  132. package/dist/character/cloth-sim.d.ts.map +0 -1
  133. package/dist/character/cloth-sim.js +0 -334
  134. package/dist/character/spring-chain.d.ts +0 -135
  135. package/dist/character/spring-chain.d.ts.map +0 -1
  136. package/dist/character/spring-chain.js +0 -165
  137. package/dist/core/game-loop.d.ts +0 -42
  138. package/dist/core/game-loop.d.ts.map +0 -1
  139. package/dist/core/game-loop.js +0 -167
  140. package/dist/core/seeded-random.d.ts +0 -69
  141. package/dist/core/seeded-random.d.ts.map +0 -1
  142. package/dist/core/seeded-random.js +0 -121
  143. package/dist/core/system-runner.d.ts +0 -120
  144. package/dist/core/system-runner.d.ts.map +0 -1
  145. package/dist/core/system-runner.js +0 -297
  146. package/dist/core/types.d.ts +0 -92
  147. package/dist/core/types.d.ts.map +0 -1
  148. package/dist/core/types.js +0 -25
  149. package/dist/data/data-asset.d.ts +0 -101
  150. package/dist/data/data-asset.d.ts.map +0 -1
  151. package/dist/data/data-asset.js +0 -122
  152. package/dist/data/data-check-core.d.ts +0 -110
  153. package/dist/data/data-check-core.d.ts.map +0 -1
  154. package/dist/data/data-check-core.js +0 -178
  155. package/dist/data/data-ref.d.ts +0 -79
  156. package/dist/data/data-ref.d.ts.map +0 -1
  157. package/dist/data/data-ref.js +0 -130
  158. package/dist/data/vite-plugin-data.d.ts +0 -79
  159. package/dist/data/vite-plugin-data.d.ts.map +0 -1
  160. package/dist/data/vite-plugin-data.js +0 -217
  161. package/dist/dev/console-bridge.d.ts +0 -22
  162. package/dist/dev/console-bridge.d.ts.map +0 -1
  163. package/dist/dev/console-bridge.js +0 -71
  164. package/dist/dev/debug-draw.d.ts +0 -24
  165. package/dist/dev/debug-draw.d.ts.map +0 -1
  166. package/dist/dev/debug-draw.js +0 -73
  167. package/dist/dev/logger.d.ts +0 -30
  168. package/dist/dev/logger.d.ts.map +0 -1
  169. package/dist/dev/logger.js +0 -90
  170. package/dist/dev/performance-profiler.d.ts +0 -60
  171. package/dist/dev/performance-profiler.d.ts.map +0 -1
  172. package/dist/dev/performance-profiler.js +0 -181
  173. package/dist/dev/webgl-gpu-timer.d.ts +0 -8
  174. package/dist/dev/webgl-gpu-timer.d.ts.map +0 -1
  175. package/dist/dev/webgl-gpu-timer.js +0 -52
  176. package/dist/ecs/component-manager.d.ts +0 -205
  177. package/dist/ecs/component-manager.d.ts.map +0 -1
  178. package/dist/ecs/component-manager.js +0 -706
  179. package/dist/ecs/game-component.d.ts +0 -146
  180. package/dist/ecs/game-component.d.ts.map +0 -1
  181. package/dist/ecs/game-component.js +0 -141
  182. package/dist/ecs/hmr-swap-report.d.ts +0 -53
  183. package/dist/ecs/hmr-swap-report.d.ts.map +0 -1
  184. package/dist/ecs/hmr-swap-report.js +0 -55
  185. package/dist/humanoid/bake.operation.d.ts +0 -119
  186. package/dist/humanoid/bake.operation.d.ts.map +0 -1
  187. package/dist/humanoid/bake.operation.js +0 -228
  188. package/dist/humanoid/body.d.ts +0 -101
  189. package/dist/humanoid/body.d.ts.map +0 -1
  190. package/dist/humanoid/body.js +0 -530
  191. package/dist/humanoid/clips.d.ts +0 -62
  192. package/dist/humanoid/clips.d.ts.map +0 -1
  193. package/dist/humanoid/clips.js +0 -121
  194. package/dist/humanoid/compose.d.ts +0 -75
  195. package/dist/humanoid/compose.d.ts.map +0 -1
  196. package/dist/humanoid/compose.js +0 -176
  197. package/dist/humanoid/generate.d.ts +0 -92
  198. package/dist/humanoid/generate.d.ts.map +0 -1
  199. package/dist/humanoid/generate.js +0 -124
  200. package/dist/humanoid/index.d.ts +0 -24
  201. package/dist/humanoid/index.d.ts.map +0 -1
  202. package/dist/humanoid/index.js +0 -18
  203. package/dist/humanoid/schema.d.ts +0 -35
  204. package/dist/humanoid/schema.d.ts.map +0 -1
  205. package/dist/humanoid/schema.js +0 -87
  206. package/dist/humanoid/skeleton.d.ts +0 -103
  207. package/dist/humanoid/skeleton.d.ts.map +0 -1
  208. package/dist/humanoid/skeleton.js +0 -289
  209. package/dist/index.d.ts +0 -37
  210. package/dist/index.d.ts.map +0 -1
  211. package/dist/index.js +0 -30
  212. package/dist/input/input-manager.d.ts +0 -945
  213. package/dist/input/input-manager.d.ts.map +0 -1
  214. package/dist/input/input-manager.js +0 -2207
  215. package/dist/input/input-types.d.ts +0 -174
  216. package/dist/input/input-types.d.ts.map +0 -1
  217. package/dist/input/input-types.js +0 -1
  218. package/dist/input/prompt-labels.d.ts +0 -21
  219. package/dist/input/prompt-labels.d.ts.map +0 -1
  220. package/dist/input/prompt-labels.js +0 -121
  221. package/dist/input/rebind-controller.d.ts +0 -59
  222. package/dist/input/rebind-controller.d.ts.map +0 -1
  223. package/dist/input/rebind-controller.js +0 -85
  224. package/dist/input/schema.d.ts +0 -16
  225. package/dist/input/schema.d.ts.map +0 -1
  226. package/dist/input/schema.js +0 -228
  227. package/dist/loader.d.ts +0 -43
  228. package/dist/loader.d.ts.map +0 -1
  229. package/dist/loader.js +0 -59
  230. package/dist/manifest/index.d.ts +0 -5
  231. package/dist/manifest/index.d.ts.map +0 -1
  232. package/dist/manifest/index.js +0 -8
  233. package/dist/manifest/load-file.d.ts +0 -4
  234. package/dist/manifest/load-file.d.ts.map +0 -1
  235. package/dist/manifest/load-file.js +0 -14
  236. package/dist/manifest/load.d.ts +0 -144
  237. package/dist/manifest/load.d.ts.map +0 -1
  238. package/dist/manifest/load.js +0 -273
  239. package/dist/manifest/schema.d.ts +0 -230
  240. package/dist/manifest/schema.d.ts.map +0 -1
  241. package/dist/manifest/schema.js +0 -394
  242. package/dist/physics/collision-system.d.ts +0 -41
  243. package/dist/physics/collision-system.d.ts.map +0 -1
  244. package/dist/physics/collision-system.js +0 -64
  245. package/dist/physics/physics-registry.d.ts +0 -45
  246. package/dist/physics/physics-registry.d.ts.map +0 -1
  247. package/dist/physics/physics-registry.js +0 -65
  248. package/dist/physics/transform-writer.d.ts +0 -16
  249. package/dist/physics/transform-writer.d.ts.map +0 -1
  250. package/dist/physics/transform-writer.js +0 -38
  251. package/dist/physics/trigger-dispatch.d.ts +0 -24
  252. package/dist/physics/trigger-dispatch.d.ts.map +0 -1
  253. package/dist/physics/trigger-dispatch.js +0 -80
  254. package/dist/react/game-state.d.ts +0 -156
  255. package/dist/react/game-state.d.ts.map +0 -1
  256. package/dist/react/game-state.js +0 -222
  257. package/dist/react/root-adapter.d.ts +0 -11
  258. package/dist/react/root-adapter.d.ts.map +0 -1
  259. package/dist/react/root-adapter.js +0 -41
  260. package/dist/react/unmanaged-root-detector.d.ts +0 -12
  261. package/dist/react/unmanaged-root-detector.d.ts.map +0 -1
  262. package/dist/react/unmanaged-root-detector.js +0 -45
  263. package/dist/react/use-data.d.ts +0 -60
  264. package/dist/react/use-data.d.ts.map +0 -1
  265. package/dist/react/use-data.js +0 -101
  266. package/dist/react/use-selection.d.ts +0 -75
  267. package/dist/react/use-selection.d.ts.map +0 -1
  268. package/dist/react/use-selection.js +0 -90
  269. package/dist/render/auto-batcher.d.ts +0 -34
  270. package/dist/render/auto-batcher.d.ts.map +0 -1
  271. package/dist/render/auto-batcher.js +0 -140
  272. package/dist/render/render-batch-system.d.ts +0 -33
  273. package/dist/render/render-batch-system.d.ts.map +0 -1
  274. package/dist/render/render-batch-system.js +0 -230
  275. package/dist/render/render-features.d.ts +0 -47
  276. package/dist/render/render-features.d.ts.map +0 -1
  277. package/dist/render/render-features.js +0 -105
  278. package/dist/render/render-settings.d.ts +0 -36
  279. package/dist/render/render-settings.d.ts.map +0 -1
  280. package/dist/render/render-settings.js +0 -51
  281. package/dist/runtime/create-runtime.d.ts +0 -249
  282. package/dist/runtime/create-runtime.d.ts.map +0 -1
  283. package/dist/runtime/create-runtime.js +0 -641
  284. package/dist/runtime/debug-bridge.d.ts +0 -257
  285. package/dist/runtime/debug-bridge.d.ts.map +0 -1
  286. package/dist/runtime/debug-bridge.js +0 -224
  287. package/dist/runtime/debug-registry.d.ts +0 -288
  288. package/dist/runtime/debug-registry.d.ts.map +0 -1
  289. package/dist/runtime/debug-registry.js +0 -513
  290. package/dist/runtime/frame-selector-cache.d.ts +0 -41
  291. package/dist/runtime/frame-selector-cache.d.ts.map +0 -1
  292. package/dist/runtime/frame-selector-cache.js +0 -65
  293. package/dist/runtime/game.d.ts +0 -496
  294. package/dist/runtime/game.d.ts.map +0 -1
  295. package/dist/runtime/game.js +0 -741
  296. package/dist/runtime/gameplay-rng-trap.d.ts +0 -48
  297. package/dist/runtime/gameplay-rng-trap.d.ts.map +0 -1
  298. package/dist/runtime/gameplay-rng-trap.js +0 -96
  299. package/dist/runtime/input-router.d.ts +0 -78
  300. package/dist/runtime/input-router.d.ts.map +0 -1
  301. package/dist/runtime/input-router.js +0 -171
  302. package/dist/runtime/mount-game.d.ts +0 -129
  303. package/dist/runtime/mount-game.d.ts.map +0 -1
  304. package/dist/runtime/mount-game.js +0 -152
  305. package/dist/runtime/mount-manifest.d.ts +0 -173
  306. package/dist/runtime/mount-manifest.d.ts.map +0 -1
  307. package/dist/runtime/mount-manifest.js +0 -297
  308. package/dist/runtime/render-audio-control.d.ts +0 -110
  309. package/dist/runtime/render-audio-control.d.ts.map +0 -1
  310. package/dist/runtime/render-audio-control.js +0 -111
  311. package/dist/runtime/render-control.d.ts +0 -291
  312. package/dist/runtime/render-control.d.ts.map +0 -1
  313. package/dist/runtime/render-control.js +0 -264
  314. package/dist/runtime/render-seed.d.ts +0 -57
  315. package/dist/runtime/render-seed.d.ts.map +0 -1
  316. package/dist/runtime/render-seed.js +0 -74
  317. package/dist/runtime/state-bridge.d.ts +0 -61
  318. package/dist/runtime/state-bridge.d.ts.map +0 -1
  319. package/dist/runtime/state-bridge.js +0 -63
  320. package/dist/runtime/types.d.ts +0 -253
  321. package/dist/runtime/types.d.ts.map +0 -1
  322. package/dist/runtime/types.js +0 -1
  323. package/dist/scene/asset-loaders.d.ts +0 -79
  324. package/dist/scene/asset-loaders.d.ts.map +0 -1
  325. package/dist/scene/asset-loaders.js +0 -141
  326. package/dist/scene/asset-paths.d.ts +0 -11
  327. package/dist/scene/asset-paths.d.ts.map +0 -1
  328. package/dist/scene/asset-paths.js +0 -108
  329. package/dist/scene/asset-ref-check.d.ts +0 -88
  330. package/dist/scene/asset-ref-check.d.ts.map +0 -1
  331. package/dist/scene/asset-ref-check.js +0 -214
  332. package/dist/scene/asset-registry.d.ts +0 -38
  333. package/dist/scene/asset-registry.d.ts.map +0 -1
  334. package/dist/scene/asset-registry.js +0 -66
  335. package/dist/scene/collider-dimensions.d.ts +0 -63
  336. package/dist/scene/collider-dimensions.d.ts.map +0 -1
  337. package/dist/scene/collider-dimensions.js +0 -98
  338. package/dist/scene/component-registry.d.ts +0 -22
  339. package/dist/scene/component-registry.d.ts.map +0 -1
  340. package/dist/scene/component-registry.js +0 -37
  341. package/dist/scene/defaults.d.ts +0 -252
  342. package/dist/scene/defaults.d.ts.map +0 -1
  343. package/dist/scene/defaults.js +0 -151
  344. package/dist/scene/geometries/index.d.ts +0 -8
  345. package/dist/scene/geometries/index.d.ts.map +0 -1
  346. package/dist/scene/geometries/index.js +0 -7
  347. package/dist/scene/geometries/terrain.d.ts +0 -2
  348. package/dist/scene/geometries/terrain.d.ts.map +0 -1
  349. package/dist/scene/geometries/terrain.js +0 -37
  350. package/dist/scene/geometry-registry.d.ts +0 -24
  351. package/dist/scene/geometry-registry.d.ts.map +0 -1
  352. package/dist/scene/geometry-registry.js +0 -20
  353. package/dist/scene/instance-registry.d.ts +0 -36
  354. package/dist/scene/instance-registry.d.ts.map +0 -1
  355. package/dist/scene/instance-registry.js +0 -55
  356. package/dist/scene/instancers/grid.d.ts +0 -2
  357. package/dist/scene/instancers/grid.d.ts.map +0 -1
  358. package/dist/scene/instancers/grid.js +0 -36
  359. package/dist/scene/instancers/index.d.ts +0 -8
  360. package/dist/scene/instancers/index.d.ts.map +0 -1
  361. package/dist/scene/instancers/index.js +0 -7
  362. package/dist/scene/light-camera-factory.d.ts +0 -23
  363. package/dist/scene/light-camera-factory.d.ts.map +0 -1
  364. package/dist/scene/light-camera-factory.js +0 -68
  365. package/dist/scene/material-factory.d.ts +0 -17
  366. package/dist/scene/material-factory.d.ts.map +0 -1
  367. package/dist/scene/material-factory.js +0 -197
  368. package/dist/scene/material-registry.d.ts +0 -40
  369. package/dist/scene/material-registry.d.ts.map +0 -1
  370. package/dist/scene/material-registry.js +0 -44
  371. package/dist/scene/materials/index.d.ts +0 -8
  372. package/dist/scene/materials/index.d.ts.map +0 -1
  373. package/dist/scene/materials/index.js +0 -7
  374. package/dist/scene/materials/water.d.ts +0 -2
  375. package/dist/scene/materials/water.d.ts.map +0 -1
  376. package/dist/scene/materials/water.js +0 -54
  377. package/dist/scene/parse.d.ts +0 -23
  378. package/dist/scene/parse.d.ts.map +0 -1
  379. package/dist/scene/parse.js +0 -179
  380. package/dist/scene/particles-factory.d.ts +0 -33
  381. package/dist/scene/particles-factory.d.ts.map +0 -1
  382. package/dist/scene/particles-factory.js +0 -282
  383. package/dist/scene/scene-apply.d.ts +0 -109
  384. package/dist/scene/scene-apply.d.ts.map +0 -1
  385. package/dist/scene/scene-apply.js +0 -370
  386. package/dist/scene/scene-diff-schema.d.ts +0 -285
  387. package/dist/scene/scene-diff-schema.d.ts.map +0 -1
  388. package/dist/scene/scene-diff-schema.js +0 -92
  389. package/dist/scene/scene-diff-types.d.ts +0 -40
  390. package/dist/scene/scene-diff-types.d.ts.map +0 -1
  391. package/dist/scene/scene-diff-types.js +0 -14
  392. package/dist/scene/scene-loader.d.ts +0 -167
  393. package/dist/scene/scene-loader.d.ts.map +0 -1
  394. package/dist/scene/scene-loader.js +0 -1211
  395. package/dist/scene/scene-query.d.ts +0 -11
  396. package/dist/scene/scene-query.d.ts.map +0 -1
  397. package/dist/scene/scene-query.js +0 -63
  398. package/dist/scene/scene-types.d.ts +0 -10
  399. package/dist/scene/scene-types.d.ts.map +0 -1
  400. package/dist/scene/scene-types.js +0 -8
  401. package/dist/scene/scene-version.d.ts +0 -26
  402. package/dist/scene/scene-version.d.ts.map +0 -1
  403. package/dist/scene/scene-version.js +0 -34
  404. package/dist/scene/schema/animation.d.ts +0 -8
  405. package/dist/scene/schema/animation.d.ts.map +0 -1
  406. package/dist/scene/schema/animation.js +0 -42
  407. package/dist/scene/schema/audio.d.ts +0 -13
  408. package/dist/scene/schema/audio.d.ts.map +0 -1
  409. package/dist/scene/schema/audio.js +0 -22
  410. package/dist/scene/schema/camera.d.ts +0 -28
  411. package/dist/scene/schema/camera.d.ts.map +0 -1
  412. package/dist/scene/schema/camera.js +0 -17
  413. package/dist/scene/schema/collider.d.ts +0 -40
  414. package/dist/scene/schema/collider.d.ts.map +0 -1
  415. package/dist/scene/schema/collider.js +0 -55
  416. package/dist/scene/schema/entity-ref.d.ts +0 -31
  417. package/dist/scene/schema/entity-ref.d.ts.map +0 -1
  418. package/dist/scene/schema/entity-ref.js +0 -61
  419. package/dist/scene/schema/entity.d.ts +0 -1036
  420. package/dist/scene/schema/entity.d.ts.map +0 -1
  421. package/dist/scene/schema/entity.js +0 -153
  422. package/dist/scene/schema/environment.d.ts +0 -425
  423. package/dist/scene/schema/environment.d.ts.map +0 -1
  424. package/dist/scene/schema/environment.js +0 -357
  425. package/dist/scene/schema/index.d.ts +0 -37
  426. package/dist/scene/schema/index.d.ts.map +0 -1
  427. package/dist/scene/schema/index.js +0 -19
  428. package/dist/scene/schema/instances.d.ts +0 -14
  429. package/dist/scene/schema/instances.d.ts.map +0 -1
  430. package/dist/scene/schema/instances.js +0 -28
  431. package/dist/scene/schema/joint.d.ts +0 -23
  432. package/dist/scene/schema/joint.d.ts.map +0 -1
  433. package/dist/scene/schema/joint.js +0 -23
  434. package/dist/scene/schema/light.d.ts +0 -38
  435. package/dist/scene/schema/light.d.ts.map +0 -1
  436. package/dist/scene/schema/light.js +0 -26
  437. package/dist/scene/schema/material.d.ts +0 -199
  438. package/dist/scene/schema/material.d.ts.map +0 -1
  439. package/dist/scene/schema/material.js +0 -103
  440. package/dist/scene/schema/mesh.d.ts +0 -48
  441. package/dist/scene/schema/mesh.d.ts.map +0 -1
  442. package/dist/scene/schema/mesh.js +0 -82
  443. package/dist/scene/schema/particles.d.ts +0 -2178
  444. package/dist/scene/schema/particles.d.ts.map +0 -1
  445. package/dist/scene/schema/particles.js +0 -321
  446. package/dist/scene/schema/physics.d.ts +0 -56
  447. package/dist/scene/schema/physics.d.ts.map +0 -1
  448. package/dist/scene/schema/physics.js +0 -37
  449. package/dist/scene/schema/scene-file.d.ts +0 -303
  450. package/dist/scene/schema/scene-file.d.ts.map +0 -1
  451. package/dist/scene/schema/scene-file.js +0 -256
  452. package/dist/scene/schema/shadow.d.ts +0 -28
  453. package/dist/scene/schema/shadow.d.ts.map +0 -1
  454. package/dist/scene/schema/shadow.js +0 -20
  455. package/dist/scene/schema/spline.d.ts +0 -25
  456. package/dist/scene/schema/spline.d.ts.map +0 -1
  457. package/dist/scene/schema/spline.js +0 -15
  458. package/dist/scene/schema/tuples.d.ts +0 -12
  459. package/dist/scene/schema/tuples.d.ts.map +0 -1
  460. package/dist/scene/schema/tuples.js +0 -14
  461. package/dist/scene/user-data.d.ts +0 -185
  462. package/dist/scene/user-data.d.ts.map +0 -1
  463. package/dist/scene/user-data.js +0 -144
  464. package/dist/setup/setup-audio.d.ts +0 -20
  465. package/dist/setup/setup-audio.d.ts.map +0 -1
  466. package/dist/setup/setup-audio.js +0 -41
  467. package/dist/setup/setup-particles.d.ts +0 -17
  468. package/dist/setup/setup-particles.d.ts.map +0 -1
  469. package/dist/setup/setup-particles.js +0 -16
  470. package/dist/setup/setup-physics.d.ts +0 -25
  471. package/dist/setup/setup-physics.d.ts.map +0 -1
  472. package/dist/setup/setup-physics.js +0 -51
  473. package/dist/setup/setup-renderer.d.ts +0 -69
  474. package/dist/setup/setup-renderer.d.ts.map +0 -1
  475. package/dist/setup/setup-renderer.js +0 -363
  476. package/dist/tools/define-tool.d.ts +0 -130
  477. package/dist/tools/define-tool.d.ts.map +0 -1
  478. package/dist/tools/define-tool.js +0 -96
  479. package/dist/world2d/authoring-2d.d.ts +0 -80
  480. package/dist/world2d/authoring-2d.d.ts.map +0 -1
  481. package/dist/world2d/authoring-2d.js +0 -195
  482. package/dist/world2d/capture-to-scene2d.d.ts +0 -5
  483. package/dist/world2d/capture-to-scene2d.d.ts.map +0 -1
  484. package/dist/world2d/capture-to-scene2d.js +0 -49
  485. package/dist/world2d/collision-2d.d.ts +0 -52
  486. package/dist/world2d/collision-2d.d.ts.map +0 -1
  487. package/dist/world2d/collision-2d.js +0 -70
  488. package/dist/world2d/components-2d.d.ts +0 -47
  489. package/dist/world2d/components-2d.d.ts.map +0 -1
  490. package/dist/world2d/components-2d.js +0 -77
  491. package/dist/world2d/index.d.ts +0 -34
  492. package/dist/world2d/index.d.ts.map +0 -1
  493. package/dist/world2d/index.js +0 -32
  494. package/dist/world2d/ingest-iframe-2d.d.ts +0 -82
  495. package/dist/world2d/ingest-iframe-2d.d.ts.map +0 -1
  496. package/dist/world2d/ingest-iframe-2d.js +0 -166
  497. package/dist/world2d/ingest2d.d.ts +0 -97
  498. package/dist/world2d/ingest2d.d.ts.map +0 -1
  499. package/dist/world2d/ingest2d.js +0 -40
  500. package/dist/world2d/physics2d-registry.d.ts +0 -24
  501. package/dist/world2d/physics2d-registry.d.ts.map +0 -1
  502. package/dist/world2d/physics2d-registry.js +0 -38
  503. package/dist/world2d/pixi-game-adapter.d.ts +0 -107
  504. package/dist/world2d/pixi-game-adapter.d.ts.map +0 -1
  505. package/dist/world2d/pixi-game-adapter.js +0 -210
  506. package/dist/world2d/pixi-surface.d.ts +0 -39
  507. package/dist/world2d/pixi-surface.d.ts.map +0 -1
  508. package/dist/world2d/pixi-surface.js +0 -47
  509. package/dist/world2d/scene-capture-2d.d.ts +0 -43
  510. package/dist/world2d/scene-capture-2d.d.ts.map +0 -1
  511. package/dist/world2d/scene-capture-2d.js +0 -92
  512. package/dist/world2d/scene2d-loader.d.ts +0 -27
  513. package/dist/world2d/scene2d-loader.d.ts.map +0 -1
  514. package/dist/world2d/scene2d-loader.js +0 -275
  515. package/dist/world2d/schema/entity2d.d.ts +0 -102
  516. package/dist/world2d/schema/entity2d.d.ts.map +0 -1
  517. package/dist/world2d/schema/entity2d.js +0 -119
  518. package/dist/world2d/schema/physics2d.d.ts +0 -46
  519. package/dist/world2d/schema/physics2d.d.ts.map +0 -1
  520. package/dist/world2d/schema/physics2d.js +0 -45
  521. package/dist/world2d/schema/sprite.d.ts +0 -42
  522. package/dist/world2d/schema/sprite.d.ts.map +0 -1
  523. package/dist/world2d/schema/sprite.js +0 -63
  524. package/dist/world2d/schema/tilemap.d.ts +0 -15
  525. package/dist/world2d/schema/tilemap.d.ts.map +0 -1
  526. package/dist/world2d/schema/tilemap.js +0 -19
  527. package/dist/world2d/schema/tuples2d.d.ts +0 -20
  528. package/dist/world2d/schema/tuples2d.d.ts.map +0 -1
  529. package/dist/world2d/schema/tuples2d.js +0 -19
  530. package/dist/world2d/system-adapters-2d.d.ts +0 -16
  531. package/dist/world2d/system-adapters-2d.d.ts.map +0 -1
  532. package/dist/world2d/system-adapters-2d.js +0 -37
  533. package/dist/world2d/transform-writer-2d.d.ts +0 -16
  534. package/dist/world2d/transform-writer-2d.d.ts.map +0 -1
  535. package/dist/world2d/transform-writer-2d.js +0 -22
  536. package/dist/world2d/types.d.ts +0 -59
  537. package/dist/world2d/types.d.ts.map +0 -1
  538. package/dist/world2d/types.js +0 -1
@@ -1,64 +0,0 @@
1
- /**
2
- * NavMeshManager — wraps recast-navigation for navmesh generation + crowd pathfinding.
3
- *
4
- * Usage:
5
- * await init(); // WASM init (call once per app)
6
- * const nav = new NavMeshManager();
7
- * await nav.buildFromMeshes(meshes);
8
- * const path = nav.findPath(start, end);
9
- * const crowd = nav.createCrowd(10);
10
- * // In game loop: nav.updateCrowd(dt);
11
- */
12
- import { NavMeshHelper } from '@recast-navigation/three';
13
- import type { CrowdAgent } from 'recast-navigation';
14
- import { Crowd } from 'recast-navigation';
15
- import type { Mesh, Scene } from 'three';
16
- export type { CrowdAgent };
17
- export interface Vector3Like {
18
- x: number;
19
- y: number;
20
- z: number;
21
- }
22
- export interface NavMeshBuildParams {
23
- cellSize?: number | undefined;
24
- cellHeight?: number | undefined;
25
- walkableSlopeAngle?: number | undefined;
26
- walkableHeight?: number | undefined;
27
- walkableClimb?: number | undefined;
28
- walkableRadius?: number | undefined;
29
- maxEdgeLen?: number | undefined;
30
- maxSimplificationError?: number | undefined;
31
- minRegionArea?: number | undefined;
32
- mergeRegionArea?: number | undefined;
33
- }
34
- export declare function initNavigation(): Promise<void>;
35
- export declare class NavMeshManager {
36
- private navMesh;
37
- private query;
38
- private crowd;
39
- private helper;
40
- /** Build navmesh from Three.js Mesh objects (grounds, obstacles, etc.). */
41
- buildFromMeshes(meshes: Mesh[], params?: NavMeshBuildParams): boolean;
42
- /**
43
- * Destroy all live recast handles (crowd, query, navmesh) and dispose the
44
- * debug helper. Recast objects live on the WASM heap and are NOT GC'd —
45
- * they must be explicitly `.destroy()`ed or they leak.
46
- */
47
- private destroyRecast;
48
- /** True once a navmesh has been built (for the NavigationAdapter to gate on). */
49
- hasNavMesh(): boolean;
50
- /** Find a straight path between two world positions. Returns [] if no path. */
51
- findPath(start: Vector3Like, end: Vector3Like): Vector3Like[];
52
- /** Create a crowd with up to maxAgents agents. */
53
- createCrowd(maxAgents: number): Crowd;
54
- /** Step the crowd simulation. Call once per frame. */
55
- updateCrowd(dt: number): void;
56
- /** Get or create the wireframe debug mesh. Add to scene once, call update() after rebuilding. */
57
- getDebugMesh(scene: Scene): NavMeshHelper | null;
58
- /** Serialize the current navmesh to a binary blob. */
59
- exportData(): Uint8Array;
60
- /** Load a navmesh from a previously exported binary blob. */
61
- loadFromData(data: Uint8Array): void;
62
- dispose(scene: Scene): void;
63
- }
64
- //# sourceMappingURL=navigation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/ai/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAoD,MAAM,mBAAmB,CAAC;AAC5F,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGzC,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAID,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAIpD;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,MAAM,CAA8B;IAE5C,2EAA2E;IAC3E,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO;IA4BrE;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAoBrB,iFAAiF;IACjF,UAAU,IAAI,OAAO;IAIrB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,EAAE;IAO7D,kDAAkD;IAClD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK;IAMrC,sDAAsD;IACtD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI7B,iGAAiG;IACjG,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;IAShD,sDAAsD;IACtD,UAAU,IAAI,UAAU;IAKxB,6DAA6D;IAC7D,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAQpC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;CAM5B"}
@@ -1,133 +0,0 @@
1
- /**
2
- * NavMeshManager — wraps recast-navigation for navmesh generation + crowd pathfinding.
3
- *
4
- * Usage:
5
- * await init(); // WASM init (call once per app)
6
- * const nav = new NavMeshManager();
7
- * await nav.buildFromMeshes(meshes);
8
- * const path = nav.findPath(start, end);
9
- * const crowd = nav.createCrowd(10);
10
- * // In game loop: nav.updateCrowd(dt);
11
- */
12
- import { NavMeshHelper, threeToSoloNavMesh } from '@recast-navigation/three';
13
- import { Crowd, exportNavMesh, importNavMesh, init, NavMeshQuery } from 'recast-navigation';
14
- import { DEFAULTS } from '../scene/defaults';
15
- let wasmInitialized = false;
16
- export async function initNavigation() {
17
- if (wasmInitialized)
18
- return;
19
- await init();
20
- wasmInitialized = true;
21
- }
22
- export class NavMeshManager {
23
- navMesh = null;
24
- query = null;
25
- crowd = null;
26
- helper = null;
27
- /** Build navmesh from Three.js Mesh objects (grounds, obstacles, etc.). */
28
- buildFromMeshes(meshes, params) {
29
- const d = DEFAULTS.navigation;
30
- const result = threeToSoloNavMesh(meshes, {
31
- cs: params?.cellSize ?? d.cellSize,
32
- ch: params?.cellHeight ?? d.cellHeight,
33
- walkableSlopeAngle: params?.walkableSlopeAngle ?? d.walkableSlopeAngle,
34
- walkableHeight: params?.walkableHeight ?? d.walkableHeight,
35
- walkableClimb: params?.walkableClimb ?? d.walkableClimb,
36
- walkableRadius: params?.walkableRadius ?? d.walkableRadius,
37
- maxEdgeLen: params?.maxEdgeLen ?? d.maxEdgeLen,
38
- maxSimplificationError: params?.maxSimplificationError ?? d.maxSimplificationError,
39
- minRegionArea: params?.minRegionArea ?? d.minRegionArea,
40
- mergeRegionArea: params?.mergeRegionArea ?? d.mergeRegionArea,
41
- // Recast tuning knobs with no DEFAULTS counterpart (not modeled there).
42
- maxVertsPerPoly: 6,
43
- detailSampleDist: 6,
44
- detailSampleMaxError: 1,
45
- });
46
- if (!result.success || !result.navMesh)
47
- return false;
48
- // Free the previous recast objects before replacing them (WASM heap leak).
49
- this.destroyRecast();
50
- this.navMesh = result.navMesh;
51
- this.query = new NavMeshQuery(this.navMesh);
52
- return true;
53
- }
54
- /**
55
- * Destroy all live recast handles (crowd, query, navmesh) and dispose the
56
- * debug helper. Recast objects live on the WASM heap and are NOT GC'd —
57
- * they must be explicitly `.destroy()`ed or they leak.
58
- */
59
- destroyRecast() {
60
- if (this.helper) {
61
- this.helper.parent?.remove(this.helper);
62
- this.helper.dispose?.();
63
- this.helper = null;
64
- }
65
- if (this.crowd) {
66
- this.crowd.destroy();
67
- this.crowd = null;
68
- }
69
- if (this.query) {
70
- this.query.destroy();
71
- this.query = null;
72
- }
73
- if (this.navMesh) {
74
- this.navMesh.destroy();
75
- this.navMesh = null;
76
- }
77
- }
78
- /** True once a navmesh has been built (for the NavigationAdapter to gate on). */
79
- hasNavMesh() {
80
- return this.navMesh !== null;
81
- }
82
- /** Find a straight path between two world positions. Returns [] if no path. */
83
- findPath(start, end) {
84
- if (!this.query)
85
- return [];
86
- const result = this.query.computePath(start, end);
87
- if (!result.success)
88
- return [];
89
- return result.path;
90
- }
91
- /** Create a crowd with up to maxAgents agents. */
92
- createCrowd(maxAgents) {
93
- if (!this.navMesh)
94
- throw new Error('Build navmesh first');
95
- this.crowd = new Crowd(this.navMesh, { maxAgents, maxAgentRadius: 0.6 });
96
- return this.crowd;
97
- }
98
- /** Step the crowd simulation. Call once per frame. */
99
- updateCrowd(dt) {
100
- this.crowd?.update(dt);
101
- }
102
- /** Get or create the wireframe debug mesh. Add to scene once, call update() after rebuilding. */
103
- getDebugMesh(scene) {
104
- if (!this.navMesh)
105
- return null;
106
- if (!this.helper) {
107
- this.helper = new NavMeshHelper(this.navMesh);
108
- scene.add(this.helper);
109
- }
110
- return this.helper;
111
- }
112
- /** Serialize the current navmesh to a binary blob. */
113
- exportData() {
114
- if (!this.navMesh)
115
- throw new Error('No navmesh to export');
116
- return exportNavMesh(this.navMesh);
117
- }
118
- /** Load a navmesh from a previously exported binary blob. */
119
- loadFromData(data) {
120
- const { navMesh } = importNavMesh(data);
121
- // Free the previous recast objects before replacing them.
122
- this.destroyRecast();
123
- this.navMesh = navMesh;
124
- this.query = new NavMeshQuery(this.navMesh);
125
- }
126
- dispose(scene) {
127
- // Ensure the helper is removed from the passed scene as well, then destroy
128
- // every recast handle (crowd/query/navmesh) so nothing leaks on the WASM heap.
129
- if (this.helper)
130
- scene.remove(this.helper);
131
- this.destroyRecast();
132
- }
133
- }
@@ -1,25 +0,0 @@
1
- /**
2
- * Blend-tree shapes shared by the (removed, E5) legacy `AnimGraph` runtime and
3
- * the current XState -> AnimationMixer binding (`xstate-animation-binding.ts`,
4
- * E2). Retained deliberately — see `packages/engine/test/removal-inventory.ts`'s
5
- * `animgraph` family note: `BlendTreeDef`/`BlendChild` are imported directly by
6
- * `xstate-animation-binding.ts`, so this file survived E5's removal as a
7
- * partial edit rather than being deleted whole. Every other type this file
8
- * used to declare (`AnimGraphFile`, `AnimParameter`, `AnimLayer`, `AnimState`,
9
- * `AnimTransition`, `TransitionCondition` — the state-machine-shaped half of
10
- * the old `.animgraph.json` format) was deleted with the runtime that read
11
- * them (`anim-graph.ts`).
12
- */
13
- export interface BlendTreeDef {
14
- type: '1D' | '2D' | 'direct';
15
- parameter: string;
16
- parameterY?: string;
17
- children: BlendChild[];
18
- }
19
- export interface BlendChild {
20
- clip: string;
21
- threshold: number;
22
- thresholdY?: number;
23
- weight?: number;
24
- }
25
- //# sourceMappingURL=anim-graph-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anim-graph-types.d.ts","sourceRoot":"","sources":["../../src/animation/anim-graph-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,213 +0,0 @@
1
- import { type SystemPhaseName } from '../core/types';
2
- /**
3
- * D1 — the canonical `AnimationClock` (spec §10 D1, §3.2, §4).
4
- *
5
- * VGAI owns exactly one clock per cinematic/scene context. It is the single
6
- * source of truth for "what time is it" that Theatre sequences, registered
7
- * GSAP timelines, and cinematic cue evaluators are seeked against (D2/D5/D7
8
- * — NOT implemented here, this unit is the clock only). The render seam
9
- * (I2) drives this clock's `seek(t)`/frame-index API directly, without ever
10
- * advancing gameplay substeps.
11
- *
12
- * Design constraints (from the spec and the D1 review notes):
13
- *
14
- * - Time is in SECONDS with no hidden wall-clock read. This class never
15
- * reads the system clock or a monotonic timer directly — the caller (the
16
- * fixed-step game loop for live playback, or a render/export harness for
17
- * offline scrubbing) is the only source of `dt`/target time. That is
18
- * what makes `seek(t)` and frame-index seeking reproducible offline.
19
- * - No parallel scheduler. Evaluator registration reuses the engine's own
20
- * `SystemPhaseName`/`PHASE_ORDER` vocabulary (`core/types.ts`) — the same
21
- * phase names every `GameComponent`/system in the engine already uses —
22
- * so a Theatre binding (D2), a GSAP registration (D7), and a cue
23
- * evaluator (D5) can each declare which phase they conceptually belong
24
- * to and be invoked in one deterministic, engine-wide order instead of
25
- * each subsystem inventing its own ordering rule. IMPORTANT: this only
26
- * orders evaluators relative to each other WITHIN one `emit()` — i.e.
27
- * within a single `seek()`/`advance()` call. Registering at `'preRender'`
28
- * does NOT mean an evaluator runs during the live engine's own
29
- * `system-runner` `preRender` phase inside a running RAF frame — the
30
- * clock is independent of the live game loop's phase execution (and
31
- * during offline export/scrub there is no RAF frame at all). The shared
32
- * vocabulary buys a familiar, documented ordering convention between
33
- * clock-side evaluators, not a promise of interleaving with unrelated
34
- * engine systems that happen to run in a same-named phase during a live
35
- * frame.
36
- * - Frame-index seeking for export must be EXACT: frame `n` at fps `f`
37
- * always evaluates `start + n / f`, computed directly from `n` and `f`
38
- * on every call — never by accumulating `1/f` repeatedly, which would
39
- * drift. See `seekFrame` below.
40
- */
41
- /** Sign of time evolution while the clock is actually playing. */
42
- export type ClockDirection = 'forward' | 'reverse';
43
- /** Coarse playback state. `advance()` is a no-op unless this is `'playing'`. */
44
- export type ClockPlaybackState = 'playing' | 'paused' | 'stopped';
45
- /** Loop/range metadata — the valid time domain `[start, end]`. */
46
- export interface ClockRange {
47
- readonly start: number;
48
- readonly end: number;
49
- readonly loop: boolean;
50
- }
51
- /**
52
- * One contiguous, monotonic sweep of time within a single `[start, end]`
53
- * lap. A step that crosses a loop boundary produces MORE THAN ONE interval
54
- * (one per lap segment) so a cue evaluator can test each segment
55
- * independently and never conflate "crossed near the end of lap 1" with
56
- * "crossed near the start of lap 2".
57
- *
58
- * ## Cue-crossing detection convention (half-open)
59
- *
60
- * A cue/marker at time `t` is considered CROSSED by an interval iff:
61
- *
62
- * - forward interval: `t > interval.from && t <= interval.to`
63
- * - reverse interval: `t < interval.from && t >= interval.to`
64
- *
65
- * This is deliberately half-open on the "from" side and closed on the "to"
66
- * side (i.e. the endpoint the sweep is *arriving at* counts, the endpoint it
67
- * *departed from* does not). Consumers (D5 cinematic cues) MUST use exactly
68
- * this convention, never an inclusive-both-ends test: `seek()` is
69
- * idempotent and re-asserts a zero-length interval `{from: t, to: t}` on a
70
- * repeated seek to the same `t` (see `AnimationClock.seek`), and an
71
- * inclusive-both-ends detector would re-match that zero-length interval
72
- * (`from === to === t`) and double-fire on every repeated seek. The
73
- * half-open test above never matches a zero-length interval (`t > t` and
74
- * `t < t` are both always false), so a fire-once cue evaluator built on it
75
- * gets idempotent re-seeks "for free" with no extra bookkeeping.
76
- */
77
- export interface ClockInterval {
78
- readonly from: number;
79
- readonly to: number;
80
- readonly direction: ClockDirection;
81
- }
82
- /**
83
- * What a subscribed evaluator receives on every `seek`/`advance` call that
84
- * changes (or idempotently re-asserts) the clock's position.
85
- */
86
- export interface ClockCrossing {
87
- readonly previousTime: number;
88
- readonly currentTime: number;
89
- /** Direction of this specific crossing (not necessarily `clock.direction`,
90
- * which reflects live playback intent — a `seek()` while paused still
91
- * reports the direction it moved, or the last known direction if it was
92
- * a no-op re-seek to the same time). */
93
- readonly direction: ClockDirection;
94
- readonly timeScale: number;
95
- /** True iff this crossing wrapped a loop boundary (produced 2+ intervals). */
96
- readonly looped: boolean;
97
- /**
98
- * The monotonic sweep segment(s) covered by this crossing, in
99
- * chronological evaluation order. Normally exactly one interval
100
- * `[previousTime, currentTime]`; a loop-wrapping step yields one interval
101
- * per lap segment traversed. A subscriber determines exactly which cue
102
- * times were crossed (and in which direction) by testing each interval,
103
- * never by comparing `previousTime`/`currentTime` directly — that alone
104
- * is ambiguous across a wrap.
105
- */
106
- readonly intervals: readonly ClockInterval[];
107
- }
108
- export type ClockEvaluator = (crossing: ClockCrossing) => void;
109
- export interface ClockEvaluatorHandle {
110
- dispose(): void;
111
- }
112
- export interface AnimationClockOptions {
113
- /** Range start, in seconds. Default 0. */
114
- start?: number;
115
- /** Range end, in seconds. Default `Math.max(start, 1)`. */
116
- end?: number;
117
- /** Whether `advance()` wraps at the range boundary instead of clamping. Default false. */
118
- loop?: boolean;
119
- /** Playback rate multiplier, must be finite and >= 0. Default 1. */
120
- timeScale?: number;
121
- }
122
- /**
123
- * The engine-owned canonical clock. See the module doc comment above for
124
- * the design constraints this implementation is bound by.
125
- */
126
- export declare class AnimationClock {
127
- private _previousTime;
128
- private _currentTime;
129
- private _range;
130
- private _timeScale;
131
- private _playDirection;
132
- private _lastCrossingDirection;
133
- private _playbackState;
134
- private _evaluators;
135
- private _registrationCounter;
136
- constructor(options?: AnimationClockOptions);
137
- /** Current playhead time, in seconds. */
138
- get time(): number;
139
- /** Playhead time immediately before the most recent seek/advance. */
140
- get previousTime(): number;
141
- /**
142
- * Playback direction. `'paused'` whenever `playbackState !== 'playing'`
143
- * (covers both `pause()` and `stop()`) — matches the spec's literal
144
- * `direction: forward | reverse | paused` acceptance criterion. The
145
- * underlying intended direction is preserved across pause/resume; see
146
- * `play()`.
147
- */
148
- get direction(): ClockDirection | 'paused';
149
- get playbackState(): ClockPlaybackState;
150
- get timeScale(): number;
151
- set timeScale(value: number);
152
- get range(): ClockRange;
153
- /**
154
- * Update loop/range metadata. The current playhead is clamped into the
155
- * new range if necessary (reported as an ordinary crossing — same
156
- * evaluator path as `seek`/`advance` — so subscribers observe it).
157
- */
158
- setRange(next: Partial<Pick<ClockRange, 'start' | 'end' | 'loop'>>): void;
159
- /**
160
- * Begin/resume playback. `direction` sets (or re-asserts) the intended
161
- * playback direction for subsequent `advance()` calls; omit it to resume
162
- * in whatever direction was last set (default `'forward'` the first time).
163
- */
164
- play(direction?: ClockDirection): void;
165
- /** Halt playback at the current position. `advance()` becomes a no-op. */
166
- pause(): void;
167
- /**
168
- * Halt playback at the current position (distinct from `pause()` only in
169
- * reported `playbackState`; this unit does not prescribe a reset-to-start
170
- * policy — that is a cinematic-controller/render-seam decision, D5/I2).
171
- * `advance()` is a no-op in this state, same as `paused`.
172
- */
173
- stop(): void;
174
- /**
175
- * Jump directly to `t` (clamped into `range`). Idempotent: calling
176
- * `seek(t)` twice in a row leaves `time`/`previousTime` identical to
177
- * calling it once — the second call is a true no-op (no state mutation,
178
- * though evaluators still fire so a subscriber can rely on `seek` always
179
- * producing a crossing for e.g. re-asserting visual state).
180
- */
181
- seek(t: number): ClockCrossing;
182
- /**
183
- * Frame-index seek for export (D1 AC): seeks to EXACTLY `range.start +
184
- * n / fps`, computed fresh from `n`/`fps` on every call. This is what
185
- * keeps a rendered frame sequence drift-free — unlike repeatedly calling
186
- * `advance(1 / fps)` `n` times (which accumulates float error), this
187
- * always derives the same exact double for a given `(n, fps)` pair no
188
- * matter what the clock's prior state was.
189
- */
190
- seekFrame(n: number, fps: number): ClockCrossing;
191
- /**
192
- * Fixed-step advance by `dt` seconds (magnitude; sign of movement comes
193
- * from `direction`/`play()`, not from `dt`'s sign). A no-op whenever
194
- * `playbackState !== 'playing'` — this is what makes `advance()` do
195
- * nothing while paused (D1 AC). Returns `null` for that no-op case;
196
- * otherwise returns the resulting crossing (which may span multiple loop
197
- * laps if `dt * timeScale` exceeds the range length).
198
- */
199
- advance(dt: number): ClockCrossing | null;
200
- /**
201
- * Register an evaluator against a phase from the engine's own
202
- * `SystemPhaseName` vocabulary (`core/types.ts`). Evaluators fire on
203
- * every `seek()`/`advance()` (including idempotent no-op seeks and
204
- * `setRange` clamps) in `PHASE_ORDER` order, then registration order
205
- * within a phase — the same "deterministic phase order" every other
206
- * engine system is invoked in, so a Theatre binding, a registered-GSAP
207
- * seek, and a cue evaluator can each declare their phase and compose
208
- * without inventing a second ordering rule.
209
- */
210
- subscribe(phase: SystemPhaseName, evaluator: ClockEvaluator): ClockEvaluatorHandle;
211
- private emit;
212
- }
213
- //# sourceMappingURL=animation-clock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"animation-clock.d.ts","sourceRoot":"","sources":["../../src/animation/animation-clock.ts"],"names":[],"mappings":"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"}