@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,176 @@
1
+ function kindOf(o) {
2
+ const ctor = o.constructor?.name?.toLowerCase() ?? 'container';
3
+ if (ctor.includes('animatedsprite'))
4
+ return 'animatedsprite';
5
+ if (ctor.includes('sprite'))
6
+ return 'sprite';
7
+ if (ctor.includes('text'))
8
+ return 'text';
9
+ return 'container';
10
+ }
11
+ export class AuthoringAdapter2D {
12
+ root;
13
+ byId = new Map();
14
+ overlay = {};
15
+ dirty = false;
16
+ constructor(root, opts = {}) {
17
+ this.root = root;
18
+ if (opts.overlay)
19
+ this.overlay = opts.overlay;
20
+ this.refresh();
21
+ }
22
+ /** Walk the live tree assigning deterministic structural-path ids, reapply overlay. */
23
+ refresh() {
24
+ this.byId.clear();
25
+ let count = 0;
26
+ let sprites = 0;
27
+ const visit = (o, path) => {
28
+ const id = `w2d:${path}:${kindOf(o)}:${o.label ?? ''}`;
29
+ o.__authId = id;
30
+ this.byId.set(id, o);
31
+ count++;
32
+ if (kindOf(o).includes('sprite'))
33
+ sprites++;
34
+ o.children.forEach((c, i) => {
35
+ visit(c, `${path}/${i}`);
36
+ });
37
+ };
38
+ this.root.children.forEach((c, i) => {
39
+ visit(c, `${i}`);
40
+ });
41
+ // Reapply any saved overlay edits to the live tree.
42
+ for (const [id, ov] of Object.entries(this.overlay))
43
+ this.applyOverride(id, ov);
44
+ return { count, sprites };
45
+ }
46
+ roots() {
47
+ return this.root.children.map((c) => this.toNode(c));
48
+ }
49
+ node(id) {
50
+ const o = this.byId.get(id);
51
+ return o ? this.toNode(o) : null;
52
+ }
53
+ displayObject(id) {
54
+ return this.byId.get(id) ?? null;
55
+ }
56
+ toNode(o) {
57
+ const self = o;
58
+ return {
59
+ id: self.__authId ?? '',
60
+ label: o.label ?? kindOf(o),
61
+ kind: kindOf(o),
62
+ parentId: o.parent?.__authId ?? null,
63
+ childIds: o.children.map((c) => c.__authId ?? ''),
64
+ };
65
+ }
66
+ // --- Transforms ---
67
+ getTransform(id) {
68
+ const o = this.byId.get(id);
69
+ if (!o)
70
+ return null;
71
+ return {
72
+ position: [o.position.x, o.position.y],
73
+ rotation: o.rotation,
74
+ scale: [o.scale.x, o.scale.y],
75
+ };
76
+ }
77
+ setTransform(id, t) {
78
+ const o = this.byId.get(id);
79
+ if (!o)
80
+ return;
81
+ if (t.position)
82
+ o.position.set(t.position[0], t.position[1]);
83
+ if (t.rotation !== undefined)
84
+ o.rotation = t.rotation;
85
+ if (t.scale)
86
+ o.scale.set(t.scale[0], t.scale[1]);
87
+ this.overlay[id] ??= {};
88
+ const ov = this.overlay[id];
89
+ if (t.position)
90
+ ov.position = t.position;
91
+ if (t.rotation !== undefined)
92
+ ov.rotation = t.rotation;
93
+ if (t.scale)
94
+ ov.scale = t.scale;
95
+ this.dirty = true;
96
+ }
97
+ // --- Inspector (reflected fields) ---
98
+ properties(id) {
99
+ const o = this.byId.get(id);
100
+ if (!o)
101
+ return [];
102
+ const props = [
103
+ { path: 'label', label: 'Name', type: 'string', value: o.label ?? '' },
104
+ { path: 'visible', label: 'Visible', type: 'boolean', value: o.visible },
105
+ { path: 'alpha', label: 'Alpha', type: 'number', value: o.alpha },
106
+ ];
107
+ if ('tint' in o)
108
+ props.push({
109
+ path: 'tint',
110
+ label: 'Tint',
111
+ type: 'color',
112
+ value: o.tint,
113
+ });
114
+ return props;
115
+ }
116
+ set(id, path, value) {
117
+ const o = this.byId.get(id);
118
+ if (!o)
119
+ return;
120
+ o[path] = value;
121
+ this.overlay[id] ??= {};
122
+ if (path === 'tint')
123
+ this.overlay[id].tint = value;
124
+ if (path === 'visible')
125
+ this.overlay[id].visible = value;
126
+ this.dirty = true;
127
+ }
128
+ applyOverride(id, ov) {
129
+ const o = this.byId.get(id);
130
+ if (!o)
131
+ return;
132
+ if (ov.position)
133
+ o.position.set(ov.position[0], ov.position[1]);
134
+ if (ov.rotation !== undefined)
135
+ o.rotation = ov.rotation;
136
+ if (ov.scale)
137
+ o.scale.set(ov.scale[0], ov.scale[1]);
138
+ if (ov.tint !== undefined && 'tint' in o)
139
+ o.tint = ov.tint;
140
+ if (ov.visible !== undefined)
141
+ o.visible = ov.visible;
142
+ }
143
+ /**
144
+ * Re-apply a saved/external overlay onto the (already-walked) live tree, merging
145
+ * it into the in-memory overlay so a later `serializeOverlay()`/save preserves it
146
+ * and a later `refresh()` re-applies it again. Ids absent from the current tree
147
+ * are skipped (orphaned, not an error) — the 2D analog of
148
+ * `IngestAuthoringAdapter.applyOverlay` (T3.2 slice 3). Used both for the initial
149
+ * reload (constructor `opts.overlay`) and for `PersistenceProvider.applyExternal`
150
+ * (re-apply a changed overlay file without a full remount).
151
+ */
152
+ applyOverlay(overlay) {
153
+ let applied = 0;
154
+ let orphaned = 0;
155
+ for (const [id, ov] of Object.entries(overlay)) {
156
+ if (!this.byId.has(id)) {
157
+ orphaned++;
158
+ continue;
159
+ }
160
+ this.applyOverride(id, ov);
161
+ this.overlay[id] = { ...this.overlay[id], ...ov };
162
+ applied++;
163
+ }
164
+ return { applied, orphaned };
165
+ }
166
+ isDirty() {
167
+ return this.dirty;
168
+ }
169
+ serializeOverlay() {
170
+ return this.overlay;
171
+ }
172
+ /** Clear the dirty flag after a successful save (mirrors IngestAuthoringAdapter). */
173
+ markClean() {
174
+ this.dirty = false;
175
+ }
176
+ }
@@ -0,0 +1,5 @@
1
+ import type { Container } from 'pixi.js';
2
+ import type { Scene2DFile } from './schema/entity2d';
3
+ /** Capture selected subtree roots (by display object) into a Scene2D file. */
4
+ export declare function captureToScene2D(roots: Container[], name?: string): Scene2DFile;
5
+ //# sourceMappingURL=capture-to-scene2d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-to-scene2d.d.ts","sourceRoot":"","sources":["../../src/world2d/capture-to-scene2d.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAY,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA0C/D,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,SAAqB,GAAG,WAAW,CAO3F"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Capture an ingested/live PixiJS subtree into authored Scene2D entities — the
3
+ * world2d analog of capture-to-vscn (`ingest-capture.ts`). Recognizable sprites/
4
+ * text/containers map to first-party `sprite`/`text`/`transform2d` sections;
5
+ * turns inspection into portable authored content.
6
+ *
7
+ * Honest ceiling (mirrors the 3D one): a Scene2D `sprite` expresses tint + size +
8
+ * anchor, not an arbitrary texture/GraphicsContext, so a captured display keeps its
9
+ * transform + tint + size; bespoke Graphics geometry is captured as a plain tinted
10
+ * sprite placeholder.
11
+ */
12
+ function numToHex(n) {
13
+ return `#${((n ?? 0xffffff) & 0xffffff).toString(16).padStart(6, '0')}`;
14
+ }
15
+ function captureNode(o) {
16
+ const ctor = o.constructor?.name?.toLowerCase() ?? '';
17
+ const entity = {
18
+ name: o.label ?? ctor ?? 'entity',
19
+ surface: 'world2d',
20
+ transform2d: {
21
+ position: [o.position.x, o.position.y],
22
+ rotation: o.rotation,
23
+ scale: [o.scale.x, o.scale.y],
24
+ },
25
+ };
26
+ if (ctor.includes('text')) {
27
+ entity.text = { text: o.text ?? '' };
28
+ }
29
+ else if (ctor.includes('sprite')) {
30
+ entity.sprite = {
31
+ tint: numToHex(o.tint),
32
+ width: Math.round(o.width),
33
+ height: Math.round(o.height),
34
+ };
35
+ }
36
+ const kids = o.children?.filter((c) => c.label !== undefined) ?? [];
37
+ if (kids.length)
38
+ entity.children = kids.map((c) => captureNode(c));
39
+ return entity;
40
+ }
41
+ /** Capture selected subtree roots (by display object) into a Scene2D file. */
42
+ export function captureToScene2D(roots, name = 'captured-world2d') {
43
+ return {
44
+ version: 1,
45
+ name,
46
+ surface: 'world2d',
47
+ entities: roots.map(captureNode),
48
+ };
49
+ }
@@ -0,0 +1,52 @@
1
+ import type RAPIER from '@dimforge/rapier2d-compat';
2
+ import type { NodeOf } from '../ecs/game-component';
3
+ import type { GameContext } from '../runtime/types';
4
+ import type { Physics2DRegistry } from './physics2d-registry';
5
+ export type Collision2DHandler = (handleA: number, handleB: number, started: boolean) => void;
6
+ /**
7
+ * Drains the Rapier 2D event queue each postPhysics and dispatches collision
8
+ * events — the world2d analog of `createCollisionSystem`. Events are buffered then
9
+ * handlers run after the drain returns (same re-entrancy guard as the 3D system:
10
+ * a handler must not call back into Rapier while the queue is borrowed).
11
+ */
12
+ export declare function createCollision2DSystem(rapierWorld: RAPIER.World, eventQueue: RAPIER.EventQueue): {
13
+ onCollision(handler: Collision2DHandler): void;
14
+ offCollision(handler: Collision2DHandler): void;
15
+ drain(): void;
16
+ getBodyHandleFromCollider(colliderHandle: number): number | undefined;
17
+ };
18
+ export type Collision2DSystem = ReturnType<typeof createCollision2DSystem>;
19
+ /**
20
+ * The minimal component-manager capability `createTriggerDispatch2D` needs —
21
+ * `getComponents` returning instances with optional trigger callbacks, typed
22
+ * honestly against `NodeOf<'pixijs'>` (T7.2, D8 — this dispatch is always
23
+ * pixi-world-scoped) rather than the full manager type. Deliberately a
24
+ * structural slice: the unified `ComponentManager` (`ecs/component-manager.ts`,
25
+ * what production wires up since T7.3 slice 1, and the only manager left —
26
+ * the world2d silo's manager is deleted, T7.3 slice 2) satisfies it — this
27
+ * dispatcher has no dependency on which `WorldKind` a caller's manager was
28
+ * constructed for.
29
+ */
30
+ export interface TriggerDispatchComponents {
31
+ getComponents(node: NodeOf<'pixijs'>): ReadonlyArray<{
32
+ onTriggerEnter?(other: NodeOf<'pixijs'>, ctx: GameContext): void;
33
+ onTriggerExit?(other: NodeOf<'pixijs'>, ctx: GameContext): void;
34
+ }>;
35
+ }
36
+ /**
37
+ * Turn Rapier 2D sensor overlaps into `onTriggerEnter`/`onTriggerExit` callbacks on
38
+ * the GameComponents of the two involved display objects — the 2D analog of
39
+ * `createTriggerDispatch`. Only sensor-involved collisions dispatch triggers.
40
+ *
41
+ * `ctx` is typed `GameContext` (the unified manager's typing) — production
42
+ * (`pixi-game-adapter.ts`) casts its real `World2DContext` to `GameContext`
43
+ * before passing it here; individual `GameComponent<'pixijs'>` subclasses
44
+ * that need real 2D fields off `ctx` widen their own lifecycle-method
45
+ * signature to `GameContext | World2DContext` and narrow back down (see
46
+ * `Camera2DFollow.update` in `./components-2d.ts` — the worked example of
47
+ * the pattern since the world2d-demo silo and its `first-party-scene.ts`
48
+ * were deleted, T6.1 slice 4). This function only ever forwards `ctx` — it
49
+ * never reads a field off it itself.
50
+ */
51
+ export declare function createTriggerDispatch2D(physics: Physics2DRegistry, components: TriggerDispatchComponents, rapierWorld: RAPIER.World, ctx: GameContext): Collision2DHandler;
52
+ //# sourceMappingURL=collision-2d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collision-2d.d.ts","sourceRoot":"","sources":["../../src/world2d/collision-2d.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAE9F;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU;yBAGvE,kBAAkB;0BAGjB,kBAAkB;;8CAaE,MAAM,GAAG,MAAM,GAAG,SAAS;EAKxE;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE3E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;QACnD,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAAC;QACjE,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAAC;KACjE,CAAC,CAAC;CACJ;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,MAAM,CAAC,KAAK,EACzB,GAAG,EAAE,WAAW,GACf,kBAAkB,CAapB"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Drains the Rapier 2D event queue each postPhysics and dispatches collision
3
+ * events — the world2d analog of `createCollisionSystem`. Events are buffered then
4
+ * handlers run after the drain returns (same re-entrancy guard as the 3D system:
5
+ * a handler must not call back into Rapier while the queue is borrowed).
6
+ */
7
+ export function createCollision2DSystem(rapierWorld, eventQueue) {
8
+ const handlers = [];
9
+ return {
10
+ onCollision(handler) {
11
+ handlers.push(handler);
12
+ },
13
+ offCollision(handler) {
14
+ const idx = handlers.indexOf(handler);
15
+ if (idx !== -1)
16
+ handlers.splice(idx, 1);
17
+ },
18
+ drain() {
19
+ const events = [];
20
+ eventQueue.drainCollisionEvents((h1, h2, started) => {
21
+ events.push([h1, h2, started]);
22
+ });
23
+ for (const [h1, h2, started] of events) {
24
+ for (let i = 0; i < handlers.length; i++)
25
+ handlers[i](h1, h2, started);
26
+ }
27
+ },
28
+ getBodyHandleFromCollider(colliderHandle) {
29
+ const collider = rapierWorld.getCollider(colliderHandle);
30
+ return collider?.parent()?.handle;
31
+ },
32
+ };
33
+ }
34
+ /**
35
+ * Turn Rapier 2D sensor overlaps into `onTriggerEnter`/`onTriggerExit` callbacks on
36
+ * the GameComponents of the two involved display objects — the 2D analog of
37
+ * `createTriggerDispatch`. Only sensor-involved collisions dispatch triggers.
38
+ *
39
+ * `ctx` is typed `GameContext` (the unified manager's typing) — production
40
+ * (`pixi-game-adapter.ts`) casts its real `World2DContext` to `GameContext`
41
+ * before passing it here; individual `GameComponent<'pixijs'>` subclasses
42
+ * that need real 2D fields off `ctx` widen their own lifecycle-method
43
+ * signature to `GameContext | World2DContext` and narrow back down (see
44
+ * `Camera2DFollow.update` in `./components-2d.ts` — the worked example of
45
+ * the pattern since the world2d-demo silo and its `first-party-scene.ts`
46
+ * were deleted, T6.1 slice 4). This function only ever forwards `ctx` — it
47
+ * never reads a field off it itself.
48
+ */
49
+ export function createTriggerDispatch2D(physics, components, rapierWorld, ctx) {
50
+ return (handleA, handleB, started) => {
51
+ const colA = rapierWorld.getCollider(handleA);
52
+ const colB = rapierWorld.getCollider(handleB);
53
+ if (!colA?.isSensor() && !colB?.isSensor())
54
+ return;
55
+ const objA = physics.getByColliderHandle(handleA);
56
+ const objB = physics.getByColliderHandle(handleB);
57
+ if (!objA || !objB)
58
+ return;
59
+ notify(components, objA, objB, started, ctx);
60
+ notify(components, objB, objA, started, ctx);
61
+ };
62
+ }
63
+ function notify(components, self, other, started, ctx) {
64
+ for (const inst of components.getComponents(self)) {
65
+ if (started)
66
+ inst.onTriggerEnter?.(other, ctx);
67
+ else
68
+ inst.onTriggerExit?.(other, ctx);
69
+ }
70
+ }
@@ -0,0 +1,47 @@
1
+ import { z } from 'zod';
2
+ import { GameComponent } from '../ecs/game-component';
3
+ import type { GameContext } from '../runtime/types';
4
+ import type { World2DContext } from './types';
5
+ /**
6
+ * Camera2DFollow — the canonical 2D camera (spec backend-2d-camera): a 2D camera is
7
+ * a transform on the world Container (`ctx.stage`). Attached to the entity to follow;
8
+ * each frame it pans/zooms `ctx.stage` so the target display stays centered. Mirrors
9
+ * the 3D "camera GameComponent on a camera entity" canonical-way rule.
10
+ */
11
+ export declare class Camera2DFollow extends GameComponent<'pixijs'> {
12
+ static declaredKind: "pixijs";
13
+ static phase: "preRender";
14
+ static schema: z.ZodObject<{
15
+ zoom: z.ZodDefault<z.ZodNumber>;
16
+ smoothing: z.ZodDefault<z.ZodNumber>;
17
+ }, z.core.$strip>;
18
+ zoom: number;
19
+ smoothing: number;
20
+ update(_dt: number, gameCtx: GameContext | World2DContext): void;
21
+ }
22
+ /**
23
+ * Clickable2D — federated-events picking (spec backend-2d-input-picking). The sprite
24
+ * must be authored `interactive: true` (loader sets eventMode='static'); on pointerdown
25
+ * the sprite cycles tint, proving Pixi world picking works and is independent of the
26
+ * React/DOM HUD layer.
27
+ *
28
+ * INPUT ROUTING RULE (resolves the headline open design question): the three surfaces
29
+ * are stacked DOM siblings — React/DOM HUD (top, z-index, pointer-events gated) gets the
30
+ * event first; if it doesn't consume it, the Pixi canvas's federated EventSystem hit-tests
31
+ * world2d display objects; Three's raycaster handles the world3d canvas. Because each
32
+ * surface owns its own canvas/DOM node, a click on the HUD does not also pick the Pixi
33
+ * world beneath it, and vice-versa — no cross-surface double-picking.
34
+ */
35
+ export declare class Clickable2D extends GameComponent<'pixijs'> {
36
+ static declaredKind: "pixijs";
37
+ static schema: z.ZodObject<{
38
+ tints: z.ZodDefault<z.ZodArray<z.ZodString>>;
39
+ }, z.core.$strip>;
40
+ tints: string[];
41
+ private idx;
42
+ private handler;
43
+ init(): void;
44
+ update(): void;
45
+ dispose(): void;
46
+ }
47
+ //# sourceMappingURL=components-2d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-2d.d.ts","sourceRoot":"","sources":["../../src/world2d/components-2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,aAAa,CAAC,QAAQ,CAAC;IACzD,MAAM,CAAC,YAAY,EAAG,QAAQ,CAAU;IACxC,MAAM,CAAC,KAAK,EAAG,WAAW,CAAU;IACpC,MAAM,CAAC,MAAM;;;sBAGV;IACH,IAAI,SAAK;IACT,SAAS,SAAQ;IAcjB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI;CAUjE;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAY,SAAQ,aAAa,CAAC,QAAQ,CAAC;IACtD,MAAM,CAAC,YAAY,EAAG,QAAQ,CAAU;IACxC,MAAM,CAAC,MAAM;;sBAKV;IACH,KAAK,EAAE,MAAM,EAAE,CAAgD;IAC/D,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,OAAO,CAMb;IAEF,IAAI,IAAI,IAAI;IAKZ,MAAM,IAAI,IAAI;IACd,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,77 @@
1
+ import { z } from 'zod';
2
+ import { GameComponent } from '../ecs/game-component';
3
+ /**
4
+ * Camera2DFollow — the canonical 2D camera (spec backend-2d-camera): a 2D camera is
5
+ * a transform on the world Container (`ctx.stage`). Attached to the entity to follow;
6
+ * each frame it pans/zooms `ctx.stage` so the target display stays centered. Mirrors
7
+ * the 3D "camera GameComponent on a camera entity" canonical-way rule.
8
+ */
9
+ export class Camera2DFollow extends GameComponent {
10
+ static declaredKind = 'pixijs';
11
+ static phase = 'preRender';
12
+ static schema = z.object({
13
+ zoom: z.number().default(1).describe('Camera zoom (world Container scale)'),
14
+ smoothing: z.number().default(0.12).describe('Follow lerp factor 0..1 (1 = instant)'),
15
+ });
16
+ zoom = 1;
17
+ smoothing = 0.12;
18
+ // CONFLICT (bridged, same mechanism the deleted `GameComponent2D` alias
19
+ // used — T7.3 slice 2): `GameComponent<K>`'s lifecycle methods are typed
20
+ // `ctx: GameContext` (D8 §2 — `ctx` always means the game-level context),
21
+ // but this component genuinely needs `World2DContext` fields (`app`/
22
+ // `stage`), which share no structure with `GameContext` (neither is
23
+ // assignable to the other) — a plain `ctx: World2DContext` override would
24
+ // fail even under method bivariance (TS2416). Widening the parameter to
25
+ // the union is a valid (non-bivariant) override on its own — accepting a
26
+ // superset of the base signature is always sound — then narrowing back
27
+ // down via the cast below. At runtime this always receives the real
28
+ // `World2DContext` (`pixi-game-adapter.ts` casts it to `GameContext` only
29
+ // for the unified manager's internal typing).
30
+ update(_dt, gameCtx) {
31
+ const ctx = gameCtx;
32
+ const screen = ctx.app.screen;
33
+ const targetX = screen.width / 2 - this.node.x * this.zoom;
34
+ const targetY = screen.height / 2 - this.node.y * this.zoom;
35
+ const stage = ctx.stage;
36
+ stage.scale.set(this.zoom);
37
+ stage.position.x += (targetX - stage.position.x) * this.smoothing;
38
+ stage.position.y += (targetY - stage.position.y) * this.smoothing;
39
+ }
40
+ }
41
+ /**
42
+ * Clickable2D — federated-events picking (spec backend-2d-input-picking). The sprite
43
+ * must be authored `interactive: true` (loader sets eventMode='static'); on pointerdown
44
+ * the sprite cycles tint, proving Pixi world picking works and is independent of the
45
+ * React/DOM HUD layer.
46
+ *
47
+ * INPUT ROUTING RULE (resolves the headline open design question): the three surfaces
48
+ * are stacked DOM siblings — React/DOM HUD (top, z-index, pointer-events gated) gets the
49
+ * event first; if it doesn't consume it, the Pixi canvas's federated EventSystem hit-tests
50
+ * world2d display objects; Three's raycaster handles the world3d canvas. Because each
51
+ * surface owns its own canvas/DOM node, a click on the HUD does not also pick the Pixi
52
+ * world beneath it, and vice-versa — no cross-surface double-picking.
53
+ */
54
+ export class Clickable2D extends GameComponent {
55
+ static declaredKind = 'pixijs';
56
+ static schema = z.object({
57
+ tints: z
58
+ .array(z.string())
59
+ .default(['#ff6b6b', '#4ecdc4', '#ffd23f', '#a06bff'])
60
+ .describe('Tint cycle'),
61
+ });
62
+ tints = ['#ff6b6b', '#4ecdc4', '#ffd23f', '#a06bff'];
63
+ idx = 0;
64
+ handler = () => {
65
+ this.idx = (this.idx + 1) % this.tints.length;
66
+ this.node.tint = Number.parseInt(this.tints[this.idx].replace('#', ''), 16);
67
+ };
68
+ init() {
69
+ this.node.eventMode = 'static';
70
+ this.node.cursor = 'pointer';
71
+ this.node.on('pointerdown', this.handler);
72
+ }
73
+ update() { }
74
+ dispose() {
75
+ this.node.off('pointerdown', this.handler);
76
+ }
77
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * world2d — the PixiJS 2D render surface for vgai.
3
+ *
4
+ * A peer to the Three.js world3d surface and the React UI surface (ARCHITECTURE.md
5
+ * §Render Surfaces). It LITERALLY reuses the engine's loop primitives (`createGameLoop`,
6
+ * `createSystemRunner`, `PHASE_ORDER`) and faithfully MIRRORS the entity / authored-data
7
+ * model as a 2D twin (`Scene2D`), instantiating entities as PixiJS display objects
8
+ * instead of Object3Ds, with 2D physics/collision via native Rapier 2D — built on
9
+ * native libraries with thin adapters. Gameplay behavior attaches via the SAME
10
+ * `GameComponent<'pixijs'>` (`ecs/game-component.ts`) and unified `ComponentManager`
11
+ * (`ecs/component-manager.ts`) every threejs world uses (T7.3).
12
+ *
13
+ * See docs/PIXI-WORLD2D-MAXIMAL-SPEC.json (FROZEN).
14
+ */
15
+ export { AuthoringAdapter2D, type EditorNode2D, type Overlay2D, type Override2D, type Property2D, type Transform2DValue, } from './authoring-2d';
16
+ export { captureToScene2D } from './capture-to-scene2d';
17
+ export { type Collision2DSystem, createCollision2DSystem, createTriggerDispatch2D, } from './collision-2d';
18
+ export { Camera2DFollow, Clickable2D } from './components-2d';
19
+ export { type EmbedMount2D, type IframeReachableMount2D, mountIngestGame2DEmbed, mountIngestGame2DIframeReachable, } from './ingest-iframe-2d';
20
+ export { type IngestGame2D, type IngestMount2D, mountIngestGame2D } from './ingest2d';
21
+ export { createPhysics2DRegistry, type Physics2DRefs, type Physics2DRegistry, } from './physics2d-registry';
22
+ export { createWorld2DRuntime, type MountedGame2D, type PixiSceneConfig, PixiSceneGameAdapter, type World2DHost, type World2DSession, type World2DSetupFn, } from './pixi-game-adapter';
23
+ export { createPixiSurface, type PixiSurface, type PixiSurfaceOptions } from './pixi-surface';
24
+ export { type CapturedRuntime2D, installSceneCapture2D, type SceneCapture2DHandle, } from './scene-capture-2d';
25
+ export { loadScene2DFromData, type Scene2DInstance } from './scene2d-loader';
26
+ export * from './schema/entity2d';
27
+ export * from './schema/physics2d';
28
+ export * from './schema/sprite';
29
+ export * from './schema/tilemap';
30
+ export * from './schema/tuples2d';
31
+ export { createPhysicsAdapter2D, type PhysicsAdapter2D } from './system-adapters-2d';
32
+ export { createTransformWriter2D } from './transform-writer-2d';
33
+ export type { Component2DRegistry, World2DContext } from './types';
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/world2d/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EACL,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACL,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC7E,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * world2d — the PixiJS 2D render surface for vgai.
3
+ *
4
+ * A peer to the Three.js world3d surface and the React UI surface (ARCHITECTURE.md
5
+ * §Render Surfaces). It LITERALLY reuses the engine's loop primitives (`createGameLoop`,
6
+ * `createSystemRunner`, `PHASE_ORDER`) and faithfully MIRRORS the entity / authored-data
7
+ * model as a 2D twin (`Scene2D`), instantiating entities as PixiJS display objects
8
+ * instead of Object3Ds, with 2D physics/collision via native Rapier 2D — built on
9
+ * native libraries with thin adapters. Gameplay behavior attaches via the SAME
10
+ * `GameComponent<'pixijs'>` (`ecs/game-component.ts`) and unified `ComponentManager`
11
+ * (`ecs/component-manager.ts`) every threejs world uses (T7.3).
12
+ *
13
+ * See docs/PIXI-WORLD2D-MAXIMAL-SPEC.json (FROZEN).
14
+ */
15
+ export { AuthoringAdapter2D, } from './authoring-2d';
16
+ export { captureToScene2D } from './capture-to-scene2d';
17
+ export { createCollision2DSystem, createTriggerDispatch2D, } from './collision-2d';
18
+ export { Camera2DFollow, Clickable2D } from './components-2d';
19
+ export { mountIngestGame2DEmbed, mountIngestGame2DIframeReachable, } from './ingest-iframe-2d';
20
+ export { mountIngestGame2D } from './ingest2d';
21
+ export { createPhysics2DRegistry, } from './physics2d-registry';
22
+ export { createWorld2DRuntime, PixiSceneGameAdapter, } from './pixi-game-adapter';
23
+ export { createPixiSurface } from './pixi-surface';
24
+ export { installSceneCapture2D, } from './scene-capture-2d';
25
+ export { loadScene2DFromData } from './scene2d-loader';
26
+ export * from './schema/entity2d';
27
+ export * from './schema/physics2d';
28
+ export * from './schema/sprite';
29
+ export * from './schema/tilemap';
30
+ export * from './schema/tuples2d';
31
+ export { createPhysicsAdapter2D } from './system-adapters-2d';
32
+ export { createTransformWriter2D } from './transform-writer-2d';
@@ -0,0 +1,82 @@
1
+ /**
2
+ * world2d iframe ingest tiers — the PixiJS analogs of the 3D ingest-iframe adapters.
3
+ *
4
+ * - OPAQUE EMBED (tier 0-1): a prebuilt/self-contained bundle runs in a sandboxed
5
+ * iframe; hosted + sized + disposed, NOT introspectable.
6
+ * - IFRAME-REACHABLE (tier 2-3): a bundle runs in its own iframe realm, but its
7
+ * `import 'pixi.js'` is wired (via an importmap) to a blob module re-exporting the
8
+ * HOST's pixi instance, so every Application/Sprite it creates is a HOST-realm
9
+ * object → the host `Application.prototype.render` trap fires and capture works.
10
+ */
11
+ import { type CapturedRuntime2D, type SceneCapture2DHandle } from './scene-capture-2d';
12
+ export interface EmbedMount2D {
13
+ iframe: HTMLIFrameElement;
14
+ dispose: () => void;
15
+ }
16
+ /** OPAQUE EMBED: sandboxed iframe, no scene introspection (tier 0-1). */
17
+ export declare function mountIngestGame2DEmbed(html: string, container: HTMLElement): EmbedMount2D;
18
+ export interface IframeReachableMultiOpts {
19
+ captureTimeoutMs?: number;
20
+ /**
21
+ * Bare-specifier → host module-namespace map. MUST include the pixi.js instance the trap is
22
+ * installed on (passed separately as `pixiNamespace`); list the game's OTHER shared bare deps
23
+ * here (@pixi/sound, @pixi/ui, gsap, pixi-filters) so they resolve to host instances and their
24
+ * extension side-effects register on the host pixi (the trapped instance).
25
+ */
26
+ extraDeps?: Record<string, Record<string, unknown>>;
27
+ /**
28
+ * D-Z3 (docs/WAVE3-ADAPTER-PLUMBING-DESIGN.md) — bare-specifier -> VERBATIM
29
+ * URL importmap entries (the project-node_modules fallback for a specifier
30
+ * that isn't in the host-namespace registry but IS installed in the open
31
+ * project's own `node_modules`). Written into the importmap DIRECTLY
32
+ * alongside the `extraDeps` blob-namespace entries — no host-side import,
33
+ * no blob wrapping, no decision logic here: this function just merges
34
+ * whatever `Record<specifier, url>` the caller (editor-side
35
+ * `host-namespace-registry.ts`) already decided. The URL's own transitive
36
+ * `import 'pixi.js'` resolves through this SAME importmap back to the host
37
+ * pixi trap (§0.3), keeping module identity converged without a second pixi
38
+ * instance.
39
+ */
40
+ extraDepUrls?: Record<string, string>;
41
+ /** <base href> for the iframe so the game's relative asset URLs (Assets basePath) resolve. */
42
+ baseHref?: string;
43
+ /**
44
+ * HOST-SIDE asset URL remap (the Pixi analog of the three.js DefaultLoadingManager.setURLModifier
45
+ * asset adapter). A document.write iframe keeps the PARENT's window.location, so PixiJS's Assets
46
+ * resolver (which builds absolute URLs from window.location, not document.baseURI) would resolve
47
+ * the game's relative `basePath:'assets'` against the parent page. Wrapping the host pixi's
48
+ * Assets.init to force this ABSOLUTE basePath fixes resolution without touching the game source —
49
+ * pure host library configuration, restored on dispose.
50
+ */
51
+ assetBaseUrl?: string;
52
+ /** Load the game bundle from this absolute URL (a built multi-file game). */
53
+ bundleUrl?: string;
54
+ /** …or run this inline module source (a single-file game). One of bundleUrl/inlineSrc required. */
55
+ inlineSrc?: string;
56
+ /** DOM the game expects to find before it boots (e.g. a `<div id="game-root">` it appends to). */
57
+ bodyHtml?: string;
58
+ }
59
+ /**
60
+ * IFRAME-REACHABLE for REAL MULTI-FILE GAMES (cov2d-bundled-dedupe): run a built game bundle
61
+ * (its OWN unaltered source, externalized against pixi at build time) in its own iframe realm
62
+ * whose importmap maps EVERY shared bare dep — pixi.js + @pixi/sound/@pixi/ui/gsap/… — to the
63
+ * HOST instances, and (optionally) a <base href> so its AssetPack/manifest URLs resolve. The
64
+ * host `Application.prototype.render` trap then captures the live stage IN-REALM. The game's
65
+ * source is never touched; all of this is host-side wiring.
66
+ */
67
+ export declare function mountIngestGame2DIframeReachableMulti(pixiNamespace: unknown, container: HTMLElement, opts: IframeReachableMultiOpts): Promise<IframeReachableMount2D>;
68
+ export interface IframeReachableMount2D {
69
+ iframe: HTMLIFrameElement;
70
+ capture: SceneCapture2DHandle;
71
+ captured: CapturedRuntime2D | null;
72
+ dispose: () => void;
73
+ }
74
+ /**
75
+ * IFRAME-REACHABLE (tier 2-3): run `gameModuleSrc` in an iframe whose importmap maps
76
+ * `pixi.js` to a host-pixi re-export blob, and trap the host `Application.prototype`
77
+ * so the bundle's render is captured in-realm.
78
+ */
79
+ export declare function mountIngestGame2DIframeReachable(pixiNamespace: unknown, gameModuleSrc: string, container: HTMLElement, opts?: {
80
+ captureTimeoutMs?: number;
81
+ }): Promise<IframeReachableMount2D>;
82
+ //# sourceMappingURL=ingest-iframe-2d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest-iframe-2d.d.ts","sourceRoot":"","sources":["../../src/world2d/ingest-iframe-2d.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,yEAAyE;AACzE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,YAAY,CASzF;AAsCD,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,qCAAqC,CACzD,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CA2EjC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,gCAAgC,CACpD,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,WAAW,EACtB,IAAI,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GACvC,OAAO,CAAC,sBAAsB,CAAC,CAqCjC"}