@vgai/engine 0.3.0 → 0.4.0-canary.20260715.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 (559) hide show
  1. package/package.json +8 -2
  2. package/schemas/engine-api.json +124 -0
  3. package/schemas/engine-api.md +53 -0
  4. package/schemas/engine-capabilities.json +124 -0
  5. package/schemas/inputmap.schema.json +314 -0
  6. package/schemas/mat.schema.json +286 -0
  7. package/schemas/prefab.schema.json +10148 -0
  8. package/schemas/scn2d.schema.json +475 -0
  9. package/schemas/vgai-game.schema.json +383 -0
  10. package/schemas/vscn.schema.json +11007 -0
  11. package/src/adapter/{world-kind.ts → adapter-surface.ts} +6 -6
  12. package/src/adapter/authoring.ts +67 -0
  13. package/src/adapter/game-adapter.ts +8 -8
  14. package/src/adapter/host-context.ts +2 -4
  15. package/src/adapter/index.ts +3 -1
  16. package/src/adapter/system-adapter.ts +73 -0
  17. package/src/adapter/vgai-scene-game-adapter.ts +239 -180
  18. package/src/animation/xstate-animation-binding.ts +300 -262
  19. package/src/animation/xstate-animation-meta.ts +50 -13
  20. package/src/character/cloth-sim.ts +533 -0
  21. package/src/character/spring-chain.ts +307 -0
  22. package/src/core/game-loop.ts +41 -3
  23. package/src/core/seeded-random.ts +161 -0
  24. package/src/core/system-runner.ts +20 -3
  25. package/src/core/types.ts +37 -0
  26. package/src/data/data-asset.ts +1 -1
  27. package/src/dev/performance-profiler.ts +213 -0
  28. package/src/dev/webgl-gpu-timer.ts +53 -0
  29. package/src/ecs/component-manager.ts +45 -12
  30. package/src/ecs/game-component.ts +95 -11
  31. package/src/humanoid/bake.operation.ts +326 -0
  32. package/src/humanoid/body.ts +663 -0
  33. package/src/humanoid/clips.ts +149 -0
  34. package/src/humanoid/compose.ts +209 -0
  35. package/src/humanoid/generate.ts +189 -0
  36. package/src/humanoid/index.ts +36 -0
  37. package/src/humanoid/schema.ts +108 -0
  38. package/src/humanoid/skeleton.ts +345 -0
  39. package/src/index.ts +5 -5
  40. package/src/input/input-manager.ts +701 -22
  41. package/src/input/input-types.ts +5 -2
  42. package/src/manifest/index.ts +5 -5
  43. package/src/manifest/load.ts +125 -72
  44. package/src/manifest/schema.ts +362 -255
  45. package/src/react/game-state.tsx +135 -32
  46. package/src/react/root-adapter.tsx +49 -0
  47. package/src/react/unmanaged-root-detector.ts +66 -0
  48. package/src/react/use-data.ts +12 -2
  49. package/src/runtime/create-runtime.ts +100 -282
  50. package/src/runtime/debug-bridge.ts +483 -0
  51. package/src/runtime/debug-registry.ts +856 -0
  52. package/src/runtime/game.ts +342 -93
  53. package/src/runtime/gameplay-rng-trap.ts +134 -0
  54. package/src/runtime/input-router.ts +7 -7
  55. package/src/runtime/mount-game.ts +40 -38
  56. package/src/runtime/mount-manifest.ts +169 -37
  57. package/src/runtime/render-control.ts +13 -13
  58. package/src/runtime/render-seed.ts +1 -1
  59. package/src/runtime/state-bridge.ts +24 -10
  60. package/src/runtime/types.ts +110 -28
  61. package/src/scene/asset-registry.ts +22 -0
  62. package/src/scene/component-registry.ts +14 -3
  63. package/src/scene/defaults.ts +1 -0
  64. package/src/scene/light-camera-factory.ts +11 -3
  65. package/src/scene/scene-apply.ts +55 -4
  66. package/src/scene/scene-loader.ts +10 -27
  67. package/src/scene/scene-types.ts +0 -1
  68. package/src/scene/schema/index.ts +0 -34
  69. package/src/scene/schema/light.ts +16 -1
  70. package/src/scene/schema/material.ts +96 -91
  71. package/src/scene/schema/scene-file.ts +1 -7
  72. package/src/scene/user-data.ts +14 -1
  73. package/src/setup/setup-renderer.ts +1 -1
  74. package/src/tools/define-tool.ts +50 -11
  75. package/src/world2d/authoring-2d.ts +17 -1
  76. package/src/world2d/collision-2d.ts +1 -1
  77. package/src/world2d/pixi-game-adapter.ts +19 -17
  78. package/src/world2d/scene2d-loader.ts +1 -0
  79. package/src/world2d/types.ts +8 -2
  80. package/dist/adapter/authoring.d.ts +0 -404
  81. package/dist/adapter/authoring.d.ts.map +0 -1
  82. package/dist/adapter/authoring.js +0 -22
  83. package/dist/adapter/colyseus-networking-adapter.d.ts +0 -43
  84. package/dist/adapter/colyseus-networking-adapter.d.ts.map +0 -1
  85. package/dist/adapter/colyseus-networking-adapter.js +0 -38
  86. package/dist/adapter/first-party-systems.d.ts +0 -38
  87. package/dist/adapter/first-party-systems.d.ts.map +0 -1
  88. package/dist/adapter/first-party-systems.js +0 -77
  89. package/dist/adapter/game-adapter.d.ts +0 -133
  90. package/dist/adapter/game-adapter.d.ts.map +0 -1
  91. package/dist/adapter/game-adapter.js +0 -10
  92. package/dist/adapter/host-context.d.ts +0 -73
  93. package/dist/adapter/host-context.d.ts.map +0 -1
  94. package/dist/adapter/host-context.js +0 -16
  95. package/dist/adapter/index.d.ts +0 -22
  96. package/dist/adapter/index.d.ts.map +0 -1
  97. package/dist/adapter/index.js +0 -15
  98. package/dist/adapter/ingest/game-contract.d.ts +0 -53
  99. package/dist/adapter/ingest/game-contract.d.ts.map +0 -1
  100. package/dist/adapter/ingest/game-contract.js +0 -30
  101. package/dist/adapter/ingest/overlay-applier.d.ts +0 -118
  102. package/dist/adapter/ingest/overlay-applier.d.ts.map +0 -1
  103. package/dist/adapter/ingest/overlay-applier.js +0 -132
  104. package/dist/adapter/ingest/overlay-apply.d.ts +0 -60
  105. package/dist/adapter/ingest/overlay-apply.d.ts.map +0 -1
  106. package/dist/adapter/ingest/overlay-apply.js +0 -101
  107. package/dist/adapter/ingest/overlay-file.d.ts +0 -79
  108. package/dist/adapter/ingest/overlay-file.d.ts.map +0 -1
  109. package/dist/adapter/ingest/overlay-file.js +0 -66
  110. package/dist/adapter/ingest/overlay-report.d.ts +0 -113
  111. package/dist/adapter/ingest/overlay-report.d.ts.map +0 -1
  112. package/dist/adapter/ingest/overlay-report.js +0 -103
  113. package/dist/adapter/ingest/scene-capture.d.ts +0 -97
  114. package/dist/adapter/ingest/scene-capture.d.ts.map +0 -1
  115. package/dist/adapter/ingest/scene-capture.js +0 -248
  116. package/dist/adapter/ingest/upstream-pin.d.ts +0 -47
  117. package/dist/adapter/ingest/upstream-pin.d.ts.map +0 -1
  118. package/dist/adapter/ingest/upstream-pin.js +0 -50
  119. package/dist/adapter/loop-gate-report.d.ts +0 -34
  120. package/dist/adapter/loop-gate-report.d.ts.map +0 -1
  121. package/dist/adapter/loop-gate-report.js +0 -37
  122. package/dist/adapter/rapier-physics-adapter.d.ts +0 -12
  123. package/dist/adapter/rapier-physics-adapter.d.ts.map +0 -1
  124. package/dist/adapter/rapier-physics-adapter.js +0 -46
  125. package/dist/adapter/system-adapter.d.ts +0 -133
  126. package/dist/adapter/system-adapter.d.ts.map +0 -1
  127. package/dist/adapter/system-adapter.js +0 -13
  128. package/dist/adapter/transform.d.ts +0 -18
  129. package/dist/adapter/transform.d.ts.map +0 -1
  130. package/dist/adapter/transform.js +0 -1
  131. package/dist/adapter/vgai-scene-game-adapter.d.ts +0 -116
  132. package/dist/adapter/vgai-scene-game-adapter.d.ts.map +0 -1
  133. package/dist/adapter/vgai-scene-game-adapter.js +0 -714
  134. package/dist/adapter/world-kind.d.ts +0 -30
  135. package/dist/adapter/world-kind.d.ts.map +0 -1
  136. package/dist/adapter/world-kind.js +0 -18
  137. package/dist/ai/navigation.d.ts +0 -64
  138. package/dist/ai/navigation.d.ts.map +0 -1
  139. package/dist/ai/navigation.js +0 -133
  140. package/dist/animation/anim-graph-types.d.ts +0 -25
  141. package/dist/animation/anim-graph-types.d.ts.map +0 -1
  142. package/dist/animation/anim-graph-types.js +0 -1
  143. package/dist/animation/animation-clock.d.ts +0 -213
  144. package/dist/animation/animation-clock.d.ts.map +0 -1
  145. package/dist/animation/animation-clock.js +0 -301
  146. package/dist/animation/blend-node.d.ts +0 -22
  147. package/dist/animation/blend-node.d.ts.map +0 -1
  148. package/dist/animation/blend-node.js +0 -97
  149. package/dist/animation/camera-ownership.d.ts +0 -250
  150. package/dist/animation/camera-ownership.d.ts.map +0 -1
  151. package/dist/animation/camera-ownership.js +0 -169
  152. package/dist/animation/cinematic-cues.d.ts +0 -200
  153. package/dist/animation/cinematic-cues.d.ts.map +0 -1
  154. package/dist/animation/cinematic-cues.js +0 -213
  155. package/dist/animation/clip-map.d.ts +0 -12
  156. package/dist/animation/clip-map.d.ts.map +0 -1
  157. package/dist/animation/clip-map.js +0 -37
  158. package/dist/animation/gsap-registration.d.ts +0 -119
  159. package/dist/animation/gsap-registration.d.ts.map +0 -1
  160. package/dist/animation/gsap-registration.js +0 -92
  161. package/dist/animation/theatre-clock-binding.d.ts +0 -89
  162. package/dist/animation/theatre-clock-binding.d.ts.map +0 -1
  163. package/dist/animation/theatre-clock-binding.js +0 -29
  164. package/dist/animation/theatre-director.d.ts +0 -242
  165. package/dist/animation/theatre-director.d.ts.map +0 -1
  166. package/dist/animation/theatre-director.js +0 -235
  167. package/dist/animation/theatre-object-binding.d.ts +0 -305
  168. package/dist/animation/theatre-object-binding.d.ts.map +0 -1
  169. package/dist/animation/theatre-object-binding.js +0 -351
  170. package/dist/animation/xstate-animation-binding.d.ts +0 -111
  171. package/dist/animation/xstate-animation-binding.d.ts.map +0 -1
  172. package/dist/animation/xstate-animation-binding.js +0 -307
  173. package/dist/animation/xstate-animation-meta.d.ts +0 -228
  174. package/dist/animation/xstate-animation-meta.d.ts.map +0 -1
  175. package/dist/animation/xstate-animation-meta.js +0 -221
  176. package/dist/assets.d.ts +0 -26
  177. package/dist/assets.d.ts.map +0 -1
  178. package/dist/assets.js +0 -55
  179. package/dist/audio/index.d.ts +0 -4
  180. package/dist/audio/index.d.ts.map +0 -1
  181. package/dist/audio/index.js +0 -24
  182. package/dist/audio/tone-clock-binding.d.ts +0 -75
  183. package/dist/audio/tone-clock-binding.d.ts.map +0 -1
  184. package/dist/audio/tone-clock-binding.js +0 -29
  185. package/dist/audio/tone-context.d.ts +0 -114
  186. package/dist/audio/tone-context.d.ts.map +0 -1
  187. package/dist/audio/tone-context.js +0 -39
  188. package/dist/audio/tone-offline-render.d.ts +0 -90
  189. package/dist/audio/tone-offline-render.d.ts.map +0 -1
  190. package/dist/audio/tone-offline-render.js +0 -56
  191. package/dist/audio/wav-encode.d.ts +0 -38
  192. package/dist/audio/wav-encode.d.ts.map +0 -1
  193. package/dist/audio/wav-encode.js +0 -97
  194. package/dist/core/game-loop.d.ts +0 -21
  195. package/dist/core/game-loop.d.ts.map +0 -1
  196. package/dist/core/game-loop.js +0 -130
  197. package/dist/core/system-runner.d.ts +0 -120
  198. package/dist/core/system-runner.d.ts.map +0 -1
  199. package/dist/core/system-runner.js +0 -286
  200. package/dist/core/types.d.ts +0 -58
  201. package/dist/core/types.d.ts.map +0 -1
  202. package/dist/core/types.js +0 -25
  203. package/dist/data/data-asset.d.ts +0 -101
  204. package/dist/data/data-asset.d.ts.map +0 -1
  205. package/dist/data/data-asset.js +0 -122
  206. package/dist/data/data-check-core.d.ts +0 -110
  207. package/dist/data/data-check-core.d.ts.map +0 -1
  208. package/dist/data/data-check-core.js +0 -178
  209. package/dist/data/data-ref.d.ts +0 -79
  210. package/dist/data/data-ref.d.ts.map +0 -1
  211. package/dist/data/data-ref.js +0 -130
  212. package/dist/data/vite-plugin-data.d.ts +0 -79
  213. package/dist/data/vite-plugin-data.d.ts.map +0 -1
  214. package/dist/data/vite-plugin-data.js +0 -217
  215. package/dist/dev/console-bridge.d.ts +0 -22
  216. package/dist/dev/console-bridge.d.ts.map +0 -1
  217. package/dist/dev/console-bridge.js +0 -71
  218. package/dist/dev/debug-draw.d.ts +0 -24
  219. package/dist/dev/debug-draw.d.ts.map +0 -1
  220. package/dist/dev/debug-draw.js +0 -73
  221. package/dist/dev/logger.d.ts +0 -30
  222. package/dist/dev/logger.d.ts.map +0 -1
  223. package/dist/dev/logger.js +0 -90
  224. package/dist/ecs/component-manager.d.ts +0 -189
  225. package/dist/ecs/component-manager.d.ts.map +0 -1
  226. package/dist/ecs/component-manager.js +0 -676
  227. package/dist/ecs/game-component.d.ts +0 -97
  228. package/dist/ecs/game-component.d.ts.map +0 -1
  229. package/dist/ecs/game-component.js +0 -80
  230. package/dist/ecs/hmr-swap-report.d.ts +0 -53
  231. package/dist/ecs/hmr-swap-report.d.ts.map +0 -1
  232. package/dist/ecs/hmr-swap-report.js +0 -55
  233. package/dist/index.d.ts +0 -37
  234. package/dist/index.d.ts.map +0 -1
  235. package/dist/index.js +0 -30
  236. package/dist/input/input-manager.d.ts +0 -596
  237. package/dist/input/input-manager.d.ts.map +0 -1
  238. package/dist/input/input-manager.js +0 -1564
  239. package/dist/input/input-types.d.ts +0 -171
  240. package/dist/input/input-types.d.ts.map +0 -1
  241. package/dist/input/input-types.js +0 -1
  242. package/dist/input/prompt-labels.d.ts +0 -21
  243. package/dist/input/prompt-labels.d.ts.map +0 -1
  244. package/dist/input/prompt-labels.js +0 -121
  245. package/dist/input/rebind-controller.d.ts +0 -59
  246. package/dist/input/rebind-controller.d.ts.map +0 -1
  247. package/dist/input/rebind-controller.js +0 -85
  248. package/dist/input/schema.d.ts +0 -16
  249. package/dist/input/schema.d.ts.map +0 -1
  250. package/dist/input/schema.js +0 -228
  251. package/dist/loader.d.ts +0 -43
  252. package/dist/loader.d.ts.map +0 -1
  253. package/dist/loader.js +0 -59
  254. package/dist/manifest/index.d.ts +0 -5
  255. package/dist/manifest/index.d.ts.map +0 -1
  256. package/dist/manifest/index.js +0 -8
  257. package/dist/manifest/load-file.d.ts +0 -4
  258. package/dist/manifest/load-file.d.ts.map +0 -1
  259. package/dist/manifest/load-file.js +0 -14
  260. package/dist/manifest/load.d.ts +0 -117
  261. package/dist/manifest/load.d.ts.map +0 -1
  262. package/dist/manifest/load.js +0 -255
  263. package/dist/manifest/schema.d.ts +0 -173
  264. package/dist/manifest/schema.d.ts.map +0 -1
  265. package/dist/manifest/schema.js +0 -302
  266. package/dist/physics/collision-system.d.ts +0 -41
  267. package/dist/physics/collision-system.d.ts.map +0 -1
  268. package/dist/physics/collision-system.js +0 -64
  269. package/dist/physics/physics-registry.d.ts +0 -45
  270. package/dist/physics/physics-registry.d.ts.map +0 -1
  271. package/dist/physics/physics-registry.js +0 -65
  272. package/dist/physics/transform-writer.d.ts +0 -16
  273. package/dist/physics/transform-writer.d.ts.map +0 -1
  274. package/dist/physics/transform-writer.js +0 -38
  275. package/dist/physics/trigger-dispatch.d.ts +0 -24
  276. package/dist/physics/trigger-dispatch.d.ts.map +0 -1
  277. package/dist/physics/trigger-dispatch.js +0 -80
  278. package/dist/react/game-state.d.ts +0 -105
  279. package/dist/react/game-state.d.ts.map +0 -1
  280. package/dist/react/game-state.js +0 -144
  281. package/dist/react/use-data.d.ts +0 -60
  282. package/dist/react/use-data.d.ts.map +0 -1
  283. package/dist/react/use-data.js +0 -96
  284. package/dist/react/use-selection.d.ts +0 -75
  285. package/dist/react/use-selection.d.ts.map +0 -1
  286. package/dist/react/use-selection.js +0 -90
  287. package/dist/render/auto-batcher.d.ts +0 -34
  288. package/dist/render/auto-batcher.d.ts.map +0 -1
  289. package/dist/render/auto-batcher.js +0 -140
  290. package/dist/render/render-batch-system.d.ts +0 -33
  291. package/dist/render/render-batch-system.d.ts.map +0 -1
  292. package/dist/render/render-batch-system.js +0 -230
  293. package/dist/render/render-features.d.ts +0 -47
  294. package/dist/render/render-features.d.ts.map +0 -1
  295. package/dist/render/render-features.js +0 -105
  296. package/dist/render/render-settings.d.ts +0 -36
  297. package/dist/render/render-settings.d.ts.map +0 -1
  298. package/dist/render/render-settings.js +0 -51
  299. package/dist/runtime/create-runtime.d.ts +0 -280
  300. package/dist/runtime/create-runtime.d.ts.map +0 -1
  301. package/dist/runtime/create-runtime.js +0 -795
  302. package/dist/runtime/frame-selector-cache.d.ts +0 -41
  303. package/dist/runtime/frame-selector-cache.d.ts.map +0 -1
  304. package/dist/runtime/frame-selector-cache.js +0 -65
  305. package/dist/runtime/game.d.ts +0 -433
  306. package/dist/runtime/game.d.ts.map +0 -1
  307. package/dist/runtime/game.js +0 -569
  308. package/dist/runtime/input-router.d.ts +0 -78
  309. package/dist/runtime/input-router.d.ts.map +0 -1
  310. package/dist/runtime/input-router.js +0 -171
  311. package/dist/runtime/mount-game.d.ts +0 -129
  312. package/dist/runtime/mount-game.d.ts.map +0 -1
  313. package/dist/runtime/mount-game.js +0 -152
  314. package/dist/runtime/mount-manifest.d.ts +0 -119
  315. package/dist/runtime/mount-manifest.d.ts.map +0 -1
  316. package/dist/runtime/mount-manifest.js +0 -204
  317. package/dist/runtime/render-audio-control.d.ts +0 -110
  318. package/dist/runtime/render-audio-control.d.ts.map +0 -1
  319. package/dist/runtime/render-audio-control.js +0 -111
  320. package/dist/runtime/render-control.d.ts +0 -291
  321. package/dist/runtime/render-control.d.ts.map +0 -1
  322. package/dist/runtime/render-control.js +0 -264
  323. package/dist/runtime/render-seed.d.ts +0 -57
  324. package/dist/runtime/render-seed.d.ts.map +0 -1
  325. package/dist/runtime/render-seed.js +0 -74
  326. package/dist/runtime/scene-ui-bridge.d.ts +0 -69
  327. package/dist/runtime/scene-ui-bridge.d.ts.map +0 -1
  328. package/dist/runtime/scene-ui-bridge.js +0 -23
  329. package/dist/runtime/scene-ui-data.d.ts +0 -13
  330. package/dist/runtime/scene-ui-data.d.ts.map +0 -1
  331. package/dist/runtime/scene-ui-data.js +0 -92
  332. package/dist/runtime/state-bridge.d.ts +0 -47
  333. package/dist/runtime/state-bridge.d.ts.map +0 -1
  334. package/dist/runtime/state-bridge.js +0 -53
  335. package/dist/runtime/types.d.ts +0 -179
  336. package/dist/runtime/types.d.ts.map +0 -1
  337. package/dist/runtime/types.js +0 -1
  338. package/dist/scene/asset-loaders.d.ts +0 -79
  339. package/dist/scene/asset-loaders.d.ts.map +0 -1
  340. package/dist/scene/asset-loaders.js +0 -141
  341. package/dist/scene/asset-paths.d.ts +0 -11
  342. package/dist/scene/asset-paths.d.ts.map +0 -1
  343. package/dist/scene/asset-paths.js +0 -108
  344. package/dist/scene/asset-ref-check.d.ts +0 -88
  345. package/dist/scene/asset-ref-check.d.ts.map +0 -1
  346. package/dist/scene/asset-ref-check.js +0 -214
  347. package/dist/scene/asset-registry.d.ts +0 -30
  348. package/dist/scene/asset-registry.d.ts.map +0 -1
  349. package/dist/scene/asset-registry.js +0 -50
  350. package/dist/scene/collider-dimensions.d.ts +0 -63
  351. package/dist/scene/collider-dimensions.d.ts.map +0 -1
  352. package/dist/scene/collider-dimensions.js +0 -98
  353. package/dist/scene/component-registry.d.ts +0 -17
  354. package/dist/scene/component-registry.d.ts.map +0 -1
  355. package/dist/scene/component-registry.js +0 -28
  356. package/dist/scene/defaults.d.ts +0 -252
  357. package/dist/scene/defaults.d.ts.map +0 -1
  358. package/dist/scene/defaults.js +0 -151
  359. package/dist/scene/geometries/index.d.ts +0 -8
  360. package/dist/scene/geometries/index.d.ts.map +0 -1
  361. package/dist/scene/geometries/index.js +0 -7
  362. package/dist/scene/geometries/terrain.d.ts +0 -2
  363. package/dist/scene/geometries/terrain.d.ts.map +0 -1
  364. package/dist/scene/geometries/terrain.js +0 -37
  365. package/dist/scene/geometry-registry.d.ts +0 -24
  366. package/dist/scene/geometry-registry.d.ts.map +0 -1
  367. package/dist/scene/geometry-registry.js +0 -20
  368. package/dist/scene/instance-registry.d.ts +0 -36
  369. package/dist/scene/instance-registry.d.ts.map +0 -1
  370. package/dist/scene/instance-registry.js +0 -55
  371. package/dist/scene/instancers/grid.d.ts +0 -2
  372. package/dist/scene/instancers/grid.d.ts.map +0 -1
  373. package/dist/scene/instancers/grid.js +0 -36
  374. package/dist/scene/instancers/index.d.ts +0 -8
  375. package/dist/scene/instancers/index.d.ts.map +0 -1
  376. package/dist/scene/instancers/index.js +0 -7
  377. package/dist/scene/light-camera-factory.d.ts +0 -23
  378. package/dist/scene/light-camera-factory.d.ts.map +0 -1
  379. package/dist/scene/light-camera-factory.js +0 -68
  380. package/dist/scene/material-factory.d.ts +0 -17
  381. package/dist/scene/material-factory.d.ts.map +0 -1
  382. package/dist/scene/material-factory.js +0 -197
  383. package/dist/scene/material-registry.d.ts +0 -40
  384. package/dist/scene/material-registry.d.ts.map +0 -1
  385. package/dist/scene/material-registry.js +0 -44
  386. package/dist/scene/materials/index.d.ts +0 -8
  387. package/dist/scene/materials/index.d.ts.map +0 -1
  388. package/dist/scene/materials/index.js +0 -7
  389. package/dist/scene/materials/water.d.ts +0 -2
  390. package/dist/scene/materials/water.d.ts.map +0 -1
  391. package/dist/scene/materials/water.js +0 -54
  392. package/dist/scene/parse.d.ts +0 -23
  393. package/dist/scene/parse.d.ts.map +0 -1
  394. package/dist/scene/parse.js +0 -179
  395. package/dist/scene/particles-factory.d.ts +0 -33
  396. package/dist/scene/particles-factory.d.ts.map +0 -1
  397. package/dist/scene/particles-factory.js +0 -282
  398. package/dist/scene/scene-apply.d.ts +0 -109
  399. package/dist/scene/scene-apply.d.ts.map +0 -1
  400. package/dist/scene/scene-apply.js +0 -326
  401. package/dist/scene/scene-diff-schema.d.ts +0 -285
  402. package/dist/scene/scene-diff-schema.d.ts.map +0 -1
  403. package/dist/scene/scene-diff-schema.js +0 -92
  404. package/dist/scene/scene-diff-types.d.ts +0 -40
  405. package/dist/scene/scene-diff-types.d.ts.map +0 -1
  406. package/dist/scene/scene-diff-types.js +0 -14
  407. package/dist/scene/scene-loader.d.ts +0 -177
  408. package/dist/scene/scene-loader.d.ts.map +0 -1
  409. package/dist/scene/scene-loader.js +0 -1213
  410. package/dist/scene/scene-query.d.ts +0 -11
  411. package/dist/scene/scene-query.d.ts.map +0 -1
  412. package/dist/scene/scene-query.js +0 -63
  413. package/dist/scene/scene-types.d.ts +0 -10
  414. package/dist/scene/scene-types.d.ts.map +0 -1
  415. package/dist/scene/scene-types.js +0 -8
  416. package/dist/scene/scene-version.d.ts +0 -26
  417. package/dist/scene/scene-version.d.ts.map +0 -1
  418. package/dist/scene/scene-version.js +0 -34
  419. package/dist/scene/schema/animation.d.ts +0 -8
  420. package/dist/scene/schema/animation.d.ts.map +0 -1
  421. package/dist/scene/schema/animation.js +0 -42
  422. package/dist/scene/schema/audio.d.ts +0 -13
  423. package/dist/scene/schema/audio.d.ts.map +0 -1
  424. package/dist/scene/schema/audio.js +0 -22
  425. package/dist/scene/schema/camera.d.ts +0 -28
  426. package/dist/scene/schema/camera.d.ts.map +0 -1
  427. package/dist/scene/schema/camera.js +0 -17
  428. package/dist/scene/schema/collider.d.ts +0 -40
  429. package/dist/scene/schema/collider.d.ts.map +0 -1
  430. package/dist/scene/schema/collider.js +0 -55
  431. package/dist/scene/schema/entity-ref.d.ts +0 -31
  432. package/dist/scene/schema/entity-ref.d.ts.map +0 -1
  433. package/dist/scene/schema/entity-ref.js +0 -61
  434. package/dist/scene/schema/entity.d.ts +0 -1036
  435. package/dist/scene/schema/entity.d.ts.map +0 -1
  436. package/dist/scene/schema/entity.js +0 -153
  437. package/dist/scene/schema/environment.d.ts +0 -425
  438. package/dist/scene/schema/environment.d.ts.map +0 -1
  439. package/dist/scene/schema/environment.js +0 -357
  440. package/dist/scene/schema/index.d.ts +0 -39
  441. package/dist/scene/schema/index.d.ts.map +0 -1
  442. package/dist/scene/schema/index.js +0 -20
  443. package/dist/scene/schema/instances.d.ts +0 -14
  444. package/dist/scene/schema/instances.d.ts.map +0 -1
  445. package/dist/scene/schema/instances.js +0 -28
  446. package/dist/scene/schema/joint.d.ts +0 -23
  447. package/dist/scene/schema/joint.d.ts.map +0 -1
  448. package/dist/scene/schema/joint.js +0 -23
  449. package/dist/scene/schema/light.d.ts +0 -38
  450. package/dist/scene/schema/light.d.ts.map +0 -1
  451. package/dist/scene/schema/light.js +0 -26
  452. package/dist/scene/schema/material.d.ts +0 -199
  453. package/dist/scene/schema/material.d.ts.map +0 -1
  454. package/dist/scene/schema/material.js +0 -99
  455. package/dist/scene/schema/mesh.d.ts +0 -48
  456. package/dist/scene/schema/mesh.d.ts.map +0 -1
  457. package/dist/scene/schema/mesh.js +0 -82
  458. package/dist/scene/schema/particles.d.ts +0 -2178
  459. package/dist/scene/schema/particles.d.ts.map +0 -1
  460. package/dist/scene/schema/particles.js +0 -321
  461. package/dist/scene/schema/physics.d.ts +0 -56
  462. package/dist/scene/schema/physics.d.ts.map +0 -1
  463. package/dist/scene/schema/physics.js +0 -37
  464. package/dist/scene/schema/scene-file.d.ts +0 -304
  465. package/dist/scene/schema/scene-file.d.ts.map +0 -1
  466. package/dist/scene/schema/scene-file.js +0 -262
  467. package/dist/scene/schema/shadow.d.ts +0 -28
  468. package/dist/scene/schema/shadow.d.ts.map +0 -1
  469. package/dist/scene/schema/shadow.js +0 -20
  470. package/dist/scene/schema/spline.d.ts +0 -25
  471. package/dist/scene/schema/spline.d.ts.map +0 -1
  472. package/dist/scene/schema/spline.js +0 -15
  473. package/dist/scene/schema/tuples.d.ts +0 -12
  474. package/dist/scene/schema/tuples.d.ts.map +0 -1
  475. package/dist/scene/schema/tuples.js +0 -14
  476. package/dist/scene/schema/ui.d.ts +0 -880
  477. package/dist/scene/schema/ui.d.ts.map +0 -1
  478. package/dist/scene/schema/ui.js +0 -506
  479. package/dist/scene/user-data.d.ts +0 -171
  480. package/dist/scene/user-data.d.ts.map +0 -1
  481. package/dist/scene/user-data.js +0 -137
  482. package/dist/setup/setup-audio.d.ts +0 -20
  483. package/dist/setup/setup-audio.d.ts.map +0 -1
  484. package/dist/setup/setup-audio.js +0 -41
  485. package/dist/setup/setup-particles.d.ts +0 -17
  486. package/dist/setup/setup-particles.d.ts.map +0 -1
  487. package/dist/setup/setup-particles.js +0 -16
  488. package/dist/setup/setup-physics.d.ts +0 -25
  489. package/dist/setup/setup-physics.d.ts.map +0 -1
  490. package/dist/setup/setup-physics.js +0 -51
  491. package/dist/setup/setup-renderer.d.ts +0 -69
  492. package/dist/setup/setup-renderer.d.ts.map +0 -1
  493. package/dist/setup/setup-renderer.js +0 -363
  494. package/dist/tools/define-tool.d.ts +0 -105
  495. package/dist/tools/define-tool.d.ts.map +0 -1
  496. package/dist/tools/define-tool.js +0 -82
  497. package/dist/world2d/authoring-2d.d.ts +0 -76
  498. package/dist/world2d/authoring-2d.d.ts.map +0 -1
  499. package/dist/world2d/authoring-2d.js +0 -176
  500. package/dist/world2d/capture-to-scene2d.d.ts +0 -5
  501. package/dist/world2d/capture-to-scene2d.d.ts.map +0 -1
  502. package/dist/world2d/capture-to-scene2d.js +0 -49
  503. package/dist/world2d/collision-2d.d.ts +0 -52
  504. package/dist/world2d/collision-2d.d.ts.map +0 -1
  505. package/dist/world2d/collision-2d.js +0 -70
  506. package/dist/world2d/components-2d.d.ts +0 -47
  507. package/dist/world2d/components-2d.d.ts.map +0 -1
  508. package/dist/world2d/components-2d.js +0 -77
  509. package/dist/world2d/index.d.ts +0 -34
  510. package/dist/world2d/index.d.ts.map +0 -1
  511. package/dist/world2d/index.js +0 -32
  512. package/dist/world2d/ingest-iframe-2d.d.ts +0 -82
  513. package/dist/world2d/ingest-iframe-2d.d.ts.map +0 -1
  514. package/dist/world2d/ingest-iframe-2d.js +0 -166
  515. package/dist/world2d/ingest2d.d.ts +0 -97
  516. package/dist/world2d/ingest2d.d.ts.map +0 -1
  517. package/dist/world2d/ingest2d.js +0 -40
  518. package/dist/world2d/physics2d-registry.d.ts +0 -24
  519. package/dist/world2d/physics2d-registry.d.ts.map +0 -1
  520. package/dist/world2d/physics2d-registry.js +0 -38
  521. package/dist/world2d/pixi-game-adapter.d.ts +0 -107
  522. package/dist/world2d/pixi-game-adapter.d.ts.map +0 -1
  523. package/dist/world2d/pixi-game-adapter.js +0 -211
  524. package/dist/world2d/pixi-surface.d.ts +0 -39
  525. package/dist/world2d/pixi-surface.d.ts.map +0 -1
  526. package/dist/world2d/pixi-surface.js +0 -47
  527. package/dist/world2d/scene-capture-2d.d.ts +0 -43
  528. package/dist/world2d/scene-capture-2d.d.ts.map +0 -1
  529. package/dist/world2d/scene-capture-2d.js +0 -92
  530. package/dist/world2d/scene2d-loader.d.ts +0 -27
  531. package/dist/world2d/scene2d-loader.d.ts.map +0 -1
  532. package/dist/world2d/scene2d-loader.js +0 -274
  533. package/dist/world2d/schema/entity2d.d.ts +0 -102
  534. package/dist/world2d/schema/entity2d.d.ts.map +0 -1
  535. package/dist/world2d/schema/entity2d.js +0 -119
  536. package/dist/world2d/schema/physics2d.d.ts +0 -46
  537. package/dist/world2d/schema/physics2d.d.ts.map +0 -1
  538. package/dist/world2d/schema/physics2d.js +0 -45
  539. package/dist/world2d/schema/sprite.d.ts +0 -42
  540. package/dist/world2d/schema/sprite.d.ts.map +0 -1
  541. package/dist/world2d/schema/sprite.js +0 -63
  542. package/dist/world2d/schema/tilemap.d.ts +0 -15
  543. package/dist/world2d/schema/tilemap.d.ts.map +0 -1
  544. package/dist/world2d/schema/tilemap.js +0 -19
  545. package/dist/world2d/schema/tuples2d.d.ts +0 -20
  546. package/dist/world2d/schema/tuples2d.d.ts.map +0 -1
  547. package/dist/world2d/schema/tuples2d.js +0 -19
  548. package/dist/world2d/system-adapters-2d.d.ts +0 -16
  549. package/dist/world2d/system-adapters-2d.d.ts.map +0 -1
  550. package/dist/world2d/system-adapters-2d.js +0 -37
  551. package/dist/world2d/transform-writer-2d.d.ts +0 -16
  552. package/dist/world2d/transform-writer-2d.d.ts.map +0 -1
  553. package/dist/world2d/transform-writer-2d.js +0 -22
  554. package/dist/world2d/types.d.ts +0 -53
  555. package/dist/world2d/types.d.ts.map +0 -1
  556. package/dist/world2d/types.js +0 -1
  557. package/src/runtime/scene-ui-bridge.ts +0 -86
  558. package/src/runtime/scene-ui-data.ts +0 -119
  559. package/src/scene/schema/ui.ts +0 -602
@@ -1,176 +0,0 @@
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
- }
@@ -1,5 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,49 +0,0 @@
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
- }
@@ -1,52 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,70 +0,0 @@
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
- }
@@ -1,47 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,77 +0,0 @@
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
- }
@@ -1,34 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,32 +0,0 @@
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';
@@ -1,82 +0,0 @@
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
@@ -1 +0,0 @@
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"}