rn-gamekit 0.1.0 → 0.2.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 (601) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/README.md +97 -16
  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 +100 -10
  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,204 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useMemo, useRef } from 'react';
4
+ import { useSharedValue } from 'react-native-reanimated';
5
+
6
+ /**
7
+ * What the presentation hook hands to views (T15-SF1): a SCALAR active-time
8
+ * clock written every running frame, plus the bounded emission registry
9
+ * transferred only when membership changes. No per-frame bulk arrays cross
10
+ * the runtime boundary.
11
+ */
12
+
13
+ const EMPTY_REGISTRY = Object.freeze({
14
+ registryRevision: -1,
15
+ activeClock: 0,
16
+ effects: Object.freeze({})
17
+ });
18
+ function defaultSchedule(tick) {
19
+ const id = requestAnimationFrame(tick);
20
+ return () => cancelAnimationFrame(id);
21
+ }
22
+
23
+ /**
24
+ * Own THE exclusive presentation clock for one system (T15-F1/T15-RF3).
25
+ *
26
+ * Per-frame runtime work is ONE scalar write (`clock.value`); the bounded
27
+ * emission registry is transferred only when membership changes (T15-SF1).
28
+ *
29
+ * Pause sources are applied through ONE effect-owned control so transitions
30
+ * stop/start the scheduler immediately — including while the driver is idle
31
+ * or asleep (T15-SF3). Scheduling runs only when the system is running AND
32
+ * at least one particle is active; it fully stops otherwise and restarts
33
+ * from resume/wake transitions.
34
+ */
35
+ export function useParticlePresentation(system, options) {
36
+ const binding = useMemo(() => system.bindPresentation(), [system]);
37
+ const clock = useSharedValue(binding.activeClock);
38
+ const registry = useSharedValue(EMPTY_REGISTRY);
39
+ // T20F-R2: the driver effect must key ONLY on ownership inputs. Shared
40
+ // values are stable in Reanimated; the refs keep the effect closures
41
+ // pointing at the latest instance even where mocks hand back fresh objects.
42
+ const clockRef = useRef(clock);
43
+ const registryRef = useRef(registry);
44
+ useEffect(() => {
45
+ clockRef.current = clock;
46
+ registryRef.current = registry;
47
+ }, [clock, registry]);
48
+
49
+ // Latest-source refs (frame loop + reactive callbacks read these).
50
+ const lifecycleRef = useRef(options?.lifecycle);
51
+ lifecycleRef.current = options?.lifecycle;
52
+ const sessionRef = useRef(options?.sessionStatus);
53
+ sessionRef.current = options?.sessionStatus;
54
+ const manualReaderRef = useRef(options?.manualPaused);
55
+ manualReaderRef.current = options?.manualPaused;
56
+ const scheduleRef = useRef(options?.schedule ?? defaultSchedule);
57
+ const nowRef = useRef(options?.now ?? (() => Date.now()));
58
+ // Manual pause lives OUTSIDE render so the imperative setter is stable and
59
+ // reactive without depending on animation frames.
60
+ const manualPausedRef = useRef(false);
61
+
62
+ // Stable control ref owned by the effect (T15-TF2): the public setter and
63
+ // every pause transition route through this without capturing stale state.
64
+ const controlRef = useRef({
65
+ applyPause: () => {},
66
+ syncRegistry: () => {},
67
+ updateScheduling: () => {}
68
+ });
69
+
70
+ // T20F-R2: STABLE across re-renders — it reads only refs plus `system`, so
71
+ // the driver effect below keeps a single acquire/subscription for the
72
+ // lifetime of one system instead of rebinding on every parent render.
73
+ const applyCombinedPause = useCallback(() => {
74
+ if (system.status === 'disposed') return;
75
+ const session = lifecycleRef.current ? lifecycleRef.current.getStatus() : sessionRef.current?.() ?? 'running';
76
+ const effectivePaused = manualPausedRef.current || (manualReaderRef.current?.() ?? false) || session === 'paused' || session === 'disposed';
77
+ if (effectivePaused) system.pauseIfRunning();else system.resumeIfPaused();
78
+ }, [system]);
79
+ useEffect(() => {
80
+ const driver = binding.acquireDriver();
81
+ let cancelled = false;
82
+ let cancelSchedule = null;
83
+ let last = nowRef.current();
84
+ const stopScheduling = () => {
85
+ if (cancelSchedule) {
86
+ cancelSchedule();
87
+ cancelSchedule = null;
88
+ }
89
+ };
90
+ const startScheduling = () => {
91
+ if (cancelled || cancelSchedule !== null) return;
92
+ last = nowRef.current();
93
+ let canceller = null;
94
+ // The executed tick clears its own handle so the next frame may be
95
+ // scheduled from inside stepFrame (self-perpetuating loop).
96
+ canceller = scheduleRef.current(() => {
97
+ if (cancelSchedule === canceller) cancelSchedule = null;
98
+ stepFrame();
99
+ });
100
+ cancelSchedule = canceller ?? null;
101
+ };
102
+ const syncRegistry = () => {
103
+ if (binding.registryRevision !== registryRef.current.value.registryRevision) {
104
+ // Bounded transfer: only on membership changes (T15-SF1). Expiration
105
+ // bumps the revision too, so the terminal prune ships (T15-TF1).
106
+ registryRef.current.value = binding.buildUiRegistry();
107
+ }
108
+ };
109
+ const stepFrame = () => {
110
+ if (cancelled) return;
111
+ const now = nowRef.current();
112
+ const dt = Math.max(0, Math.min((now - last) / 1000, 0.1));
113
+ last = now;
114
+ applyCombinedPause();
115
+ driver.step(dt);
116
+ syncRegistry();
117
+
118
+ // ALWAYS publish the terminal scalar — including the step that
119
+ // transitions to zero actives, so renderers hide the expired record
120
+ // before we sleep (T15-TF1).
121
+ clockRef.current.value = binding.activeClock;
122
+
123
+ // T20L-R2: the frame path enforces the same running guard as the
124
+ // reactive path — a paused step cannot expire particles, so scheduling
125
+ // another frame while paused would spin the driver forever.
126
+ if (system.status === 'running' && !driver.isIdle()) {
127
+ startScheduling();
128
+ return;
129
+ }
130
+ // Paused or idle: fully stop; resume transitions and emissions restart us.
131
+ stopScheduling();
132
+ };
133
+
134
+ // Effect-owned scheduling control (T15-TF2): pause transitions call this
135
+ // synchronously via the stable ref.
136
+ controlRef.current = {
137
+ applyPause: applyCombinedPause,
138
+ syncRegistry,
139
+ updateScheduling() {
140
+ applyCombinedPause();
141
+ syncRegistry();
142
+ if (cancelled || system.status === 'disposed') {
143
+ stopScheduling();
144
+ return;
145
+ }
146
+ // Schedule only when running AND something is active.
147
+ if (system.status === 'running' && !driver.isIdle()) {
148
+ startScheduling();
149
+ } else {
150
+ stopScheduling();
151
+ }
152
+ }
153
+ };
154
+
155
+ // Reactive pause application + registry sync + reschedule.
156
+ driver.setWakeListener(() => controlRef.current.updateScheduling());
157
+
158
+ // Initial synchronous application at bind time.
159
+ applyCombinedPause();
160
+ stepFrame();
161
+ return () => {
162
+ cancelled = true;
163
+ driver.setWakeListener(null);
164
+ stopScheduling();
165
+ driver.release();
166
+ };
167
+ }, [system, binding, applyCombinedPause]);
168
+
169
+ // T20F-R2: the lifecycle subscription is keyed by the SOURCE identity, not
170
+ // by render — one subscribe/detach per system generation. Status changes
171
+ // route through the effect-owned control so pause transitions stay
172
+ // synchronous without rebinding the driver.
173
+ const lifecycleSource = options?.lifecycle ?? null;
174
+ const legacySubscribe = options?.sessionSubscribe ?? null;
175
+ useEffect(() => {
176
+ const onSessionStatus = status => {
177
+ sessionRef.current = () => status;
178
+ controlRef.current.updateScheduling();
179
+ };
180
+ const detach = lifecycleSource !== null ? lifecycleSource.subscribe(onSessionStatus) : legacySubscribe?.(onSessionStatus);
181
+ // T20F-R2 re-review: a REPLACED source may already be paused (or running)
182
+ // — apply its current status immediately instead of waiting for its next
183
+ // transition, so paused emissions are never accepted in between.
184
+ controlRef.current.updateScheduling();
185
+ return detach;
186
+ }, [lifecycleSource, legacySubscribe]);
187
+
188
+ // Initial registry transfer at bind time.
189
+ useEffect(() => {
190
+ registryRef.current.value = binding.buildUiRegistry();
191
+ }, [binding]);
192
+ const setManualPaused = useCallback(paused => {
193
+ manualPausedRef.current = paused;
194
+ // Route through the effect-owned control: applies combined sources AND
195
+ // stops/starts the scheduler immediately (T15-TF2).
196
+ controlRef.current.updateScheduling();
197
+ }, []);
198
+ return {
199
+ clock,
200
+ registry,
201
+ setManualPaused
202
+ };
203
+ }
204
+ //# sourceMappingURL=useParticlePresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useSharedValue","EMPTY_REGISTRY","Object","freeze","registryRevision","activeClock","effects","defaultSchedule","tick","id","requestAnimationFrame","cancelAnimationFrame","useParticlePresentation","system","options","binding","bindPresentation","clock","registry","clockRef","registryRef","current","lifecycleRef","lifecycle","sessionRef","sessionStatus","manualReaderRef","manualPaused","scheduleRef","schedule","nowRef","now","Date","manualPausedRef","controlRef","applyPause","syncRegistry","updateScheduling","applyCombinedPause","status","session","getStatus","effectivePaused","pauseIfRunning","resumeIfPaused","driver","acquireDriver","cancelled","cancelSchedule","last","stopScheduling","startScheduling","canceller","stepFrame","value","buildUiRegistry","dt","Math","max","min","step","isIdle","setWakeListener","release","lifecycleSource","legacySubscribe","sessionSubscribe","onSessionStatus","detach","subscribe","setManualPaused","paused"],"sourceRoot":"../../../../src","sources":["react/particles/useParticlePresentation.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
 
3
+ import { logicalToWorld2D } from "../camera2d.js";
3
4
  import { containsSurfacePoint, surfaceToWorld } from "../viewport2d/index.js";
5
+ /** One accepted surface -> world conversion with its exact inputs (T12-TF3). */
4
6
 
5
7
  /**
6
8
  * A coalesced pointer event stamped with the binding epoch it was scheduled
@@ -8,6 +10,12 @@ import { containsSurfacePoint, surfaceToWorld } from "../viewport2d/index.js";
8
10
  * replacement carry the old epoch and are rejected on the RN runtime, so a
9
11
  * stale begin cannot reacquire input with old coordinates and a stale
10
12
  * terminal edge cannot release a newer capture that reused the pointer id.
13
+ *
14
+ * T12-F4: the packet also carries the presented camera cut sampled AT
15
+ * EVENT TIME on the UI runtime. JS inverts through that stamp — never a
16
+ * later lazy read — so the world coordinate matches the camera under the
17
+ * finger when the touch happened, even while the camera follows, zooms,
18
+ * rotates, or shakes.
11
19
  */
12
20
 
13
21
  /** Monotonic generation source for factory-created bindings (F3). */
@@ -22,7 +30,7 @@ let nextFactoryGeneration = 1;
22
30
  * it and create a fresh binding. Returns whether a new binding was created.
23
31
  */
24
32
  export function createPointerBinding(identity, getViewport, previous) {
25
- if (previous !== undefined && previous.identity.input === identity.input && previous.identity.action === identity.action && previous.identity.viewport === identity.viewport) {
33
+ if (previous !== undefined && previous.identity.input === identity.input && previous.identity.action === identity.action && previous.identity.viewport === identity.viewport && previous.identity.camera === identity.camera) {
26
34
  return {
27
35
  entry: previous,
28
36
  created: false
@@ -44,9 +52,11 @@ export function createPointerBinding(identity, getViewport, previous) {
44
52
  * Platform-neutral pointer binding seam.
45
53
  *
46
54
  * It converts gesture positions from surface coordinates into logical world
47
- * coordinates through the current resolved viewport, rejects begins that
55
+ * coordinates through the current resolved viewport (T12.4: and through the
56
+ * currently presented camera when the game has one), rejects begins that
48
57
  * start in `fit` letterbox space, and forwards semantic events into the
49
- * session input buffer. The high-level `handleTouches*` methods mirror the
58
+ * session input buffer. Containment always happens BEFORE camera inversion:
59
+ * letterbox space is rejected regardless of the camera. The high-level `handleTouches*` methods mirror the
50
60
  * adapter's touch dispatch (including forwarding the final up position) so
51
61
  * the full adapter behavior is testable without mounting native gesture
52
62
  * views. Ownership and neutralization live in the input buffer.
@@ -55,15 +65,43 @@ export class PointerBinding {
55
65
  #action;
56
66
  #input;
57
67
  #getViewport;
68
+ #onSample;
58
69
  #generation;
59
70
  #disposed = false;
60
- constructor(action, input, getViewport, generation) {
71
+ constructor(action, input, getViewport, generation, onSample) {
61
72
  this.#action = action;
62
73
  this.#input = input;
63
74
  this.#getViewport = getViewport;
75
+ this.#onSample = onSample;
64
76
  this.#generation = generation;
65
77
  }
66
78
 
79
+ /**
80
+ * Surface -> world through the viewport and the EVENT-TIME camera cut
81
+ * (T12.4, T12-F4).
82
+ *
83
+ * The frozen order: inverse viewport first, then inverse camera, using
84
+ * the camera stamp sampled by the UI worklet when the touch happened —
85
+ * the same camera the renderer drew at that moment. Without a camera
86
+ * stamp this is exactly `surfaceToWorld`.
87
+ */
88
+ #toWorld(viewport, point, camera) {
89
+ const logical = surfaceToWorld(viewport, point);
90
+ const world = camera === undefined ? logical : logicalToWorld2D(logical, camera.camera, viewport.visibleLogicalBounds);
91
+ // T12-TF3: report one accepted conversion with its exact inputs and
92
+ // output — the lab measures the round trip from the real pipeline.
93
+ this.#onSample?.({
94
+ surface: {
95
+ x: point.x,
96
+ y: point.y
97
+ },
98
+ viewport,
99
+ camera,
100
+ world
101
+ });
102
+ return world;
103
+ }
104
+
67
105
  /**
68
106
  * The monotonic adapter-owned generation this binding belongs to (F3).
69
107
  * Generations never reset to zero, so a replacement binding and the
@@ -89,13 +127,13 @@ export class PointerBinding {
89
127
  }
90
128
  switch (packet.kind) {
91
129
  case 'begin':
92
- this.handleTouchesDown(packet.pointerId, packet.x, packet.y);
130
+ this.handleTouchesDown(packet.pointerId, packet.x, packet.y, packet.camera);
93
131
  break;
94
132
  case 'move':
95
- this.handleTouchesMove(packet.pointerId, packet.x, packet.y);
133
+ this.handleTouchesMove(packet.pointerId, packet.x, packet.y, packet.camera);
96
134
  break;
97
135
  case 'end':
98
- this.handleTouchesUp(packet.pointerId, packet.x, packet.y);
136
+ this.handleTouchesUp(packet.pointerId, packet.x, packet.y, packet.camera);
99
137
  break;
100
138
  case 'cancel':
101
139
  this.handleTouchesCancelled();
@@ -110,7 +148,7 @@ export class PointerBinding {
110
148
  * Returns `false` when the layout is invalid or the point starts in
111
149
  * letterbox space; the gesture must be rejected and never becomes the owner.
112
150
  */
113
- begin(pointerId, surfacePoint) {
151
+ begin(pointerId, surfacePoint, camera) {
114
152
  if (this.#disposed) {
115
153
  return false;
116
154
  }
@@ -121,12 +159,12 @@ export class PointerBinding {
121
159
  if (!containsSurfacePoint(viewport, surfacePoint)) {
122
160
  return false;
123
161
  }
124
- this.#input.begin(this.#action, pointerId, surfaceToWorld(viewport, surfacePoint));
162
+ this.#input.begin(this.#action, pointerId, this.#toWorld(viewport, surfacePoint, camera));
125
163
  return true;
126
164
  }
127
165
 
128
166
  /** Move a pointer. Conversion remains unbounded outside content bounds. */
129
- move(pointerId, surfacePoint) {
167
+ move(pointerId, surfacePoint, camera) {
130
168
  if (this.#disposed) {
131
169
  return;
132
170
  }
@@ -134,7 +172,7 @@ export class PointerBinding {
134
172
  if (viewport === undefined) {
135
173
  return;
136
174
  }
137
- this.#input.move(this.#action, pointerId, surfaceToWorld(viewport, surfacePoint));
175
+ this.#input.move(this.#action, pointerId, this.#toWorld(viewport, surfacePoint, camera));
138
176
  }
139
177
 
140
178
  /** End a pointer. The owning pointer is released by the input buffer. */
@@ -154,19 +192,19 @@ export class PointerBinding {
154
192
  }
155
193
 
156
194
  /** Handle a touch-down gesture event with a surface position. */
157
- handleTouchesDown(pointerId, x, y) {
195
+ handleTouchesDown(pointerId, x, y, camera) {
158
196
  return this.begin(pointerId, {
159
197
  x,
160
198
  y
161
- });
199
+ }, camera);
162
200
  }
163
201
 
164
202
  /** Handle a touch-move gesture event with a surface position. */
165
- handleTouchesMove(pointerId, x, y) {
203
+ handleTouchesMove(pointerId, x, y, camera) {
166
204
  this.move(pointerId, {
167
205
  x,
168
206
  y
169
- });
207
+ }, camera);
170
208
  }
171
209
 
172
210
  /**
@@ -175,11 +213,11 @@ export class PointerBinding {
175
213
  * The final position is forwarded before ownership ends so the documented
176
214
  * release frame contains the actual point where the pointer lifted.
177
215
  */
178
- handleTouchesUp(pointerId, x, y) {
216
+ handleTouchesUp(pointerId, x, y, camera) {
179
217
  this.move(pointerId, {
180
218
  x,
181
219
  y
182
- });
220
+ }, camera);
183
221
  this.end(pointerId);
184
222
  }
185
223
 
@@ -1 +1 @@
1
- {"version":3,"names":["containsSurfacePoint","surfaceToWorld","nextFactoryGeneration","createPointerBinding","identity","getViewport","previous","undefined","input","action","viewport","entry","created","binding","dispose","PointerBinding","generation","disposed","constructor","dispatch","packet","kind","handleTouchesDown","pointerId","x","y","handleTouchesMove","handleTouchesUp","handleTouchesCancelled","begin","surfacePoint","move","end","cancel"],"sourceRoot":"../../../src","sources":["react/pointerBinding.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["logicalToWorld2D","containsSurfacePoint","surfaceToWorld","nextFactoryGeneration","createPointerBinding","identity","getViewport","previous","undefined","input","action","viewport","camera","entry","created","binding","dispose","PointerBinding","onSample","generation","disposed","constructor","toWorld","#toWorld","point","logical","world","visibleLogicalBounds","surface","x","y","dispatch","packet","kind","handleTouchesDown","pointerId","handleTouchesMove","handleTouchesUp","handleTouchesCancelled","begin","surfacePoint","move","end","cancel"],"sourceRoot":"../../../src","sources":["react/pointerBinding.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Event-time camera selection for pointer packets (T12-SF1, T12-TF1).
5
+ *
6
+ * Internal module (not part of the public barrel): the ONE rule that pairs
7
+ * a forwarded pointer event with the presented camera at the event's own
8
+ * native sample. `GamePointerInput` and the focused tests import the same
9
+ * function, so the test can never drift from production.
10
+ */
11
+
12
+ /** A move's explicit capture: `captured: true` even when the value is
13
+ * undefined, so a captured-undefined camera is distinguishable from "no
14
+ * stamp" and never falls back to a later presentation (T12-SF1). */
15
+
16
+ /** The event-time camera for one forwarded event (worklet-safe). */
17
+ export function packetCameraFor(forwarded, presented) {
18
+ 'worklet';
19
+
20
+ if (forwarded.kind === 'move') {
21
+ const stamp = forwarded.stamp;
22
+ // A move ALWAYS carries its capture (possibly undefined): a captured
23
+ // undefined stays undefined — never fall back to a later camera.
24
+ return stamp !== undefined ? stamp.value : presented;
25
+ }
26
+ return presented;
27
+ }
28
+ //# sourceMappingURL=pointerCamera.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["packetCameraFor","forwarded","presented","kind","stamp","undefined","value"],"sourceRoot":"../../../src","sources":["react/pointerCamera.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;;AAMA;AACA,OAAO,SAASA,eAAeA,CAC7BC,SAAgC,EAChCC,SAAkC,EACT;EACzB,SAAS;;EACT,IAAID,SAAS,CAACE,IAAI,KAAK,MAAM,EAAE;IAC7B,MAAMC,KAAK,GAAGH,SAAS,CAACG,KAA2C;IACnE;IACA;IACA,OAAOA,KAAK,KAAKC,SAAS,GAAGD,KAAK,CAACE,KAAK,GAAGJ,SAAS;EACtD;EACA,OAAOA,SAAS;AAClB","ignoreList":[]}
@@ -124,7 +124,8 @@ export function reducePointerCoalescer(state, input) {
124
124
  kind: 'move',
125
125
  pointerId: active.pointerId,
126
126
  x: active.pendingMove.x,
127
- y: active.pendingMove.y
127
+ y: active.pendingMove.y,
128
+ stamp: active.pendingMove.stamp
128
129
  }]
129
130
  };
130
131
  }
@@ -149,13 +150,18 @@ export function reducePointerCoalescer(state, input) {
149
150
  }]
150
151
  };
151
152
  }
152
- const shouldForward = input.nowMs - active.lastForwardMs >= state.maxMoveIntervalMs;
153
+
154
+ // The remaining branch is the move input (down/up/cancel/flush/reset
155
+ // returned above); its optional stamp rides with the sample.
156
+ const moveInput = input;
157
+ const shouldForward = moveInput.nowMs - active.lastForwardMs >= state.maxMoveIntervalMs;
153
158
  const nextActive = {
154
- pointerId: input.pointerId,
155
- lastForwardMs: shouldForward ? input.nowMs : active.lastForwardMs,
159
+ pointerId: moveInput.pointerId,
160
+ lastForwardMs: shouldForward ? moveInput.nowMs : active.lastForwardMs,
156
161
  pendingMove: shouldForward ? undefined : {
157
- x: input.x,
158
- y: input.y
162
+ x: moveInput.x,
163
+ y: moveInput.y,
164
+ stamp: moveInput.stamp
159
165
  }
160
166
  };
161
167
  return {
@@ -165,9 +171,10 @@ export function reducePointerCoalescer(state, input) {
165
171
  },
166
172
  events: shouldForward ? [{
167
173
  kind: 'move',
168
- pointerId: input.pointerId,
169
- x: input.x,
170
- y: input.y
174
+ pointerId: moveInput.pointerId,
175
+ x: moveInput.x,
176
+ y: moveInput.y,
177
+ stamp: moveInput.stamp
171
178
  }] : []
172
179
  };
173
180
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createPointerCoalescerState","maxMoveIntervalMs","active","undefined","reducePointerCoalescer","state","input","kind","events","pointerId","lastForwardMs","nowMs","pendingMove","x","y","shouldForward","nextActive","createPointerCoalescer","dispatch","transition","coalescer","down","move","flush","up","cancel","reset","Object","freeze"],"sourceRoot":"../../../src","sources":["react/pointerCoalescer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createPointerCoalescerState","maxMoveIntervalMs","active","undefined","reducePointerCoalescer","state","input","kind","events","pointerId","lastForwardMs","nowMs","pendingMove","x","y","stamp","moveInput","shouldForward","nextActive","createPointerCoalescer","dispatch","transition","coalescer","down","move","flush","up","cancel","reset","Object","freeze"],"sourceRoot":"../../../src","sources":["react/pointerCoalescer.ts"],"mappings":"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","ignoreList":[]}
@@ -10,29 +10,17 @@
10
10
  * snapshot without casts.
11
11
  */
12
12
  import { useDerivedValue } from 'react-native-reanimated';
13
+ import { spriteFrameNameForClip } from "../../sprites/sampleSpriteClip.js";
13
14
  import { Sprite } from "./Sprite.js";
14
15
 
16
+ /** Re-exported from the single sampler contract (GS-ANIMATION-01). */
17
+ import { jsx as _jsx } from "react/jsx-runtime";
18
+ export { spriteFrameNameForClip };
19
+
15
20
  /** Interpolation context for the select mapper. */
16
21
 
17
22
  /** The discrete + interpolated presentation selection. */
18
- import { jsx as _jsx } from "react/jsx-runtime";
19
- /**
20
- * Select the frame name for a clip + elapsed time (loop/once semantics).
21
- * Reads the descriptor's animation table; the result is resolved against
22
- * the frame rectangles by the caller. Reuses the pure sampler's semantics.
23
- */
24
- export function spriteFrameNameForClip(animations, clip, elapsedMs) {
25
- 'worklet';
26
23
 
27
- const animation = animations[clip];
28
- if (animation === undefined || animation.frames.length === 0) {
29
- return clip;
30
- }
31
- const duration = animation.frameDurationMs;
32
- const count = animation.frames.length;
33
- const index = animation.mode === 'once' ? Math.min(Math.floor(elapsedMs / duration), count - 1) : Math.floor(elapsedMs / duration) % count;
34
- return animation.frames[index] ?? animation.frames[0] ?? clip;
35
- }
36
24
  export function GameSprite({
37
25
  scene,
38
26
  commit,
@@ -1 +1 @@
1
- {"version":3,"names":["useDerivedValue","Sprite","jsx","_jsx","spriteFrameNameForClip","animations","clip","elapsedMs","animation","undefined","frames","length","duration","frameDurationMs","count","index","mode","Math","min","floor","GameSprite","scene","commit","alpha","source","anchor","select","selection","envelope","value","current","context","previous","x","y","rotation","scale","opacity","flipX","flipY","visible","frameName","selectionValue","frame","descriptor","kind","sheet","animated","props"],"sourceRoot":"../../../../src","sources":["react/sprites/GameSprite.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useDerivedValue","spriteFrameNameForClip","Sprite","jsx","_jsx","GameSprite","scene","commit","alpha","source","anchor","select","selection","envelope","value","undefined","current","context","previous","x","y","rotation","scale","opacity","flipX","flipY","visible","frameName","selectionValue","frame","clip","descriptor","kind","sheet","animations","elapsedMs","animated","props"],"sourceRoot":"../../../../src","sources":["react/sprites/GameSprite.tsx"],"mappings":"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","ignoreList":[]}