@vgai/engine 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/package.json +1 -1
  2. package/schemas/engine-capabilities.json +4 -4
  3. package/schemas/vgai-game.schema.json +2 -2
  4. package/src/adapter/authoring.ts +42 -0
  5. package/src/adapter/index.ts +3 -0
  6. package/src/adapter/ingest/overlay-apply.ts +50 -6
  7. package/src/adapter/ingest/scene-capture.ts +51 -2
  8. package/src/adapter/vgai-scene-game-adapter.ts +24 -0
  9. package/src/manifest/schema.ts +7 -3
  10. package/src/runtime/create-runtime.ts +97 -0
  11. package/src/runtime/game.ts +11 -1
  12. package/src/scene/asset-ref-check.ts +1 -1
  13. package/src/scene/scene-loader.ts +2 -2
  14. package/src/scene/user-data.ts +18 -0
  15. package/src/world3d-react/behavior.tsx +19 -11
  16. package/src/world3d-react/r3f-adapter.tsx +8 -0
  17. package/dist/adapter/adapter-surface.d.ts +0 -30
  18. package/dist/adapter/adapter-surface.d.ts.map +0 -1
  19. package/dist/adapter/adapter-surface.js +0 -18
  20. package/dist/adapter/authoring.d.ts +0 -461
  21. package/dist/adapter/authoring.d.ts.map +0 -1
  22. package/dist/adapter/authoring.js +0 -22
  23. package/dist/adapter/colyseus-networking-adapter.d.ts +0 -43
  24. package/dist/adapter/colyseus-networking-adapter.d.ts.map +0 -1
  25. package/dist/adapter/colyseus-networking-adapter.js +0 -38
  26. package/dist/adapter/first-party-systems.d.ts +0 -38
  27. package/dist/adapter/first-party-systems.d.ts.map +0 -1
  28. package/dist/adapter/first-party-systems.js +0 -77
  29. package/dist/adapter/game-adapter.d.ts +0 -133
  30. package/dist/adapter/game-adapter.d.ts.map +0 -1
  31. package/dist/adapter/game-adapter.js +0 -10
  32. package/dist/adapter/host-context.d.ts +0 -71
  33. package/dist/adapter/host-context.d.ts.map +0 -1
  34. package/dist/adapter/host-context.js +0 -16
  35. package/dist/adapter/index.d.ts +0 -22
  36. package/dist/adapter/index.d.ts.map +0 -1
  37. package/dist/adapter/index.js +0 -15
  38. package/dist/adapter/ingest/game-contract.d.ts +0 -53
  39. package/dist/adapter/ingest/game-contract.d.ts.map +0 -1
  40. package/dist/adapter/ingest/game-contract.js +0 -30
  41. package/dist/adapter/ingest/overlay-applier.d.ts +0 -118
  42. package/dist/adapter/ingest/overlay-applier.d.ts.map +0 -1
  43. package/dist/adapter/ingest/overlay-applier.js +0 -132
  44. package/dist/adapter/ingest/overlay-apply.d.ts +0 -60
  45. package/dist/adapter/ingest/overlay-apply.d.ts.map +0 -1
  46. package/dist/adapter/ingest/overlay-apply.js +0 -101
  47. package/dist/adapter/ingest/overlay-file.d.ts +0 -79
  48. package/dist/adapter/ingest/overlay-file.d.ts.map +0 -1
  49. package/dist/adapter/ingest/overlay-file.js +0 -66
  50. package/dist/adapter/ingest/overlay-report.d.ts +0 -113
  51. package/dist/adapter/ingest/overlay-report.d.ts.map +0 -1
  52. package/dist/adapter/ingest/overlay-report.js +0 -103
  53. package/dist/adapter/ingest/scene-capture.d.ts +0 -97
  54. package/dist/adapter/ingest/scene-capture.d.ts.map +0 -1
  55. package/dist/adapter/ingest/scene-capture.js +0 -248
  56. package/dist/adapter/ingest/upstream-pin.d.ts +0 -47
  57. package/dist/adapter/ingest/upstream-pin.d.ts.map +0 -1
  58. package/dist/adapter/ingest/upstream-pin.js +0 -50
  59. package/dist/adapter/loop-gate-report.d.ts +0 -34
  60. package/dist/adapter/loop-gate-report.d.ts.map +0 -1
  61. package/dist/adapter/loop-gate-report.js +0 -37
  62. package/dist/adapter/rapier-physics-adapter.d.ts +0 -12
  63. package/dist/adapter/rapier-physics-adapter.d.ts.map +0 -1
  64. package/dist/adapter/rapier-physics-adapter.js +0 -46
  65. package/dist/adapter/system-adapter.d.ts +0 -206
  66. package/dist/adapter/system-adapter.d.ts.map +0 -1
  67. package/dist/adapter/system-adapter.js +0 -13
  68. package/dist/adapter/transform.d.ts +0 -18
  69. package/dist/adapter/transform.d.ts.map +0 -1
  70. package/dist/adapter/transform.js +0 -1
  71. package/dist/adapter/vgai-scene-game-adapter.d.ts +0 -108
  72. package/dist/adapter/vgai-scene-game-adapter.d.ts.map +0 -1
  73. package/dist/adapter/vgai-scene-game-adapter.js +0 -762
  74. package/dist/ai/navigation.d.ts +0 -64
  75. package/dist/ai/navigation.d.ts.map +0 -1
  76. package/dist/ai/navigation.js +0 -133
  77. package/dist/animation/anim-graph-types.d.ts +0 -25
  78. package/dist/animation/anim-graph-types.d.ts.map +0 -1
  79. package/dist/animation/anim-graph-types.js +0 -1
  80. package/dist/animation/animation-clock.d.ts +0 -213
  81. package/dist/animation/animation-clock.d.ts.map +0 -1
  82. package/dist/animation/animation-clock.js +0 -301
  83. package/dist/animation/blend-node.d.ts +0 -22
  84. package/dist/animation/blend-node.d.ts.map +0 -1
  85. package/dist/animation/blend-node.js +0 -97
  86. package/dist/animation/camera-ownership.d.ts +0 -250
  87. package/dist/animation/camera-ownership.d.ts.map +0 -1
  88. package/dist/animation/camera-ownership.js +0 -169
  89. package/dist/animation/cinematic-cues.d.ts +0 -200
  90. package/dist/animation/cinematic-cues.d.ts.map +0 -1
  91. package/dist/animation/cinematic-cues.js +0 -213
  92. package/dist/animation/clip-map.d.ts +0 -12
  93. package/dist/animation/clip-map.d.ts.map +0 -1
  94. package/dist/animation/clip-map.js +0 -37
  95. package/dist/animation/gsap-registration.d.ts +0 -119
  96. package/dist/animation/gsap-registration.d.ts.map +0 -1
  97. package/dist/animation/gsap-registration.js +0 -92
  98. package/dist/animation/theatre-clock-binding.d.ts +0 -89
  99. package/dist/animation/theatre-clock-binding.d.ts.map +0 -1
  100. package/dist/animation/theatre-clock-binding.js +0 -29
  101. package/dist/animation/theatre-director.d.ts +0 -242
  102. package/dist/animation/theatre-director.d.ts.map +0 -1
  103. package/dist/animation/theatre-director.js +0 -235
  104. package/dist/animation/theatre-object-binding.d.ts +0 -305
  105. package/dist/animation/theatre-object-binding.d.ts.map +0 -1
  106. package/dist/animation/theatre-object-binding.js +0 -351
  107. package/dist/animation/xstate-animation-binding.d.ts +0 -56
  108. package/dist/animation/xstate-animation-binding.d.ts.map +0 -1
  109. package/dist/animation/xstate-animation-binding.js +0 -331
  110. package/dist/animation/xstate-animation-meta.d.ts +0 -266
  111. package/dist/animation/xstate-animation-meta.d.ts.map +0 -1
  112. package/dist/animation/xstate-animation-meta.js +0 -252
  113. package/dist/assets.d.ts +0 -26
  114. package/dist/assets.d.ts.map +0 -1
  115. package/dist/assets.js +0 -55
  116. package/dist/audio/index.d.ts +0 -4
  117. package/dist/audio/index.d.ts.map +0 -1
  118. package/dist/audio/index.js +0 -24
  119. package/dist/audio/tone-clock-binding.d.ts +0 -75
  120. package/dist/audio/tone-clock-binding.d.ts.map +0 -1
  121. package/dist/audio/tone-clock-binding.js +0 -29
  122. package/dist/audio/tone-context.d.ts +0 -114
  123. package/dist/audio/tone-context.d.ts.map +0 -1
  124. package/dist/audio/tone-context.js +0 -39
  125. package/dist/audio/tone-offline-render.d.ts +0 -90
  126. package/dist/audio/tone-offline-render.d.ts.map +0 -1
  127. package/dist/audio/tone-offline-render.js +0 -56
  128. package/dist/audio/wav-encode.d.ts +0 -38
  129. package/dist/audio/wav-encode.d.ts.map +0 -1
  130. package/dist/audio/wav-encode.js +0 -97
  131. package/dist/character/cloth-sim.d.ts +0 -179
  132. package/dist/character/cloth-sim.d.ts.map +0 -1
  133. package/dist/character/cloth-sim.js +0 -334
  134. package/dist/character/spring-chain.d.ts +0 -135
  135. package/dist/character/spring-chain.d.ts.map +0 -1
  136. package/dist/character/spring-chain.js +0 -165
  137. package/dist/core/game-loop.d.ts +0 -42
  138. package/dist/core/game-loop.d.ts.map +0 -1
  139. package/dist/core/game-loop.js +0 -167
  140. package/dist/core/seeded-random.d.ts +0 -69
  141. package/dist/core/seeded-random.d.ts.map +0 -1
  142. package/dist/core/seeded-random.js +0 -121
  143. package/dist/core/system-runner.d.ts +0 -120
  144. package/dist/core/system-runner.d.ts.map +0 -1
  145. package/dist/core/system-runner.js +0 -297
  146. package/dist/core/types.d.ts +0 -92
  147. package/dist/core/types.d.ts.map +0 -1
  148. package/dist/core/types.js +0 -25
  149. package/dist/data/data-asset.d.ts +0 -101
  150. package/dist/data/data-asset.d.ts.map +0 -1
  151. package/dist/data/data-asset.js +0 -122
  152. package/dist/data/data-check-core.d.ts +0 -110
  153. package/dist/data/data-check-core.d.ts.map +0 -1
  154. package/dist/data/data-check-core.js +0 -178
  155. package/dist/data/data-ref.d.ts +0 -79
  156. package/dist/data/data-ref.d.ts.map +0 -1
  157. package/dist/data/data-ref.js +0 -130
  158. package/dist/data/vite-plugin-data.d.ts +0 -79
  159. package/dist/data/vite-plugin-data.d.ts.map +0 -1
  160. package/dist/data/vite-plugin-data.js +0 -217
  161. package/dist/dev/console-bridge.d.ts +0 -22
  162. package/dist/dev/console-bridge.d.ts.map +0 -1
  163. package/dist/dev/console-bridge.js +0 -71
  164. package/dist/dev/debug-draw.d.ts +0 -24
  165. package/dist/dev/debug-draw.d.ts.map +0 -1
  166. package/dist/dev/debug-draw.js +0 -73
  167. package/dist/dev/logger.d.ts +0 -30
  168. package/dist/dev/logger.d.ts.map +0 -1
  169. package/dist/dev/logger.js +0 -90
  170. package/dist/dev/performance-profiler.d.ts +0 -60
  171. package/dist/dev/performance-profiler.d.ts.map +0 -1
  172. package/dist/dev/performance-profiler.js +0 -181
  173. package/dist/dev/webgl-gpu-timer.d.ts +0 -8
  174. package/dist/dev/webgl-gpu-timer.d.ts.map +0 -1
  175. package/dist/dev/webgl-gpu-timer.js +0 -52
  176. package/dist/ecs/component-manager.d.ts +0 -205
  177. package/dist/ecs/component-manager.d.ts.map +0 -1
  178. package/dist/ecs/component-manager.js +0 -706
  179. package/dist/ecs/game-component.d.ts +0 -146
  180. package/dist/ecs/game-component.d.ts.map +0 -1
  181. package/dist/ecs/game-component.js +0 -141
  182. package/dist/ecs/hmr-swap-report.d.ts +0 -53
  183. package/dist/ecs/hmr-swap-report.d.ts.map +0 -1
  184. package/dist/ecs/hmr-swap-report.js +0 -55
  185. package/dist/humanoid/bake.operation.d.ts +0 -119
  186. package/dist/humanoid/bake.operation.d.ts.map +0 -1
  187. package/dist/humanoid/bake.operation.js +0 -228
  188. package/dist/humanoid/body.d.ts +0 -101
  189. package/dist/humanoid/body.d.ts.map +0 -1
  190. package/dist/humanoid/body.js +0 -530
  191. package/dist/humanoid/clips.d.ts +0 -62
  192. package/dist/humanoid/clips.d.ts.map +0 -1
  193. package/dist/humanoid/clips.js +0 -121
  194. package/dist/humanoid/compose.d.ts +0 -75
  195. package/dist/humanoid/compose.d.ts.map +0 -1
  196. package/dist/humanoid/compose.js +0 -176
  197. package/dist/humanoid/generate.d.ts +0 -92
  198. package/dist/humanoid/generate.d.ts.map +0 -1
  199. package/dist/humanoid/generate.js +0 -124
  200. package/dist/humanoid/index.d.ts +0 -24
  201. package/dist/humanoid/index.d.ts.map +0 -1
  202. package/dist/humanoid/index.js +0 -18
  203. package/dist/humanoid/schema.d.ts +0 -35
  204. package/dist/humanoid/schema.d.ts.map +0 -1
  205. package/dist/humanoid/schema.js +0 -87
  206. package/dist/humanoid/skeleton.d.ts +0 -103
  207. package/dist/humanoid/skeleton.d.ts.map +0 -1
  208. package/dist/humanoid/skeleton.js +0 -289
  209. package/dist/index.d.ts +0 -37
  210. package/dist/index.d.ts.map +0 -1
  211. package/dist/index.js +0 -30
  212. package/dist/input/input-manager.d.ts +0 -945
  213. package/dist/input/input-manager.d.ts.map +0 -1
  214. package/dist/input/input-manager.js +0 -2207
  215. package/dist/input/input-types.d.ts +0 -174
  216. package/dist/input/input-types.d.ts.map +0 -1
  217. package/dist/input/input-types.js +0 -1
  218. package/dist/input/prompt-labels.d.ts +0 -21
  219. package/dist/input/prompt-labels.d.ts.map +0 -1
  220. package/dist/input/prompt-labels.js +0 -121
  221. package/dist/input/rebind-controller.d.ts +0 -59
  222. package/dist/input/rebind-controller.d.ts.map +0 -1
  223. package/dist/input/rebind-controller.js +0 -85
  224. package/dist/input/schema.d.ts +0 -16
  225. package/dist/input/schema.d.ts.map +0 -1
  226. package/dist/input/schema.js +0 -228
  227. package/dist/loader.d.ts +0 -43
  228. package/dist/loader.d.ts.map +0 -1
  229. package/dist/loader.js +0 -59
  230. package/dist/manifest/index.d.ts +0 -5
  231. package/dist/manifest/index.d.ts.map +0 -1
  232. package/dist/manifest/index.js +0 -8
  233. package/dist/manifest/load-file.d.ts +0 -4
  234. package/dist/manifest/load-file.d.ts.map +0 -1
  235. package/dist/manifest/load-file.js +0 -14
  236. package/dist/manifest/load.d.ts +0 -144
  237. package/dist/manifest/load.d.ts.map +0 -1
  238. package/dist/manifest/load.js +0 -273
  239. package/dist/manifest/schema.d.ts +0 -230
  240. package/dist/manifest/schema.d.ts.map +0 -1
  241. package/dist/manifest/schema.js +0 -394
  242. package/dist/physics/collision-system.d.ts +0 -41
  243. package/dist/physics/collision-system.d.ts.map +0 -1
  244. package/dist/physics/collision-system.js +0 -64
  245. package/dist/physics/physics-registry.d.ts +0 -45
  246. package/dist/physics/physics-registry.d.ts.map +0 -1
  247. package/dist/physics/physics-registry.js +0 -65
  248. package/dist/physics/transform-writer.d.ts +0 -16
  249. package/dist/physics/transform-writer.d.ts.map +0 -1
  250. package/dist/physics/transform-writer.js +0 -38
  251. package/dist/physics/trigger-dispatch.d.ts +0 -24
  252. package/dist/physics/trigger-dispatch.d.ts.map +0 -1
  253. package/dist/physics/trigger-dispatch.js +0 -80
  254. package/dist/react/game-state.d.ts +0 -156
  255. package/dist/react/game-state.d.ts.map +0 -1
  256. package/dist/react/game-state.js +0 -222
  257. package/dist/react/root-adapter.d.ts +0 -11
  258. package/dist/react/root-adapter.d.ts.map +0 -1
  259. package/dist/react/root-adapter.js +0 -41
  260. package/dist/react/unmanaged-root-detector.d.ts +0 -12
  261. package/dist/react/unmanaged-root-detector.d.ts.map +0 -1
  262. package/dist/react/unmanaged-root-detector.js +0 -45
  263. package/dist/react/use-data.d.ts +0 -60
  264. package/dist/react/use-data.d.ts.map +0 -1
  265. package/dist/react/use-data.js +0 -101
  266. package/dist/react/use-selection.d.ts +0 -75
  267. package/dist/react/use-selection.d.ts.map +0 -1
  268. package/dist/react/use-selection.js +0 -90
  269. package/dist/render/auto-batcher.d.ts +0 -34
  270. package/dist/render/auto-batcher.d.ts.map +0 -1
  271. package/dist/render/auto-batcher.js +0 -140
  272. package/dist/render/render-batch-system.d.ts +0 -33
  273. package/dist/render/render-batch-system.d.ts.map +0 -1
  274. package/dist/render/render-batch-system.js +0 -230
  275. package/dist/render/render-features.d.ts +0 -47
  276. package/dist/render/render-features.d.ts.map +0 -1
  277. package/dist/render/render-features.js +0 -105
  278. package/dist/render/render-settings.d.ts +0 -36
  279. package/dist/render/render-settings.d.ts.map +0 -1
  280. package/dist/render/render-settings.js +0 -51
  281. package/dist/runtime/create-runtime.d.ts +0 -249
  282. package/dist/runtime/create-runtime.d.ts.map +0 -1
  283. package/dist/runtime/create-runtime.js +0 -641
  284. package/dist/runtime/debug-bridge.d.ts +0 -257
  285. package/dist/runtime/debug-bridge.d.ts.map +0 -1
  286. package/dist/runtime/debug-bridge.js +0 -224
  287. package/dist/runtime/debug-registry.d.ts +0 -288
  288. package/dist/runtime/debug-registry.d.ts.map +0 -1
  289. package/dist/runtime/debug-registry.js +0 -513
  290. package/dist/runtime/frame-selector-cache.d.ts +0 -41
  291. package/dist/runtime/frame-selector-cache.d.ts.map +0 -1
  292. package/dist/runtime/frame-selector-cache.js +0 -65
  293. package/dist/runtime/game.d.ts +0 -496
  294. package/dist/runtime/game.d.ts.map +0 -1
  295. package/dist/runtime/game.js +0 -741
  296. package/dist/runtime/gameplay-rng-trap.d.ts +0 -48
  297. package/dist/runtime/gameplay-rng-trap.d.ts.map +0 -1
  298. package/dist/runtime/gameplay-rng-trap.js +0 -96
  299. package/dist/runtime/input-router.d.ts +0 -78
  300. package/dist/runtime/input-router.d.ts.map +0 -1
  301. package/dist/runtime/input-router.js +0 -171
  302. package/dist/runtime/mount-game.d.ts +0 -129
  303. package/dist/runtime/mount-game.d.ts.map +0 -1
  304. package/dist/runtime/mount-game.js +0 -152
  305. package/dist/runtime/mount-manifest.d.ts +0 -173
  306. package/dist/runtime/mount-manifest.d.ts.map +0 -1
  307. package/dist/runtime/mount-manifest.js +0 -297
  308. package/dist/runtime/render-audio-control.d.ts +0 -110
  309. package/dist/runtime/render-audio-control.d.ts.map +0 -1
  310. package/dist/runtime/render-audio-control.js +0 -111
  311. package/dist/runtime/render-control.d.ts +0 -291
  312. package/dist/runtime/render-control.d.ts.map +0 -1
  313. package/dist/runtime/render-control.js +0 -264
  314. package/dist/runtime/render-seed.d.ts +0 -57
  315. package/dist/runtime/render-seed.d.ts.map +0 -1
  316. package/dist/runtime/render-seed.js +0 -74
  317. package/dist/runtime/state-bridge.d.ts +0 -61
  318. package/dist/runtime/state-bridge.d.ts.map +0 -1
  319. package/dist/runtime/state-bridge.js +0 -63
  320. package/dist/runtime/types.d.ts +0 -253
  321. package/dist/runtime/types.d.ts.map +0 -1
  322. package/dist/runtime/types.js +0 -1
  323. package/dist/scene/asset-loaders.d.ts +0 -79
  324. package/dist/scene/asset-loaders.d.ts.map +0 -1
  325. package/dist/scene/asset-loaders.js +0 -141
  326. package/dist/scene/asset-paths.d.ts +0 -11
  327. package/dist/scene/asset-paths.d.ts.map +0 -1
  328. package/dist/scene/asset-paths.js +0 -108
  329. package/dist/scene/asset-ref-check.d.ts +0 -88
  330. package/dist/scene/asset-ref-check.d.ts.map +0 -1
  331. package/dist/scene/asset-ref-check.js +0 -214
  332. package/dist/scene/asset-registry.d.ts +0 -38
  333. package/dist/scene/asset-registry.d.ts.map +0 -1
  334. package/dist/scene/asset-registry.js +0 -66
  335. package/dist/scene/collider-dimensions.d.ts +0 -63
  336. package/dist/scene/collider-dimensions.d.ts.map +0 -1
  337. package/dist/scene/collider-dimensions.js +0 -98
  338. package/dist/scene/component-registry.d.ts +0 -22
  339. package/dist/scene/component-registry.d.ts.map +0 -1
  340. package/dist/scene/component-registry.js +0 -37
  341. package/dist/scene/defaults.d.ts +0 -252
  342. package/dist/scene/defaults.d.ts.map +0 -1
  343. package/dist/scene/defaults.js +0 -151
  344. package/dist/scene/geometries/index.d.ts +0 -8
  345. package/dist/scene/geometries/index.d.ts.map +0 -1
  346. package/dist/scene/geometries/index.js +0 -7
  347. package/dist/scene/geometries/terrain.d.ts +0 -2
  348. package/dist/scene/geometries/terrain.d.ts.map +0 -1
  349. package/dist/scene/geometries/terrain.js +0 -37
  350. package/dist/scene/geometry-registry.d.ts +0 -24
  351. package/dist/scene/geometry-registry.d.ts.map +0 -1
  352. package/dist/scene/geometry-registry.js +0 -20
  353. package/dist/scene/instance-registry.d.ts +0 -36
  354. package/dist/scene/instance-registry.d.ts.map +0 -1
  355. package/dist/scene/instance-registry.js +0 -55
  356. package/dist/scene/instancers/grid.d.ts +0 -2
  357. package/dist/scene/instancers/grid.d.ts.map +0 -1
  358. package/dist/scene/instancers/grid.js +0 -36
  359. package/dist/scene/instancers/index.d.ts +0 -8
  360. package/dist/scene/instancers/index.d.ts.map +0 -1
  361. package/dist/scene/instancers/index.js +0 -7
  362. package/dist/scene/light-camera-factory.d.ts +0 -23
  363. package/dist/scene/light-camera-factory.d.ts.map +0 -1
  364. package/dist/scene/light-camera-factory.js +0 -68
  365. package/dist/scene/material-factory.d.ts +0 -17
  366. package/dist/scene/material-factory.d.ts.map +0 -1
  367. package/dist/scene/material-factory.js +0 -197
  368. package/dist/scene/material-registry.d.ts +0 -40
  369. package/dist/scene/material-registry.d.ts.map +0 -1
  370. package/dist/scene/material-registry.js +0 -44
  371. package/dist/scene/materials/index.d.ts +0 -8
  372. package/dist/scene/materials/index.d.ts.map +0 -1
  373. package/dist/scene/materials/index.js +0 -7
  374. package/dist/scene/materials/water.d.ts +0 -2
  375. package/dist/scene/materials/water.d.ts.map +0 -1
  376. package/dist/scene/materials/water.js +0 -54
  377. package/dist/scene/parse.d.ts +0 -23
  378. package/dist/scene/parse.d.ts.map +0 -1
  379. package/dist/scene/parse.js +0 -179
  380. package/dist/scene/particles-factory.d.ts +0 -33
  381. package/dist/scene/particles-factory.d.ts.map +0 -1
  382. package/dist/scene/particles-factory.js +0 -282
  383. package/dist/scene/scene-apply.d.ts +0 -109
  384. package/dist/scene/scene-apply.d.ts.map +0 -1
  385. package/dist/scene/scene-apply.js +0 -370
  386. package/dist/scene/scene-diff-schema.d.ts +0 -285
  387. package/dist/scene/scene-diff-schema.d.ts.map +0 -1
  388. package/dist/scene/scene-diff-schema.js +0 -92
  389. package/dist/scene/scene-diff-types.d.ts +0 -40
  390. package/dist/scene/scene-diff-types.d.ts.map +0 -1
  391. package/dist/scene/scene-diff-types.js +0 -14
  392. package/dist/scene/scene-loader.d.ts +0 -167
  393. package/dist/scene/scene-loader.d.ts.map +0 -1
  394. package/dist/scene/scene-loader.js +0 -1211
  395. package/dist/scene/scene-query.d.ts +0 -11
  396. package/dist/scene/scene-query.d.ts.map +0 -1
  397. package/dist/scene/scene-query.js +0 -63
  398. package/dist/scene/scene-types.d.ts +0 -10
  399. package/dist/scene/scene-types.d.ts.map +0 -1
  400. package/dist/scene/scene-types.js +0 -8
  401. package/dist/scene/scene-version.d.ts +0 -26
  402. package/dist/scene/scene-version.d.ts.map +0 -1
  403. package/dist/scene/scene-version.js +0 -34
  404. package/dist/scene/schema/animation.d.ts +0 -8
  405. package/dist/scene/schema/animation.d.ts.map +0 -1
  406. package/dist/scene/schema/animation.js +0 -42
  407. package/dist/scene/schema/audio.d.ts +0 -13
  408. package/dist/scene/schema/audio.d.ts.map +0 -1
  409. package/dist/scene/schema/audio.js +0 -22
  410. package/dist/scene/schema/camera.d.ts +0 -28
  411. package/dist/scene/schema/camera.d.ts.map +0 -1
  412. package/dist/scene/schema/camera.js +0 -17
  413. package/dist/scene/schema/collider.d.ts +0 -40
  414. package/dist/scene/schema/collider.d.ts.map +0 -1
  415. package/dist/scene/schema/collider.js +0 -55
  416. package/dist/scene/schema/entity-ref.d.ts +0 -31
  417. package/dist/scene/schema/entity-ref.d.ts.map +0 -1
  418. package/dist/scene/schema/entity-ref.js +0 -61
  419. package/dist/scene/schema/entity.d.ts +0 -1036
  420. package/dist/scene/schema/entity.d.ts.map +0 -1
  421. package/dist/scene/schema/entity.js +0 -153
  422. package/dist/scene/schema/environment.d.ts +0 -425
  423. package/dist/scene/schema/environment.d.ts.map +0 -1
  424. package/dist/scene/schema/environment.js +0 -357
  425. package/dist/scene/schema/index.d.ts +0 -37
  426. package/dist/scene/schema/index.d.ts.map +0 -1
  427. package/dist/scene/schema/index.js +0 -19
  428. package/dist/scene/schema/instances.d.ts +0 -14
  429. package/dist/scene/schema/instances.d.ts.map +0 -1
  430. package/dist/scene/schema/instances.js +0 -28
  431. package/dist/scene/schema/joint.d.ts +0 -23
  432. package/dist/scene/schema/joint.d.ts.map +0 -1
  433. package/dist/scene/schema/joint.js +0 -23
  434. package/dist/scene/schema/light.d.ts +0 -38
  435. package/dist/scene/schema/light.d.ts.map +0 -1
  436. package/dist/scene/schema/light.js +0 -26
  437. package/dist/scene/schema/material.d.ts +0 -199
  438. package/dist/scene/schema/material.d.ts.map +0 -1
  439. package/dist/scene/schema/material.js +0 -103
  440. package/dist/scene/schema/mesh.d.ts +0 -48
  441. package/dist/scene/schema/mesh.d.ts.map +0 -1
  442. package/dist/scene/schema/mesh.js +0 -82
  443. package/dist/scene/schema/particles.d.ts +0 -2178
  444. package/dist/scene/schema/particles.d.ts.map +0 -1
  445. package/dist/scene/schema/particles.js +0 -321
  446. package/dist/scene/schema/physics.d.ts +0 -56
  447. package/dist/scene/schema/physics.d.ts.map +0 -1
  448. package/dist/scene/schema/physics.js +0 -37
  449. package/dist/scene/schema/scene-file.d.ts +0 -303
  450. package/dist/scene/schema/scene-file.d.ts.map +0 -1
  451. package/dist/scene/schema/scene-file.js +0 -256
  452. package/dist/scene/schema/shadow.d.ts +0 -28
  453. package/dist/scene/schema/shadow.d.ts.map +0 -1
  454. package/dist/scene/schema/shadow.js +0 -20
  455. package/dist/scene/schema/spline.d.ts +0 -25
  456. package/dist/scene/schema/spline.d.ts.map +0 -1
  457. package/dist/scene/schema/spline.js +0 -15
  458. package/dist/scene/schema/tuples.d.ts +0 -12
  459. package/dist/scene/schema/tuples.d.ts.map +0 -1
  460. package/dist/scene/schema/tuples.js +0 -14
  461. package/dist/scene/user-data.d.ts +0 -185
  462. package/dist/scene/user-data.d.ts.map +0 -1
  463. package/dist/scene/user-data.js +0 -144
  464. package/dist/setup/setup-audio.d.ts +0 -20
  465. package/dist/setup/setup-audio.d.ts.map +0 -1
  466. package/dist/setup/setup-audio.js +0 -41
  467. package/dist/setup/setup-particles.d.ts +0 -17
  468. package/dist/setup/setup-particles.d.ts.map +0 -1
  469. package/dist/setup/setup-particles.js +0 -16
  470. package/dist/setup/setup-physics.d.ts +0 -25
  471. package/dist/setup/setup-physics.d.ts.map +0 -1
  472. package/dist/setup/setup-physics.js +0 -51
  473. package/dist/setup/setup-renderer.d.ts +0 -69
  474. package/dist/setup/setup-renderer.d.ts.map +0 -1
  475. package/dist/setup/setup-renderer.js +0 -363
  476. package/dist/tools/define-tool.d.ts +0 -130
  477. package/dist/tools/define-tool.d.ts.map +0 -1
  478. package/dist/tools/define-tool.js +0 -96
  479. package/dist/world2d/authoring-2d.d.ts +0 -80
  480. package/dist/world2d/authoring-2d.d.ts.map +0 -1
  481. package/dist/world2d/authoring-2d.js +0 -195
  482. package/dist/world2d/capture-to-scene2d.d.ts +0 -5
  483. package/dist/world2d/capture-to-scene2d.d.ts.map +0 -1
  484. package/dist/world2d/capture-to-scene2d.js +0 -49
  485. package/dist/world2d/collision-2d.d.ts +0 -52
  486. package/dist/world2d/collision-2d.d.ts.map +0 -1
  487. package/dist/world2d/collision-2d.js +0 -70
  488. package/dist/world2d/components-2d.d.ts +0 -47
  489. package/dist/world2d/components-2d.d.ts.map +0 -1
  490. package/dist/world2d/components-2d.js +0 -77
  491. package/dist/world2d/index.d.ts +0 -34
  492. package/dist/world2d/index.d.ts.map +0 -1
  493. package/dist/world2d/index.js +0 -32
  494. package/dist/world2d/ingest-iframe-2d.d.ts +0 -82
  495. package/dist/world2d/ingest-iframe-2d.d.ts.map +0 -1
  496. package/dist/world2d/ingest-iframe-2d.js +0 -166
  497. package/dist/world2d/ingest2d.d.ts +0 -97
  498. package/dist/world2d/ingest2d.d.ts.map +0 -1
  499. package/dist/world2d/ingest2d.js +0 -40
  500. package/dist/world2d/physics2d-registry.d.ts +0 -24
  501. package/dist/world2d/physics2d-registry.d.ts.map +0 -1
  502. package/dist/world2d/physics2d-registry.js +0 -38
  503. package/dist/world2d/pixi-game-adapter.d.ts +0 -107
  504. package/dist/world2d/pixi-game-adapter.d.ts.map +0 -1
  505. package/dist/world2d/pixi-game-adapter.js +0 -210
  506. package/dist/world2d/pixi-surface.d.ts +0 -39
  507. package/dist/world2d/pixi-surface.d.ts.map +0 -1
  508. package/dist/world2d/pixi-surface.js +0 -47
  509. package/dist/world2d/scene-capture-2d.d.ts +0 -43
  510. package/dist/world2d/scene-capture-2d.d.ts.map +0 -1
  511. package/dist/world2d/scene-capture-2d.js +0 -92
  512. package/dist/world2d/scene2d-loader.d.ts +0 -27
  513. package/dist/world2d/scene2d-loader.d.ts.map +0 -1
  514. package/dist/world2d/scene2d-loader.js +0 -275
  515. package/dist/world2d/schema/entity2d.d.ts +0 -102
  516. package/dist/world2d/schema/entity2d.d.ts.map +0 -1
  517. package/dist/world2d/schema/entity2d.js +0 -119
  518. package/dist/world2d/schema/physics2d.d.ts +0 -46
  519. package/dist/world2d/schema/physics2d.d.ts.map +0 -1
  520. package/dist/world2d/schema/physics2d.js +0 -45
  521. package/dist/world2d/schema/sprite.d.ts +0 -42
  522. package/dist/world2d/schema/sprite.d.ts.map +0 -1
  523. package/dist/world2d/schema/sprite.js +0 -63
  524. package/dist/world2d/schema/tilemap.d.ts +0 -15
  525. package/dist/world2d/schema/tilemap.d.ts.map +0 -1
  526. package/dist/world2d/schema/tilemap.js +0 -19
  527. package/dist/world2d/schema/tuples2d.d.ts +0 -20
  528. package/dist/world2d/schema/tuples2d.d.ts.map +0 -1
  529. package/dist/world2d/schema/tuples2d.js +0 -19
  530. package/dist/world2d/system-adapters-2d.d.ts +0 -16
  531. package/dist/world2d/system-adapters-2d.d.ts.map +0 -1
  532. package/dist/world2d/system-adapters-2d.js +0 -37
  533. package/dist/world2d/transform-writer-2d.d.ts +0 -16
  534. package/dist/world2d/transform-writer-2d.d.ts.map +0 -1
  535. package/dist/world2d/transform-writer-2d.js +0 -22
  536. package/dist/world2d/types.d.ts +0 -59
  537. package/dist/world2d/types.d.ts.map +0 -1
  538. package/dist/world2d/types.js +0 -1
@@ -1,228 +0,0 @@
1
- // T4.6 — the `.inputmap.json` schema.
2
- //
3
- // Was TS-types-only (`input-types.ts`) until T4.6 authored this Zod schema —
4
- // see docs/BACKBONE-TASKS.md T4.6. `InputManager.loadMap` (input-manager.ts)
5
- // is this schema's runtime reader: it parses via this schema, then copies
6
- // each action's `bindings` array (and its declared `valueType`, F1) straight
7
- // into `this.actions`/`this.actionValueTypes`.
8
- //
9
- // Every field has a `.describe()` (repo policy — powers
10
- // `scripts/generate-schema.ts` and the T4.1/T4.6 schema-walk coverage test).
11
- // No runtime dependency beyond `zod`, matching the `scene/schema/` and
12
- // `manifest/schema.ts` precedent.
13
- //
14
- // T4.1 history (now closed by F2): `mouse_move` and `gamepad_axis_pair` were
15
- // authored-but-unhandled binding kinds — REJECTED at parse via a `.superRefine`
16
- // that threw naming the field, mirroring the `scene/schema/ui.ts` dead-field
17
- // mechanism. F2 (spec §12 "Complete Device Backends") un-rejects both: real
18
- // `InputManager` readers now exist for them (`collectPointerDeltaContributions`/
19
- // `collectVector2Contributions` — `mouse_move` feeds pointerDelta/vector2 from
20
- // the existing mouseDelta accumulator; `gamepad_axis_pair` feeds vector2 from
21
- // the coupled `xAxis`/`yAxis` gamepad reading). F2 also adds two new LIVE
22
- // binding kinds, `touch_button`/`touch_stick` (the touch/virtual-control
23
- // backend — see `InputManager.setTouchButton`/`setTouchStick`).
24
- //
25
- // F1 (spec §12 "Define Typed Action Values") adds:
26
- // - `InputAction.valueType` — an action now DECLARES its value shape
27
- // (`digital`/`scalar`/`vector2`/`pointerDelta`/`pointerPosition`),
28
- // defaulted to `digital` so every pre-F1 action stays valid unchanged.
29
- // - four new, LIVE (not dead-rejected) binding kinds — `test_axis`,
30
- // `test_vector2`, `test_pointer_delta`, `test_pointer_position` — the
31
- // "injected test input" backend F2's acceptance criteria names as a
32
- // peer of keyboard/mouse/gamepad/touch. They read back a caller-injected
33
- // raw value (InputManager.injectAxis/injectVector2/injectPointerDelta/
34
- // injectPointerPosition) through the SAME deadzone/normalize/combine path
35
- // real device bindings use.
36
- import { z } from 'zod';
37
- const KeyBindingSchema = z.object({
38
- type: z.literal('key').describe('Binding kind: a keyboard key (KeyboardEvent.code)'),
39
- code: z.string().describe('KeyboardEvent.code value, e.g. "KeyW", "Space", "ArrowUp"'),
40
- });
41
- const MouseButtonBindingSchema = z.object({
42
- type: z.literal('mouse_button').describe('Binding kind: a mouse button'),
43
- button: z.number().describe('MouseEvent.button index (0 = left, 1 = middle, 2 = right)'),
44
- });
45
- const MouseMoveBindingSchema = z.object({
46
- type: z
47
- .literal('mouse_move')
48
- .describe('Binding kind: raw mouse movement (F2, spec §12 "Complete Device Backends"). Feeds a ' +
49
- "'pointerDelta'-valueType action with the raw accumulated mouse delta (no deadzone), and " +
50
- "can also feed a 'vector2'-valueType action (the same delta, radial-deadzoned + unit-" +
51
- 'circle-clamped via `deadzone`).'),
52
- deadzone: z
53
- .number()
54
- .optional()
55
- .describe("Radial deadzone magnitude applied only when this binding feeds a 'vector2'-valueType " +
56
- "action (default 0 — no deadzone; ignored for 'pointerDelta' reads, which are never " +
57
- 'deadzoned).'),
58
- });
59
- const GamepadButtonBindingSchema = z.object({
60
- type: z.literal('gamepad_button').describe('Binding kind: a gamepad face/shoulder button'),
61
- button: z.number().describe('Standard Gamepad API button index'),
62
- });
63
- const GamepadAxisBindingSchema = z.object({
64
- type: z.literal('gamepad_axis').describe('Binding kind: a single thresholded gamepad axis'),
65
- axis: z.number().describe('Standard Gamepad API axis index'),
66
- direction: z
67
- .enum(['positive', 'negative'])
68
- .describe('Which side of the deadzone counts as "pressed"'),
69
- deadzone: z.number().optional().describe('Deadzone magnitude (default 0.15 if omitted)'),
70
- });
71
- const GamepadAxisPairBindingSchema = z.object({
72
- type: z
73
- .literal('gamepad_axis_pair')
74
- .describe('Binding kind: a coupled (x, y) gamepad axis pair, e.g. a stick used as a 2D vector ' +
75
- '(look/aim/movement) (F2, spec §12 "Complete Device Backends"). Feeds a ' +
76
- "'vector2'-valueType action: (xAxis, yAxis) read together, radial-deadzoned + unit-" +
77
- 'circle-clamped the same way a real analog stick is.'),
78
- xAxis: z.number().describe('Standard Gamepad API axis index for the X component'),
79
- yAxis: z.number().describe('Standard Gamepad API axis index for the Y component'),
80
- deadzone: z.number().optional().describe('Deadzone magnitude (default 0.15 if omitted)'),
81
- });
82
- // ---------------------------------------------------------------------------
83
- // F1 (spec §12) — injected test input bindings. LIVE (real runtime readers in
84
- // InputManager's getScalar/getVector2/getPointerDelta/getPointerPosition),
85
- // unlike the two dead stubs above. Foreshadows F2's "injected test input"
86
- // backend: real device kinds F2 adds later feed the same typed-value
87
- // aggregation path these exercise today.
88
- // ---------------------------------------------------------------------------
89
- const TestAxisBindingSchema = z.object({
90
- type: z
91
- .literal('test_axis')
92
- .describe("Binding kind: an injected synthetic scalar value for a 'scalar'-valueType action " +
93
- '(InputManager.injectAxis/getScalar) — the "injected test input" backend named in F2, ' +
94
- "built in F1 as the typed scalar value model's testable source."),
95
- sourceId: z
96
- .string()
97
- .describe('Names the injected test source this binding reads (InputManager.injectAxis).'),
98
- deadzone: z
99
- .number()
100
- .optional()
101
- .describe('1D deadzone magnitude applied to the injected raw value before combine (default 0 — no ' +
102
- 'deadzone). Values below it read as 0; values at/above it rescale from 0 (at the ' +
103
- 'deadzone edge) to ±1 (at |raw| = 1), sign preserved.'),
104
- });
105
- const TestVector2BindingSchema = z.object({
106
- type: z
107
- .literal('test_vector2')
108
- .describe("Binding kind: an injected synthetic {x,y} value for a 'vector2'-valueType action " +
109
- '(InputManager.injectVector2/getVector2) — the "injected test input" backend named in ' +
110
- "F2, built in F1 as the typed Vector2 value model's testable source."),
111
- sourceId: z
112
- .string()
113
- .describe('Names the injected test source this binding reads (InputManager.injectVector2).'),
114
- deadzone: z
115
- .number()
116
- .optional()
117
- .describe('Radial deadzone magnitude applied to the injected raw {x,y} before combine (default 0 ' +
118
- '— no deadzone). Vectors whose magnitude is below it read as {0,0}; at/above it, ' +
119
- 'direction is preserved and magnitude rescales the same way the scalar deadzone does, ' +
120
- 'then the result is clamped to the unit circle (magnitude <= 1).'),
121
- });
122
- const TestPointerDeltaBindingSchema = z.object({
123
- type: z
124
- .literal('test_pointer_delta')
125
- .describe("Binding kind: an injected synthetic per-frame {x,y} delta for a 'pointerDelta'-" +
126
- 'valueType action (InputManager.injectPointerDelta/getPointerDelta) — the "injected ' +
127
- 'test input" backend named in F2. No deadzone (deltas are not deadzoned).'),
128
- sourceId: z
129
- .string()
130
- .describe('Names the injected test source this binding reads (InputManager.injectPointerDelta).'),
131
- });
132
- const TestPointerPositionBindingSchema = z.object({
133
- type: z
134
- .literal('test_pointer_position')
135
- .describe("Binding kind: an injected synthetic absolute {x,y} position for a 'pointerPosition'-" +
136
- 'valueType action (InputManager.injectPointerPosition/getPointerPosition) — the ' +
137
- '"injected test input" backend named in F2.'),
138
- sourceId: z
139
- .string()
140
- .describe('Names the injected test source this binding reads (InputManager.injectPointerPosition).'),
141
- });
142
- // ---------------------------------------------------------------------------
143
- // F2 (spec §12 "Complete Device Backends") — touch/virtual-control bindings.
144
- // LIVE (real runtime readers in InputManager's isPressed/isJustPressed/
145
- // isJustReleased/getDigitalSource and getVector2), driven by
146
- // InputManager.setTouchButton/setTouchStick — the headless-testable
147
- // injectable entry points a real on-screen touch-control UI's own
148
- // touchstart/touchmove/touchend handlers would call (that DOM wiring is a
149
- // thin adapter at the edge, out of scope here — see input-manager.ts).
150
- // ---------------------------------------------------------------------------
151
- const TouchButtonBindingSchema = z.object({
152
- type: z
153
- .literal('touch_button')
154
- .describe("Binding kind: a virtual on-screen button for a 'digital' action " +
155
- '(InputManager.setTouchButton/isPressed) — edge-tracked (isJustPressed/isJustReleased) ' +
156
- 'the same way a real mouse/keyboard button is.'),
157
- sourceId: z
158
- .string()
159
- .describe('Names the virtual control zone this binding reads (InputManager.setTouchButton) — a ' +
160
- 'touch-UI-chosen id, not a real device index.'),
161
- });
162
- const TouchStickBindingSchema = z.object({
163
- type: z
164
- .literal('touch_stick')
165
- .describe("Binding kind: a virtual on-screen analog stick for a 'vector2' action " +
166
- '(InputManager.setTouchStick/getVector2) — radial-deadzoned + unit-circle-clamped the ' +
167
- 'same way a real gamepad stick is.'),
168
- sourceId: z
169
- .string()
170
- .describe('Names the virtual control zone this binding reads (InputManager.setTouchStick) — a ' +
171
- 'touch-UI-chosen id, not a real device index.'),
172
- deadzone: z
173
- .number()
174
- .optional()
175
- .describe('Radial deadzone magnitude applied to the raw {x,y} before combine (default 0 — no ' +
176
- 'deadzone).'),
177
- });
178
- /** A single input binding. Every kind listed here is LIVE — F2 (spec §12) closed the last two
179
- * dead stubs (`mouse_move`/`gamepad_axis_pair`) by giving both real `InputManager` readers. */
180
- export const InputBindingSchema = z.discriminatedUnion('type', [
181
- KeyBindingSchema,
182
- MouseButtonBindingSchema,
183
- MouseMoveBindingSchema,
184
- GamepadButtonBindingSchema,
185
- GamepadAxisBindingSchema,
186
- GamepadAxisPairBindingSchema,
187
- TestAxisBindingSchema,
188
- TestVector2BindingSchema,
189
- TestPointerDeltaBindingSchema,
190
- TestPointerPositionBindingSchema,
191
- TouchButtonBindingSchema,
192
- TouchStickBindingSchema,
193
- ]);
194
- /** An action has a name (the record key) and one or more bindings. */
195
- export const InputActionSchema = z.object({
196
- valueType: z
197
- .enum(['digital', 'scalar', 'vector2', 'pointerDelta', 'pointerPosition'])
198
- .default('digital')
199
- .describe("This action's declared value shape (F1, spec §12). 'digital' (boolean, with " +
200
- 'pressed/justPressed/justReleased edges) is the default when omitted, matching every ' +
201
- "action authored before F1. 'scalar' is a single deadzone-rescaled float axis. " +
202
- "'vector2' is a radial-deadzoned, unit-circle-normalized {x,y}. 'pointerDelta' is a " +
203
- "per-frame {x,y} movement delta, summed across sources. 'pointerPosition' is an " +
204
- 'absolute {x,y}, last-write-wins across sources. InputManager enforces this at read ' +
205
- 'time: reading an action through the wrong typed getter (e.g. getScalar on a ' +
206
- "'digital' action) throws."),
207
- bindings: z
208
- .array(InputBindingSchema)
209
- .describe('Bindings that all trigger/feed this action. Digital actions combine via OR (any one ' +
210
- 'binding satisfied is enough). Scalar actions combine via max-magnitude across ' +
211
- 'contributing bindings (ties keep the first-listed binding). Vector2 actions combine ' +
212
- 'by summing contributing {x,y} values then clamping to the unit circle. PointerDelta ' +
213
- 'actions sum contributing deltas. PointerPosition actions use the most-recently-' +
214
- 'written contributing source (last-write-wins).'),
215
- });
216
- /**
217
- * The `.inputmap.json` file format (`InputManager.loadMap`).
218
- *
219
- * `version` is RESERVED (no range-check reader exists yet for this format —
220
- * same convention `2d.version`/`Scene2DSchema` used before T2.3 gave the 3D
221
- * scene version axis a real reader; see `schema-consumption-map.ts`).
222
- */
223
- export const InputMapFileSchema = z.object({
224
- version: z.number().describe('Input map file format version (RESERVED — no range check yet)'),
225
- actions: z
226
- .record(z.string(), InputActionSchema)
227
- .describe('Named actions, each with a list of bindings (InputManager.loadMap)'),
228
- });
package/dist/loader.d.ts DELETED
@@ -1,43 +0,0 @@
1
- /**
2
- * Shared asset loading infrastructure.
3
- *
4
- * Provides a single LoadingManager (for Three.js loaders) and resolveUrl()
5
- * (for raw fetch calls) so that all engine asset requests go through one
6
- * configurable URL prefix. Call setAssetPrefix() once at runtime startup.
7
- *
8
- * Three.js loaders constructed with `loadingManager` automatically rewrite
9
- * URLs via setURLModifier(). For raw fetch() calls, wrap the URL with
10
- * resolveUrl() to apply the same prefix.
11
- */
12
- import * as THREE from 'three';
13
- import { DRACOLoader } from 'three/addons/loaders/DRACOLoader.js';
14
- import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
15
- /** Shared Three.js LoadingManager — all engine loaders should use this. */
16
- export declare const loadingManager: THREE.LoadingManager;
17
- /** Pre-configured TextureLoader using the shared manager. */
18
- export declare const textureLoader: THREE.TextureLoader;
19
- /**
20
- * Shared DRACOLoader for decoding DRACO-compressed GLTF/GLB meshes.
21
- *
22
- * The decoder wasm/js is vendored under
23
- * packages/editor/template/public/jsm/libs/draco/gltf/ and served at the
24
- * absolute runtime path '/jsm/libs/draco/gltf/' (DRACOLoader appends
25
- * draco_wasm_wrapper.js / draco_decoder.wasm to this path). This is an
26
- * absolute path, so it deliberately does NOT go through the asset prefix —
27
- * the decoder is engine infrastructure, not a scene asset.
28
- */
29
- export declare const dracoLoader: DRACOLoader;
30
- /** Pre-configured GLTFLoader using the shared manager, with DRACO decoding wired in. */
31
- export declare const gltfLoader: GLTFLoader;
32
- /**
33
- * Set the URL prefix prepended to relative asset paths.
34
- * Called once by createGameRuntime(). Defaults to '/'.
35
- */
36
- export declare function setAssetPrefix(prefix: string): void;
37
- /**
38
- * Resolve a relative asset URL using the current prefix.
39
- * Use this for raw fetch() calls — Three.js loaders using
40
- * `loadingManager` handle this automatically.
41
- */
42
- export declare function resolveUrl(url: string): string;
43
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAgBhE,2EAA2E;AAC3E,eAAO,MAAM,cAAc,sBAA6B,CAAC;AAGzD,6DAA6D;AAC7D,eAAO,MAAM,aAAa,qBAA0C,CAAC;AAErE;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,aAAkC,CAAC;AAG3D,wFAAwF;AACxF,eAAO,MAAM,UAAU,YAAiC,CAAC;AAGzD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C"}
package/dist/loader.js DELETED
@@ -1,59 +0,0 @@
1
- /**
2
- * Shared asset loading infrastructure.
3
- *
4
- * Provides a single LoadingManager (for Three.js loaders) and resolveUrl()
5
- * (for raw fetch calls) so that all engine asset requests go through one
6
- * configurable URL prefix. Call setAssetPrefix() once at runtime startup.
7
- *
8
- * Three.js loaders constructed with `loadingManager` automatically rewrite
9
- * URLs via setURLModifier(). For raw fetch() calls, wrap the URL with
10
- * resolveUrl() to apply the same prefix.
11
- */
12
- import * as THREE from 'three';
13
- import { DRACOLoader } from 'three/addons/loaders/DRACOLoader.js';
14
- import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
15
- let _prefix = '/';
16
- function rewriteUrl(url) {
17
- if (url.startsWith('/') ||
18
- url.startsWith('http') ||
19
- url.startsWith('data:') ||
20
- url.startsWith('blob:')) {
21
- return url;
22
- }
23
- return _prefix + url;
24
- }
25
- /** Shared Three.js LoadingManager — all engine loaders should use this. */
26
- export const loadingManager = new THREE.LoadingManager();
27
- loadingManager.setURLModifier(rewriteUrl);
28
- /** Pre-configured TextureLoader using the shared manager. */
29
- export const textureLoader = new THREE.TextureLoader(loadingManager);
30
- /**
31
- * Shared DRACOLoader for decoding DRACO-compressed GLTF/GLB meshes.
32
- *
33
- * The decoder wasm/js is vendored under
34
- * packages/editor/template/public/jsm/libs/draco/gltf/ and served at the
35
- * absolute runtime path '/jsm/libs/draco/gltf/' (DRACOLoader appends
36
- * draco_wasm_wrapper.js / draco_decoder.wasm to this path). This is an
37
- * absolute path, so it deliberately does NOT go through the asset prefix —
38
- * the decoder is engine infrastructure, not a scene asset.
39
- */
40
- export const dracoLoader = new DRACOLoader(loadingManager);
41
- dracoLoader.setDecoderPath('/jsm/libs/draco/gltf/');
42
- /** Pre-configured GLTFLoader using the shared manager, with DRACO decoding wired in. */
43
- export const gltfLoader = new GLTFLoader(loadingManager);
44
- gltfLoader.setDRACOLoader(dracoLoader);
45
- /**
46
- * Set the URL prefix prepended to relative asset paths.
47
- * Called once by createGameRuntime(). Defaults to '/'.
48
- */
49
- export function setAssetPrefix(prefix) {
50
- _prefix = prefix.endsWith('/') ? prefix : prefix ? `${prefix}/` : '/';
51
- }
52
- /**
53
- * Resolve a relative asset URL using the current prefix.
54
- * Use this for raw fetch() calls — Three.js loaders using
55
- * `loadingManager` handle this automatically.
56
- */
57
- export function resolveUrl(url) {
58
- return rewriteUrl(url);
59
- }
@@ -1,5 +0,0 @@
1
- export type { ResolvedAdapter, ResolvedAdapterRoot, ResolvedGameManifest } from './load';
2
- export { CAPABILITY_CEILINGS, DEFAULT_SERVER_MODULE, loadGameManifest } from './load';
3
- export type { AdapterRoot, GameManifest, IngestStrategy, RootAdapter, Tier, } from './schema';
4
- export { AdapterRootSchema, GameManifestSchema, IngestStrategySchema, RootAdapterSchema, TierSchema, } from './schema';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACtF,YAAY,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,IAAI,GACL,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,GACX,MAAM,UAAU,CAAC"}
@@ -1,8 +0,0 @@
1
- // Game manifest (vgai.game.json) — schema + loader (T3.1 slice 1).
2
- // See docs/GAME-MANIFEST-DESIGN.md.
3
- export { CAPABILITY_CEILINGS, DEFAULT_SERVER_MODULE, loadGameManifest } from './load';
4
- export { AdapterRootSchema, GameManifestSchema, IngestStrategySchema, RootAdapterSchema, TierSchema, } from './schema';
5
- // `loadGameManifestFile` (Node-only, reads `path` via `node:fs`) is
6
- // deliberately NOT re-exported here — this barrel must stay import-safe for
7
- // browser bundles. Import it directly from `@engine/manifest/load-file` in
8
- // Node-only contexts (CLI, tests).
@@ -1,4 +0,0 @@
1
- import { type ResolvedGameManifest } from './load';
2
- /** Read + JSON.parse `path`, then resolve it via `loadGameManifest`. Node-only. */
3
- export declare function loadGameManifestFile(path: string): ResolvedGameManifest;
4
- //# sourceMappingURL=load-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load-file.d.ts","sourceRoot":"","sources":["../../src/manifest/load-file.ts"],"names":[],"mappings":"AASA,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAErE,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAGvE"}
@@ -1,14 +0,0 @@
1
- // T3.1 slice 1 — Node-only path wrapper around `loadGameManifest` (§5).
2
- //
3
- // Kept in its own module (rather than folded into `load.ts`) so that
4
- // `loadGameManifest` itself stays free of `node:fs` — anything that only
5
- // needs the pure parse/resolve function (e.g. a future browser/hosted-editor
6
- // caller) can import `./load` without pulling a Node-only module into its
7
- // bundle.
8
- import { readFileSync } from 'node:fs';
9
- import { loadGameManifest } from './load';
10
- /** Read + JSON.parse `path`, then resolve it via `loadGameManifest`. Node-only. */
11
- export function loadGameManifestFile(path) {
12
- const raw = JSON.parse(readFileSync(path, 'utf-8'));
13
- return loadGameManifest(raw);
14
- }
@@ -1,144 +0,0 @@
1
- import { type IngestStrategy, type Tier } from './schema';
2
- /** D6's resolved adapter identities. */
3
- export type ResolvedAdapter = {
4
- readonly type: 'builtin';
5
- readonly identity: 'threejs' | 'pixijs' | 'react';
6
- readonly surface: 'threejs' | 'pixijs' | 'react';
7
- } | {
8
- readonly type: 'module';
9
- readonly identity: 'module';
10
- readonly module: string;
11
- readonly surface: 'threejs' | 'pixijs' | 'react';
12
- } | {
13
- readonly type: 'ingest';
14
- readonly identity: 'ingest-three' | 'ingest-pixi' | 'ingest-react';
15
- readonly surface: 'threejs' | 'pixijs' | 'react';
16
- readonly strategy: IngestStrategy;
17
- readonly entryHtml: string | undefined;
18
- readonly assets: Record<string, string> | undefined;
19
- readonly domStubs: string[] | undefined;
20
- readonly captureTimeoutMs: number | undefined;
21
- /** Track P (docs/PIXI-INGEST-LANDING-DESIGN.md §2) — iframe-reachable-multi mount fields. */
22
- readonly bundleUrl: string | undefined;
23
- readonly baseHref: string | undefined;
24
- readonly assetBaseUrl: string | undefined;
25
- readonly extraDeps: string[] | undefined;
26
- readonly pixiModuleUrl: string | undefined;
27
- readonly bodyHtml: string | undefined;
28
- };
29
- export interface ResolvedAdapterRoot {
30
- readonly id: string;
31
- readonly surface: ResolvedAdapter['surface'];
32
- readonly description: string | undefined;
33
- readonly adapter: ResolvedAdapter;
34
- readonly scene: string | undefined;
35
- readonly entry: string | undefined;
36
- readonly zOrder: number;
37
- readonly pausable: boolean;
38
- readonly loop: 'gated' | 'self-driven';
39
- /** Every optional resolved: both contexts always present (§4/§5). */
40
- readonly capabilities: {
41
- readonly local: Tier;
42
- readonly hosted: Tier;
43
- };
44
- }
45
- export interface ResolvedGameManifest {
46
- readonly manifestVersion: 2;
47
- readonly name: string;
48
- readonly appId: string | undefined;
49
- readonly editorPort: number | undefined;
50
- readonly version: string;
51
- readonly engine: {
52
- readonly version: string;
53
- };
54
- /** Sorted by zOrder; ties broken by original array order (§3). */
55
- readonly roots: readonly ResolvedAdapterRoot[];
56
- readonly server: {
57
- readonly room: string;
58
- readonly module: string;
59
- } | undefined;
60
- readonly resolution: {
61
- readonly width: number;
62
- readonly height: number;
63
- } | undefined;
64
- readonly authoring: {
65
- readonly hierarchy?: {
66
- readonly rootLabels?: Readonly<Record<string, string>> | undefined;
67
- readonly groups?: readonly {
68
- readonly id: string;
69
- readonly label: string;
70
- readonly roots: readonly string[];
71
- }[] | undefined;
72
- } | undefined;
73
- } | undefined;
74
- /** D18 — read by the debug-bridge installer to gate `?vgai-debug=1` in production builds. */
75
- readonly debug: {
76
- readonly allowInProduction: boolean;
77
- } | undefined;
78
- /** D15 — read by `mount-manifest.ts`'s boot-time seeding reader (gates
79
- * whether `ctx.random` is seeded from `defaultSeed`/`?vgai-seed=`), the
80
- * gameplay-rng-ban burn-down scan, and the dev-mode Math.random phase
81
- * trap. See `docs/D15-DETERMINISM-DESIGN.md`. */
82
- readonly determinism: {
83
- readonly seededRandom: boolean;
84
- readonly defaultSeed?: number | undefined;
85
- } | undefined;
86
- }
87
- /**
88
- * Ceiling (maximum legal declared `Tier`) per adapter type and delivery
89
- * context. `default` roots are always first-party in both contexts (D6/§2 —
90
- * a first-party root is fully vgai-native everywhere). `ingest` roots are
91
- * ceilinged by their own capture `strategy`: locally the local CLI's Vite
92
- * pipeline gives bundler dedupe, so every strategy reaches its own natural
93
- * rung; hosted has no bundler (esbuild-wasm + externals only), and a
94
- * `deduped` root is DEFINED by being source built through our pipeline — no
95
- * prebuilt bundle exists to fall back to an iframe rung, and nothing
96
- * implements a hosted build for it, so hosted is `unsupported` (honesty over
97
- * optimism; if the hosted esbuild-wasm path ever proves capable, raising
98
- * this ceiling is a non-breaking widening). `shared`/`iframe-reachable`/
99
- * `opaque-embed` don't depend on a bundler either way, so they carry through
100
- * unchanged. `module` adapters have no derivable ceiling ("a custom
101
- * adapter's reach is not derivable", §4) — modeled here as `first-party`
102
- * (the top rank), i.e. no ceiling actually constrains a module adapter's
103
- * declared tier; the loader instead requires the tier to be declared
104
- * explicitly for module roots (see `resolveCapabilities`), since there is no
105
- * default to derive.
106
- */
107
- export declare const CAPABILITY_CEILINGS: {
108
- readonly builtin: {
109
- readonly local: "first-party";
110
- readonly hosted: "first-party";
111
- };
112
- readonly ingest: {
113
- readonly shared: {
114
- readonly local: "shared";
115
- readonly hosted: "shared";
116
- };
117
- readonly deduped: {
118
- readonly local: "deduped";
119
- readonly hosted: "unsupported";
120
- };
121
- readonly 'iframe-reachable': {
122
- readonly local: "iframe-reachable";
123
- readonly hosted: "iframe-reachable";
124
- };
125
- readonly 'opaque-embed': {
126
- readonly local: "opaque-embed";
127
- readonly hosted: "opaque-embed";
128
- };
129
- };
130
- readonly module: {
131
- readonly local: "first-party";
132
- readonly hosted: "first-party";
133
- };
134
- };
135
- /** Default relative path for `server.module` when omitted (§3) — the scaffolded Colyseus bootstrap. */
136
- export declare const DEFAULT_SERVER_MODULE = "server/colyseus-setup.ts";
137
- /**
138
- * Parse + validate + resolve a raw manifest value into a `ResolvedGameManifest`.
139
- * Pure data-in/data-out (no `fs`) — see `load-file.ts` for the Node path-based
140
- * wrapper. Throws a descriptive `Error` (naming the offending root/field) on
141
- * any Zod validation failure or cross-field rule violation.
142
- */
143
- export declare function loadGameManifest(raw: unknown): ResolvedGameManifest;
144
- //# sourceMappingURL=load.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/manifest/load.ts"],"names":[],"mappings":"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"}