@vgai/engine 0.2.0 → 0.3.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 (541) hide show
  1. package/README.md +3 -1
  2. package/dist/adapter/authoring.d.ts +404 -0
  3. package/dist/adapter/authoring.d.ts.map +1 -0
  4. package/dist/adapter/authoring.js +22 -0
  5. package/dist/adapter/colyseus-networking-adapter.d.ts +43 -0
  6. package/dist/adapter/colyseus-networking-adapter.d.ts.map +1 -0
  7. package/dist/adapter/colyseus-networking-adapter.js +38 -0
  8. package/dist/adapter/first-party-systems.d.ts +38 -0
  9. package/dist/adapter/first-party-systems.d.ts.map +1 -0
  10. package/dist/adapter/first-party-systems.js +77 -0
  11. package/dist/adapter/game-adapter.d.ts +133 -0
  12. package/dist/adapter/game-adapter.d.ts.map +1 -0
  13. package/dist/adapter/game-adapter.js +10 -0
  14. package/dist/adapter/host-context.d.ts +73 -0
  15. package/dist/adapter/host-context.d.ts.map +1 -0
  16. package/dist/adapter/host-context.js +16 -0
  17. package/dist/adapter/index.d.ts +22 -0
  18. package/dist/adapter/index.d.ts.map +1 -0
  19. package/dist/adapter/index.js +15 -0
  20. package/dist/adapter/ingest/game-contract.d.ts +53 -0
  21. package/dist/adapter/ingest/game-contract.d.ts.map +1 -0
  22. package/dist/adapter/ingest/game-contract.js +30 -0
  23. package/dist/adapter/ingest/overlay-applier.d.ts +118 -0
  24. package/dist/adapter/ingest/overlay-applier.d.ts.map +1 -0
  25. package/dist/adapter/ingest/overlay-applier.js +132 -0
  26. package/dist/adapter/ingest/overlay-apply.d.ts +60 -0
  27. package/dist/adapter/ingest/overlay-apply.d.ts.map +1 -0
  28. package/dist/adapter/ingest/overlay-apply.js +101 -0
  29. package/dist/adapter/ingest/overlay-file.d.ts +79 -0
  30. package/dist/adapter/ingest/overlay-file.d.ts.map +1 -0
  31. package/dist/adapter/ingest/overlay-file.js +66 -0
  32. package/dist/adapter/ingest/overlay-report.d.ts +113 -0
  33. package/dist/adapter/ingest/overlay-report.d.ts.map +1 -0
  34. package/dist/adapter/ingest/overlay-report.js +103 -0
  35. package/dist/adapter/ingest/scene-capture.d.ts +97 -0
  36. package/dist/adapter/ingest/scene-capture.d.ts.map +1 -0
  37. package/dist/adapter/ingest/scene-capture.js +248 -0
  38. package/dist/adapter/ingest/upstream-pin.d.ts +47 -0
  39. package/dist/adapter/ingest/upstream-pin.d.ts.map +1 -0
  40. package/dist/adapter/ingest/upstream-pin.js +50 -0
  41. package/dist/adapter/loop-gate-report.d.ts +34 -0
  42. package/dist/adapter/loop-gate-report.d.ts.map +1 -0
  43. package/dist/adapter/loop-gate-report.js +37 -0
  44. package/dist/adapter/rapier-physics-adapter.d.ts +12 -0
  45. package/dist/adapter/rapier-physics-adapter.d.ts.map +1 -0
  46. package/dist/adapter/rapier-physics-adapter.js +46 -0
  47. package/dist/adapter/system-adapter.d.ts +133 -0
  48. package/dist/adapter/system-adapter.d.ts.map +1 -0
  49. package/dist/adapter/system-adapter.js +13 -0
  50. package/dist/adapter/transform.d.ts +18 -0
  51. package/dist/adapter/transform.d.ts.map +1 -0
  52. package/dist/adapter/transform.js +1 -0
  53. package/dist/adapter/vgai-scene-game-adapter.d.ts +116 -0
  54. package/dist/adapter/vgai-scene-game-adapter.d.ts.map +1 -0
  55. package/dist/adapter/vgai-scene-game-adapter.js +714 -0
  56. package/dist/adapter/world-kind.d.ts +30 -0
  57. package/dist/adapter/world-kind.d.ts.map +1 -0
  58. package/dist/adapter/world-kind.js +18 -0
  59. package/dist/ai/navigation.d.ts +64 -0
  60. package/dist/ai/navigation.d.ts.map +1 -0
  61. package/dist/ai/navigation.js +133 -0
  62. package/dist/animation/anim-graph-types.d.ts +25 -0
  63. package/dist/animation/anim-graph-types.d.ts.map +1 -0
  64. package/dist/animation/anim-graph-types.js +1 -0
  65. package/dist/animation/animation-clock.d.ts +213 -0
  66. package/dist/animation/animation-clock.d.ts.map +1 -0
  67. package/dist/animation/animation-clock.js +301 -0
  68. package/dist/animation/blend-node.d.ts +22 -0
  69. package/dist/animation/blend-node.d.ts.map +1 -0
  70. package/dist/animation/blend-node.js +97 -0
  71. package/dist/animation/camera-ownership.d.ts +250 -0
  72. package/dist/animation/camera-ownership.d.ts.map +1 -0
  73. package/dist/animation/camera-ownership.js +169 -0
  74. package/dist/animation/cinematic-cues.d.ts +200 -0
  75. package/dist/animation/cinematic-cues.d.ts.map +1 -0
  76. package/dist/animation/cinematic-cues.js +213 -0
  77. package/dist/animation/clip-map.d.ts +12 -0
  78. package/dist/animation/clip-map.d.ts.map +1 -0
  79. package/dist/animation/clip-map.js +37 -0
  80. package/dist/animation/gsap-registration.d.ts +119 -0
  81. package/dist/animation/gsap-registration.d.ts.map +1 -0
  82. package/dist/animation/gsap-registration.js +92 -0
  83. package/dist/animation/theatre-clock-binding.d.ts +89 -0
  84. package/dist/animation/theatre-clock-binding.d.ts.map +1 -0
  85. package/dist/animation/theatre-clock-binding.js +29 -0
  86. package/dist/animation/theatre-director.d.ts +242 -0
  87. package/dist/animation/theatre-director.d.ts.map +1 -0
  88. package/dist/animation/theatre-director.js +235 -0
  89. package/dist/animation/theatre-object-binding.d.ts +305 -0
  90. package/dist/animation/theatre-object-binding.d.ts.map +1 -0
  91. package/dist/animation/theatre-object-binding.js +351 -0
  92. package/dist/animation/xstate-animation-binding.d.ts +111 -0
  93. package/dist/animation/xstate-animation-binding.d.ts.map +1 -0
  94. package/dist/animation/xstate-animation-binding.js +307 -0
  95. package/dist/animation/xstate-animation-meta.d.ts +228 -0
  96. package/dist/animation/xstate-animation-meta.d.ts.map +1 -0
  97. package/dist/animation/xstate-animation-meta.js +221 -0
  98. package/dist/assets.d.ts +26 -0
  99. package/dist/assets.d.ts.map +1 -0
  100. package/dist/assets.js +55 -0
  101. package/dist/audio/index.d.ts +4 -0
  102. package/dist/audio/index.d.ts.map +1 -0
  103. package/dist/audio/index.js +24 -0
  104. package/dist/audio/tone-clock-binding.d.ts +75 -0
  105. package/dist/audio/tone-clock-binding.d.ts.map +1 -0
  106. package/dist/audio/tone-clock-binding.js +29 -0
  107. package/dist/audio/tone-context.d.ts +114 -0
  108. package/dist/audio/tone-context.d.ts.map +1 -0
  109. package/dist/audio/tone-context.js +39 -0
  110. package/dist/audio/tone-offline-render.d.ts +90 -0
  111. package/dist/audio/tone-offline-render.d.ts.map +1 -0
  112. package/dist/audio/tone-offline-render.js +56 -0
  113. package/dist/audio/wav-encode.d.ts +38 -0
  114. package/dist/audio/wav-encode.d.ts.map +1 -0
  115. package/dist/audio/wav-encode.js +97 -0
  116. package/dist/core/game-loop.d.ts +21 -0
  117. package/dist/core/game-loop.d.ts.map +1 -0
  118. package/dist/core/game-loop.js +130 -0
  119. package/dist/core/system-runner.d.ts +120 -0
  120. package/dist/core/system-runner.d.ts.map +1 -0
  121. package/dist/core/system-runner.js +286 -0
  122. package/dist/core/types.d.ts +58 -0
  123. package/dist/core/types.d.ts.map +1 -0
  124. package/dist/core/types.js +25 -0
  125. package/dist/data/data-asset.d.ts +101 -0
  126. package/dist/data/data-asset.d.ts.map +1 -0
  127. package/dist/data/data-asset.js +122 -0
  128. package/dist/data/data-check-core.d.ts +110 -0
  129. package/dist/data/data-check-core.d.ts.map +1 -0
  130. package/dist/data/data-check-core.js +178 -0
  131. package/dist/data/data-ref.d.ts +79 -0
  132. package/dist/data/data-ref.d.ts.map +1 -0
  133. package/dist/data/data-ref.js +130 -0
  134. package/dist/data/vite-plugin-data.d.ts +79 -0
  135. package/dist/data/vite-plugin-data.d.ts.map +1 -0
  136. package/dist/data/vite-plugin-data.js +217 -0
  137. package/dist/dev/console-bridge.d.ts +22 -0
  138. package/dist/dev/console-bridge.d.ts.map +1 -0
  139. package/dist/dev/console-bridge.js +71 -0
  140. package/dist/dev/debug-draw.d.ts +24 -0
  141. package/dist/dev/debug-draw.d.ts.map +1 -0
  142. package/dist/dev/debug-draw.js +73 -0
  143. package/dist/dev/logger.d.ts +30 -0
  144. package/dist/dev/logger.d.ts.map +1 -0
  145. package/dist/dev/logger.js +90 -0
  146. package/dist/ecs/component-manager.d.ts +189 -0
  147. package/dist/ecs/component-manager.d.ts.map +1 -0
  148. package/dist/ecs/component-manager.js +676 -0
  149. package/dist/ecs/game-component.d.ts +97 -0
  150. package/dist/ecs/game-component.d.ts.map +1 -0
  151. package/dist/ecs/game-component.js +80 -0
  152. package/dist/ecs/hmr-swap-report.d.ts +53 -0
  153. package/dist/ecs/hmr-swap-report.d.ts.map +1 -0
  154. package/dist/ecs/hmr-swap-report.js +55 -0
  155. package/dist/index.d.ts +37 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +30 -0
  158. package/dist/input/input-manager.d.ts +596 -0
  159. package/dist/input/input-manager.d.ts.map +1 -0
  160. package/dist/input/input-manager.js +1564 -0
  161. package/dist/input/input-types.d.ts +171 -0
  162. package/dist/input/input-types.d.ts.map +1 -0
  163. package/dist/input/input-types.js +1 -0
  164. package/dist/input/prompt-labels.d.ts +21 -0
  165. package/dist/input/prompt-labels.d.ts.map +1 -0
  166. package/dist/input/prompt-labels.js +121 -0
  167. package/dist/input/rebind-controller.d.ts +59 -0
  168. package/dist/input/rebind-controller.d.ts.map +1 -0
  169. package/dist/input/rebind-controller.js +85 -0
  170. package/dist/input/schema.d.ts +16 -0
  171. package/dist/input/schema.d.ts.map +1 -0
  172. package/dist/input/schema.js +228 -0
  173. package/dist/loader.d.ts +43 -0
  174. package/dist/loader.d.ts.map +1 -0
  175. package/dist/loader.js +59 -0
  176. package/dist/manifest/index.d.ts +5 -0
  177. package/dist/manifest/index.d.ts.map +1 -0
  178. package/dist/manifest/index.js +8 -0
  179. package/dist/manifest/load-file.d.ts +4 -0
  180. package/dist/manifest/load-file.d.ts.map +1 -0
  181. package/dist/manifest/load-file.js +14 -0
  182. package/dist/manifest/load.d.ts +117 -0
  183. package/dist/manifest/load.d.ts.map +1 -0
  184. package/dist/manifest/load.js +255 -0
  185. package/dist/manifest/schema.d.ts +173 -0
  186. package/dist/manifest/schema.d.ts.map +1 -0
  187. package/dist/manifest/schema.js +302 -0
  188. package/dist/physics/collision-system.d.ts +41 -0
  189. package/dist/physics/collision-system.d.ts.map +1 -0
  190. package/dist/physics/collision-system.js +64 -0
  191. package/dist/physics/physics-registry.d.ts +45 -0
  192. package/dist/physics/physics-registry.d.ts.map +1 -0
  193. package/dist/physics/physics-registry.js +65 -0
  194. package/dist/physics/transform-writer.d.ts +16 -0
  195. package/dist/physics/transform-writer.d.ts.map +1 -0
  196. package/dist/physics/transform-writer.js +38 -0
  197. package/dist/physics/trigger-dispatch.d.ts +24 -0
  198. package/dist/physics/trigger-dispatch.d.ts.map +1 -0
  199. package/dist/physics/trigger-dispatch.js +80 -0
  200. package/dist/react/game-state.d.ts +105 -0
  201. package/dist/react/game-state.d.ts.map +1 -0
  202. package/dist/react/game-state.js +144 -0
  203. package/dist/react/use-data.d.ts +60 -0
  204. package/dist/react/use-data.d.ts.map +1 -0
  205. package/dist/react/use-data.js +96 -0
  206. package/dist/react/use-selection.d.ts +75 -0
  207. package/dist/react/use-selection.d.ts.map +1 -0
  208. package/dist/react/use-selection.js +90 -0
  209. package/dist/render/auto-batcher.d.ts +34 -0
  210. package/dist/render/auto-batcher.d.ts.map +1 -0
  211. package/dist/render/auto-batcher.js +140 -0
  212. package/dist/render/render-batch-system.d.ts +33 -0
  213. package/dist/render/render-batch-system.d.ts.map +1 -0
  214. package/dist/render/render-batch-system.js +230 -0
  215. package/dist/render/render-features.d.ts +47 -0
  216. package/dist/render/render-features.d.ts.map +1 -0
  217. package/dist/render/render-features.js +105 -0
  218. package/dist/render/render-settings.d.ts +36 -0
  219. package/dist/render/render-settings.d.ts.map +1 -0
  220. package/dist/render/render-settings.js +51 -0
  221. package/dist/runtime/create-runtime.d.ts +280 -0
  222. package/dist/runtime/create-runtime.d.ts.map +1 -0
  223. package/dist/runtime/create-runtime.js +795 -0
  224. package/dist/runtime/frame-selector-cache.d.ts +41 -0
  225. package/dist/runtime/frame-selector-cache.d.ts.map +1 -0
  226. package/dist/runtime/frame-selector-cache.js +65 -0
  227. package/dist/runtime/game.d.ts +433 -0
  228. package/dist/runtime/game.d.ts.map +1 -0
  229. package/dist/runtime/game.js +569 -0
  230. package/dist/runtime/input-router.d.ts +78 -0
  231. package/dist/runtime/input-router.d.ts.map +1 -0
  232. package/dist/runtime/input-router.js +171 -0
  233. package/dist/runtime/mount-game.d.ts +129 -0
  234. package/dist/runtime/mount-game.d.ts.map +1 -0
  235. package/dist/runtime/mount-game.js +152 -0
  236. package/dist/runtime/mount-manifest.d.ts +119 -0
  237. package/dist/runtime/mount-manifest.d.ts.map +1 -0
  238. package/dist/runtime/mount-manifest.js +204 -0
  239. package/dist/runtime/render-audio-control.d.ts +110 -0
  240. package/dist/runtime/render-audio-control.d.ts.map +1 -0
  241. package/dist/runtime/render-audio-control.js +111 -0
  242. package/dist/runtime/render-control.d.ts +291 -0
  243. package/dist/runtime/render-control.d.ts.map +1 -0
  244. package/dist/runtime/render-control.js +264 -0
  245. package/dist/runtime/render-seed.d.ts +57 -0
  246. package/dist/runtime/render-seed.d.ts.map +1 -0
  247. package/dist/runtime/render-seed.js +74 -0
  248. package/dist/runtime/scene-ui-bridge.d.ts +69 -0
  249. package/dist/runtime/scene-ui-bridge.d.ts.map +1 -0
  250. package/dist/runtime/scene-ui-bridge.js +23 -0
  251. package/dist/runtime/scene-ui-data.d.ts +13 -0
  252. package/dist/runtime/scene-ui-data.d.ts.map +1 -0
  253. package/dist/runtime/scene-ui-data.js +92 -0
  254. package/dist/runtime/state-bridge.d.ts +47 -0
  255. package/dist/runtime/state-bridge.d.ts.map +1 -0
  256. package/dist/runtime/state-bridge.js +53 -0
  257. package/dist/runtime/types.d.ts +179 -0
  258. package/dist/runtime/types.d.ts.map +1 -0
  259. package/dist/runtime/types.js +1 -0
  260. package/dist/scene/asset-loaders.d.ts +79 -0
  261. package/dist/scene/asset-loaders.d.ts.map +1 -0
  262. package/dist/scene/asset-loaders.js +141 -0
  263. package/dist/scene/asset-paths.d.ts +11 -0
  264. package/dist/scene/asset-paths.d.ts.map +1 -0
  265. package/dist/scene/asset-paths.js +108 -0
  266. package/dist/scene/asset-ref-check.d.ts +88 -0
  267. package/dist/scene/asset-ref-check.d.ts.map +1 -0
  268. package/dist/scene/asset-ref-check.js +214 -0
  269. package/dist/scene/asset-registry.d.ts +30 -0
  270. package/dist/scene/asset-registry.d.ts.map +1 -0
  271. package/dist/scene/asset-registry.js +50 -0
  272. package/dist/scene/collider-dimensions.d.ts +63 -0
  273. package/dist/scene/collider-dimensions.d.ts.map +1 -0
  274. package/dist/scene/collider-dimensions.js +98 -0
  275. package/dist/scene/component-registry.d.ts +17 -0
  276. package/dist/scene/component-registry.d.ts.map +1 -0
  277. package/dist/scene/component-registry.js +28 -0
  278. package/dist/scene/defaults.d.ts +252 -0
  279. package/dist/scene/defaults.d.ts.map +1 -0
  280. package/dist/scene/defaults.js +151 -0
  281. package/dist/scene/geometries/index.d.ts +8 -0
  282. package/dist/scene/geometries/index.d.ts.map +1 -0
  283. package/dist/scene/geometries/index.js +7 -0
  284. package/dist/scene/geometries/terrain.d.ts +2 -0
  285. package/dist/scene/geometries/terrain.d.ts.map +1 -0
  286. package/dist/scene/geometries/terrain.js +37 -0
  287. package/dist/scene/geometry-registry.d.ts +24 -0
  288. package/dist/scene/geometry-registry.d.ts.map +1 -0
  289. package/dist/scene/geometry-registry.js +20 -0
  290. package/dist/scene/instance-registry.d.ts +36 -0
  291. package/dist/scene/instance-registry.d.ts.map +1 -0
  292. package/dist/scene/instance-registry.js +55 -0
  293. package/dist/scene/instancers/grid.d.ts +2 -0
  294. package/dist/scene/instancers/grid.d.ts.map +1 -0
  295. package/dist/scene/instancers/grid.js +36 -0
  296. package/dist/scene/instancers/index.d.ts +8 -0
  297. package/dist/scene/instancers/index.d.ts.map +1 -0
  298. package/dist/scene/instancers/index.js +7 -0
  299. package/dist/scene/light-camera-factory.d.ts +23 -0
  300. package/dist/scene/light-camera-factory.d.ts.map +1 -0
  301. package/dist/scene/light-camera-factory.js +68 -0
  302. package/dist/scene/material-factory.d.ts +17 -0
  303. package/dist/scene/material-factory.d.ts.map +1 -0
  304. package/dist/scene/material-factory.js +197 -0
  305. package/dist/scene/material-registry.d.ts +40 -0
  306. package/dist/scene/material-registry.d.ts.map +1 -0
  307. package/dist/scene/material-registry.js +44 -0
  308. package/dist/scene/materials/index.d.ts +8 -0
  309. package/dist/scene/materials/index.d.ts.map +1 -0
  310. package/dist/scene/materials/index.js +7 -0
  311. package/dist/scene/materials/water.d.ts +2 -0
  312. package/dist/scene/materials/water.d.ts.map +1 -0
  313. package/dist/scene/materials/water.js +54 -0
  314. package/dist/scene/parse.d.ts +23 -0
  315. package/dist/scene/parse.d.ts.map +1 -0
  316. package/dist/scene/parse.js +179 -0
  317. package/dist/scene/particles-factory.d.ts +33 -0
  318. package/dist/scene/particles-factory.d.ts.map +1 -0
  319. package/dist/scene/particles-factory.js +282 -0
  320. package/dist/scene/scene-apply.d.ts +109 -0
  321. package/dist/scene/scene-apply.d.ts.map +1 -0
  322. package/dist/scene/scene-apply.js +326 -0
  323. package/dist/scene/scene-diff-schema.d.ts +285 -0
  324. package/dist/scene/scene-diff-schema.d.ts.map +1 -0
  325. package/dist/scene/scene-diff-schema.js +92 -0
  326. package/dist/scene/scene-diff-types.d.ts +40 -0
  327. package/dist/scene/scene-diff-types.d.ts.map +1 -0
  328. package/dist/scene/scene-diff-types.js +14 -0
  329. package/dist/scene/scene-loader.d.ts +177 -0
  330. package/dist/scene/scene-loader.d.ts.map +1 -0
  331. package/dist/scene/scene-loader.js +1213 -0
  332. package/dist/scene/scene-query.d.ts +11 -0
  333. package/dist/scene/scene-query.d.ts.map +1 -0
  334. package/dist/scene/scene-query.js +63 -0
  335. package/dist/scene/scene-types.d.ts +10 -0
  336. package/dist/scene/scene-types.d.ts.map +1 -0
  337. package/dist/scene/scene-types.js +8 -0
  338. package/dist/scene/scene-version.d.ts +26 -0
  339. package/dist/scene/scene-version.d.ts.map +1 -0
  340. package/dist/scene/scene-version.js +34 -0
  341. package/dist/scene/schema/animation.d.ts +8 -0
  342. package/dist/scene/schema/animation.d.ts.map +1 -0
  343. package/dist/scene/schema/animation.js +42 -0
  344. package/dist/scene/schema/audio.d.ts +13 -0
  345. package/dist/scene/schema/audio.d.ts.map +1 -0
  346. package/dist/scene/schema/audio.js +22 -0
  347. package/dist/scene/schema/camera.d.ts +28 -0
  348. package/dist/scene/schema/camera.d.ts.map +1 -0
  349. package/dist/scene/schema/camera.js +17 -0
  350. package/dist/scene/schema/collider.d.ts +40 -0
  351. package/dist/scene/schema/collider.d.ts.map +1 -0
  352. package/dist/scene/schema/collider.js +55 -0
  353. package/dist/scene/schema/entity-ref.d.ts +31 -0
  354. package/dist/scene/schema/entity-ref.d.ts.map +1 -0
  355. package/dist/scene/schema/entity-ref.js +61 -0
  356. package/dist/scene/schema/entity.d.ts +1036 -0
  357. package/dist/scene/schema/entity.d.ts.map +1 -0
  358. package/dist/scene/schema/entity.js +153 -0
  359. package/dist/scene/schema/environment.d.ts +425 -0
  360. package/dist/scene/schema/environment.d.ts.map +1 -0
  361. package/dist/scene/schema/environment.js +357 -0
  362. package/dist/scene/schema/index.d.ts +39 -0
  363. package/dist/scene/schema/index.d.ts.map +1 -0
  364. package/dist/scene/schema/index.js +20 -0
  365. package/dist/scene/schema/instances.d.ts +14 -0
  366. package/dist/scene/schema/instances.d.ts.map +1 -0
  367. package/dist/scene/schema/instances.js +28 -0
  368. package/dist/scene/schema/joint.d.ts +23 -0
  369. package/dist/scene/schema/joint.d.ts.map +1 -0
  370. package/dist/scene/schema/joint.js +23 -0
  371. package/dist/scene/schema/light.d.ts +38 -0
  372. package/dist/scene/schema/light.d.ts.map +1 -0
  373. package/dist/scene/schema/light.js +26 -0
  374. package/dist/scene/schema/material.d.ts +199 -0
  375. package/dist/scene/schema/material.d.ts.map +1 -0
  376. package/dist/scene/schema/material.js +99 -0
  377. package/dist/scene/schema/mesh.d.ts +48 -0
  378. package/dist/scene/schema/mesh.d.ts.map +1 -0
  379. package/dist/scene/schema/mesh.js +82 -0
  380. package/dist/scene/schema/particles.d.ts +2178 -0
  381. package/dist/scene/schema/particles.d.ts.map +1 -0
  382. package/dist/scene/schema/particles.js +321 -0
  383. package/dist/scene/schema/physics.d.ts +56 -0
  384. package/dist/scene/schema/physics.d.ts.map +1 -0
  385. package/dist/scene/schema/physics.js +37 -0
  386. package/dist/scene/schema/scene-file.d.ts +304 -0
  387. package/dist/scene/schema/scene-file.d.ts.map +1 -0
  388. package/dist/scene/schema/scene-file.js +262 -0
  389. package/dist/scene/schema/shadow.d.ts +28 -0
  390. package/dist/scene/schema/shadow.d.ts.map +1 -0
  391. package/dist/scene/schema/shadow.js +20 -0
  392. package/dist/scene/schema/spline.d.ts +25 -0
  393. package/dist/scene/schema/spline.d.ts.map +1 -0
  394. package/dist/scene/schema/spline.js +15 -0
  395. package/dist/scene/schema/tuples.d.ts +12 -0
  396. package/dist/scene/schema/tuples.d.ts.map +1 -0
  397. package/dist/scene/schema/tuples.js +14 -0
  398. package/dist/scene/schema/ui.d.ts +880 -0
  399. package/dist/scene/schema/ui.d.ts.map +1 -0
  400. package/dist/scene/schema/ui.js +506 -0
  401. package/dist/scene/user-data.d.ts +171 -0
  402. package/dist/scene/user-data.d.ts.map +1 -0
  403. package/dist/scene/user-data.js +137 -0
  404. package/dist/setup/setup-audio.d.ts +20 -0
  405. package/dist/setup/setup-audio.d.ts.map +1 -0
  406. package/dist/setup/setup-audio.js +41 -0
  407. package/dist/setup/setup-particles.d.ts +17 -0
  408. package/dist/setup/setup-particles.d.ts.map +1 -0
  409. package/dist/setup/setup-particles.js +16 -0
  410. package/dist/setup/setup-physics.d.ts +25 -0
  411. package/dist/setup/setup-physics.d.ts.map +1 -0
  412. package/dist/setup/setup-physics.js +51 -0
  413. package/dist/setup/setup-renderer.d.ts +69 -0
  414. package/dist/setup/setup-renderer.d.ts.map +1 -0
  415. package/dist/setup/setup-renderer.js +363 -0
  416. package/dist/tools/define-tool.d.ts +105 -0
  417. package/dist/tools/define-tool.d.ts.map +1 -0
  418. package/dist/tools/define-tool.js +82 -0
  419. package/dist/world2d/authoring-2d.d.ts +76 -0
  420. package/dist/world2d/authoring-2d.d.ts.map +1 -0
  421. package/dist/world2d/authoring-2d.js +176 -0
  422. package/dist/world2d/capture-to-scene2d.d.ts +5 -0
  423. package/dist/world2d/capture-to-scene2d.d.ts.map +1 -0
  424. package/dist/world2d/capture-to-scene2d.js +49 -0
  425. package/dist/world2d/collision-2d.d.ts +52 -0
  426. package/dist/world2d/collision-2d.d.ts.map +1 -0
  427. package/dist/world2d/collision-2d.js +70 -0
  428. package/dist/world2d/components-2d.d.ts +47 -0
  429. package/dist/world2d/components-2d.d.ts.map +1 -0
  430. package/dist/world2d/components-2d.js +77 -0
  431. package/dist/world2d/index.d.ts +34 -0
  432. package/dist/world2d/index.d.ts.map +1 -0
  433. package/dist/world2d/index.js +32 -0
  434. package/dist/world2d/ingest-iframe-2d.d.ts +82 -0
  435. package/dist/world2d/ingest-iframe-2d.d.ts.map +1 -0
  436. package/dist/world2d/ingest-iframe-2d.js +166 -0
  437. package/dist/world2d/ingest2d.d.ts +97 -0
  438. package/dist/world2d/ingest2d.d.ts.map +1 -0
  439. package/dist/world2d/ingest2d.js +40 -0
  440. package/dist/world2d/physics2d-registry.d.ts +24 -0
  441. package/dist/world2d/physics2d-registry.d.ts.map +1 -0
  442. package/dist/world2d/physics2d-registry.js +38 -0
  443. package/dist/world2d/pixi-game-adapter.d.ts +107 -0
  444. package/dist/world2d/pixi-game-adapter.d.ts.map +1 -0
  445. package/dist/world2d/pixi-game-adapter.js +211 -0
  446. package/dist/world2d/pixi-surface.d.ts +39 -0
  447. package/dist/world2d/pixi-surface.d.ts.map +1 -0
  448. package/dist/world2d/pixi-surface.js +47 -0
  449. package/dist/world2d/scene-capture-2d.d.ts +43 -0
  450. package/dist/world2d/scene-capture-2d.d.ts.map +1 -0
  451. package/dist/world2d/scene-capture-2d.js +92 -0
  452. package/dist/world2d/scene2d-loader.d.ts +27 -0
  453. package/dist/world2d/scene2d-loader.d.ts.map +1 -0
  454. package/dist/world2d/scene2d-loader.js +274 -0
  455. package/dist/world2d/schema/entity2d.d.ts +102 -0
  456. package/dist/world2d/schema/entity2d.d.ts.map +1 -0
  457. package/dist/world2d/schema/entity2d.js +119 -0
  458. package/dist/world2d/schema/physics2d.d.ts +46 -0
  459. package/dist/world2d/schema/physics2d.d.ts.map +1 -0
  460. package/dist/world2d/schema/physics2d.js +45 -0
  461. package/dist/world2d/schema/sprite.d.ts +42 -0
  462. package/dist/world2d/schema/sprite.d.ts.map +1 -0
  463. package/dist/world2d/schema/sprite.js +63 -0
  464. package/dist/world2d/schema/tilemap.d.ts +15 -0
  465. package/dist/world2d/schema/tilemap.d.ts.map +1 -0
  466. package/dist/world2d/schema/tilemap.js +19 -0
  467. package/dist/world2d/schema/tuples2d.d.ts +20 -0
  468. package/dist/world2d/schema/tuples2d.d.ts.map +1 -0
  469. package/dist/world2d/schema/tuples2d.js +19 -0
  470. package/dist/world2d/system-adapters-2d.d.ts +16 -0
  471. package/dist/world2d/system-adapters-2d.d.ts.map +1 -0
  472. package/dist/world2d/system-adapters-2d.js +37 -0
  473. package/dist/world2d/transform-writer-2d.d.ts +16 -0
  474. package/dist/world2d/transform-writer-2d.d.ts.map +1 -0
  475. package/dist/world2d/transform-writer-2d.js +22 -0
  476. package/dist/world2d/types.d.ts +53 -0
  477. package/dist/world2d/types.d.ts.map +1 -0
  478. package/dist/world2d/types.js +1 -0
  479. package/package.json +18 -4
  480. package/src/adapter/authoring.ts +10 -0
  481. package/src/adapter/first-party-systems.ts +23 -34
  482. package/src/adapter/index.ts +1 -3
  483. package/src/adapter/system-adapter.ts +15 -22
  484. package/src/adapter/vgai-scene-game-adapter.ts +5 -14
  485. package/src/animation/anim-graph-types.ts +12 -43
  486. package/src/animation/animation-clock.ts +479 -0
  487. package/src/animation/camera-ownership.ts +467 -0
  488. package/src/animation/cinematic-cues.ts +451 -0
  489. package/src/animation/clip-map.ts +41 -0
  490. package/src/animation/gsap-registration.ts +184 -0
  491. package/src/animation/theatre-clock-binding.ts +111 -0
  492. package/src/animation/theatre-director.ts +347 -0
  493. package/src/animation/theatre-object-binding.ts +661 -0
  494. package/src/animation/xstate-animation-binding.ts +398 -0
  495. package/src/animation/xstate-animation-meta.ts +282 -0
  496. package/src/audio/index.ts +39 -7
  497. package/src/audio/tone-clock-binding.ts +98 -0
  498. package/src/audio/tone-context.ts +129 -0
  499. package/src/audio/tone-offline-render.ts +167 -0
  500. package/src/audio/wav-encode.ts +119 -0
  501. package/src/core/game-loop.ts +17 -0
  502. package/src/core/types.ts +13 -0
  503. package/src/data/data-asset.ts +167 -0
  504. package/src/data/data-check-core.ts +242 -0
  505. package/src/data/data-ref.ts +145 -0
  506. package/src/data/vite-plugin-data.ts +290 -0
  507. package/src/index.ts +48 -0
  508. package/src/input/input-manager.ts +1206 -32
  509. package/src/input/input-types.ts +155 -3
  510. package/src/input/prompt-labels.ts +122 -0
  511. package/src/input/rebind-controller.ts +105 -0
  512. package/src/input/schema.ts +206 -52
  513. package/src/react/use-data.ts +114 -0
  514. package/src/react/use-selection.tsx +135 -0
  515. package/src/runtime/create-runtime.ts +30 -9
  516. package/src/runtime/render-audio-control.ts +168 -0
  517. package/src/runtime/render-control.ts +522 -0
  518. package/src/runtime/render-seed.ts +79 -0
  519. package/src/runtime/types.ts +0 -5
  520. package/src/scene/asset-loaders.ts +10 -36
  521. package/src/scene/asset-paths.ts +0 -2
  522. package/src/scene/asset-ref-check.ts +248 -0
  523. package/src/scene/parse.ts +133 -0
  524. package/src/scene/scene-loader.ts +81 -96
  525. package/src/scene/schema/animation.ts +30 -79
  526. package/src/scene/schema/entity.ts +20 -0
  527. package/src/scene/schema/index.ts +2 -12
  528. package/src/scene/user-data.ts +8 -9
  529. package/src/setup/setup-renderer.ts +9 -2
  530. package/src/tools/define-tool.ts +152 -0
  531. package/src/animation/anim-graph.ts +0 -406
  532. package/src/animation/anim-system.ts +0 -28
  533. package/src/animation/property-track.ts +0 -178
  534. package/src/animation/schema.ts +0 -204
  535. package/src/audio/ambient.ts +0 -300
  536. package/src/audio/impacts.ts +0 -212
  537. package/src/audio/movement.ts +0 -140
  538. package/src/audio/musical.ts +0 -200
  539. package/src/audio/ui-sounds.ts +0 -171
  540. package/src/audio/vehicle.ts +0 -235
  541. package/src/audio/weapons.ts +0 -152
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Zod schema for a `SceneDiff` JSON patch (T4.5 — `vgai apply-diff`).
3
+ *
4
+ * Validates the SHAPE of a hand-authored or `diffScene`-computed patch before
5
+ * `applyDiff` (./scene-apply.ts) touches it. Not wired into
6
+ * `scripts/generate-schema.ts` — that script's output feeds the *scene file*
7
+ * JSON Schema (autocomplete/reference for `.vscn.json`/`.prefab.json`/
8
+ * `vgai.game.json`), a different artifact from a diff/patch file. Adding a
9
+ * 5th line there would be mechanically trivial, but a generated
10
+ * `scene-diff.schema.json` has no current consumer (no editor autocomplete
11
+ * targets *.json patch files) — left undone; revisit if one appears.
12
+ *
13
+ * `SceneEntitySchema` is reused as-is for `add`/`update` payloads even though
14
+ * both operations ignore any `children` the payload carries (children are
15
+ * position-managed exclusively by their own `add`/`move` ops — see
16
+ * `applyDiff`'s jsdoc). Rejecting `children` at the schema level would need
17
+ * an `.omit()` off a plain object schema, but `SceneEntitySchema` is a
18
+ * `z.lazy()`-wrapped discriminated union (recursive type), so this schema
19
+ * takes the more permissive-but-documented path: allow it through and let
20
+ * `applyDiff` silently drop it, rather than add a second near-duplicate
21
+ * entity schema just to forbid one field.
22
+ */
23
+ import { z } from 'zod';
24
+ import { SceneEntitySchema } from './schema/entity';
25
+ import { SceneEnvironmentSchema } from './schema/environment';
26
+ const ParentIdSchema = z
27
+ .string()
28
+ .nullable()
29
+ .describe('Parent entity id, or null for a top-level (root) entity');
30
+ const TargetIndexSchema = z
31
+ .number()
32
+ .int()
33
+ .describe('Target position among the (new) parent’s children, counted in the FINAL tree ' +
34
+ '(after every op in this diff has been applied) — not the position at the moment this ' +
35
+ 'one op runs. Negative values are rejected; out-of-range values are clamped to the end.');
36
+ export const DiffOpSchema = z.discriminatedUnion('type', [
37
+ z
38
+ .object({
39
+ type: z.literal('add').describe('Insert a new entity into the scene tree'),
40
+ entity: SceneEntitySchema.describe('The entity to insert. Any `children` on this payload are ignored — insert descendants ' +
41
+ 'via their own `add` ops with `parentId` set to this entity’s `id`.'),
42
+ parentId: ParentIdSchema,
43
+ index: TargetIndexSchema,
44
+ })
45
+ .describe('Add operation'),
46
+ z
47
+ .object({
48
+ type: z.literal('remove').describe('Delete an entity, and its whole subtree, from the scene'),
49
+ id: z.string().describe('Id of the entity to remove'),
50
+ })
51
+ .describe('Remove operation'),
52
+ z
53
+ .object({
54
+ type: z
55
+ .literal('update')
56
+ .describe('Replace an entity’s fields (every field except `id` and `children`) with new values — ' +
57
+ 'a full replace, not a merge: fields present on the live entity but absent from this ' +
58
+ 'payload are deleted'),
59
+ id: z.string().describe('Id of the entity to update'),
60
+ entity: SceneEntitySchema.describe('The new field values. `id` and any `children` on this payload are ignored — repositioning ' +
61
+ 'is exclusively a `move` op’s job.'),
62
+ })
63
+ .describe('Update operation'),
64
+ z
65
+ .object({
66
+ type: z.literal('move').describe('Reparent and/or reorder an existing entity'),
67
+ id: z.string().describe('Id of the entity to move'),
68
+ parentId: ParentIdSchema,
69
+ index: TargetIndexSchema,
70
+ })
71
+ .describe('Move operation'),
72
+ ]);
73
+ export const SceneDiffSchema = z
74
+ .object({
75
+ ops: z
76
+ .array(DiffOpSchema)
77
+ .describe('add/remove/update/move operations. Order in this array does not matter for correctness — ' +
78
+ 'applyDiff derives its own safe application order (moves are detached before removes run, ' +
79
+ 'so a child moved out of a removed parent survives; adds/moves are placed by a fully ' +
80
+ 'pre-resolved id map, so a newly-added parent is always resolvable for its newly-added ' +
81
+ 'children regardless of array position).'),
82
+ environmentChanged: z.boolean().describe('Whether the scene-level `environment` block changed'),
83
+ newEnvironment: SceneEnvironmentSchema.optional().describe('New `environment` block. Applied only when `environmentChanged` is true; ignored otherwise. ' +
84
+ 'Absent (with `environmentChanged: true`) clears the scene’s environment block.'),
85
+ metaChanged: z.boolean().describe('Whether scene metadata (currently just `name`) changed'),
86
+ newName: z
87
+ .string()
88
+ .optional()
89
+ .describe('New scene `name`. Applied only when `metaChanged` is true and this is present; ignored otherwise.'),
90
+ })
91
+ .describe('A scene-diff patch — the JSON format produced by `diffScene` (packages/editor/src/scene-diff.ts) ' +
92
+ 'and consumed by `applyDiff` (./scene-apply.ts) / `vgai apply-diff`.');
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Scene diff types — shared shape for `DiffOp`/`SceneDiff`.
3
+ *
4
+ * Lives in the engine (not next to the compute function in
5
+ * `packages/editor/src/scene-diff.ts`) so that `packages/vgai-cli` — which
6
+ * does not depend on `@vgai/editor` — can validate/apply a diff without
7
+ * introducing a new cli→editor dependency edge. See the dependency-direction
8
+ * note in `./scene-apply.ts` for the full rationale (T4.5).
9
+ *
10
+ * `packages/editor/src/scene-diff.ts` (the ONLY place that computes a
11
+ * `SceneDiff`, via `diffScene`) re-exports these two names so existing
12
+ * editor imports are unaffected.
13
+ */
14
+ import type { SceneEntity, SceneEnvironment } from './scene-types';
15
+ export type DiffOp = {
16
+ type: 'add';
17
+ entity: SceneEntity;
18
+ parentId: string | null;
19
+ index: number;
20
+ } | {
21
+ type: 'remove';
22
+ id: string;
23
+ } | {
24
+ type: 'update';
25
+ id: string;
26
+ entity: SceneEntity;
27
+ } | {
28
+ type: 'move';
29
+ id: string;
30
+ parentId: string | null;
31
+ index: number;
32
+ };
33
+ export interface SceneDiff {
34
+ ops: DiffOp[];
35
+ environmentChanged: boolean;
36
+ newEnvironment?: SceneEnvironment | undefined;
37
+ metaChanged: boolean;
38
+ newName?: string | undefined;
39
+ }
40
+ //# sourceMappingURL=scene-diff-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-diff-types.d.ts","sourceRoot":"","sources":["../../src/scene/scene-diff-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Scene diff types — shared shape for `DiffOp`/`SceneDiff`.
3
+ *
4
+ * Lives in the engine (not next to the compute function in
5
+ * `packages/editor/src/scene-diff.ts`) so that `packages/vgai-cli` — which
6
+ * does not depend on `@vgai/editor` — can validate/apply a diff without
7
+ * introducing a new cli→editor dependency edge. See the dependency-direction
8
+ * note in `./scene-apply.ts` for the full rationale (T4.5).
9
+ *
10
+ * `packages/editor/src/scene-diff.ts` (the ONLY place that computes a
11
+ * `SceneDiff`, via `diffScene`) re-exports these two names so existing
12
+ * editor imports are unaffected.
13
+ */
14
+ export {};
@@ -0,0 +1,177 @@
1
+ import type RAPIER from '@dimforge/rapier3d-compat';
2
+ import * as THREE from 'three';
3
+ import type { BatchedRenderer } from 'three.quarks';
4
+ import { NavMeshManager } from '../ai/navigation';
5
+ import type { ComponentManager } from '../ecs/component-manager';
6
+ import type { PhysicsRegistry } from '../physics/physics-registry';
7
+ import { type RenderScope } from '../render/render-settings';
8
+ import { type ComponentRegistry } from './component-registry';
9
+ import './geometries';
10
+ import './instancers';
11
+ import './materials';
12
+ import { type InstancesFile, type MaterialFile, type PrefabFile, type SceneEntity, type SceneEnvironment, type SceneFile, type UIRoot } from './scene-types';
13
+ /**
14
+ * Clear module-level asset caches (textures, GLTF scenes, IBL env maps). Call
15
+ * on full runtime teardown to release cached GPU resources and avoid leaking
16
+ * across editor Play sessions. Delegates the GLTF/texture caches to
17
+ * {@link clearSharedAssetCaches} and additionally frees the local
18
+ * IBL env-map cache + PMREM generator.
19
+ *
20
+ * Lifetime / P1.8: these caches are intentionally module-level and persist
21
+ * ACROSS hot-reloads / scene switches (they are NOT cleared on every
22
+ * loadSceneFromData). This is deliberate: (1) it makes repeated Play→Stop→Play
23
+ * cheap, and (2) it underpins the `__sharedGeometry` contract from P0.2 —
24
+ * GLTF clones share the cached source geometry, so clearing mid-session would
25
+ * orphan live clones. The caches are keyed by URL, so loading the SAME scene N
26
+ * times is bounded (one entry per distinct asset URL, not per load). They are
27
+ * only released here, on full runtime teardown (`fullCleanup`).
28
+ */
29
+ export declare function clearAssetCaches(): void;
30
+ /**
31
+ * F7 — per-frame LOD tick. THREE.LOD only swaps its active level when
32
+ * `.update(camera)` runs, so every `THREE.LOD` in the scene graph (built by
33
+ * the `mesh.lod` spawn branch above) needs this called once a frame. Mirrors
34
+ * `tickCustomMaterials`'s traverse-and-tick shape; wired into the runtime's
35
+ * `preRender` system in `vgai-scene-game-adapter.ts`.
36
+ */
37
+ export declare function updateSceneLODs(scene: THREE.Scene, camera: THREE.Camera): void;
38
+ /**
39
+ * Test-only: current sizes of the module-level asset caches. Used by the P1.8
40
+ * headless test to assert caches stay bounded (one entry per distinct asset URL)
41
+ * across repeated loads of the same scene, rather than growing per load.
42
+ */
43
+ export declare function __assetCacheSizesForTest(): {
44
+ textures: number;
45
+ gltf: number;
46
+ env: number;
47
+ };
48
+ export interface SceneLoadContext {
49
+ scene: THREE.Scene;
50
+ rapierWorld: RAPIER.World;
51
+ rapier: typeof RAPIER;
52
+ /** Object3D ↔ Rapier body/collider registry (keys physics by the Object3D). */
53
+ physics: PhysicsRegistry;
54
+ prefabs?: Map<string, (ctx: SceneLoadContext, entity: SceneEntity) => THREE.Object3D>;
55
+ componentRegistry?: ComponentRegistry;
56
+ /** Cache for loaded .prefab.json files. Populated on first reference, cleared per scene load. */
57
+ prefabFileCache?: Map<string, PrefabFile>;
58
+ /** Cache for loaded .mat.json files. Populated on first reference. */
59
+ materialFileCache?: Map<string, MaterialFile>;
60
+ /** Cache for loaded .instances.json files. Populated on first reference (F3). */
61
+ instancesFileCache?: Map<string, InstancesFile>;
62
+ /** Supply an AudioListener (attached to camera) to enable audio entity spawning. */
63
+ audioListener?: THREE.AudioListener;
64
+ /** ComponentManager for instantiating GameComponent classes from scene data. */
65
+ componentManager?: ComponentManager;
66
+ /** three.quarks BatchedRenderer. If provided, particle systems declared on
67
+ * entities are registered here so they render (mirrors the editor). */
68
+ particleRenderer?: BatchedRenderer;
69
+ /** WebGLRenderer. Required for skybox/IBL (PMREM). Absent in headless tests,
70
+ * where the skybox load is skipped rather than substituting a placeholder. */
71
+ renderer?: THREE.WebGLRenderer;
72
+ /** Scene-level render-feature overrides (`environment.rendering`), populated by
73
+ * `instantiateScene` once `data.environment` is known. Read by the F7 mesh.lod
74
+ * master-gate check (`resolveRenderSettings(ctx.sceneRendering, def.render)`). */
75
+ sceneRendering?: RenderScope;
76
+ }
77
+ /** Handle returned from loadScene — call update() each frame to tick animations. */
78
+ export interface SceneInstance {
79
+ update(dt: number): void;
80
+ dispose(): void;
81
+ /** Pre-baked navmesh loaded from sibling .navmesh file, if present. */
82
+ navMesh?: NavMeshManager | undefined;
83
+ /** Cameras defined in the scene file. First entry is typically the "main" camera. */
84
+ cameras: THREE.Camera[];
85
+ /** Parsed scene environment, if any — lets the runtime apply post-processing
86
+ * (which needs the composer/camera the loader doesn't have). */
87
+ environment?: SceneEnvironment | undefined;
88
+ /**
89
+ * The scene file's top-level `ui` tree (React UI roots/canvases, A1),
90
+ * carried through verbatim from the parsed `SceneFile` by BOTH `loadScene`
91
+ * and `loadSceneFromData` (single source of truth — R8 item 7 / B). Opaque
92
+ * to the loader itself; the adapter passes it to `renderSceneUI` (the
93
+ * injected React renderer) so scenePath and sceneData mounts render the
94
+ * SAME scene-authored UI instead of only the sceneData branch special-
95
+ * casing it. `undefined` when the scene file has no `ui` field.
96
+ */
97
+ ui?: UIRoot[] | undefined;
98
+ /**
99
+ * Authored entity id -> spawned Object3D (design/24-scene-ui.md D5). The
100
+ * SAME map `spawnEntity`/`createSceneJoints` build internally (id-less
101
+ * entities are auto-UUID'd before insertion, so every spawned entity has an
102
+ * entry) -- exposed so the scene adapter's default `worldProjector` can
103
+ * resolve a `trackEntity` id to a live Object3D without a second id
104
+ * registry. Both `loadScene` and `loadSceneFromData` funnel through the one
105
+ * `instantiateScene` return site, so this is populated identically for both.
106
+ */
107
+ entities: ReadonlyMap<string, THREE.Object3D>;
108
+ }
109
+ /**
110
+ * Loads a .vscn.json file and instantiates all entities.
111
+ *
112
+ * Creates Three.js objects and Rapier bodies. The Object3D IS the entity —
113
+ * there is no separate ECS id. Uses raw Three.js/Rapier calls — no abstraction.
114
+ *
115
+ * Returns a SceneInstance that must be ticked each frame (for GLTF animations).
116
+ */
117
+ export declare function loadScene(url: string, ctx: SceneLoadContext): Promise<SceneInstance>;
118
+ /**
119
+ * Instantiate a scene from an already-parsed SceneFile.
120
+ *
121
+ * Same as loadScene but skips the fetch — useful when the scene data is
122
+ * already in memory (e.g. serialized from the editor for play-mode preview).
123
+ */
124
+ export declare function loadSceneFromData(data: SceneFile, ctx: SceneLoadContext): Promise<SceneInstance>;
125
+ /**
126
+ * F6 (`docs/VSCN-STRUCTURAL-GAPS-DESIGN.md`) — resolve `EntityRefSchema`
127
+ * component fields from the authored string id to the live `Object3D`.
128
+ *
129
+ * Modeled directly on `createSceneJoints` above (same walk, same `idMap`,
130
+ * same "missing target" shape) — the difference is WHAT gets resolved
131
+ * (a component field, discovered via the component's own static schema)
132
+ * and HOW a miss is handled: a joint with a missing target logs a warning
133
+ * and skips it; a missing entity-ref id is a loud load error (throw) per
134
+ * the design doc's AC, because a component that expects a live `Object3D`
135
+ * at `init()` cannot safely run with a dangling string in that field.
136
+ *
137
+ * Must run AFTER every entity is spawned (idMap is complete — components are
138
+ * attached during spawn too, so by this point every instance's ref field
139
+ * still holds its raw authored string id) and BEFORE
140
+ * `componentManager.initAll()`, so `init()` observes the resolved
141
+ * `Object3D`, not the string. Resolves through the SAME `idMap`
142
+ * `createSceneJoints` uses — no new registry (G3).
143
+ */
144
+ export declare function resolveEntityRefs(entities: SceneEntity[], idMap: Map<string, THREE.Object3D>, manager: ComponentManager): void;
145
+ /** Handle returned from spawnPrefab — call update() each frame to tick animations. */
146
+ export interface SpawnedPrefab {
147
+ /** The Object3D of the spawned prefab root (added to the scene). */
148
+ object3D: THREE.Object3D;
149
+ /**
150
+ * Tick standalone `animation.autoplay` clips for this prefab. A GameComponent
151
+ * that attaches its own XState-driven animation binding (E5 — see
152
+ * `xstate-animation-binding.ts`) ticks that binding itself, so this is a
153
+ * no-op for those. Call once per frame, mirroring SceneInstance.update.
154
+ */
155
+ update(dt: number): void;
156
+ /** Stop any mixers this prefab created. */
157
+ dispose(): void;
158
+ }
159
+ /**
160
+ * Spawn a prefab instance at runtime from gameplay code.
161
+ *
162
+ * Returns a {@link SpawnedPrefab}. The previous version passed throwaway
163
+ * tickFns/mixers arrays, so a runtime-spawned prefab's `animation.autoplay`
164
+ * never advanced. Now the tick functions are captured and exposed via
165
+ * `update()`, consistent with how loadScene's SceneInstance.update drives
166
+ * animations.
167
+ *
168
+ * Usage:
169
+ * const crate = await spawnPrefab('/data/prefabs/crate.prefab.json', ctx, {
170
+ * transform: { position: [x, y, z] },
171
+ * components: { Health: { current: 50 } },
172
+ * });
173
+ * // each frame (only needed for autoplay clips):
174
+ * crate.update(dt);
175
+ */
176
+ export declare function spawnPrefab(prefabUrl: string, ctx: SceneLoadContext, overrides?: Partial<SceneEntity>): Promise<SpawnedPrefab>;
177
+ //# sourceMappingURL=scene-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-loader.d.ts","sourceRoot":"","sources":["../../src/scene/scene-loader.ts"],"names":[],"mappings":"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"}