rn-gamekit 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +95 -14
  3. package/lib/module/assets/defineAssets.js +28 -3
  4. package/lib/module/assets/defineAssets.js.map +1 -1
  5. package/lib/module/assets.js +11 -0
  6. package/lib/module/assets.js.map +1 -0
  7. package/lib/module/audio/createGameAudio.js +784 -0
  8. package/lib/module/audio/createGameAudio.js.map +1 -0
  9. package/lib/module/audio/errors.js +12 -0
  10. package/lib/module/audio/errors.js.map +1 -0
  11. package/lib/module/audio/index.js +5 -0
  12. package/lib/module/audio/index.js.map +1 -0
  13. package/lib/module/audio/resolver.js +37 -0
  14. package/lib/module/audio/resolver.js.map +1 -0
  15. package/lib/module/audio/types.js +4 -0
  16. package/lib/module/audio/types.js.map +1 -0
  17. package/lib/module/audio.js +9 -0
  18. package/lib/module/audio.js.map +1 -0
  19. package/lib/module/camera2d/bounds.js +59 -0
  20. package/lib/module/camera2d/bounds.js.map +1 -0
  21. package/lib/module/camera2d/extents.js +25 -0
  22. package/lib/module/camera2d/extents.js.map +1 -0
  23. package/lib/module/camera2d/follow.js +138 -0
  24. package/lib/module/camera2d/follow.js.map +1 -0
  25. package/lib/module/camera2d/index.js +20 -0
  26. package/lib/module/camera2d/index.js.map +1 -0
  27. package/lib/module/camera2d/interpolation.js +98 -0
  28. package/lib/module/camera2d/interpolation.js.map +1 -0
  29. package/lib/module/camera2d/shake.js +85 -0
  30. package/lib/module/camera2d/shake.js.map +1 -0
  31. package/lib/module/camera2d/transform.js +151 -0
  32. package/lib/module/camera2d/transform.js.map +1 -0
  33. package/lib/module/camera2d/types.js +4 -0
  34. package/lib/module/camera2d/types.js.map +1 -0
  35. package/lib/module/camera2d/validation.js +98 -0
  36. package/lib/module/camera2d/validation.js.map +1 -0
  37. package/lib/module/camera2d/visibility.js +138 -0
  38. package/lib/module/camera2d/visibility.js.map +1 -0
  39. package/lib/module/camera2d.js +9 -0
  40. package/lib/module/camera2d.js.map +1 -0
  41. package/lib/module/collision2d/colliders.js +266 -0
  42. package/lib/module/collision2d/colliders.js.map +1 -0
  43. package/lib/module/collision2d/debug.js +105 -0
  44. package/lib/module/collision2d/debug.js.map +1 -0
  45. package/lib/module/collision2d/filters.js +40 -0
  46. package/lib/module/collision2d/filters.js.map +1 -0
  47. package/lib/module/collision2d/index.js +12 -0
  48. package/lib/module/collision2d/index.js.map +1 -0
  49. package/lib/module/collision2d/intersections.js +67 -0
  50. package/lib/module/collision2d/intersections.js.map +1 -0
  51. package/lib/module/collision2d/manifolds.js +218 -0
  52. package/lib/module/collision2d/manifolds.js.map +1 -0
  53. package/lib/module/collision2d/segments.js +187 -0
  54. package/lib/module/collision2d/segments.js.map +1 -0
  55. package/lib/module/collision2d/spatialHash.js +167 -0
  56. package/lib/module/collision2d/spatialHash.js.map +1 -0
  57. package/lib/module/collision2d/sweeps.js +255 -0
  58. package/lib/module/collision2d/sweeps.js.map +1 -0
  59. package/lib/module/collision2d.js +9 -0
  60. package/lib/module/collision2d.js.map +1 -0
  61. package/lib/module/core/input/buttonPad.js +214 -0
  62. package/lib/module/core/input/buttonPad.js.map +1 -0
  63. package/lib/module/core/input/createInputBuffer.js +66 -14
  64. package/lib/module/core/input/createInputBuffer.js.map +1 -1
  65. package/lib/module/core/session/createGameSession.js +454 -50
  66. package/lib/module/core/session/createGameSession.js.map +1 -1
  67. package/lib/module/core/session/deepFreeze.js +92 -2
  68. package/lib/module/core/session/deepFreeze.js.map +1 -1
  69. package/lib/module/core/session/types.js +12 -0
  70. package/lib/module/core/session/types.js.map +1 -1
  71. package/lib/module/definition/defineGame.js +23 -0
  72. package/lib/module/definition/defineGame.js.map +1 -1
  73. package/lib/module/events/defineGameEvents.js +46 -0
  74. package/lib/module/events/defineGameEvents.js.map +1 -0
  75. package/lib/module/events/errors.js +16 -0
  76. package/lib/module/events/errors.js.map +1 -0
  77. package/lib/module/events/index.js +7 -0
  78. package/lib/module/events/index.js.map +1 -0
  79. package/lib/module/events/payload.js +219 -0
  80. package/lib/module/events/payload.js.map +1 -0
  81. package/lib/module/events/seed.js +33 -0
  82. package/lib/module/events/seed.js.map +1 -0
  83. package/lib/module/events/types.js +4 -0
  84. package/lib/module/events/types.js.map +1 -0
  85. package/lib/module/events.js +13 -0
  86. package/lib/module/events.js.map +1 -0
  87. package/lib/module/geometry/helpers.js +140 -0
  88. package/lib/module/geometry/helpers.js.map +1 -0
  89. package/lib/module/geometry/index.js +5 -0
  90. package/lib/module/geometry/index.js.map +1 -0
  91. package/lib/module/geometry/validation.js +104 -0
  92. package/lib/module/geometry/validation.js.map +1 -0
  93. package/lib/module/geometry.js +9 -0
  94. package/lib/module/geometry.js.map +1 -0
  95. package/lib/module/haptics/createGameHaptics.js +214 -0
  96. package/lib/module/haptics/createGameHaptics.js.map +1 -0
  97. package/lib/module/haptics/errors.js +12 -0
  98. package/lib/module/haptics/errors.js.map +1 -0
  99. package/lib/module/haptics/index.js +5 -0
  100. package/lib/module/haptics/index.js.map +1 -0
  101. package/lib/module/haptics/resolver.js +37 -0
  102. package/lib/module/haptics/resolver.js.map +1 -0
  103. package/lib/module/haptics/types.js +4 -0
  104. package/lib/module/haptics/types.js.map +1 -0
  105. package/lib/module/haptics.js +9 -0
  106. package/lib/module/haptics.js.map +1 -0
  107. package/lib/module/index.js +8 -1
  108. package/lib/module/index.js.map +1 -1
  109. package/lib/module/particles/createParticleSystem.js +481 -0
  110. package/lib/module/particles/createParticleSystem.js.map +1 -0
  111. package/lib/module/particles/defineParticleEffect.js +178 -0
  112. package/lib/module/particles/defineParticleEffect.js.map +1 -0
  113. package/lib/module/particles/errors.js +9 -0
  114. package/lib/module/particles/errors.js.map +1 -0
  115. package/lib/module/particles/index.js +8 -0
  116. package/lib/module/particles/index.js.map +1 -0
  117. package/lib/module/particles/sampling.js +121 -0
  118. package/lib/module/particles/sampling.js.map +1 -0
  119. package/lib/module/particles/types.js +4 -0
  120. package/lib/module/particles/types.js.map +1 -0
  121. package/lib/module/particles.js +4 -0
  122. package/lib/module/particles.js.map +1 -0
  123. package/lib/module/react/GameButtonPad.js +344 -0
  124. package/lib/module/react/GameButtonPad.js.map +1 -0
  125. package/lib/module/react/GamePointerInput.js +74 -16
  126. package/lib/module/react/GamePointerInput.js.map +1 -1
  127. package/lib/module/react/GameView.js +139 -60
  128. package/lib/module/react/GameView.js.map +1 -1
  129. package/lib/module/react/assets/createGameAssetStore.js +145 -95
  130. package/lib/module/react/assets/createGameAssetStore.js.map +1 -1
  131. package/lib/module/react/assets/useGameAssets.js +60 -35
  132. package/lib/module/react/assets/useGameAssets.js.map +1 -1
  133. package/lib/module/react/bindAppLifecycle.js +46 -17
  134. package/lib/module/react/bindAppLifecycle.js.map +1 -1
  135. package/lib/module/react/bindGameSession.js +13 -2
  136. package/lib/module/react/bindGameSession.js.map +1 -1
  137. package/lib/module/react/camera2d/GameLayer2D.js +50 -0
  138. package/lib/module/react/camera2d/GameLayer2D.js.map +1 -0
  139. package/lib/module/react/camera2d/defineGameCamera2D.js +30 -0
  140. package/lib/module/react/camera2d/defineGameCamera2D.js.map +1 -0
  141. package/lib/module/react/camera2d/usePresentedCameraBinding.js +177 -0
  142. package/lib/module/react/camera2d/usePresentedCameraBinding.js.map +1 -0
  143. package/lib/module/react/cleanupList.js +38 -0
  144. package/lib/module/react/cleanupList.js.map +1 -0
  145. package/lib/module/react/lifecycleSource.js +49 -0
  146. package/lib/module/react/lifecycleSource.js.map +1 -0
  147. package/lib/module/react/particles/ParticleView.js +308 -0
  148. package/lib/module/react/particles/ParticleView.js.map +1 -0
  149. package/lib/module/react/particles/culling.js +115 -0
  150. package/lib/module/react/particles/culling.js.map +1 -0
  151. package/lib/module/react/particles/index.js +7 -0
  152. package/lib/module/react/particles/index.js.map +1 -0
  153. package/lib/module/react/particles/spriteXForm.js +45 -0
  154. package/lib/module/react/particles/spriteXForm.js.map +1 -0
  155. package/lib/module/react/particles/useParticlePresentation.js +204 -0
  156. package/lib/module/react/particles/useParticlePresentation.js.map +1 -0
  157. package/lib/module/react/pointerBinding.js +55 -17
  158. package/lib/module/react/pointerBinding.js.map +1 -1
  159. package/lib/module/react/pointerCamera.js +28 -0
  160. package/lib/module/react/pointerCamera.js.map +1 -0
  161. package/lib/module/react/pointerCoalescer.js +16 -9
  162. package/lib/module/react/pointerCoalescer.js.map +1 -1
  163. package/lib/module/react/sprites/GameSprite.js +5 -17
  164. package/lib/module/react/sprites/GameSprite.js.map +1 -1
  165. package/lib/module/react/sprites/GameWorld2D.js +112 -9
  166. package/lib/module/react/sprites/GameWorld2D.js.map +1 -1
  167. package/lib/module/react/sprites/Sprite.js +48 -63
  168. package/lib/module/react/sprites/Sprite.js.map +1 -1
  169. package/lib/module/react/sprites/SpriteBatch.js +53 -28
  170. package/lib/module/react/sprites/SpriteBatch.js.map +1 -1
  171. package/lib/module/react/sprites/batchVisibility.js +58 -0
  172. package/lib/module/react/sprites/batchVisibility.js.map +1 -0
  173. package/lib/module/react/sprites/spriteSelection.js +103 -0
  174. package/lib/module/react/sprites/spriteSelection.js.map +1 -0
  175. package/lib/module/react/sprites/spriteTransform.js +46 -25
  176. package/lib/module/react/sprites/spriteTransform.js.map +1 -1
  177. package/lib/module/react/tilemap/TileMapLayer2D.js +217 -0
  178. package/lib/module/react/tilemap/TileMapLayer2D.js.map +1 -0
  179. package/lib/module/react/tilemap/tilePresentation.js +374 -0
  180. package/lib/module/react/tilemap/tilePresentation.js.map +1 -0
  181. package/lib/module/react/useGameSession.js +70 -0
  182. package/lib/module/react/useGameSession.js.map +1 -0
  183. package/lib/module/react/useGameSessionStatus.js +46 -0
  184. package/lib/module/react/useGameSessionStatus.js.map +1 -0
  185. package/lib/module/react/viewportBinding.js +5 -1
  186. package/lib/module/react/viewportBinding.js.map +1 -1
  187. package/lib/module/react.js +12 -1
  188. package/lib/module/react.js.map +1 -1
  189. package/lib/module/scene/defineScene.js +17 -0
  190. package/lib/module/scene/defineScene.js.map +1 -1
  191. package/lib/module/sprites/sampleSpriteClip.js +66 -6
  192. package/lib/module/sprites/sampleSpriteClip.js.map +1 -1
  193. package/lib/module/sprites/spriteAnimationState.js +10 -20
  194. package/lib/module/sprites/spriteAnimationState.js.map +1 -1
  195. package/lib/module/sprites.js +11 -0
  196. package/lib/module/sprites.js.map +1 -0
  197. package/lib/module/storage/adapters/asyncStorage.js +57 -0
  198. package/lib/module/storage/adapters/asyncStorage.js.map +1 -0
  199. package/lib/module/storage/adapters/memory.js +50 -0
  200. package/lib/module/storage/adapters/memory.js.map +1 -0
  201. package/lib/module/storage/errors.js +34 -0
  202. package/lib/module/storage/errors.js.map +1 -0
  203. package/lib/module/storage/index.js +11 -0
  204. package/lib/module/storage/index.js.map +1 -0
  205. package/lib/module/storage/schema.js +151 -0
  206. package/lib/module/storage/schema.js.map +1 -0
  207. package/lib/module/storage/serialization.js +249 -0
  208. package/lib/module/storage/serialization.js.map +1 -0
  209. package/lib/module/storage/store.js +387 -0
  210. package/lib/module/storage/store.js.map +1 -0
  211. package/lib/module/storage/types.js +16 -0
  212. package/lib/module/storage/types.js.map +1 -0
  213. package/lib/module/storage/validation.js +111 -0
  214. package/lib/module/storage/validation.js.map +1 -0
  215. package/lib/module/storage.js +4 -0
  216. package/lib/module/storage.js.map +1 -0
  217. package/lib/module/testing.js +4 -0
  218. package/lib/module/testing.js.map +1 -1
  219. package/lib/module/tilemap/chunkStats.js +27 -0
  220. package/lib/module/tilemap/chunkStats.js.map +1 -0
  221. package/lib/module/tilemap/definitions.js +308 -0
  222. package/lib/module/tilemap/definitions.js.map +1 -0
  223. package/lib/module/tilemap/errors.js +13 -0
  224. package/lib/module/tilemap/errors.js.map +1 -0
  225. package/lib/module/tilemap/index.js +10 -0
  226. package/lib/module/tilemap/index.js.map +1 -0
  227. package/lib/module/tilemap/movement.js +379 -0
  228. package/lib/module/tilemap/movement.js.map +1 -0
  229. package/lib/module/tilemap/queries.js +114 -0
  230. package/lib/module/tilemap/queries.js.map +1 -0
  231. package/lib/module/tilemap/tiledAdapter.js +141 -0
  232. package/lib/module/tilemap/tiledAdapter.js.map +1 -0
  233. package/lib/module/tilemap/types.js +4 -0
  234. package/lib/module/tilemap/types.js.map +1 -0
  235. package/lib/module/tilemap.js +4 -0
  236. package/lib/module/tilemap.js.map +1 -0
  237. package/lib/typescript/src/assets/defineAssets.d.ts +1 -1
  238. package/lib/typescript/src/assets/defineAssets.d.ts.map +1 -1
  239. package/lib/typescript/src/assets.d.ts +11 -0
  240. package/lib/typescript/src/assets.d.ts.map +1 -0
  241. package/lib/typescript/src/audio/createGameAudio.d.ts +5 -0
  242. package/lib/typescript/src/audio/createGameAudio.d.ts.map +1 -0
  243. package/lib/typescript/src/audio/errors.d.ts +6 -0
  244. package/lib/typescript/src/audio/errors.d.ts.map +1 -0
  245. package/lib/typescript/src/audio/index.d.ts +4 -0
  246. package/lib/typescript/src/audio/index.d.ts.map +1 -0
  247. package/lib/typescript/src/audio/resolver.d.ts +44 -0
  248. package/lib/typescript/src/audio/resolver.d.ts.map +1 -0
  249. package/lib/typescript/src/audio/types.d.ts +42 -0
  250. package/lib/typescript/src/audio/types.d.ts.map +1 -0
  251. package/lib/typescript/src/audio.d.ts +8 -0
  252. package/lib/typescript/src/audio.d.ts.map +1 -0
  253. package/lib/typescript/src/camera2d/bounds.d.ts +25 -0
  254. package/lib/typescript/src/camera2d/bounds.d.ts.map +1 -0
  255. package/lib/typescript/src/camera2d/extents.d.ts +17 -0
  256. package/lib/typescript/src/camera2d/extents.d.ts.map +1 -0
  257. package/lib/typescript/src/camera2d/follow.d.ts +24 -0
  258. package/lib/typescript/src/camera2d/follow.d.ts.map +1 -0
  259. package/lib/typescript/src/camera2d/index.d.ts +19 -0
  260. package/lib/typescript/src/camera2d/index.d.ts.map +1 -0
  261. package/lib/typescript/src/camera2d/interpolation.d.ts +17 -0
  262. package/lib/typescript/src/camera2d/interpolation.d.ts.map +1 -0
  263. package/lib/typescript/src/camera2d/shake.d.ts +20 -0
  264. package/lib/typescript/src/camera2d/shake.d.ts.map +1 -0
  265. package/lib/typescript/src/camera2d/transform.d.ts +44 -0
  266. package/lib/typescript/src/camera2d/transform.d.ts.map +1 -0
  267. package/lib/typescript/src/camera2d/types.d.ts +74 -0
  268. package/lib/typescript/src/camera2d/types.d.ts.map +1 -0
  269. package/lib/typescript/src/camera2d/validation.d.ts +30 -0
  270. package/lib/typescript/src/camera2d/validation.d.ts.map +1 -0
  271. package/lib/typescript/src/camera2d/visibility.d.ts +47 -0
  272. package/lib/typescript/src/camera2d/visibility.d.ts.map +1 -0
  273. package/lib/typescript/src/camera2d.d.ts +7 -0
  274. package/lib/typescript/src/camera2d.d.ts.map +1 -0
  275. package/lib/typescript/src/collision2d/colliders.d.ts +120 -0
  276. package/lib/typescript/src/collision2d/colliders.d.ts.map +1 -0
  277. package/lib/typescript/src/collision2d/debug.d.ts +67 -0
  278. package/lib/typescript/src/collision2d/debug.d.ts.map +1 -0
  279. package/lib/typescript/src/collision2d/filters.d.ts +28 -0
  280. package/lib/typescript/src/collision2d/filters.d.ts.map +1 -0
  281. package/lib/typescript/src/collision2d/index.d.ts +17 -0
  282. package/lib/typescript/src/collision2d/index.d.ts.map +1 -0
  283. package/lib/typescript/src/collision2d/intersections.d.ts +24 -0
  284. package/lib/typescript/src/collision2d/intersections.d.ts.map +1 -0
  285. package/lib/typescript/src/collision2d/manifolds.d.ts +39 -0
  286. package/lib/typescript/src/collision2d/manifolds.d.ts.map +1 -0
  287. package/lib/typescript/src/collision2d/segments.d.ts +24 -0
  288. package/lib/typescript/src/collision2d/segments.d.ts.map +1 -0
  289. package/lib/typescript/src/collision2d/spatialHash.d.ts +50 -0
  290. package/lib/typescript/src/collision2d/spatialHash.d.ts.map +1 -0
  291. package/lib/typescript/src/collision2d/sweeps.d.ts +60 -0
  292. package/lib/typescript/src/collision2d/sweeps.d.ts.map +1 -0
  293. package/lib/typescript/src/collision2d.d.ts +7 -0
  294. package/lib/typescript/src/collision2d.d.ts.map +1 -0
  295. package/lib/typescript/src/core/input/buttonPad.d.ts +59 -0
  296. package/lib/typescript/src/core/input/buttonPad.d.ts.map +1 -0
  297. package/lib/typescript/src/core/input/createInputBuffer.d.ts +1 -1
  298. package/lib/typescript/src/core/input/createInputBuffer.d.ts.map +1 -1
  299. package/lib/typescript/src/core/input/types.d.ts +7 -0
  300. package/lib/typescript/src/core/input/types.d.ts.map +1 -1
  301. package/lib/typescript/src/core/session/createGameSession.d.ts +4 -2
  302. package/lib/typescript/src/core/session/createGameSession.d.ts.map +1 -1
  303. package/lib/typescript/src/core/session/deepFreeze.d.ts +21 -1
  304. package/lib/typescript/src/core/session/deepFreeze.d.ts.map +1 -1
  305. package/lib/typescript/src/core/session/diagnostics.d.ts +2 -0
  306. package/lib/typescript/src/core/session/diagnostics.d.ts.map +1 -1
  307. package/lib/typescript/src/core/session/types.d.ts +69 -4
  308. package/lib/typescript/src/core/session/types.d.ts.map +1 -1
  309. package/lib/typescript/src/definition/defineGame.d.ts +12 -1
  310. package/lib/typescript/src/definition/defineGame.d.ts.map +1 -1
  311. package/lib/typescript/src/definition/types.d.ts +10 -1
  312. package/lib/typescript/src/definition/types.d.ts.map +1 -1
  313. package/lib/typescript/src/events/defineGameEvents.d.ts +26 -0
  314. package/lib/typescript/src/events/defineGameEvents.d.ts.map +1 -0
  315. package/lib/typescript/src/events/errors.d.ts +12 -0
  316. package/lib/typescript/src/events/errors.d.ts.map +1 -0
  317. package/lib/typescript/src/events/index.d.ts +6 -0
  318. package/lib/typescript/src/events/index.d.ts.map +1 -0
  319. package/lib/typescript/src/events/payload.d.ts +21 -0
  320. package/lib/typescript/src/events/payload.d.ts.map +1 -0
  321. package/lib/typescript/src/events/seed.d.ts +3 -0
  322. package/lib/typescript/src/events/seed.d.ts.map +1 -0
  323. package/lib/typescript/src/events/types.d.ts +42 -0
  324. package/lib/typescript/src/events/types.d.ts.map +1 -0
  325. package/lib/typescript/src/events.d.ts +12 -0
  326. package/lib/typescript/src/events.d.ts.map +1 -0
  327. package/lib/typescript/src/geometry/helpers.d.ts +35 -0
  328. package/lib/typescript/src/geometry/helpers.d.ts.map +1 -0
  329. package/lib/typescript/src/geometry/index.d.ts +4 -0
  330. package/lib/typescript/src/geometry/index.d.ts.map +1 -0
  331. package/lib/typescript/src/geometry/types.d.ts +49 -0
  332. package/lib/typescript/src/geometry/types.d.ts.map +1 -1
  333. package/lib/typescript/src/geometry/validation.d.ts +44 -0
  334. package/lib/typescript/src/geometry/validation.d.ts.map +1 -0
  335. package/lib/typescript/src/geometry.d.ts +7 -0
  336. package/lib/typescript/src/geometry.d.ts.map +1 -0
  337. package/lib/typescript/src/haptics/createGameHaptics.d.ts +3 -0
  338. package/lib/typescript/src/haptics/createGameHaptics.d.ts.map +1 -0
  339. package/lib/typescript/src/haptics/errors.d.ts +6 -0
  340. package/lib/typescript/src/haptics/errors.d.ts.map +1 -0
  341. package/lib/typescript/src/haptics/index.d.ts +4 -0
  342. package/lib/typescript/src/haptics/index.d.ts.map +1 -0
  343. package/lib/typescript/src/haptics/resolver.d.ts +22 -0
  344. package/lib/typescript/src/haptics/resolver.d.ts.map +1 -0
  345. package/lib/typescript/src/haptics/types.d.ts +37 -0
  346. package/lib/typescript/src/haptics/types.d.ts.map +1 -0
  347. package/lib/typescript/src/haptics.d.ts +8 -0
  348. package/lib/typescript/src/haptics.d.ts.map +1 -0
  349. package/lib/typescript/src/index.d.ts +10 -2
  350. package/lib/typescript/src/index.d.ts.map +1 -1
  351. package/lib/typescript/src/particles/createParticleSystem.d.ts +5 -0
  352. package/lib/typescript/src/particles/createParticleSystem.d.ts.map +1 -0
  353. package/lib/typescript/src/particles/defineParticleEffect.d.ts +3 -0
  354. package/lib/typescript/src/particles/defineParticleEffect.d.ts.map +1 -0
  355. package/lib/typescript/src/particles/errors.d.ts +5 -0
  356. package/lib/typescript/src/particles/errors.d.ts.map +1 -0
  357. package/lib/typescript/src/particles/index.d.ts +6 -0
  358. package/lib/typescript/src/particles/index.d.ts.map +1 -0
  359. package/lib/typescript/src/particles/sampling.d.ts +54 -0
  360. package/lib/typescript/src/particles/sampling.d.ts.map +1 -0
  361. package/lib/typescript/src/particles/types.d.ts +292 -0
  362. package/lib/typescript/src/particles/types.d.ts.map +1 -0
  363. package/lib/typescript/src/particles.d.ts +2 -0
  364. package/lib/typescript/src/particles.d.ts.map +1 -0
  365. package/lib/typescript/src/react/GameButtonPad.d.ts +84 -0
  366. package/lib/typescript/src/react/GameButtonPad.d.ts.map +1 -0
  367. package/lib/typescript/src/react/GamePointerInput.d.ts.map +1 -1
  368. package/lib/typescript/src/react/GameView.d.ts +27 -1
  369. package/lib/typescript/src/react/GameView.d.ts.map +1 -1
  370. package/lib/typescript/src/react/assets/createGameAssetStore.d.ts.map +1 -1
  371. package/lib/typescript/src/react/assets/useGameAssets.d.ts.map +1 -1
  372. package/lib/typescript/src/react/bindAppLifecycle.d.ts +7 -1
  373. package/lib/typescript/src/react/bindAppLifecycle.d.ts.map +1 -1
  374. package/lib/typescript/src/react/bindGameSession.d.ts.map +1 -1
  375. package/lib/typescript/src/react/camera2d/GameLayer2D.d.ts +24 -0
  376. package/lib/typescript/src/react/camera2d/GameLayer2D.d.ts.map +1 -0
  377. package/lib/typescript/src/react/camera2d/defineGameCamera2D.d.ts +44 -0
  378. package/lib/typescript/src/react/camera2d/defineGameCamera2D.d.ts.map +1 -0
  379. package/lib/typescript/src/react/camera2d/usePresentedCameraBinding.d.ts +22 -0
  380. package/lib/typescript/src/react/camera2d/usePresentedCameraBinding.d.ts.map +1 -0
  381. package/lib/typescript/src/react/cleanupList.d.ts +21 -0
  382. package/lib/typescript/src/react/cleanupList.d.ts.map +1 -0
  383. package/lib/typescript/src/react/instrumentation.d.ts +33 -3
  384. package/lib/typescript/src/react/instrumentation.d.ts.map +1 -1
  385. package/lib/typescript/src/react/lifecycleSource.d.ts +21 -0
  386. package/lib/typescript/src/react/lifecycleSource.d.ts.map +1 -0
  387. package/lib/typescript/src/react/particles/ParticleView.d.ts +65 -0
  388. package/lib/typescript/src/react/particles/ParticleView.d.ts.map +1 -0
  389. package/lib/typescript/src/react/particles/culling.d.ts +70 -0
  390. package/lib/typescript/src/react/particles/culling.d.ts.map +1 -0
  391. package/lib/typescript/src/react/particles/index.d.ts +7 -0
  392. package/lib/typescript/src/react/particles/index.d.ts.map +1 -0
  393. package/lib/typescript/src/react/particles/spriteXForm.d.ts +28 -0
  394. package/lib/typescript/src/react/particles/spriteXForm.d.ts.map +1 -0
  395. package/lib/typescript/src/react/particles/useParticlePresentation.d.ts +48 -0
  396. package/lib/typescript/src/react/particles/useParticlePresentation.d.ts.map +1 -0
  397. package/lib/typescript/src/react/pointerBinding.d.ts +38 -8
  398. package/lib/typescript/src/react/pointerBinding.d.ts.map +1 -1
  399. package/lib/typescript/src/react/pointerCamera.d.ts +20 -0
  400. package/lib/typescript/src/react/pointerCamera.d.ts.map +1 -0
  401. package/lib/typescript/src/react/pointerCoalescer.d.ts +17 -1
  402. package/lib/typescript/src/react/pointerCoalescer.d.ts.map +1 -1
  403. package/lib/typescript/src/react/sprites/GameSprite.d.ts +3 -10
  404. package/lib/typescript/src/react/sprites/GameSprite.d.ts.map +1 -1
  405. package/lib/typescript/src/react/sprites/GameWorld2D.d.ts +51 -6
  406. package/lib/typescript/src/react/sprites/GameWorld2D.d.ts.map +1 -1
  407. package/lib/typescript/src/react/sprites/Sprite.d.ts.map +1 -1
  408. package/lib/typescript/src/react/sprites/SpriteBatch.d.ts +22 -1
  409. package/lib/typescript/src/react/sprites/SpriteBatch.d.ts.map +1 -1
  410. package/lib/typescript/src/react/sprites/batchVisibility.d.ts +28 -0
  411. package/lib/typescript/src/react/sprites/batchVisibility.d.ts.map +1 -0
  412. package/lib/typescript/src/react/sprites/spriteSelection.d.ts +58 -0
  413. package/lib/typescript/src/react/sprites/spriteSelection.d.ts.map +1 -0
  414. package/lib/typescript/src/react/sprites/spriteTransform.d.ts +27 -12
  415. package/lib/typescript/src/react/sprites/spriteTransform.d.ts.map +1 -1
  416. package/lib/typescript/src/react/tilemap/TileMapLayer2D.d.ts +69 -0
  417. package/lib/typescript/src/react/tilemap/TileMapLayer2D.d.ts.map +1 -0
  418. package/lib/typescript/src/react/tilemap/tilePresentation.d.ts +217 -0
  419. package/lib/typescript/src/react/tilemap/tilePresentation.d.ts.map +1 -0
  420. package/lib/typescript/src/react/useGameSession.d.ts +48 -0
  421. package/lib/typescript/src/react/useGameSession.d.ts.map +1 -0
  422. package/lib/typescript/src/react/useGameSessionStatus.d.ts +23 -0
  423. package/lib/typescript/src/react/useGameSessionStatus.d.ts.map +1 -0
  424. package/lib/typescript/src/react/viewportBinding.d.ts +5 -1
  425. package/lib/typescript/src/react/viewportBinding.d.ts.map +1 -1
  426. package/lib/typescript/src/react.d.ts +18 -1
  427. package/lib/typescript/src/react.d.ts.map +1 -1
  428. package/lib/typescript/src/scene/defineScene.d.ts +22 -2
  429. package/lib/typescript/src/scene/defineScene.d.ts.map +1 -1
  430. package/lib/typescript/src/scene/types.d.ts +24 -4
  431. package/lib/typescript/src/scene/types.d.ts.map +1 -1
  432. package/lib/typescript/src/sprites/sampleSpriteClip.d.ts +26 -2
  433. package/lib/typescript/src/sprites/sampleSpriteClip.d.ts.map +1 -1
  434. package/lib/typescript/src/sprites/spriteAnimationState.d.ts +6 -7
  435. package/lib/typescript/src/sprites/spriteAnimationState.d.ts.map +1 -1
  436. package/lib/typescript/src/sprites.d.ts +10 -0
  437. package/lib/typescript/src/sprites.d.ts.map +1 -0
  438. package/lib/typescript/src/storage/adapters/asyncStorage.d.ts +18 -0
  439. package/lib/typescript/src/storage/adapters/asyncStorage.d.ts.map +1 -0
  440. package/lib/typescript/src/storage/adapters/memory.d.ts +16 -0
  441. package/lib/typescript/src/storage/adapters/memory.d.ts.map +1 -0
  442. package/lib/typescript/src/storage/errors.d.ts +37 -0
  443. package/lib/typescript/src/storage/errors.d.ts.map +1 -0
  444. package/lib/typescript/src/storage/index.d.ts +11 -0
  445. package/lib/typescript/src/storage/index.d.ts.map +1 -0
  446. package/lib/typescript/src/storage/schema.d.ts +22 -0
  447. package/lib/typescript/src/storage/schema.d.ts.map +1 -0
  448. package/lib/typescript/src/storage/serialization.d.ts +23 -0
  449. package/lib/typescript/src/storage/serialization.d.ts.map +1 -0
  450. package/lib/typescript/src/storage/store.d.ts +3 -0
  451. package/lib/typescript/src/storage/store.d.ts.map +1 -0
  452. package/lib/typescript/src/storage/types.d.ts +69 -0
  453. package/lib/typescript/src/storage/types.d.ts.map +1 -0
  454. package/lib/typescript/src/storage/validation.d.ts +24 -0
  455. package/lib/typescript/src/storage/validation.d.ts.map +1 -0
  456. package/lib/typescript/src/storage.d.ts +2 -0
  457. package/lib/typescript/src/storage.d.ts.map +1 -0
  458. package/lib/typescript/src/testing.d.ts +1 -0
  459. package/lib/typescript/src/testing.d.ts.map +1 -1
  460. package/lib/typescript/src/tilemap/chunkStats.d.ts +14 -0
  461. package/lib/typescript/src/tilemap/chunkStats.d.ts.map +1 -0
  462. package/lib/typescript/src/tilemap/definitions.d.ts +38 -0
  463. package/lib/typescript/src/tilemap/definitions.d.ts.map +1 -0
  464. package/lib/typescript/src/tilemap/errors.d.ts +7 -0
  465. package/lib/typescript/src/tilemap/errors.d.ts.map +1 -0
  466. package/lib/typescript/src/tilemap/index.d.ts +8 -0
  467. package/lib/typescript/src/tilemap/index.d.ts.map +1 -0
  468. package/lib/typescript/src/tilemap/movement.d.ts +52 -0
  469. package/lib/typescript/src/tilemap/movement.d.ts.map +1 -0
  470. package/lib/typescript/src/tilemap/queries.d.ts +21 -0
  471. package/lib/typescript/src/tilemap/queries.d.ts.map +1 -0
  472. package/lib/typescript/src/tilemap/tiledAdapter.d.ts +32 -0
  473. package/lib/typescript/src/tilemap/tiledAdapter.d.ts.map +1 -0
  474. package/lib/typescript/src/tilemap/types.d.ts +127 -0
  475. package/lib/typescript/src/tilemap/types.d.ts.map +1 -0
  476. package/lib/typescript/src/tilemap.d.ts +2 -0
  477. package/lib/typescript/src/tilemap.d.ts.map +1 -0
  478. package/package.json +94 -4
  479. package/src/assets/defineAssets.ts +31 -5
  480. package/src/assets.ts +27 -0
  481. package/src/audio/createGameAudio.ts +749 -0
  482. package/src/audio/errors.ts +12 -0
  483. package/src/audio/index.ts +9 -0
  484. package/src/audio/resolver.ts +74 -0
  485. package/src/audio/types.ts +47 -0
  486. package/src/audio.ts +13 -0
  487. package/src/camera2d/bounds.ts +69 -0
  488. package/src/camera2d/extents.ts +25 -0
  489. package/src/camera2d/follow.ts +165 -0
  490. package/src/camera2d/index.ts +29 -0
  491. package/src/camera2d/interpolation.ts +113 -0
  492. package/src/camera2d/shake.ts +90 -0
  493. package/src/camera2d/transform.ts +148 -0
  494. package/src/camera2d/types.ts +73 -0
  495. package/src/camera2d/validation.ts +126 -0
  496. package/src/camera2d/visibility.ts +181 -0
  497. package/src/camera2d.ts +6 -0
  498. package/src/collision2d/colliders.ts +292 -0
  499. package/src/collision2d/debug.ts +133 -0
  500. package/src/collision2d/filters.ts +48 -0
  501. package/src/collision2d/index.ts +74 -0
  502. package/src/collision2d/intersections.ts +82 -0
  503. package/src/collision2d/manifolds.ts +191 -0
  504. package/src/collision2d/segments.ts +176 -0
  505. package/src/collision2d/spatialHash.ts +211 -0
  506. package/src/collision2d/sweeps.ts +269 -0
  507. package/src/collision2d.ts +6 -0
  508. package/src/core/input/buttonPad.ts +235 -0
  509. package/src/core/input/createInputBuffer.ts +95 -14
  510. package/src/core/input/types.ts +7 -0
  511. package/src/core/session/createGameSession.ts +480 -53
  512. package/src/core/session/deepFreeze.ts +104 -3
  513. package/src/core/session/diagnostics.ts +2 -0
  514. package/src/core/session/types.ts +77 -4
  515. package/src/definition/defineGame.ts +61 -3
  516. package/src/definition/types.ts +10 -0
  517. package/src/events/defineGameEvents.ts +46 -0
  518. package/src/events/errors.ts +14 -0
  519. package/src/events/index.ts +14 -0
  520. package/src/events/payload.ts +234 -0
  521. package/src/events/seed.ts +33 -0
  522. package/src/events/types.ts +53 -0
  523. package/src/events.ts +20 -0
  524. package/src/geometry/helpers.ts +136 -0
  525. package/src/geometry/index.ts +14 -0
  526. package/src/geometry/types.ts +54 -0
  527. package/src/geometry/validation.ts +131 -0
  528. package/src/geometry.ts +6 -0
  529. package/src/haptics/createGameHaptics.ts +214 -0
  530. package/src/haptics/errors.ts +12 -0
  531. package/src/haptics/index.ts +3 -0
  532. package/src/haptics/resolver.ts +58 -0
  533. package/src/haptics/types.ts +48 -0
  534. package/src/haptics.ts +7 -0
  535. package/src/index.ts +37 -1
  536. package/src/particles/createParticleSystem.ts +505 -0
  537. package/src/particles/defineParticleEffect.ts +164 -0
  538. package/src/particles/errors.ts +6 -0
  539. package/src/particles/index.ts +5 -0
  540. package/src/particles/sampling.ts +141 -0
  541. package/src/particles/types.ts +327 -0
  542. package/src/particles.ts +1 -0
  543. package/src/react/GameButtonPad.tsx +436 -0
  544. package/src/react/GamePointerInput.tsx +73 -8
  545. package/src/react/GameView.tsx +160 -61
  546. package/src/react/assets/createGameAssetStore.ts +140 -107
  547. package/src/react/assets/useGameAssets.ts +63 -31
  548. package/src/react/bindAppLifecycle.ts +55 -19
  549. package/src/react/bindGameSession.ts +12 -2
  550. package/src/react/camera2d/GameLayer2D.tsx +43 -0
  551. package/src/react/camera2d/defineGameCamera2D.ts +59 -0
  552. package/src/react/camera2d/usePresentedCameraBinding.ts +185 -0
  553. package/src/react/cleanupList.ts +48 -0
  554. package/src/react/instrumentation.ts +31 -3
  555. package/src/react/lifecycleSource.ts +58 -0
  556. package/src/react/particles/ParticleView.tsx +358 -0
  557. package/src/react/particles/culling.ts +145 -0
  558. package/src/react/particles/index.ts +6 -0
  559. package/src/react/particles/spriteXForm.ts +72 -0
  560. package/src/react/particles/useParticlePresentation.ts +261 -0
  561. package/src/react/pointerBinding.ts +74 -16
  562. package/src/react/pointerCamera.ts +33 -0
  563. package/src/react/pointerCoalescer.ts +36 -10
  564. package/src/react/sprites/GameSprite.tsx +4 -33
  565. package/src/react/sprites/GameWorld2D.tsx +113 -7
  566. package/src/react/sprites/Sprite.tsx +51 -72
  567. package/src/react/sprites/SpriteBatch.tsx +74 -22
  568. package/src/react/sprites/batchVisibility.ts +76 -0
  569. package/src/react/sprites/spriteSelection.ts +133 -0
  570. package/src/react/sprites/spriteTransform.ts +46 -26
  571. package/src/react/tilemap/TileMapLayer2D.tsx +274 -0
  572. package/src/react/tilemap/tilePresentation.ts +491 -0
  573. package/src/react/useGameSession.ts +90 -0
  574. package/src/react/useGameSessionStatus.ts +53 -0
  575. package/src/react/viewportBinding.ts +5 -1
  576. package/src/react.ts +18 -1
  577. package/src/scene/defineScene.ts +47 -5
  578. package/src/scene/types.ts +37 -3
  579. package/src/sprites/sampleSpriteClip.ts +82 -14
  580. package/src/sprites/spriteAnimationState.ts +29 -25
  581. package/src/sprites.ts +22 -0
  582. package/src/storage/adapters/asyncStorage.ts +77 -0
  583. package/src/storage/adapters/memory.ts +58 -0
  584. package/src/storage/errors.ts +88 -0
  585. package/src/storage/index.ts +18 -0
  586. package/src/storage/schema.ts +147 -0
  587. package/src/storage/serialization.ts +248 -0
  588. package/src/storage/store.ts +380 -0
  589. package/src/storage/types.ts +76 -0
  590. package/src/storage/validation.ts +102 -0
  591. package/src/storage.ts +1 -0
  592. package/src/testing.ts +4 -0
  593. package/src/tilemap/chunkStats.ts +24 -0
  594. package/src/tilemap/definitions.ts +327 -0
  595. package/src/tilemap/errors.ts +11 -0
  596. package/src/tilemap/index.ts +10 -0
  597. package/src/tilemap/movement.ts +368 -0
  598. package/src/tilemap/queries.ts +136 -0
  599. package/src/tilemap/tiledAdapter.ts +165 -0
  600. package/src/tilemap/types.ts +119 -0
  601. package/src/tilemap.ts +1 -0
@@ -0,0 +1,292 @@
1
+ import type { Point2D } from '../geometry/types.js';
2
+ export type ParticleSpace = 'world' | 'screen';
3
+ export type ParticleOverflow = 'drop-new' | 'recycle-oldest';
4
+ export type ParticleKind = 'sprite' | 'shape';
5
+ export type ShapeKind = 'circle' | 'rectangle';
6
+ export interface Range {
7
+ readonly min: number;
8
+ readonly max: number;
9
+ }
10
+ /**
11
+ * One author-input endpoint of an explicit scale envelope (T20.1): a fixed
12
+ * scalar or a `{ min, max }` sampling range for deterministic per-particle
13
+ * variation. `defineParticleEffect` normalizes scalars into frozen fixed
14
+ * ranges (T20A-R3).
15
+ */
16
+ export type ParticleScaleEndpointInput = number | Range;
17
+ /**
18
+ * Author-input scale envelope (T20.1): scale begins at `start` and ends at
19
+ * `end`, interpolated linearly from active age. Mutually exclusive with the
20
+ * legacy `scaleOverLife` range; the runtime rejects definitions that carry
21
+ * both (T20A-R3 keeps that check in the type layer as well).
22
+ */
23
+ export interface ParticleScaleEnvelopeInput {
24
+ readonly start: ParticleScaleEndpointInput;
25
+ readonly end: ParticleScaleEndpointInput;
26
+ }
27
+ /**
28
+ * Normalized envelope endpoint (T20A-R3): always a frozen `{ min, max }`
29
+ * range — scalar author inputs never appear on a normalized definition.
30
+ */
31
+ export type ParticleScaleEndpoint = Range;
32
+ /**
33
+ * Normalized explicit scale envelope (T20.1): scale begins at `start` and
34
+ * ends at `end`, interpolated linearly from active age. Both endpoints are
35
+ * sampled independently (start first, then end) so shrinking, growth, and
36
+ * fixed scales are all directly expressible. Endpoints are non-negative and
37
+ * finite; zero collapses the particle to a point. Negative scale has no
38
+ * defined rendering semantics and is rejected at definition time (T20A-R1).
39
+ * Mutually exclusive with the legacy `scaleOverLife` range.
40
+ */
41
+ export interface ParticleScaleEnvelope {
42
+ readonly start: ParticleScaleEndpoint;
43
+ readonly end: ParticleScaleEndpoint;
44
+ }
45
+ export interface SpriteParticleConfig {
46
+ readonly kind: 'sprite';
47
+ readonly sheet: string;
48
+ readonly frame: string;
49
+ readonly size: {
50
+ readonly width: number;
51
+ readonly height: number;
52
+ };
53
+ }
54
+ export interface ShapeParticleConfig {
55
+ readonly kind: 'shape';
56
+ readonly shape: ShapeKind;
57
+ readonly radius?: number;
58
+ readonly width?: number;
59
+ readonly height?: number;
60
+ readonly color?: string;
61
+ }
62
+ export type ParticleConfig = SpriteParticleConfig | ShapeParticleConfig;
63
+ export interface ParticleEffectDefinitionFields {
64
+ readonly capacity: number;
65
+ readonly space: ParticleSpace;
66
+ readonly overflow: ParticleOverflow;
67
+ readonly particle: ParticleConfig;
68
+ readonly burst: {
69
+ readonly count: number;
70
+ };
71
+ readonly lifetimeSeconds: Range;
72
+ readonly speed: Range;
73
+ readonly direction?: Range;
74
+ readonly gravity: Point2D;
75
+ readonly fadeOut: boolean;
76
+ readonly rotation?: Range;
77
+ }
78
+ /**
79
+ * Normalized effect definition (T20A-R3): the scale fields are an exclusive
80
+ * union — a normalized definition carries the explicit `scale` envelope, the
81
+ * legacy `scaleOverLife` range, or neither, never both. Declared as a flat
82
+ * union (not an intersection) so normalized definitions remain assignable to
83
+ * the author-input type at every call site.
84
+ */
85
+ interface NormalizedExplicitScale extends ParticleEffectDefinitionFields {
86
+ readonly scale: ParticleScaleEnvelope;
87
+ readonly scaleOverLife?: undefined;
88
+ }
89
+ interface NormalizedLegacyScale extends ParticleEffectDefinitionFields {
90
+ readonly scale?: undefined;
91
+ readonly scaleOverLife: Range;
92
+ }
93
+ interface NormalizedNoScale extends ParticleEffectDefinitionFields {
94
+ readonly scale?: undefined;
95
+ readonly scaleOverLife?: undefined;
96
+ }
97
+ export type ParticleEffectDefinition = NormalizedExplicitScale | NormalizedLegacyScale | NormalizedNoScale;
98
+ /**
99
+ * Authoring shape for `defineParticleEffect` (T20A-R3): identical to the
100
+ * normalized definition except that scale envelope endpoints accept scalars,
101
+ * and legacy versus explicit scale authoring is an exclusive union — a
102
+ * definition carrying both `scale` and `scaleOverLife` fails to compile.
103
+ * The runtime boundary still validates every JavaScript input.
104
+ */
105
+ export type ParticleEffectDefinitionInput = Omit<ParticleEffectDefinition, 'scale' | 'scaleOverLife'> & ({
106
+ readonly scale?: ParticleScaleEnvelopeInput | undefined;
107
+ readonly scaleOverLife?: undefined;
108
+ } | {
109
+ readonly scale?: undefined;
110
+ readonly scaleOverLife?: Range | undefined;
111
+ });
112
+ export interface ParticleEmitCommand {
113
+ /** Center position of the burst origin (the anchor convention for every kind). */
114
+ readonly position: Point2D;
115
+ readonly seed: number;
116
+ }
117
+ export interface ParticleSystemOptions {
118
+ /**
119
+ * Raw author definitions or already-normalized definitions. Every value is
120
+ * validated, cloned, and frozen at the system boundary (T15-F6).
121
+ */
122
+ readonly effects: Record<string, ParticleEffectDefinitionInput>;
123
+ }
124
+ /**
125
+ * Frozen diagnostic counters. Semantics are per particle:
126
+ * - `emitted`: particles actually placed into a slot this burst (fresh OR
127
+ * recycled).
128
+ * - `dropped`: particles never placed — overflow under `drop-new`, plus every
129
+ * particle of a burst rejected while paused.
130
+ * - `recycled`: placed particles whose slot was previously occupied.
131
+ */
132
+ export interface ParticleDiagnostics {
133
+ readonly active: number;
134
+ readonly emitted: number;
135
+ readonly dropped: number;
136
+ readonly recycled: number;
137
+ }
138
+ /** A frozen, sampled view of one active particle (safe for consumers). */
139
+ export interface ParticleSlotSnapshot {
140
+ readonly active: boolean;
141
+ readonly age: number;
142
+ readonly lifetime: number;
143
+ readonly origin: Point2D;
144
+ readonly position: Point2D;
145
+ readonly velocity: Point2D;
146
+ readonly rotation: number;
147
+ readonly scale: number;
148
+ readonly opacity: number;
149
+ readonly color: string;
150
+ readonly spawnSequence: number;
151
+ readonly effect: string;
152
+ }
153
+ export interface ParticleSystem<TEffects extends Record<string, ParticleEffectDefinitionInput> = Record<string, ParticleEffectDefinition>> {
154
+ /** Validate + place a burst. Throws for unknown effect or malformed command, even while paused. */
155
+ emit<K extends keyof TEffects & string>(effect: K, command: ParticleEmitCommand): void;
156
+ /** Advance the clock; a no-op while paused. */
157
+ update(deltaSeconds: number): void;
158
+ pause(): void;
159
+ resume(): void;
160
+ dispose(): void;
161
+ getDiagnostics(effect?: keyof TEffects & string): ParticleDiagnostics;
162
+ /**
163
+ * Frozen snapshots of active slots. Mutating the returned objects can never
164
+ * affect controller state (T15-F6).
165
+ */
166
+ getActiveParticles(effect: keyof TEffects & string): readonly ParticleSlotSnapshot[];
167
+ /** Session-lifecycle helpers: idempotent transitions that never throw on already-paused/running. */
168
+ pauseIfRunning(): void;
169
+ resumeIfPaused(): void;
170
+ /** 'running' | 'paused' | 'disposed' — read once per decision point. */
171
+ readonly status: 'running' | 'paused' | 'disposed';
172
+ /**
173
+ * Typed presentation binding for renderers (T15-F6): exposes frozen
174
+ * definitions plus fixed-capacity sample buffers without revealing pool
175
+ * internals. One binding per renderer generation; creating it does not
176
+ * start any clock.
177
+ */
178
+ bindPresentation(): ParticlePresentationBinding;
179
+ }
180
+ /**
181
+ * The exclusive presentation-clock lease (T15-RF3).
182
+ *
183
+ * Exactly one owner may drive the clock. While a driver is held, public
184
+ * `tick()` calls are rejected so ad-hoc callers can never double-advance
185
+ * the system. The driver exposes an idle probe and a wake listener so the
186
+ * scheduler can fully stop while nothing is active and resume on the next
187
+ * accepted emission.
188
+ */
189
+ export interface ParticleDriverHandle {
190
+ /** Advance + resample. No-op while the owning system is paused/disposed. */
191
+ step(deltaSeconds: number): void;
192
+ /** True when every pool slot is inactive (scheduler may stop). */
193
+ isIdle(): boolean;
194
+ /** Observe emissions that may end an idle period; pass null to clear. */
195
+ setWakeListener(listener: (() => void) | null): void;
196
+ /** Release the exclusive lease; idempotent. */
197
+ release(): void;
198
+ }
199
+ /**
200
+ * The renderer-facing half of a particle system (T15-F1/F2/F6).
201
+ *
202
+ * A binding owns sampled, fixed-capacity buffers per effect. React views
203
+ * are readers: they never advance the system. The clock itself is held by
204
+ * exactly one driver acquired through `acquireDriver()`.
205
+ */
206
+ export interface ParticlePresentationBinding {
207
+ /** Generation of the owning system at bind time. */
208
+ readonly systemGeneration: number;
209
+ /** The frozen, validated definition for one effect. Throws when unknown. */
210
+ definition(effect: string): ParticleEffectDefinition;
211
+ /** All bound effect names (stable order). */
212
+ readonly effects: readonly string[];
213
+ /**
214
+ * Manual advance for headless tests and custom drivers. Throws while a
215
+ * driver owns the clock (T15-RF3); otherwise advances the active clock and
216
+ * expires slots. A no-op while paused.
217
+ */
218
+ tick(deltaSeconds: number): void;
219
+ /** Acquire the exclusive presentation clock. Throws while another owner holds it. */
220
+ acquireDriver(): ParticleDriverHandle;
221
+ /** Whether a driver currently holds the exclusive clock. */
222
+ readonly driverOwned: boolean;
223
+ /** Monotonic revision of the EMISSION REGISTRY (bumped on membership changes). */
224
+ readonly registryRevision: number;
225
+ /** Current accumulated ACTIVE time (freezes while paused). */
226
+ readonly activeClock: number;
227
+ /** Number of active slots summed over all effects (idle probe). */
228
+ readonly activeCount: number;
229
+ /**
230
+ * Deeply frozen per-emission init records for one effect — the diagnostics/
231
+ * readback surface. Positions derive analytically from activeClock.
232
+ */
233
+ emissions(effect: string): readonly ParticleEmissionRecord[];
234
+ /** Build the bounded UI-runtime registry (frozen). Called on membership changes. */
235
+ buildUiRegistry(): ParticleUiRegistry;
236
+ }
237
+ /**
238
+ * Structural mirror of the React-layer frame snapshot, declared here so the
239
+ * particle types stay renderer-agnostic.
240
+ */
241
+ export interface ParticleFrameSnapshotLike {
242
+ readonly revision: number;
243
+ readonly effects: Readonly<Record<string, {
244
+ readonly x: number[];
245
+ readonly y: number[];
246
+ readonly rotation: number[];
247
+ readonly scale: number[];
248
+ readonly opacity: number[];
249
+ readonly visible: number[];
250
+ readonly capacity: number;
251
+ }>>;
252
+ }
253
+ /** Fixed-capacity presentation buffers for one effect (T15-F2). */
254
+ export interface ParticleSlotBuffers {
255
+ readonly x: Float32Array;
256
+ readonly y: Float32Array;
257
+ readonly rotation: Float32Array;
258
+ readonly scale: Float32Array;
259
+ readonly opacity: Float32Array;
260
+ readonly visible: Uint8Array;
261
+ readonly capacity: number;
262
+ }
263
+ /** Initial state for one emitted particle, in ACTIVE-time coordinates. */
264
+ export interface ParticleEmissionRecord {
265
+ /** ACTIVE-clock time at which this particle was born. */
266
+ readonly bornAt: number;
267
+ readonly originX: number;
268
+ readonly originY: number;
269
+ readonly vx: number;
270
+ readonly vy: number;
271
+ readonly rotation: number;
272
+ readonly rotationSpeed: number;
273
+ readonly scaleStart: number;
274
+ readonly scaleEnd: number;
275
+ readonly lifetime: number;
276
+ readonly spawnSequence: number;
277
+ }
278
+ /**
279
+ * What the presentation layer transfers across the runtime boundary
280
+ * (T15-SF1): bounded per-emission init records plus the scalar clock.
281
+ * Transforms are computed analytically on the UI runtime.
282
+ */
283
+ export interface ParticleUiRegistry {
284
+ readonly registryRevision: number;
285
+ readonly activeClock: number;
286
+ readonly effects: Readonly<Record<string, {
287
+ readonly capacity: number;
288
+ readonly particles: readonly ParticleEmissionRecord[];
289
+ }>>;
290
+ }
291
+ export {};
292
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/particles/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './particles/index.js';
2
+ //# sourceMappingURL=particles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particles.d.ts","sourceRoot":"","sources":["../../../src/particles.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAmB,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Multitouch button pad (T20).
3
+ *
4
+ * The React surface over the headless button-pad controller
5
+ * (`core/input/buttonPad`): compose any number of {@link GameButton} zones
6
+ * inside a {@link GameButtonPad}; every active pointer is mapped to the zone
7
+ * it covers and press/release edges flow into the session's declared button
8
+ * actions. Unlike RN `Pressable`, simultaneous fingers on different buttons
9
+ * all register — hold left/right and jump at the same time.
10
+ *
11
+ * Semantics carried over from the reference implementation:
12
+ * - Release edges ALWAYS fire on touch up/cancel, so edge-triggered actions
13
+ * (a jump pulse) re-arm for the next press.
14
+ * - A finger sliding between zones reassigns: release + press.
15
+ * - Unmount releases every held action; no input outlives the pad.
16
+ *
17
+ * GS-INPUT-03: zones measure into pad coordinates (never parent-relative),
18
+ * every mounted zone has an owner identity with idempotent cleanup, and
19
+ * terminal cleanup never touches a disposed session.
20
+ * GS-INPUT-04: one invalidation policy — pause, session replacement, and
21
+ * unmount bump an ownership generation stamped onto every scheduled RN
22
+ * callback; stale callbacks die at ingress, pad ownership clears, and a
23
+ * fresh down is required before moves can acquire again.
24
+ */
25
+ import { type ReactNode } from 'react';
26
+ import type { StyleProp, ViewStyle } from 'react-native';
27
+ import type { InputMap } from '../definition/types.js';
28
+ import type { SceneMap } from '../definition/types.js';
29
+ import type { GameSession } from '../core/session/types.js';
30
+ /** Declared button action names of an input map. */
31
+ export type ButtonActionName<TInput extends InputMap> = {
32
+ [TName in Extract<keyof TInput, string>]: TInput[TName] extends {
33
+ readonly type: 'button';
34
+ } ? TName : never;
35
+ }[Extract<keyof TInput, string>];
36
+ export interface GameButtonPadProps<TScenes extends SceneMap, TInput extends InputMap> {
37
+ /** The session whose input buffer receives button presses. */
38
+ readonly game: GameSession<TScenes, TInput>;
39
+ /** One or more {@link GameButton} zones (any layout). */
40
+ readonly children?: ReactNode;
41
+ /**
42
+ * Container style layered over the default full-surface overlay. The pad
43
+ * never draws and never blocks touches outside mounted GameButtons.
44
+ */
45
+ readonly style?: StyleProp<ViewStyle>;
46
+ /** Extra hit area around every zone, in dp. Default 0. */
47
+ readonly hitSlop?: number;
48
+ /** Test id for the pad container. */
49
+ readonly testID?: string;
50
+ }
51
+ /**
52
+ * Map simultaneous multitouch zones onto declared button actions.
53
+ *
54
+ * The pad is an INVISIBLE FULL-SURFACE OVERLAY: it draws nothing and its
55
+ * empty areas let touches pass through (`pointerEvents="box-none"`), so you
56
+ * can render whatever React children you like underneath and position each
57
+ * {@link GameButton} anywhere on screen — flex rows, corners, one thumb-zone
58
+ * per side — with ordinary styles. Only the measured bounds of mounted
59
+ * {@link GameButton} components capture touches; every other point falls
60
+ * through to the content below.
61
+ */
62
+ export declare function GameButtonPad<TScenes extends SceneMap, TInput extends InputMap>({ game, children, style, hitSlop, testID, }: GameButtonPadProps<TScenes, TInput>): import("react").JSX.Element;
63
+ export interface GameButtonProps {
64
+ /** The declared button action this zone presses. */
65
+ readonly action: string;
66
+ /** Zone content (label, icon, art). */
67
+ readonly children?: ReactNode;
68
+ /** Zone layout + presentation styles. */
69
+ readonly style?: StyleProp<ViewStyle>;
70
+ /** Test id for end-to-end tests. */
71
+ readonly testID?: string;
72
+ /** Accessibility role announced to the OS. */
73
+ readonly accessibilityRole?: 'button';
74
+ }
75
+ /**
76
+ * One touch zone of the pad. Layout it however you like; its measured
77
+ * bounds become the multitouch hit area for `action`, in pad coordinates.
78
+ *
79
+ * GS-INPUT-03: the zone registers on layout (provisional, parent-relative)
80
+ * and re-resolves into pad space through native measurement whenever
81
+ * available; unmount and action replacement release the zone exactly once.
82
+ */
83
+ export declare function GameButton({ action, children, style, testID, accessibilityRole }: GameButtonProps): import("react").JSX.Element;
84
+ //# sourceMappingURL=GameButtonPad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameButtonPad.d.ts","sourceRoot":"","sources":["../../../../src/react/GameButtonPad.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAAuB,CAAC;AAEzD,oDAAoD;AACpD,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,QAAQ,IAAI;KACrD,KAAK,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,GACvF,KAAK,GACL,KAAK;CACV,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAkCjC,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,QAAQ,EAAE,MAAM,SAAS,QAAQ;IACnF,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAWD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,OAAO,SAAS,QAAQ,EAAE,MAAM,SAAS,QAAQ,EAAE,EAC/E,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,OAAW,EACX,MAAM,GACP,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,+BAyQrC;AAED,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,oCAAoC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,eAAe,+BAsBjG"}
@@ -1 +1 @@
1
- {"version":3,"file":"GamePointerInput.d.ts","sourceRoot":"","sources":["../../../../src/react/GamePointerInput.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,wBAAqB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAAuB,CAAC;AAUzD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAmB,CAAC;AAWpE,qDAAqD;AACrD,KAAK,iBAAiB,CAAC,MAAM,SAAS,QAAQ,IAAI;KAC/C,KAAK,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,kBAAkB,GAAG,KAAK,GAAG,KAAK;CACnG,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAQjC,wEAAwE;AACxE,MAAM,WAAW,qBAAqB,CAAC,OAAO,SAAS,QAAQ,EAAE,MAAM,SAAS,QAAQ;IACtF,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC3C,mEAAmE;IACnE,QAAQ,CAAC,eAAe,CAAC,EAAE,0BAA0B,CAAC;CACvD;AAwED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,QAAQ,EAAE,MAAM,SAAS,QAAQ,EAAE,EAClF,IAAI,EACJ,MAAM,EACN,eAAe,GAChB,EAAE,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,+BA2UxC"}
1
+ {"version":3,"file":"GamePointerInput.d.ts","sourceRoot":"","sources":["../../../../src/react/GamePointerInput.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,wBAAqB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAAuB,CAAC;AAUzD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAmB,CAAC;AAYpE,qDAAqD;AACrD,KAAK,iBAAiB,CAAC,MAAM,SAAS,QAAQ,IAAI;KAC/C,KAAK,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,kBAAkB,GAAG,KAAK,GAAG,KAAK;CACnG,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAQjC,wEAAwE;AACxE,MAAM,WAAW,qBAAqB,CAAC,OAAO,SAAS,QAAQ,EAAE,MAAM,SAAS,QAAQ;IACtF,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC3C,mEAAmE;IACnE,QAAQ,CAAC,eAAe,CAAC,EAAE,0BAA0B,CAAC;CACvD;AA+ED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,QAAQ,EAAE,MAAM,SAAS,QAAQ,EAAE,EAClF,IAAI,EACJ,MAAM,EACN,eAAe,GAChB,EAAE,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,+BAmYxC"}
@@ -1,10 +1,12 @@
1
1
  import { type ComponentType, type ReactNode } from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
3
  import { type SharedValue } from 'react-native-reanimated';
4
+ import type { CameraCut2D } from '../camera2d.js';
4
5
  import type { InputMap, SceneMap } from '../definition/types.js';
5
6
  import type { AssetGroupMap, LoadedAssets } from '../assets/types.js';
6
7
  import type { CommitFrame, GameSession } from '../core/session/types.js';
7
8
  import type { ResolvedViewport2D } from '../viewport2d/index.js';
9
+ import type { GameCamera2DDefinition } from './camera2d/defineGameCamera2D.js';
8
10
  import type { GameViewInstrumentation } from './instrumentation.js';
9
11
  import { type ViewportBinding } from './viewportBinding.js';
10
12
  /** Stable imperative values supplied to a Skia renderer component. */
@@ -18,6 +20,12 @@ export interface GameRendererProps<TScenes extends SceneMap, TAssets extends Ass
18
20
  readonly alpha: SharedValue<number>;
19
21
  /** Latest resolved viewport shared with the input adapter. */
20
22
  readonly viewport: SharedValue<ResolvedViewport2D | undefined>;
23
+ /**
24
+ * The presented camera cut (T12.3), present only when the game opts in
25
+ * via `camera2D`. Undefined until the first committed camera; camera
26
+ * movement never re-renders React.
27
+ */
28
+ readonly camera?: SharedValue<CameraCut2D | undefined>;
21
29
  /** The stable loaded asset lease (T7.5); shape-only renderers omit it. */
22
30
  readonly assets?: LoadedAssets<TAssets>;
23
31
  }
@@ -34,6 +42,13 @@ export interface GameViewProps<TScenes extends SceneMap, TInput extends InputMap
34
42
  readonly presentationKey?: string | number;
35
43
  /** The stable loaded asset lease; shape-only games omit it. */
36
44
  readonly assets?: LoadedAssets<TAssets>;
45
+ /**
46
+ * Optional static camera binding (T12.3). When absent, the exact current
47
+ * viewport path is preserved. GameView owns the presented camera; the
48
+ * renderer receives it as a prop and the pointer adapter discovers it
49
+ * from the mounted surface.
50
+ */
51
+ readonly camera2D?: GameCamera2DDefinition<CommitFrame<TScenes>>;
37
52
  /** Stable Skia renderer component for the session's scene snapshots. */
38
53
  readonly renderer: ComponentType<GameRendererProps<TScenes, TAssets>>;
39
54
  /** Optional measurement callbacks for the Performance Lab (F1). */
@@ -57,5 +72,16 @@ export interface GameViewport {
57
72
  readonly viewport: SharedValue<ResolvedViewport2D | undefined>;
58
73
  }
59
74
  export declare const GameViewportContext: import("react").Context<GameViewport | null>;
60
- export declare function GameView<TScenes extends SceneMap, TInput extends InputMap, TAssets extends AssetGroupMap = AssetGroupMap>({ game, presentationKey, assets, renderer: Renderer, children, style, instrumentation, }: GameViewProps<TScenes, TInput, TAssets>): import("react").JSX.Element;
75
+ /**
76
+ * Context supplying the presented camera to pointer input children.
77
+ *
78
+ * The shared value is owned by `GameView` (fed by the per-session
79
+ * presentation), so renderer and pointer adapter observe the same camera
80
+ * generation. `undefined` when the game has no camera.
81
+ */
82
+ export interface GameCameraSurface {
83
+ readonly presented: SharedValue<CameraCut2D | undefined> | undefined;
84
+ }
85
+ export declare const GameCameraContext: import("react").Context<GameCameraSurface | null>;
86
+ export declare function GameView<TScenes extends SceneMap, TInput extends InputMap, TAssets extends AssetGroupMap = AssetGroupMap>({ game, presentationKey, assets, renderer: Renderer, children, style, instrumentation, camera2D, }: GameViewProps<TScenes, TInput, TAssets>): import("react").JSX.Element;
61
87
  //# sourceMappingURL=GameView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GameView.d.ts","sourceRoot":"","sources":["../../../../src/react/GameView.tsx"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG7F,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,wBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAe,CAAC;AAIxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAmB,CAAC;AACjE,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAE7E,sEAAsE;AACtE,MAAM,WAAW,iBAAiB,CAChC,OAAO,SAAS,QAAQ,EACxB,OAAO,SAAS,aAAa,GAAG,aAAa;IAE7C,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAC/D,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CACzC;AAED,8CAA8C;AAC9C,MAAM,WAAW,aAAa,CAC5B,OAAO,SAAS,QAAQ,EACxB,MAAM,SAAS,QAAQ,EACvB,OAAO,SAAS,aAAa,GAAG,aAAa;IAE7C,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,mEAAmE;IACnE,QAAQ,CAAC,eAAe,CAAC,EAAE,uBAAuB,CAAC;IACnD,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;CAChE;AAED,eAAO,MAAM,mBAAmB,8CAA2C,CAAC;AAsJ5E,wBAAgB,QAAQ,CACtB,OAAO,SAAS,QAAQ,EACxB,MAAM,SAAS,QAAQ,EACvB,OAAO,SAAS,aAAa,GAAG,aAAa,EAC7C,EACA,IAAI,EACJ,eAAe,EACf,MAAM,EACN,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EACR,KAAK,EACL,eAAe,GAChB,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,+BA2DzC"}
1
+ {"version":3,"file":"GameView.d.ts","sourceRoot":"","sources":["../../../../src/react/GameView.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createGameAssetStore.d.ts","sourceRoot":"","sources":["../../../../../src/react/assets/createGameAssetStore.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,aAAa,EAEb,cAAc,EAOf,MAAM,uBAAoB,CAAC;AAI5B,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,KAAK,IAAI,MAAM,CAAC;IAChB,gCAAgC;IAChC,MAAM,IAAI,MAAM,CAAC;IACjB,4DAA4D;IAC5D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9D;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAmED,wBAAgB,wBAAwB,CAAC,SAAS,SAAS,aAAa,EACtE,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,cAAc,GACxB;IACD,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC;CACpC,CA+TA;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"createGameAssetStore.d.ts","sourceRoot":"","sources":["../../../../../src/react/assets/createGameAssetStore.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EACV,aAAa,EAEb,cAAc,EAOf,MAAM,uBAAoB,CAAC;AAI5B,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,KAAK,IAAI,MAAM,CAAC;IAChB,gCAAgC;IAChC,MAAM,IAAI,MAAM,CAAC;IACjB,4DAA4D;IAC5D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9D;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAkED,wBAAgB,wBAAwB,CAAC,SAAS,SAAS,aAAa,EACtE,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,cAAc,GACxB;IACD,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC;CACpC,CAuVA;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGameAssets.d.ts","sourceRoot":"","sources":["../../../../../src/react/assets/useGameAssets.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAoB,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAAwB,CAAC;AAE7D,wEAAwE;AACxE,MAAM,WAAW,SAAS,CAAC,SAAS,SAAS,aAAa;IACxD,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAiBD;;qDAEqD;AACrD,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,aAAa,IACvD;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAClH;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACrH;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAExG;8CAC8C;AAC9C,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAEzE;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAEjE;AAED,wBAAgB,aAAa,CAAC,SAAS,SAAS,aAAa,EAC3D,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,CAAA;CAAE,EAC3E,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC,GAC3D,eAAe,CAAC,SAAS,CAAC,CAoG5B"}
1
+ {"version":3,"file":"useGameAssets.d.ts","sourceRoot":"","sources":["../../../../../src/react/assets/useGameAssets.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAoB,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAAwB,CAAC;AAE7D,wEAAwE;AACxE,MAAM,WAAW,SAAS,CAAC,SAAS,SAAS,aAAa;IACxD,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAiBD;;qDAEqD;AACrD,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,aAAa,IACvD;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAClH;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACrH;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAExG;8CAC8C;AAC9C,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAEzE;AAmBD,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAEjE;AAED,wBAAgB,aAAa,CAAC,SAAS,SAAS,aAAa,EAC3D,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,CAAA;CAAE,EAC3E,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC,GAC3D,eAAe,CAAC,SAAS,CAAC,CA6G5B"}
@@ -1,4 +1,4 @@
1
- import type { GameSessionStatus } from '../core/session/types.js';
1
+ import type { GameSessionStatus, GameSubscription } from '../core/session/types.js';
2
2
  /** Minimal AppState-like source used to keep this seam platform-neutral. */
3
3
  export interface AppLifecycleSource {
4
4
  /** The current app state, read synchronously at bind time. */
@@ -15,6 +15,12 @@ export interface AppLifecycleSession {
15
15
  pause(): void;
16
16
  /** Resume a paused session. */
17
17
  resume(): void;
18
+ /**
19
+ * Optional status observation (T10.6): when present, the binder also
20
+ * guards against an external `start()` while the host is inactive, so a
21
+ * frame loop can never escape into the background.
22
+ */
23
+ addStatusListener?(listener: (status: GameSessionStatus) => void): GameSubscription;
18
24
  }
19
25
  /**
20
26
  * Pause a running session when the app becomes inactive or backgrounded and
@@ -1 +1 @@
1
- {"version":3,"file":"bindAppLifecycle.d.ts","sourceRoot":"","sources":["../../../../src/react/bindAppLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAAuB,CAAC;AAE/D,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,gBAAgB,CACd,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC/B;QAAE,MAAM,IAAI,IAAI,CAAA;KAAE,CAAC;CACvB;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,SAAS,IAAI,iBAAiB,CAAC;IAC/B,wDAAwD;IACxD,KAAK,IAAI,IAAI,CAAC;IACd,+BAA+B;IAC/B,MAAM,IAAI,IAAI,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,MAAM,IAAI,CAyCZ"}
1
+ {"version":3,"file":"bindAppLifecycle.d.ts","sourceRoot":"","sources":["../../../../src/react/bindAppLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAAuB,CAAC;AAGjF,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,gBAAgB,CACd,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC/B;QAAE,MAAM,IAAI,IAAI,CAAA;KAAE,CAAC;CACvB;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,SAAS,IAAI,iBAAiB,CAAC;IAC/B,wDAAwD;IACxD,KAAK,IAAI,IAAI,CAAC;IACd,+BAA+B;IAC/B,MAAM,IAAI,IAAI,CAAC;IACf;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GAAG,gBAAgB,CAAC;CACrF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,MAAM,IAAI,CAsEZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"bindGameSession.d.ts","sourceRoot":"","sources":["../../../../src/react/bindGameSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,wBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAAuB,CAAC;AAEtE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,QAAQ,EAAE,MAAM,SAAS,QAAQ,EAC/E,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,EAClC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,GAC7C,MAAM,IAAI,CAwBZ"}
1
+ {"version":3,"file":"bindGameSession.d.ts","sourceRoot":"","sources":["../../../../src/react/bindGameSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,wBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAAuB,CAAC;AAGtE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,QAAQ,EAAE,MAAM,SAAS,QAAQ,EAC/E,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,EAClC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,GAC7C,MAAM,IAAI,CAiCZ"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * `GameLayer2D` — an ordered parallax layer (T12.5).
3
+ *
4
+ * A small rendering primitive, not a scene graph: the layer draws its
5
+ * children with the presented camera whose center contribution is scaled
6
+ * per axis by the parallax factor. JSX order is render order; no z-index
7
+ * scheduler exists.
8
+ *
9
+ * Frozen policy: parallax scales only the camera center contribution. Zoom
10
+ * and rotation apply fully at every factor; factor 1 is the primary layer,
11
+ * factor 0 is camera-fixed on that axis. The correction is a pure
12
+ * translation relative to the parent camera, so layers never double-apply
13
+ * zoom or rotation.
14
+ */
15
+ import type { ReactNode } from 'react';
16
+ export declare function GameLayer2D({ parallax, children, }: {
17
+ /** Per-axis parallax factor; defaults to the primary layer `{ x: 1, y: 1 }`. */
18
+ readonly parallax?: {
19
+ readonly x: number;
20
+ readonly y: number;
21
+ };
22
+ readonly children: ReactNode;
23
+ }): import("react").JSX.Element;
24
+ //# sourceMappingURL=GameLayer2D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameLayer2D.d.ts","sourceRoot":"","sources":["../../../../../src/react/camera2d/GameLayer2D.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,wBAAgB,WAAW,CAAC,EAC1B,QAAyB,EACzB,QAAQ,GACT,EAAE;IACD,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B,+BASA"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Camera2D definition (T12.3).
3
+ *
4
+ * A static, declarative camera binding: `select` reads the authored camera
5
+ * from committed frames, and the optional `cut` predicate signals an
6
+ * explicit cut (teleports, respawns) where interpolation must snap. The
7
+ * binding is owned by `GameView` and never by the renderer or the pointer
8
+ * adapter, so both consume the same presented generation.
9
+ */
10
+ import type { Camera2D } from '../../camera2d.js';
11
+ /** Failure context for a camera selector/cut/validation failure (GS-CAMERA-02). */
12
+ export interface GameCameraErrorInfo {
13
+ /** Which stage of the commit transaction failed. */
14
+ readonly phase: 'select' | 'cut' | 'validate';
15
+ /** The original thrown value, preserved verbatim. */
16
+ readonly error: unknown;
17
+ /** The scene whose commit failed. */
18
+ readonly scene: string;
19
+ }
20
+ /** The static camera definition supplied to `GameView`. */
21
+ export interface GameCamera2DDefinition<TFrame> {
22
+ /**
23
+ * Read the authored camera from a committed frame. Runs once per commit
24
+ * on the JS runtime; returning the same value keeps the camera static.
25
+ */
26
+ readonly select: (frame: TFrame) => Camera2D;
27
+ /**
28
+ * Optional explicit cut signal evaluated per commit. Returning true
29
+ * snaps presentation (no interpolation into the new camera), joining the
30
+ * automatic cuts for scene transitions, session replacement, and
31
+ * binding-generation changes.
32
+ */
33
+ readonly cut?: (frame: TFrame) => boolean;
34
+ /**
35
+ * Optional failure reporter (GS-CAMERA-02). Invoked at most once per
36
+ * failure episode with the failing phase and scene; a successful commit
37
+ * resets deduplication. Failures without a reporter keep the last valid
38
+ * presentation silently.
39
+ */
40
+ readonly onError?: (info: GameCameraErrorInfo) => void;
41
+ }
42
+ /** Validate and return a camera definition. */
43
+ export declare function defineGameCamera2D<TFrame>(definition: GameCamera2DDefinition<TFrame>): GameCamera2DDefinition<TFrame>;
44
+ //# sourceMappingURL=defineGameCamera2D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineGameCamera2D.d.ts","sourceRoot":"","sources":["../../../../../src/react/camera2d/defineGameCamera2D.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAgB,CAAC;AAE/C,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;IAC9C,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB,CAAC,MAAM;IAC5C;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACxD;AAED,+CAA+C;AAC/C,wBAAgB,kBAAkB,CAAC,MAAM,EACvC,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,GACzC,sBAAsB,CAAC,MAAM,CAAC,CAWhC"}
@@ -0,0 +1,22 @@
1
+ import { type SharedValue } from 'react-native-reanimated';
2
+ import { type CameraCut2D } from '../../camera2d.js';
3
+ import type { CommitFrame } from '../../core/session/types.js';
4
+ import type { SceneMap } from '../../definition/types.js';
5
+ import type { GameCamera2DDefinition } from './defineGameCamera2D.js';
6
+ /** A UI-side camera binding for one session presentation. */
7
+ export interface PresentedCameraBinding<TScenes extends SceneMap> {
8
+ /** Evaluate the selector against one committed frame (JS runtime). */
9
+ commit(frame: CommitFrame<TScenes>): void;
10
+ /** Advance presentation by the current alpha (UI runtime worklet). */
11
+ present(alpha: number): void;
12
+ /** Drop the current state; the presented value stays as-is. */
13
+ dispose(): void;
14
+ }
15
+ /**
16
+ * Create the camera binding for one presentation.
17
+ *
18
+ * The `presented` shared value is owned by `GameView` so the pointer
19
+ * adapter (a sibling of the renderer) reads the same generation.
20
+ */
21
+ export declare function usePresentedCameraBinding<TScenes extends SceneMap>(definition: GameCamera2DDefinition<CommitFrame<TScenes>> | undefined, presented: SharedValue<CameraCut2D | undefined>): PresentedCameraBinding<TScenes>;
22
+ //# sourceMappingURL=usePresentedCameraBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePresentedCameraBinding.d.ts","sourceRoot":"","sources":["../../../../../src/react/camera2d/usePresentedCameraBinding.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAA6B,KAAK,WAAW,EAAE,MAAM,mBAAgB,CAAC;AAE7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAsB,CAAC;AAEnE,6DAA6D;AAC7D,MAAM,WAAW,sBAAsB,CAAC,OAAO,SAAS,QAAQ;IAC9D,sEAAsE;IACtE,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1C,sEAAsE;IACtE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+DAA+D;IAC/D,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,QAAQ,EAChE,UAAU,EAAE,sBAAsB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,EACpE,SAAS,EAAE,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC,GAC9C,sBAAsB,CAAC,OAAO,CAAC,CAoIjC"}