@vgai/engine 0.5.0 → 0.5.1

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,146 +0,0 @@
1
- import type RAPIER2D from '@dimforge/rapier2d-compat';
2
- import type RAPIER3D from '@dimforge/rapier3d-compat';
3
- import type * as PIXI from 'pixi.js';
4
- import type * as THREE from 'three';
5
- import type { z } from 'zod';
6
- import type { SystemPhaseName } from '../core/types';
7
- import type { AdapterSurface, WorldInstance } from '../runtime/game';
8
- import type { GameContext } from '../runtime/types';
9
- /**
10
- * Map a {@link AdapterSurface} to its native world node type (T7.2, D8 —
11
- * `docs/GAME-COMPONENT-GENERALIZATION.md` §2). `react` maps to `never`: react
12
- * entities host no GameComponents (they render from game state via the T7.4
13
- * state bridge instead).
14
- */
15
- export type NodeOf<K extends AdapterSurface> = K extends 'threejs' ? THREE.Object3D : K extends 'pixijs' ? PIXI.Container : never;
16
- /** Map a {@link AdapterSurface} to its native Rapier rigid-body type. */
17
- export type BodyOf<K extends AdapterSurface> = K extends 'threejs' ? RAPIER3D.RigidBody : K extends 'pixijs' ? RAPIER2D.RigidBody : never;
18
- /** Map a {@link AdapterSurface} to its native Rapier collider type. */
19
- export type ColliderOf<K extends AdapterSurface> = K extends 'threejs' ? RAPIER3D.Collider : K extends 'pixijs' ? RAPIER2D.Collider : never;
20
- /**
21
- * Base class for game components attached to entities.
22
- *
23
- * Generalized (T7.2, D8 — `docs/GAME-COMPONENT-GENERALIZATION.md`) over the
24
- * world kind `K` (default `'threejs'`, so every existing component — all of
25
- * which extend the bare `GameComponent` — compiles and runs unchanged). The
26
- * world's native node IS the entity — there is no separate entity id and no
27
- * mirror/sync layer (Track A). Each component instance holds a direct
28
- * reference to its node and (if any) its Rapier rigid body/collider. The
29
- * ComponentManager wires these up in `attach()`.
30
- *
31
- * Similar to Unity's MonoBehaviour or Godot's Node scripts:
32
- * - `init()` — called once after the entity is fully constructed
33
- * - `update(dt, ctx)` — called every fixed timestep, in the component's phase
34
- * - `dispose(ctx)` — called when the entity is destroyed
35
- * - `onTriggerEnter/onTriggerExit` — called when a sensor collider overlap
36
- * starts/stops, with the other party's native node
37
- *
38
- * State lives on `this` (instance properties). On HMR, the engine swaps the
39
- * prototype via Object.setPrototypeOf — instance state survives, method bodies
40
- * update to the new code.
41
- *
42
- * `update` is deliberately mandatory, not optional like `init`/`dispose`
43
- * (owner decision, issue #101): components are for BEHAVIOR. If your
44
- * subclass's `update(dt, ctx)` body is empty, that is a signal the class may
45
- * not need to be a component at all — a plain state-holder with only
46
- * `init`/event methods (score/hits counters, etc.) usually belongs as a
47
- * plain object or a static-scenery/UI object instead (see the "GameComponents
48
- * are for things with behavior only" rule).
49
- */
50
- /**
51
- * Cross-copy brand (`Symbol.for` is process-global, so every physical copy of
52
- * the engine shares ONE symbol): `x.prototype instanceof GameComponent` is
53
- * FALSE when a project resolves TWO copies of the engine at once — the
54
- * published `@vgai/engine/*` subpaths next to the `@engine/*` source alias,
55
- * exactly what a scaffolded project's node-side scripts do (meteor-dodge
56
- * dry-run friction: `validate-scenes --components` reported every field of a
57
- * pristine scaffold's `SceneCamera` as unknown). Structural checks
58
- * (`isGameComponentClass`) test this brand as well as `instanceof`.
59
- */
60
- export declare const GAME_COMPONENT_BRAND: unique symbol;
61
- /**
62
- * HMR class lineage. A true component hot-swap deliberately replaces a live
63
- * instance's prototype with the newly imported class, but other already-live
64
- * project modules can still hold the previous class object. Native
65
- * `instanceof PreviousClass` would then become false even though the object is
66
- * still the same component under the same hot-reload lineage. That broke both
67
- * ordinary trigger guards (`component instanceof PlayerController`) and the
68
- * canonical React-state selector (`game.queryByComponent(PlayerController)`).
69
- *
70
- * Keep this as class-to-class lineage rather than a string/name registry:
71
- * minified classes, aliases, and two unrelated components with the same name
72
- * remain distinct. The WeakMap owns no game/entity state and introduces no
73
- * second identity model; it records only the exact constructor pairs the
74
- * existing HMR boundary has actually swapped.
75
- */
76
- type HmrComponentConstructor = abstract new (...args: never[]) => object;
77
- /** @internal Called only by ComponentManager's successful HMR swap path. */
78
- export declare function linkGameComponentHmrClasses(previous: HmrComponentConstructor, next: HmrComponentConstructor): void;
79
- export declare abstract class GameComponent<K extends AdapterSurface = 'threejs'> {
80
- /** Which phase this component's update runs in. Override in subclasses. */
81
- static phase: SystemPhaseName;
82
- /** See {@link GAME_COMPONENT_BRAND} — inherited by every subclass. */
83
- static readonly [GAME_COMPONENT_BRAND] = true;
84
- /**
85
- * Preserve ordinary JavaScript `instanceof` across a true HMR prototype
86
- * swap. Subclasses inherit this static hook, so `value instanceof
87
- * PlayerController` first performs the native prototype-chain check and,
88
- * only when that fails, accepts an exact constructor lineage previously
89
- * linked by ComponentManager.hotSwap(). Non-HMR values retain byte-for-byte
90
- * native semantics.
91
- */
92
- static [Symbol.hasInstance](value: unknown): boolean;
93
- /**
94
- * Runtime-checkable declaration of which {@link AdapterSurface} this component
95
- * is written for (T7.2, D8 §3 — `docs/GAME-COMPONENT-GENERALIZATION.md`).
96
- * TS's `K` type parameter is erased at runtime, so this static is what the
97
- * ComponentManager checks at attach time: a node whose world's kind
98
- * doesn't match `declaredKind` THROWS at attach (a `GameComponent<'pixijs'>`
99
- * attached to a threejs entity, or vice versa). Kind-agnostic components —
100
- * written only against `node`/`this.world`, never the typed `object3D`
101
- * accessor or a kind-specific field — may declare `'any'` and attach in
102
- * any world components are legal in (every world except `'react'`, which
103
- * always throws regardless of `declaredKind` — see the ComponentManager).
104
- */
105
- static declaredKind: AdapterSurface | 'any';
106
- /**
107
- * Optional Zod object schema for this component's authored fields. When set,
108
- * scene data is validated + defaulted through `schema.parse(data)` before being
109
- * assigned onto the instance. Also powers (later) the editor's schema-driven
110
- * inspector and HMR defaults.
111
- */
112
- static schema?: z.ZodObject<z.ZodRawShape>;
113
- /** The native world node. The node IS the entity. */
114
- node: NodeOf<K>;
115
- /** The world instance this component's entity lives in (wired at attach). */
116
- world: WorldInstance;
117
- /**
118
- * Typed accessor, threejs roots only — kept for compatibility. On a
119
- * `GameComponent` (default `K`) this types as `THREE.Object3D`, so every
120
- * existing component compiles unchanged. On a non-threejs instance it
121
- * THROWS a descriptive error rather than ever returning a wrong-kind node —
122
- * use `this.node` (or `this.world.kind` to check first) instead.
123
- */
124
- get object3D(): THREE.Object3D;
125
- /** The entity's native rigid body, if it has physics. */
126
- rigidBody: BodyOf<K> | null;
127
- /** The entity's native collider, if it has physics. */
128
- collider: ColliderOf<K> | null;
129
- /** Called once after the entity is fully constructed (node, physics, etc.). */
130
- init?(ctx: GameContext): void | Promise<void>;
131
- /** Called every fixed timestep. */
132
- abstract update(dt: number, ctx: GameContext): void;
133
- /** Called when the entity is destroyed or the component is removed. */
134
- dispose?(ctx: GameContext): void;
135
- /** Called when a sensor overlap with `other` begins. */
136
- onTriggerEnter?(other: NodeOf<K>, ctx: GameContext): void;
137
- /** Called when a sensor overlap with `other` ends. */
138
- onTriggerExit?(other: NodeOf<K>, ctx: GameContext): void;
139
- }
140
- /** Constructor type for GameComponent subclasses (carries static phase/schema). */
141
- export type GameComponentClass = (new () => GameComponent) & {
142
- phase?: SystemPhaseName;
143
- schema?: z.ZodObject<z.ZodRawShape>;
144
- };
145
- export {};
146
- //# sourceMappingURL=game-component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"game-component.d.ts","sourceRoot":"","sources":["../../src/ecs/game-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,KAAK,IAAI,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,SAAS,SAAS,GAC9D,KAAK,CAAC,QAAQ,GACd,CAAC,SAAS,QAAQ,GAChB,IAAI,CAAC,SAAS,GACd,KAAK,CAAC;AAEZ,yEAAyE;AACzE,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,SAAS,SAAS,GAC9D,QAAQ,CAAC,SAAS,GAClB,CAAC,SAAS,QAAQ,GAChB,QAAQ,CAAC,SAAS,GAClB,KAAK,CAAC;AAEZ,uEAAuE;AACvE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,SAAS,SAAS,GAClE,QAAQ,CAAC,QAAQ,GACjB,CAAC,SAAS,QAAQ,GAChB,QAAQ,CAAC,QAAQ,GACjB,KAAK,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,eAAmC,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,KAAK,uBAAuB,GAAG,QAAQ,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,MAAM,CAAC;AAIzE,4EAA4E;AAC5E,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,uBAAuB,EACjC,IAAI,EAAE,uBAAuB,GAC5B,IAAI,CAWN;AAMD,8BAAsB,aAAa,CAAC,CAAC,SAAS,cAAc,GAAG,SAAS;IACtE,2EAA2E;IAC3E,MAAM,CAAC,KAAK,EAAE,eAAe,CAAe;IAE5C,sEAAsE;IACtE,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,QAAQ;IAE9C;;;;;;;OAOG;IACH,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAapD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,YAAY,EAAE,cAAc,GAAG,KAAK,CAAa;IAExD;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAE3C,qDAAqD;IACrD,IAAI,EAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEjB,6EAA6E;IAC7E,KAAK,EAAG,aAAa,CAAC;IAEtB;;;;;;OAMG;IACH,IAAI,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAsB7B;IAED,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IAEnC,uDAAuD;IACvD,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IAEtC,+EAA+E;IAC/E,IAAI,CAAC,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7C,mCAAmC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAEnD,uEAAuE;IACvE,OAAO,CAAC,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAEhC,wDAAwD;IACxD,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAEzD,sDAAsD;IACtD,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;CACzD;AAED,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG,CAAC,UAAU,aAAa,CAAC,GAAG;IAC3D,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;CACrC,CAAC"}
@@ -1,141 +0,0 @@
1
- /**
2
- * Base class for game components attached to entities.
3
- *
4
- * Generalized (T7.2, D8 — `docs/GAME-COMPONENT-GENERALIZATION.md`) over the
5
- * world kind `K` (default `'threejs'`, so every existing component — all of
6
- * which extend the bare `GameComponent` — compiles and runs unchanged). The
7
- * world's native node IS the entity — there is no separate entity id and no
8
- * mirror/sync layer (Track A). Each component instance holds a direct
9
- * reference to its node and (if any) its Rapier rigid body/collider. The
10
- * ComponentManager wires these up in `attach()`.
11
- *
12
- * Similar to Unity's MonoBehaviour or Godot's Node scripts:
13
- * - `init()` — called once after the entity is fully constructed
14
- * - `update(dt, ctx)` — called every fixed timestep, in the component's phase
15
- * - `dispose(ctx)` — called when the entity is destroyed
16
- * - `onTriggerEnter/onTriggerExit` — called when a sensor collider overlap
17
- * starts/stops, with the other party's native node
18
- *
19
- * State lives on `this` (instance properties). On HMR, the engine swaps the
20
- * prototype via Object.setPrototypeOf — instance state survives, method bodies
21
- * update to the new code.
22
- *
23
- * `update` is deliberately mandatory, not optional like `init`/`dispose`
24
- * (owner decision, issue #101): components are for BEHAVIOR. If your
25
- * subclass's `update(dt, ctx)` body is empty, that is a signal the class may
26
- * not need to be a component at all — a plain state-holder with only
27
- * `init`/event methods (score/hits counters, etc.) usually belongs as a
28
- * plain object or a static-scenery/UI object instead (see the "GameComponents
29
- * are for things with behavior only" rule).
30
- */
31
- /**
32
- * Cross-copy brand (`Symbol.for` is process-global, so every physical copy of
33
- * the engine shares ONE symbol): `x.prototype instanceof GameComponent` is
34
- * FALSE when a project resolves TWO copies of the engine at once — the
35
- * published `@vgai/engine/*` subpaths next to the `@engine/*` source alias,
36
- * exactly what a scaffolded project's node-side scripts do (meteor-dodge
37
- * dry-run friction: `validate-scenes --components` reported every field of a
38
- * pristine scaffold's `SceneCamera` as unknown). Structural checks
39
- * (`isGameComponentClass`) test this brand as well as `instanceof`.
40
- */
41
- export const GAME_COMPONENT_BRAND = Symbol.for('vgai.GameComponent');
42
- const hmrLineages = new WeakMap();
43
- /** @internal Called only by ComponentManager's successful HMR swap path. */
44
- export function linkGameComponentHmrClasses(previous, next) {
45
- const previousLineage = hmrLineages.get(previous);
46
- const nextLineage = hmrLineages.get(next);
47
- const merged = new Set([previous, next]);
48
- if (previousLineage) {
49
- for (const member of previousLineage)
50
- merged.add(member);
51
- }
52
- if (nextLineage) {
53
- for (const member of nextLineage)
54
- merged.add(member);
55
- }
56
- for (const member of merged)
57
- hmrLineages.set(member, merged);
58
- }
59
- function classesShareHmrLineage(a, b) {
60
- return a === b || hmrLineages.get(a)?.has(b) === true;
61
- }
62
- export class GameComponent {
63
- /** Which phase this component's update runs in. Override in subclasses. */
64
- static phase = 'gameLogic';
65
- /** See {@link GAME_COMPONENT_BRAND} — inherited by every subclass. */
66
- static [GAME_COMPONENT_BRAND] = true;
67
- /**
68
- * Preserve ordinary JavaScript `instanceof` across a true HMR prototype
69
- * swap. Subclasses inherit this static hook, so `value instanceof
70
- * PlayerController` first performs the native prototype-chain check and,
71
- * only when that fails, accepts an exact constructor lineage previously
72
- * linked by ComponentManager.hotSwap(). Non-HMR values retain byte-for-byte
73
- * native semantics.
74
- */
75
- static [Symbol.hasInstance](value) {
76
- // biome-ignore lint/complexity/noThisInStatic: Symbol.hasInstance is inherited; `this` must be the queried subclass, not the GameComponent base.
77
- const expected = this;
78
- const nativeMatch = Function.prototype[Symbol.hasInstance].call(expected, value);
79
- if (nativeMatch)
80
- return true;
81
- if (value === null || (typeof value !== 'object' && typeof value !== 'function'))
82
- return false;
83
- const actual = value.constructor;
84
- return (typeof actual === 'function' &&
85
- classesShareHmrLineage(expected, actual));
86
- }
87
- /**
88
- * Runtime-checkable declaration of which {@link AdapterSurface} this component
89
- * is written for (T7.2, D8 §3 — `docs/GAME-COMPONENT-GENERALIZATION.md`).
90
- * TS's `K` type parameter is erased at runtime, so this static is what the
91
- * ComponentManager checks at attach time: a node whose world's kind
92
- * doesn't match `declaredKind` THROWS at attach (a `GameComponent<'pixijs'>`
93
- * attached to a threejs entity, or vice versa). Kind-agnostic components —
94
- * written only against `node`/`this.world`, never the typed `object3D`
95
- * accessor or a kind-specific field — may declare `'any'` and attach in
96
- * any world components are legal in (every world except `'react'`, which
97
- * always throws regardless of `declaredKind` — see the ComponentManager).
98
- */
99
- static declaredKind = 'threejs';
100
- /**
101
- * Optional Zod object schema for this component's authored fields. When set,
102
- * scene data is validated + defaulted through `schema.parse(data)` before being
103
- * assigned onto the instance. Also powers (later) the editor's schema-driven
104
- * inspector and HMR defaults.
105
- */
106
- static schema;
107
- /** The native world node. The node IS the entity. */
108
- node;
109
- /** The world instance this component's entity lives in (wired at attach). */
110
- world;
111
- /**
112
- * Typed accessor, threejs roots only — kept for compatibility. On a
113
- * `GameComponent` (default `K`) this types as `THREE.Object3D`, so every
114
- * existing component compiles unchanged. On a non-threejs instance it
115
- * THROWS a descriptive error rather than ever returning a wrong-kind node —
116
- * use `this.node` (or `this.world.kind` to check first) instead.
117
- */
118
- get object3D() {
119
- const kind = this.world?.kind;
120
- if (kind !== undefined && kind !== 'threejs') {
121
- throw new Error(`${this.constructor.name}.object3D: this component's world (kind: "${kind}") is not a ` +
122
- 'threejs world — `object3D` only ever returns a THREE.Object3D; use `this.node` instead.');
123
- }
124
- // When the world isn't wired yet (silo-attached 2D components until
125
- // T7.3; bare instances), fall back to the static declaration so a
126
- // GameComponent<'pixijs'> can never silently hand out its Container
127
- // typed as an Object3D.
128
- if (kind === undefined) {
129
- const declared = this.constructor.declaredKind;
130
- if (declared !== 'threejs' && declared !== 'any') {
131
- throw new Error(`${this.constructor.name}.object3D: this component declares kind "${declared}" — ` +
132
- '`object3D` only ever returns a THREE.Object3D; use `this.node` instead.');
133
- }
134
- }
135
- return this.node;
136
- }
137
- /** The entity's native rigid body, if it has physics. */
138
- rigidBody = null;
139
- /** The entity's native collider, if it has physics. */
140
- collider = null;
141
- }
@@ -1,53 +0,0 @@
1
- /**
2
- * HMR swap-miss report — T5.4 (docs/BACKBONE-TASKS.md's Track 5 table:
3
- * "Deterministic HMR: registry-keyed hotSwap (not `constructor.name`), schema
4
- * re-parse on swap, loud swap-miss warnings"). `ComponentManager.hotSwap` keys
5
- * live instances by the `componentRegistry` name recorded on them at attach
6
- * (see `component-manager.ts`'s `attach`/`hotSwap`), NOT the live
7
- * `constructor.name` — fragile under minification, class renames, or two
8
- * classes sharing one name. This module is the structured, greppable
9
- * `console.warn` a swap-miss warrants, mirrored on the established
10
- * prefix + JSON-payload pattern (`packages/editor/src/achieved-tier.ts`'s
11
- * `TIER_SHORTFALL_PREFIX`, `packages/editor/src/authoring/overlay-report.ts`'s
12
- * `OVERLAY_REPORT_PREFIX`) — kept dependency-free (no `window`/editor-console
13
- * import) so it stays importable from a headless engine/runtime context,
14
- * same discipline as those two files.
15
- *
16
- * Two independent miss reasons, per the BACKBONE-TASKS detail note:
17
- * - `'no-live-instance'` — the incoming hot update's key (the
18
- * `componentRegistry` name the recompiled module was re-exported under)
19
- * matches no currently-attached instance's recorded registry key (nor,
20
- * for an instance attached WITHOUT a registry key — an ad-hoc,
21
- * code-attached component — its `constructor.name`). This is the
22
- * "renamed class → loud miss" case: a class rename changes the export
23
- * key a hot update arrives under, so no live instance is found under the
24
- * NEW key — the OLD prototype is simply left in place (never silently
25
- * dropped, never crashed).
26
- * - `'schema-reparse-failed'` — at least one matched instance's swap
27
- * succeeded (prototype replaced), but re-validating its authored props
28
- * against the NEW class's `static schema` threw; that instance's fields
29
- * are left exactly as they were (last-good props), never partially or
30
- * invalidly overwritten.
31
- */
32
- /** Greppable prefix shared by every swap-miss log line this module produces. */
33
- export declare const HMR_SWAP_MISS_PREFIX = "hmr-swap-miss";
34
- export type HmrSwapMissReport = {
35
- key: string;
36
- reason: 'no-live-instance';
37
- } | {
38
- key: string;
39
- reason: 'schema-reparse-failed';
40
- error: string;
41
- };
42
- /**
43
- * The one shared message shape — greppable on the prefix, JSON-parseable on
44
- * the trailing payload (the LAST `{...}` in the string — the human-readable
45
- * `detail` clause never itself contains a brace, even for the
46
- * `'schema-reparse-failed'` reason, whose full Zod error text — itself a
47
- * JSON-issues blob, braces included — is carried only in `report.error`
48
- * inside that trailing payload, never inlined into `detail`).
49
- */
50
- export declare function formatHmrSwapMissMessage(report: HmrSwapMissReport): string;
51
- /** Emit the ONE structured `console.warn` a swap-miss warrants — never a silent no-op. */
52
- export declare function logHmrSwapMiss(report: HmrSwapMissReport): void;
53
- //# sourceMappingURL=hmr-swap-report.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmr-swap-report.d.ts","sourceRoot":"","sources":["../../src/ecs/hmr-swap-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GACzB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAC3C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAW1E;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAG9D"}
@@ -1,55 +0,0 @@
1
- /**
2
- * HMR swap-miss report — T5.4 (docs/BACKBONE-TASKS.md's Track 5 table:
3
- * "Deterministic HMR: registry-keyed hotSwap (not `constructor.name`), schema
4
- * re-parse on swap, loud swap-miss warnings"). `ComponentManager.hotSwap` keys
5
- * live instances by the `componentRegistry` name recorded on them at attach
6
- * (see `component-manager.ts`'s `attach`/`hotSwap`), NOT the live
7
- * `constructor.name` — fragile under minification, class renames, or two
8
- * classes sharing one name. This module is the structured, greppable
9
- * `console.warn` a swap-miss warrants, mirrored on the established
10
- * prefix + JSON-payload pattern (`packages/editor/src/achieved-tier.ts`'s
11
- * `TIER_SHORTFALL_PREFIX`, `packages/editor/src/authoring/overlay-report.ts`'s
12
- * `OVERLAY_REPORT_PREFIX`) — kept dependency-free (no `window`/editor-console
13
- * import) so it stays importable from a headless engine/runtime context,
14
- * same discipline as those two files.
15
- *
16
- * Two independent miss reasons, per the BACKBONE-TASKS detail note:
17
- * - `'no-live-instance'` — the incoming hot update's key (the
18
- * `componentRegistry` name the recompiled module was re-exported under)
19
- * matches no currently-attached instance's recorded registry key (nor,
20
- * for an instance attached WITHOUT a registry key — an ad-hoc,
21
- * code-attached component — its `constructor.name`). This is the
22
- * "renamed class → loud miss" case: a class rename changes the export
23
- * key a hot update arrives under, so no live instance is found under the
24
- * NEW key — the OLD prototype is simply left in place (never silently
25
- * dropped, never crashed).
26
- * - `'schema-reparse-failed'` — at least one matched instance's swap
27
- * succeeded (prototype replaced), but re-validating its authored props
28
- * against the NEW class's `static schema` threw; that instance's fields
29
- * are left exactly as they were (last-good props), never partially or
30
- * invalidly overwritten.
31
- */
32
- /** Greppable prefix shared by every swap-miss log line this module produces. */
33
- export const HMR_SWAP_MISS_PREFIX = 'hmr-swap-miss';
34
- /**
35
- * The one shared message shape — greppable on the prefix, JSON-parseable on
36
- * the trailing payload (the LAST `{...}` in the string — the human-readable
37
- * `detail` clause never itself contains a brace, even for the
38
- * `'schema-reparse-failed'` reason, whose full Zod error text — itself a
39
- * JSON-issues blob, braces included — is carried only in `report.error`
40
- * inside that trailing payload, never inlined into `detail`).
41
- */
42
- export function formatHmrSwapMissMessage(report) {
43
- const detail = report.reason === 'no-live-instance'
44
- ? `no live instance's registry key (or, for an ad-hoc/unregistered instance, its class name) ` +
45
- `matches "${report.key}" — the hot update had nothing to swap (old class, if any, left in place)`
46
- : `schema re-parse failed for "${report.key}" after swap — keeping the instance's last-good ` +
47
- `props (Zod error in the trailing payload's "error" field)`;
48
- return (`${HMR_SWAP_MISS_PREFIX} ${detail} (T5.4, docs/BACKBONE-TASKS.md). ` +
49
- `${HMR_SWAP_MISS_PREFIX} ${JSON.stringify(report)}`);
50
- }
51
- /** Emit the ONE structured `console.warn` a swap-miss warrants — never a silent no-op. */
52
- export function logHmrSwapMiss(report) {
53
- // biome-ignore lint/suspicious/noConsole: structured, greppable swap-miss warning (T5.4) — mirrors achieved-tier.ts/overlay-report.ts's deliberate direct console.warn
54
- console.warn(formatHmrSwapMissMessage(report));
55
- }
@@ -1,119 +0,0 @@
1
- /**
2
- * Package-contributed Project Command for baking the procedural humanoid into
3
- * ordinary project assets. The editor discovers this module through
4
- * @vgai/engine's package.json; the editor itself contains no humanoid branch.
5
- */
6
- import { z } from 'zod';
7
- declare const InputSchema: z.ZodObject<{
8
- name: z.ZodDefault<z.ZodString>;
9
- params: z.ZodDefault<z.ZodObject<{
10
- height: z.ZodOptional<z.ZodNumber>;
11
- legLength: z.ZodDefault<z.ZodNumber>;
12
- armLength: z.ZodDefault<z.ZodNumber>;
13
- torsoLength: z.ZodDefault<z.ZodNumber>;
14
- shoulderWidth: z.ZodDefault<z.ZodNumber>;
15
- hipWidth: z.ZodDefault<z.ZodNumber>;
16
- headSize: z.ZodDefault<z.ZodNumber>;
17
- limbThickness: z.ZodDefault<z.ZodNumber>;
18
- torsoGirth: z.ZodDefault<z.ZodNumber>;
19
- }, z.core.$strict>>;
20
- clipSource: z.ZodOptional<z.ZodString>;
21
- clipNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
22
- dryRun: z.ZodDefault<z.ZodBoolean>;
23
- }, z.core.$strip>;
24
- declare const OutputFileSchema: z.ZodObject<{
25
- path: z.ZodString;
26
- bytes: z.ZodNumber;
27
- mediaType: z.ZodOptional<z.ZodString>;
28
- role: z.ZodOptional<z.ZodEnum<{
29
- prefab: "prefab";
30
- asset: "asset";
31
- provenance: "provenance";
32
- other: "other";
33
- }>>;
34
- }, z.core.$strip>;
35
- interface OutputWriter {
36
- write(files: ReadonlyArray<{
37
- path: string;
38
- content: string | Uint8Array;
39
- mediaType?: string;
40
- role?: 'asset' | 'prefab' | 'provenance' | 'other';
41
- }>, options?: {
42
- dryRun?: boolean;
43
- }): Promise<{
44
- files: z.infer<typeof OutputFileSchema>[];
45
- totalBytes: number;
46
- dryRun: boolean;
47
- }>;
48
- }
49
- interface ProjectOperationContext {
50
- projectRoot?: string;
51
- projectOutputs?: OutputWriter;
52
- signal?: AbortSignal;
53
- }
54
- export declare const operation: {
55
- name: string;
56
- summary: string;
57
- description: string;
58
- input: z.ZodObject<{
59
- name: z.ZodDefault<z.ZodString>;
60
- params: z.ZodDefault<z.ZodObject<{
61
- height: z.ZodOptional<z.ZodNumber>;
62
- legLength: z.ZodDefault<z.ZodNumber>;
63
- armLength: z.ZodDefault<z.ZodNumber>;
64
- torsoLength: z.ZodDefault<z.ZodNumber>;
65
- shoulderWidth: z.ZodDefault<z.ZodNumber>;
66
- hipWidth: z.ZodDefault<z.ZodNumber>;
67
- headSize: z.ZodDefault<z.ZodNumber>;
68
- limbThickness: z.ZodDefault<z.ZodNumber>;
69
- torsoGirth: z.ZodDefault<z.ZodNumber>;
70
- }, z.core.$strict>>;
71
- clipSource: z.ZodOptional<z.ZodString>;
72
- clipNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
73
- dryRun: z.ZodDefault<z.ZodBoolean>;
74
- }, z.core.$strip>;
75
- result: z.ZodObject<{
76
- model: z.ZodString;
77
- prefab: z.ZodString;
78
- provenance: z.ZodString;
79
- vertexCount: z.ZodNumber;
80
- clips: z.ZodArray<z.ZodString>;
81
- files: z.ZodArray<z.ZodObject<{
82
- path: z.ZodString;
83
- bytes: z.ZodNumber;
84
- mediaType: z.ZodOptional<z.ZodString>;
85
- role: z.ZodOptional<z.ZodEnum<{
86
- prefab: "prefab";
87
- asset: "asset";
88
- provenance: "provenance";
89
- other: "other";
90
- }>>;
91
- }, z.core.$strip>>;
92
- totalBytes: z.ZodNumber;
93
- dryRun: z.ZodBoolean;
94
- }, z.core.$strip>;
95
- errors: never[];
96
- requires: {
97
- project: boolean;
98
- };
99
- host: "node";
100
- mutates: boolean;
101
- supportsDryRun: boolean;
102
- longRunning: boolean;
103
- permission: {
104
- risk: "write";
105
- summary: string;
106
- };
107
- impl(input: z.infer<typeof InputSchema>, ctx: ProjectOperationContext): Promise<{
108
- files: z.infer<typeof OutputFileSchema>[];
109
- totalBytes: number;
110
- dryRun: boolean;
111
- model: string;
112
- prefab: string;
113
- provenance: string;
114
- vertexCount: number;
115
- clips: string[];
116
- }>;
117
- };
118
- export {};
119
- //# sourceMappingURL=bake.operation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bake.operation.d.ts","sourceRoot":"","sources":["../../src/humanoid/bake.operation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;iBA0Bf,CAAC;AAEH,QAAA,MAAM,gBAAgB;;;;;;;;;;iBAKpB,CAAC;AAaH,UAAU,YAAY;IACpB,KAAK,CACH,KAAK,EAAE,aAAa,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;KACpD,CAAC,EACF,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,EAAE,CAAC;QAC1C,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,UAAU,uBAAuB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAwGD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAuBF,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,OAAO,uBAAuB;eAzIlE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,EAAE;oBAC7B,MAAM;gBACV,OAAO;;;;;;;CA8MlB,CAAC"}