@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,171 @@
1
+ /**
2
+ * Typed registry for `Object3D.userData` keys used by the engine and editor.
3
+ *
4
+ * Three.js lets any code stash arbitrary values on `object.userData`, and over
5
+ * time the engine + editor accumulated ~20 stringly-typed keys that together
6
+ * form a *parallel object model* — meaning carried entirely in undocumented
7
+ * string literals. This module is the ONE documented place that lists every
8
+ * such key, its value type, and what it means. All engine/editor-internal
9
+ * `userData` access for these keys must go through {@link getUserData} /
10
+ * {@link setUserData} / {@link hasUserData} / {@link deleteUserData} so the key
11
+ * strings live in exactly one place and are type-checked at every call site.
12
+ *
13
+ * NOTE: This covers engine/editor *internal* keys only. User game code in the
14
+ * example template may stash its own ad-hoc keys; those are out of scope.
15
+ *
16
+ * ## Key reference
17
+ *
18
+ * Serialization / identity (load-bearing — editor identity + scene I/O):
19
+ * - `entity` — the full {@link SceneEntity} descriptor backing this
20
+ * Object3D. Source of truth the editor reads/writes and
21
+ * the serializer walks to rebuild `.vscn.json`.
22
+ * - `entityId` — the entity's stable string id. Presence also marks an
23
+ * Object3D as a "real" entity (vs editor helper/env object).
24
+ *
25
+ * Runtime scene-query overrides (read by `scene-query.ts`):
26
+ * - `tags` — string[] tag override; falls back to `entity.tags`.
27
+ * - `components` — component record or name[] override; falls back to
28
+ * `entity.components`.
29
+ *
30
+ * Runtime gameplay metadata (set by the scene loader):
31
+ * - `navRole` — `'walkable' | 'obstacle'` navmesh role; collected at runtime.
32
+ * - `pivot` — `[x,y,z]` local-space pivot for rotate/scale-around-pivot.
33
+ * - `splineCurve` — resolved THREE curve built from the entity's spline.
34
+ * - `_camera` — THREE.Camera owned by a camera entity (collected on load).
35
+ * - `_particleSystem` — three.quarks ParticleSystem (scene-sync registration + census).
36
+ *
37
+ * Animation (load-bearing — ED5 disposal contract):
38
+ * - `_animMixer` — THREE.AnimationMixer driving this subtree's clips.
39
+ * - `_animClips` — Map<string, AnimationClip> discovered on the GLTF (E5 —
40
+ * lets a GameComponent build its own XState-driven
41
+ * binding via `bindXStateAnimation` over the SAME
42
+ * mixer; see xstate-animation-binding.ts).
43
+ * - `_availableClips` — string[] of clip names discovered on the GLTF
44
+ * (inspector dropdown; same names as `_animClips`' keys).
45
+ *
46
+ * Disposal contract:
47
+ * - `__sharedGeometry` — `true` when a mesh's geometry is shared/cached and MUST
48
+ * NOT be disposed by per-object cleanup (P0.2 contract).
49
+ *
50
+ * Editor shading overrides (editor-only, see `scene-sync.ts`):
51
+ * - `__shadeOrig` — original material(s) stashed before a shading override.
52
+ * - `__shadeUnlit` — generated unlit material(s) for the unlit view mode.
53
+ *
54
+ * Custom-shader materials (see `material-registry.ts`):
55
+ * - `__matDef` — name of the registered custom-material definition.
56
+ * - `__uniforms` — authored uniform values passed to the def's update().
57
+ *
58
+ * Instancing (see `instance-registry.ts`):
59
+ * - `__instancer` — name of the registered instancer that built the mesh.
60
+ *
61
+ * Unmodified-game ingestion (editor-only, see `editor/src/ingest/`):
62
+ * - `__ingest` — `true` on every Object3D minted by ingestion (vs the
63
+ * first-party scene loader); routes edits to live
64
+ * mutation instead of descriptor rebuild.
65
+ * - `__ingestNextId` — monotonic id counter stashed on the captured Scene
66
+ * root so re-reflects keep minting unique ids.
67
+ *
68
+ * Editor scene-graph tagging (editor-only):
69
+ * - `engineInternal` — `true` on engine-owned infrastructure in the game scene
70
+ * (particle BatchedRenderer, debug-draw + its subtree).
71
+ * The editor's play-mode hierarchy skips these so they
72
+ * don't show up as selectable "entities".
73
+ * - `liveObject` — `true` on a runtime/procedural Object3D that the editor
74
+ * surfaced in the play-mode hierarchy with a *synthetic*
75
+ * descriptor (it has no `.vscn` record). Marks it as
76
+ * ephemeral: selectable/movable for testing, never saved.
77
+ * - `editorHelper` — `true` for editor-only helper objects (gizmos, wireframes).
78
+ * - `editorHelperType` — which kind of helper (lights/particles/pivot/navmesh/...).
79
+ * - `editorIcon` — `true` for editor billboard icon sprites.
80
+ * - `envObject` — `true` for environment objects (ambient light, etc.).
81
+ * - `splineControlPoint` — index of a spline control-point drag handle.
82
+ * - `vcDirIdx` — view-cube face direction index (0=+X,1=-X,2=+Y,...).
83
+ */
84
+ import type * as THREE from 'three';
85
+ import type { ParticleSystem } from 'three.quarks';
86
+ import type { SceneEntity } from './scene-types';
87
+ /** The kinds of editor helper objects tagged via `editorHelperType`. */
88
+ export type EditorHelperType = 'lights' | 'cameras' | 'audio' | 'colliders' | 'splines' | 'particles' | 'pivot' | 'navmesh';
89
+ /**
90
+ * Maps each canonical accessor name to its value type. This is the single
91
+ * source of truth for what every known `userData` key holds.
92
+ */
93
+ export interface UserDataSchema {
94
+ entity: SceneEntity;
95
+ entityId: string;
96
+ tags: string[];
97
+ components: Record<string, unknown> | string[];
98
+ navRole: 'walkable' | 'obstacle';
99
+ pivot: [number, number, number];
100
+ splineCurve: THREE.Curve<THREE.Vector3>;
101
+ splineControlPoint: number;
102
+ _camera: THREE.Camera;
103
+ _particleSystem: ParticleSystem;
104
+ _animMixer: THREE.AnimationMixer;
105
+ _animClips: Map<string, THREE.AnimationClip>;
106
+ _availableClips: string[];
107
+ __sharedGeometry: boolean;
108
+ __shadeOrig: THREE.Material | THREE.Material[];
109
+ __shadeUnlit: THREE.Material[];
110
+ __matDef: string;
111
+ __uniforms: Record<string, unknown>;
112
+ __instancer: string;
113
+ __ingest: boolean;
114
+ __ingestNextId: number;
115
+ engineInternal: boolean;
116
+ liveObject: boolean;
117
+ editorHelper: boolean;
118
+ editorHelperType: EditorHelperType;
119
+ editorIcon: boolean;
120
+ envObject: boolean;
121
+ vcDirIdx: number;
122
+ }
123
+ /** Any key in the typed registry. */
124
+ export type UserDataKey = keyof UserDataSchema;
125
+ /**
126
+ * Canonical name → literal `userData` string key. The accessor names match the
127
+ * raw string keys 1:1 (this is the documented set referenced by the AC), so the
128
+ * literal strings appear in exactly this one place.
129
+ */
130
+ export declare const UserDataKeys: {
131
+ readonly entity: "entity";
132
+ readonly entityId: "entityId";
133
+ readonly tags: "tags";
134
+ readonly components: "components";
135
+ readonly navRole: "navRole";
136
+ readonly pivot: "pivot";
137
+ readonly splineCurve: "splineCurve";
138
+ readonly splineControlPoint: "splineControlPoint";
139
+ readonly _camera: "_camera";
140
+ readonly _particleSystem: "_particleSystem";
141
+ readonly _animMixer: "_animMixer";
142
+ readonly _animClips: "_animClips";
143
+ readonly _availableClips: "_availableClips";
144
+ readonly __sharedGeometry: "__sharedGeometry";
145
+ readonly __shadeOrig: "__shadeOrig";
146
+ readonly __shadeUnlit: "__shadeUnlit";
147
+ readonly __matDef: "__matDef";
148
+ readonly __uniforms: "__uniforms";
149
+ readonly __instancer: "__instancer";
150
+ readonly __ingest: "__ingest";
151
+ readonly __ingestNextId: "__ingestNextId";
152
+ readonly engineInternal: "engineInternal";
153
+ readonly liveObject: "liveObject";
154
+ readonly editorHelper: "editorHelper";
155
+ readonly editorHelperType: "editorHelperType";
156
+ readonly editorIcon: "editorIcon";
157
+ readonly envObject: "envObject";
158
+ readonly vcDirIdx: "vcDirIdx";
159
+ };
160
+ /**
161
+ * Read a typed `userData` value. Returns `undefined` when the key is unset or
162
+ * when `obj` is nullish (so call sites can pass an optionally-resolved object).
163
+ */
164
+ export declare function getUserData<K extends UserDataKey>(obj: THREE.Object3D | null | undefined, key: K): UserDataSchema[K] | undefined;
165
+ /** Write a typed `userData` value. */
166
+ export declare function setUserData<K extends UserDataKey>(obj: THREE.Object3D, key: K, value: UserDataSchema[K]): void;
167
+ /** True when `key` is set (not `undefined`) on the object's `userData`. */
168
+ export declare function hasUserData(obj: THREE.Object3D | null | undefined, key: UserDataKey): boolean;
169
+ /** Remove a `userData` key. */
170
+ export declare function deleteUserData(obj: THREE.Object3D, key: UserDataKey): void;
171
+ //# sourceMappingURL=user-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-data.d.ts","sourceRoot":"","sources":["../../src/scene/user-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,WAAW,GACX,SAAS,GACT,WAAW,GACX,OAAO,GACP,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;IAC/C,OAAO,EAAE,UAAU,GAAG,UAAU,CAAC;IACjC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;IACtB,eAAe,EAAE,cAAc,CAAC;IAChC,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BuB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC/C,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,EACtC,GAAG,EAAE,CAAC,GACL,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAE/B;AAED,sCAAsC;AACtC,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC/C,GAAG,EAAE,KAAK,CAAC,QAAQ,EACnB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GACvB,IAAI,CAEN;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAE7F;AAED,+BAA+B;AAC/B,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAE1E"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Typed registry for `Object3D.userData` keys used by the engine and editor.
3
+ *
4
+ * Three.js lets any code stash arbitrary values on `object.userData`, and over
5
+ * time the engine + editor accumulated ~20 stringly-typed keys that together
6
+ * form a *parallel object model* — meaning carried entirely in undocumented
7
+ * string literals. This module is the ONE documented place that lists every
8
+ * such key, its value type, and what it means. All engine/editor-internal
9
+ * `userData` access for these keys must go through {@link getUserData} /
10
+ * {@link setUserData} / {@link hasUserData} / {@link deleteUserData} so the key
11
+ * strings live in exactly one place and are type-checked at every call site.
12
+ *
13
+ * NOTE: This covers engine/editor *internal* keys only. User game code in the
14
+ * example template may stash its own ad-hoc keys; those are out of scope.
15
+ *
16
+ * ## Key reference
17
+ *
18
+ * Serialization / identity (load-bearing — editor identity + scene I/O):
19
+ * - `entity` — the full {@link SceneEntity} descriptor backing this
20
+ * Object3D. Source of truth the editor reads/writes and
21
+ * the serializer walks to rebuild `.vscn.json`.
22
+ * - `entityId` — the entity's stable string id. Presence also marks an
23
+ * Object3D as a "real" entity (vs editor helper/env object).
24
+ *
25
+ * Runtime scene-query overrides (read by `scene-query.ts`):
26
+ * - `tags` — string[] tag override; falls back to `entity.tags`.
27
+ * - `components` — component record or name[] override; falls back to
28
+ * `entity.components`.
29
+ *
30
+ * Runtime gameplay metadata (set by the scene loader):
31
+ * - `navRole` — `'walkable' | 'obstacle'` navmesh role; collected at runtime.
32
+ * - `pivot` — `[x,y,z]` local-space pivot for rotate/scale-around-pivot.
33
+ * - `splineCurve` — resolved THREE curve built from the entity's spline.
34
+ * - `_camera` — THREE.Camera owned by a camera entity (collected on load).
35
+ * - `_particleSystem` — three.quarks ParticleSystem (scene-sync registration + census).
36
+ *
37
+ * Animation (load-bearing — ED5 disposal contract):
38
+ * - `_animMixer` — THREE.AnimationMixer driving this subtree's clips.
39
+ * - `_animClips` — Map<string, AnimationClip> discovered on the GLTF (E5 —
40
+ * lets a GameComponent build its own XState-driven
41
+ * binding via `bindXStateAnimation` over the SAME
42
+ * mixer; see xstate-animation-binding.ts).
43
+ * - `_availableClips` — string[] of clip names discovered on the GLTF
44
+ * (inspector dropdown; same names as `_animClips`' keys).
45
+ *
46
+ * Disposal contract:
47
+ * - `__sharedGeometry` — `true` when a mesh's geometry is shared/cached and MUST
48
+ * NOT be disposed by per-object cleanup (P0.2 contract).
49
+ *
50
+ * Editor shading overrides (editor-only, see `scene-sync.ts`):
51
+ * - `__shadeOrig` — original material(s) stashed before a shading override.
52
+ * - `__shadeUnlit` — generated unlit material(s) for the unlit view mode.
53
+ *
54
+ * Custom-shader materials (see `material-registry.ts`):
55
+ * - `__matDef` — name of the registered custom-material definition.
56
+ * - `__uniforms` — authored uniform values passed to the def's update().
57
+ *
58
+ * Instancing (see `instance-registry.ts`):
59
+ * - `__instancer` — name of the registered instancer that built the mesh.
60
+ *
61
+ * Unmodified-game ingestion (editor-only, see `editor/src/ingest/`):
62
+ * - `__ingest` — `true` on every Object3D minted by ingestion (vs the
63
+ * first-party scene loader); routes edits to live
64
+ * mutation instead of descriptor rebuild.
65
+ * - `__ingestNextId` — monotonic id counter stashed on the captured Scene
66
+ * root so re-reflects keep minting unique ids.
67
+ *
68
+ * Editor scene-graph tagging (editor-only):
69
+ * - `engineInternal` — `true` on engine-owned infrastructure in the game scene
70
+ * (particle BatchedRenderer, debug-draw + its subtree).
71
+ * The editor's play-mode hierarchy skips these so they
72
+ * don't show up as selectable "entities".
73
+ * - `liveObject` — `true` on a runtime/procedural Object3D that the editor
74
+ * surfaced in the play-mode hierarchy with a *synthetic*
75
+ * descriptor (it has no `.vscn` record). Marks it as
76
+ * ephemeral: selectable/movable for testing, never saved.
77
+ * - `editorHelper` — `true` for editor-only helper objects (gizmos, wireframes).
78
+ * - `editorHelperType` — which kind of helper (lights/particles/pivot/navmesh/...).
79
+ * - `editorIcon` — `true` for editor billboard icon sprites.
80
+ * - `envObject` — `true` for environment objects (ambient light, etc.).
81
+ * - `splineControlPoint` — index of a spline control-point drag handle.
82
+ * - `vcDirIdx` — view-cube face direction index (0=+X,1=-X,2=+Y,...).
83
+ */
84
+ /**
85
+ * Canonical name → literal `userData` string key. The accessor names match the
86
+ * raw string keys 1:1 (this is the documented set referenced by the AC), so the
87
+ * literal strings appear in exactly this one place.
88
+ */
89
+ export const UserDataKeys = {
90
+ entity: 'entity',
91
+ entityId: 'entityId',
92
+ tags: 'tags',
93
+ components: 'components',
94
+ navRole: 'navRole',
95
+ pivot: 'pivot',
96
+ splineCurve: 'splineCurve',
97
+ splineControlPoint: 'splineControlPoint',
98
+ _camera: '_camera',
99
+ _particleSystem: '_particleSystem',
100
+ _animMixer: '_animMixer',
101
+ _animClips: '_animClips',
102
+ _availableClips: '_availableClips',
103
+ __sharedGeometry: '__sharedGeometry',
104
+ __shadeOrig: '__shadeOrig',
105
+ __shadeUnlit: '__shadeUnlit',
106
+ __matDef: '__matDef',
107
+ __uniforms: '__uniforms',
108
+ __instancer: '__instancer',
109
+ __ingest: '__ingest',
110
+ __ingestNextId: '__ingestNextId',
111
+ engineInternal: 'engineInternal',
112
+ liveObject: 'liveObject',
113
+ editorHelper: 'editorHelper',
114
+ editorHelperType: 'editorHelperType',
115
+ editorIcon: 'editorIcon',
116
+ envObject: 'envObject',
117
+ vcDirIdx: 'vcDirIdx',
118
+ };
119
+ /**
120
+ * Read a typed `userData` value. Returns `undefined` when the key is unset or
121
+ * when `obj` is nullish (so call sites can pass an optionally-resolved object).
122
+ */
123
+ export function getUserData(obj, key) {
124
+ return obj ? obj.userData[UserDataKeys[key]] : undefined;
125
+ }
126
+ /** Write a typed `userData` value. */
127
+ export function setUserData(obj, key, value) {
128
+ obj.userData[UserDataKeys[key]] = value;
129
+ }
130
+ /** True when `key` is set (not `undefined`) on the object's `userData`. */
131
+ export function hasUserData(obj, key) {
132
+ return obj ? obj.userData[UserDataKeys[key]] !== undefined : false;
133
+ }
134
+ /** Remove a `userData` key. */
135
+ export function deleteUserData(obj, key) {
136
+ delete obj.userData[UserDataKeys[key]];
137
+ }
@@ -0,0 +1,20 @@
1
+ import * as THREE from 'three';
2
+ export interface AudioContext {
3
+ listener: THREE.AudioListener;
4
+ masterGain: GainNode;
5
+ buses: {
6
+ music: GainNode;
7
+ sfx: GainNode;
8
+ voice: GainNode;
9
+ };
10
+ /** Call this on first user interaction (click/key) to resume audio context */
11
+ resume: () => void;
12
+ }
13
+ /**
14
+ * Creates the audio listener and bus hierarchy.
15
+ *
16
+ * Bus routing: music/sfx/voice → master → destination
17
+ * Attach `listener` to the active camera: `camera.add(audioCtx.listener)`.
18
+ */
19
+ export declare function setupAudio(camera: THREE.Camera): AudioContext;
20
+ //# sourceMappingURL=setup-audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-audio.d.ts","sourceRoot":"","sources":["../../src/setup/setup-audio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC9B,UAAU,EAAE,QAAQ,CAAC;IACrB,KAAK,EAAE;QACL,KAAK,EAAE,QAAQ,CAAC;QAChB,GAAG,EAAE,QAAQ,CAAC;QACd,KAAK,EAAE,QAAQ,CAAC;KACjB,CAAC;IACF,8EAA8E;IAC9E,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY,CAuC7D"}
@@ -0,0 +1,41 @@
1
+ import * as THREE from 'three';
2
+ /**
3
+ * Creates the audio listener and bus hierarchy.
4
+ *
5
+ * Bus routing: music/sfx/voice → master → destination
6
+ * Attach `listener` to the active camera: `camera.add(audioCtx.listener)`.
7
+ */
8
+ export function setupAudio(camera) {
9
+ const listener = new THREE.AudioListener();
10
+ camera.add(listener);
11
+ const ctx = listener.context;
12
+ const masterGain = ctx.createGain();
13
+ masterGain.connect(ctx.destination);
14
+ // Route the Three.js listener through masterGain so that THREE.Audio /
15
+ // THREE.PositionalAudio objects are also silenced by the mute button.
16
+ listener.gain.disconnect();
17
+ listener.gain.connect(masterGain);
18
+ const musicGain = ctx.createGain();
19
+ musicGain.gain.value = 0.7;
20
+ musicGain.connect(masterGain);
21
+ const sfxGain = ctx.createGain();
22
+ sfxGain.gain.value = 1.0;
23
+ sfxGain.connect(masterGain);
24
+ const voiceGain = ctx.createGain();
25
+ voiceGain.gain.value = 1.0;
26
+ voiceGain.connect(masterGain);
27
+ return {
28
+ listener,
29
+ masterGain,
30
+ buses: {
31
+ music: musicGain,
32
+ sfx: sfxGain,
33
+ voice: voiceGain,
34
+ },
35
+ resume() {
36
+ if (ctx.state === 'suspended') {
37
+ ctx.resume();
38
+ }
39
+ },
40
+ };
41
+ }
@@ -0,0 +1,17 @@
1
+ import type * as THREE from 'three';
2
+ import { BatchedRenderer } from 'three.quarks';
3
+ export interface ParticlesContext {
4
+ batchedRenderer: BatchedRenderer;
5
+ }
6
+ /**
7
+ * Creates the three.quarks BatchedRenderer for GPU particle systems.
8
+ *
9
+ * three.quarks renders all particle systems in a single draw call via instancing.
10
+ * Add particle systems to the batchedRenderer, not directly to the scene.
11
+ *
12
+ * Usage:
13
+ * const particles = setupParticles(scene);
14
+ * // In render loop: particles.batchedRenderer.update(dt);
15
+ */
16
+ export declare function setupParticles(scene: THREE.Scene): ParticlesContext;
17
+ //# sourceMappingURL=setup-particles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-particles.d.ts","sourceRoot":"","sources":["../../src/setup/setup-particles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,eAAe,CAAC;CAClC;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAKnE"}
@@ -0,0 +1,16 @@
1
+ import { BatchedRenderer } from 'three.quarks';
2
+ /**
3
+ * Creates the three.quarks BatchedRenderer for GPU particle systems.
4
+ *
5
+ * three.quarks renders all particle systems in a single draw call via instancing.
6
+ * Add particle systems to the batchedRenderer, not directly to the scene.
7
+ *
8
+ * Usage:
9
+ * const particles = setupParticles(scene);
10
+ * // In render loop: particles.batchedRenderer.update(dt);
11
+ */
12
+ export function setupParticles(scene) {
13
+ const batchedRenderer = new BatchedRenderer();
14
+ scene.add(batchedRenderer);
15
+ return { batchedRenderer };
16
+ }
@@ -0,0 +1,25 @@
1
+ import type RAPIER from '@dimforge/rapier3d-compat';
2
+ import * as THREE from 'three';
3
+ export interface PhysicsContext {
4
+ rapierWorld: RAPIER.World;
5
+ eventQueue: RAPIER.EventQueue;
6
+ debugMesh: THREE.LineSegments;
7
+ debugEnabled: boolean;
8
+ }
9
+ /**
10
+ * Creates the Rapier physics world and debug visualization.
11
+ *
12
+ * Call RAPIER.init() before this function.
13
+ * This is direct Rapier setup — no abstraction. Edit freely.
14
+ */
15
+ export declare function setupPhysics(rapier: typeof RAPIER, scene: THREE.Scene, gravity?: {
16
+ x: number;
17
+ y: number;
18
+ z: number;
19
+ }): PhysicsContext;
20
+ /**
21
+ * Update the debug line visualization from Rapier's debug render data.
22
+ * Call this each frame if debug is enabled.
23
+ */
24
+ export declare function updatePhysicsDebug(rapierWorld: RAPIER.World, debugMesh: THREE.LineSegments): void;
25
+ //# sourceMappingURL=setup-physics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-physics.d.ts","sourceRoot":"","sources":["../../src/setup/setup-physics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,MAAM,EACrB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,GAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAA6B,GACtE,cAAc,CAiBhB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,QAuB1F"}
@@ -0,0 +1,51 @@
1
+ import * as THREE from 'three';
2
+ /**
3
+ * Creates the Rapier physics world and debug visualization.
4
+ *
5
+ * Call RAPIER.init() before this function.
6
+ * This is direct Rapier setup — no abstraction. Edit freely.
7
+ */
8
+ export function setupPhysics(rapier, scene, gravity = { x: 0, y: -9.81, z: 0 }) {
9
+ const rapierWorld = new rapier.World(gravity);
10
+ const eventQueue = new rapier.EventQueue(true);
11
+ // Debug visualization (toggled at runtime)
12
+ const debugGeometry = new THREE.BufferGeometry();
13
+ const debugMaterial = new THREE.LineBasicMaterial({ color: 0x00ff00, vertexColors: true });
14
+ const debugMesh = new THREE.LineSegments(debugGeometry, debugMaterial);
15
+ debugMesh.visible = false;
16
+ scene.add(debugMesh);
17
+ return {
18
+ rapierWorld,
19
+ eventQueue,
20
+ debugMesh,
21
+ debugEnabled: false,
22
+ };
23
+ }
24
+ /**
25
+ * Update the debug line visualization from Rapier's debug render data.
26
+ * Call this each frame if debug is enabled.
27
+ */
28
+ export function updatePhysicsDebug(rapierWorld, debugMesh) {
29
+ const buffers = rapierWorld.debugRender();
30
+ const geom = debugMesh.geometry;
31
+ // Reuse the existing BufferAttributes whenever the vertex count is stable
32
+ // (the common case). Allocating a new Float32Array + BufferAttribute every
33
+ // frame orphaned a fresh GPU buffer each time. We only allocate when the
34
+ // size actually changes.
35
+ const posAttr = geom.getAttribute('position');
36
+ if (posAttr && posAttr.array.length === buffers.vertices.length) {
37
+ posAttr.array.set(buffers.vertices);
38
+ posAttr.needsUpdate = true;
39
+ }
40
+ else {
41
+ geom.setAttribute('position', new THREE.BufferAttribute(new Float32Array(buffers.vertices), 3));
42
+ }
43
+ const colAttr = geom.getAttribute('color');
44
+ if (colAttr && colAttr.array.length === buffers.colors.length) {
45
+ colAttr.array.set(buffers.colors);
46
+ colAttr.needsUpdate = true;
47
+ }
48
+ else {
49
+ geom.setAttribute('color', new THREE.BufferAttribute(new Float32Array(buffers.colors), 4));
50
+ }
51
+ }
@@ -0,0 +1,69 @@
1
+ import { EffectComposer } from 'postprocessing';
2
+ import * as THREE from 'three';
3
+ import { type RenderScope } from '../render/render-settings';
4
+ import type { SceneEnvironment } from '../scene/scene-types';
5
+ export interface RendererContext {
6
+ renderer: THREE.WebGLRenderer;
7
+ scene: THREE.Scene;
8
+ camera: THREE.PerspectiveCamera;
9
+ composer: EffectComposer;
10
+ }
11
+ /**
12
+ * Apply the live renderer-level render settings (shadows, resolution scale) from
13
+ * the resolved cascade. `antialias`/`backend` are reload-only (renderer re-init)
14
+ * and are handled at construction, not here. Pass the scene `rendering` scope
15
+ * (e.g. `env.rendering`); absent values fall back to the registry defaults so
16
+ * behavior is unchanged when a scene omits `rendering`.
17
+ *
18
+ * `basePixelRatio` is the call-site's native pixel-ratio policy (the runtime caps
19
+ * at 2; the editor uses the raw devicePixelRatio); `resolutionScale` multiplies it.
20
+ */
21
+ export declare function applyRendererSettings(renderer: THREE.WebGLRenderer, rendering?: RenderScope, basePixelRatio?: number): void;
22
+ /**
23
+ * Create ONLY the WebGL renderer. The HOST owns the renderer (see
24
+ * `HostContext.renderer`); the game/adapter owns the scene/camera/composer it
25
+ * renders into. Split out of `setupRenderer` for the adapter inversion.
26
+ *
27
+ * `rendering` is the scene-level render scope (`env.rendering`); it seeds the
28
+ * reload-only `antialias` option at construction and the live shadow/resolution
29
+ * settings (via {@link applyRendererSettings}). Absent → registry defaults.
30
+ *
31
+ * `opts` is additive (T6.1 slice 1, COMPOSITION-DESIGN.md D5 §1/§4): omitted
32
+ * entirely, construction is byte-identical to before (no `alpha`/
33
+ * `preserveDrawingBuffer` keys at all) — the legacy single-canvas host never
34
+ * passes it. The worlds path passes `alpha:true` for every stacked canvas
35
+ * above the bottom one (so its clear-alpha-0 shows the layer below through
36
+ * it) and `preserveDrawingBuffer:true` for every stacked canvas (the
37
+ * recorded capture-tier cost, paid once here rather than re-derived later).
38
+ */
39
+ export declare function createHostRenderer(canvas: HTMLCanvasElement, width?: number, height?: number, rendering?: RenderScope, opts?: {
40
+ alpha?: boolean;
41
+ preserveDrawingBuffer?: boolean;
42
+ }): THREE.WebGLRenderer;
43
+ /**
44
+ * Create the scene, camera, and postprocessing composer that a first-party game
45
+ * renders into, given a host-provided renderer. The GPU-only `composer` is
46
+ * created here; a headless host (no GPU) skips this entirely.
47
+ */
48
+ export declare function createSceneView(renderer: THREE.WebGLRenderer, width?: number, height?: number): {
49
+ scene: THREE.Scene;
50
+ camera: THREE.PerspectiveCamera;
51
+ composer: EffectComposer;
52
+ };
53
+ /**
54
+ * Creates the Three.js renderer, scene, camera, and postprocessing pipeline.
55
+ *
56
+ * This is direct Three.js setup — no abstraction. Edit freely. (Now a thin
57
+ * combination of {@link createHostRenderer} + {@link createSceneView}.)
58
+ */
59
+ export declare function setupRenderer(canvas: HTMLCanvasElement, width?: number, height?: number): RendererContext;
60
+ /**
61
+ * Rebuild composer passes from scene environment settings.
62
+ * Scenes without toneMapping default to ACES (the runtime default).
63
+ * Code can further modify the composer after this call.
64
+ *
65
+ * Pass objectMap to enable entity-referencing effects (godRays, outline).
66
+ * Pass entities to resolve tag-based references (outline).
67
+ */
68
+ export declare function applyScenePostProcessing(composer: EffectComposer, renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera, env?: SceneEnvironment, objectMap?: Map<string, THREE.Object3D>, entityTags?: Map<string, string[]>): void;
69
+ //# sourceMappingURL=setup-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-renderer.d.ts","sourceRoot":"","sources":["../../src/setup/setup-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,cAAc,EAoBf,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,2BAA2B,CAAC;AAEpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAChC,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAC7B,SAAS,CAAC,EAAE,WAAW,EACvB,cAAc,SAAuC,GACpD,IAAI,CAKN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EACzB,KAAK,SAAoB,EACzB,MAAM,SAAqB,EAC3B,SAAS,CAAC,EAAE,WAAW,EACvB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1D,KAAK,CAAC,aAAa,CAoBrB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,KAAK,CAAC,aAAa,EAC7B,KAAK,SAAoB,EACzB,MAAM,SAAqB,GAC1B;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CAyBnF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,iBAAiB,EACzB,KAAK,SAAoB,EACzB,MAAM,SAAqB,GAC1B,eAAe,CAIjB;AAkBD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,KAAK,CAAC,aAAa,EAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,GAAG,CAAC,EAAE,gBAAgB,EACtB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EACvC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACjC,IAAI,CAsVN"}