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
@@ -5,10 +5,11 @@ import { StyleSheet, View } from 'react-native';
5
5
  import { GestureDetector, GestureStateManager, useManualGesture } from 'react-native-gesture-handler';
6
6
  import { useFrameCallback, useSharedValue } from 'react-native-reanimated';
7
7
  import { scheduleOnRN } from 'react-native-worklets';
8
- import { GameViewportContext } from "./GameView.js";
8
+ import { GameCameraContext, GameViewportContext } from "./GameView.js";
9
9
  import { canBeginPrimaryPointer, cancelOnActiveFinalize, deactivateAfterUp, reduceSamplerMirrorState, samplerMirrorFromBatch } from "./gestureLifecycle.js";
10
10
  import { isBeginAllowed } from "./pointerContainment.js";
11
11
  import { createPointerCoalescerState, reducePointerCoalescer } from "./pointerCoalescer.js";
12
+ import { packetCameraFor } from "./pointerCamera.js";
12
13
  import { PointerBinding } from "./pointerBinding.js";
13
14
 
14
15
  /** Declared pointer action names of an input map. */
@@ -41,7 +42,8 @@ function TrailingFlushSampler({
41
42
  instrumentation,
42
43
  layoutEpoch,
43
44
  forwardSeq,
44
- generation
45
+ generation,
46
+ camera
45
47
  }) {
46
48
  // F2 acceptance: report the sampler's mounted lifecycle so the lab can
47
49
  // prove no idle frame callback survives pointer exit, replacement, or
@@ -68,7 +70,11 @@ function TrailingFlushSampler({
68
70
  generation,
69
71
  layoutEpoch: layoutEpoch.value,
70
72
  seq: forwardSeq.value,
71
- atMs: Date.now()
73
+ atMs: Date.now(),
74
+ // The deferred move carries the stamp captured at ITS native
75
+ // sample (T12-RF3, T12-SF1) — never the flush-time camera, and a
76
+ // captured undefined stays undefined.
77
+ camera: packetCameraFor(forwarded, camera?.value)
72
78
  });
73
79
  }
74
80
  });
@@ -102,6 +108,11 @@ export function GamePointerInput({
102
108
  if (viewportContext === null) {
103
109
  throw new Error('GamePointerInput must be rendered inside a GameView');
104
110
  }
111
+ // T12.4: the adapter discovers the presented camera from the mounted
112
+ // surface (never a repeated prop), so renderer and input share the same
113
+ // generation. Games without a camera get the exact current viewport path.
114
+ const cameraContext = useContext(GameCameraContext);
115
+ const presentedCamera = cameraContext?.presented;
105
116
  const viewportShared = viewportContext.viewport;
106
117
  const maxMoveIntervalMs = game.getRenderFrame().stepMs;
107
118
  const coalescerState = useSharedValue(() => createPointerCoalescerState(maxMoveIntervalMs));
@@ -113,6 +124,10 @@ export function GamePointerInput({
113
124
  // stamp packets with that same generation, so the packet producer and
114
125
  // consumer agree by construction — no post-commit synchronization.
115
126
  const binding = useMemo(() => new PointerBinding(action, game.input, () => viewportBinding.resolved, nextBindingGeneration++), [action, game, viewportBinding]);
127
+ // T12-F4: the presented camera is sampled at EVENT TIME inside the touch
128
+ // worklets and stamped onto every packet; the binding inverts through
129
+ // that stamp, never a later JS-side read.
130
+ const cameraShared = presentedCamera;
116
131
  const generation = binding.generation;
117
132
  // F6/F3: the layout epoch is adapter-owned (ref + UI mirror), bumped only
118
133
  // on layout revisions and unmount; it never resets, so replacement cannot
@@ -139,6 +154,33 @@ export function GamePointerInput({
139
154
  setSamplerState(previous => reduceSamplerMirrorState(generation, previous, next));
140
155
  }, [generation]);
141
156
 
157
+ // T10.4: the pause transition clears the UI-side coalescer queue for the
158
+ // active stream (the core input buffer already cancelled ownership), so a
159
+ // pre-pause pointer can never flush stale moves after resume. The gesture
160
+ // itself is not remounted and its key does not change.
161
+ // GS-INPUT-04: pause also advances the packet epoch (queued pre-pause
162
+ // packets die at RN ingress) and clears the React sampler mirror, so the
163
+ // trailing sampler unmounts even when no coalescer event ever arrives to
164
+ // finalize it. A fresh down is required after resume.
165
+ useEffect(() => {
166
+ if (game.status === 'disposed') {
167
+ return;
168
+ }
169
+ const subscription = game.addStatusListener(status => {
170
+ if (status === 'paused') {
171
+ coalescerState.value = createPointerCoalescerState(maxMoveIntervalMs);
172
+ bumpLayoutEpoch();
173
+ setSamplerState(previous => reduceSamplerMirrorState(generation, previous, {
174
+ generation,
175
+ active: false
176
+ }));
177
+ }
178
+ });
179
+ return () => {
180
+ subscription.remove();
181
+ };
182
+ }, [bumpLayoutEpoch, coalescerState, game, generation, maxMoveIntervalMs]);
183
+
142
184
  // F2 review: `autostart` is only consulted at creation (changing it later
143
185
  // re-registers but never activates) and `setActive` from an effect proved
144
186
  // unreliable in this stack, so the sampler is a conditionally mounted
@@ -154,10 +196,14 @@ export function GamePointerInput({
154
196
  // layout die here, before the binding sees them.
155
197
  if (packet.layoutEpoch !== layoutEpochRef.current) {
156
198
  instrumentation?.onDispatchResult?.(packet.seq, packet.atMs, false);
199
+ instrumentation?.onDispatchRejected?.('layout-epoch', packet.seq, packet.atMs);
157
200
  return;
158
201
  }
159
202
  const accepted = binding.dispatch(packet);
160
203
  instrumentation?.onDispatchResult?.(packet.seq, packet.atMs, accepted);
204
+ if (!accepted) {
205
+ instrumentation?.onDispatchRejected?.('binding', packet.seq, packet.atMs);
206
+ }
161
207
  }, [binding, instrumentation]);
162
208
  const handleTouchesDown = useCallback(event => {
163
209
  'worklet';
@@ -194,7 +240,8 @@ export function GamePointerInput({
194
240
  generation,
195
241
  layoutEpoch: layoutEpoch.value,
196
242
  seq: forwardSeq.value,
197
- atMs: Date.now()
243
+ atMs: Date.now(),
244
+ camera: cameraShared?.value
198
245
  });
199
246
  }
200
247
  const nextActive = samplerMirrorFromBatch(batch);
@@ -205,7 +252,7 @@ export function GamePointerInput({
205
252
  });
206
253
  }
207
254
  GestureStateManager.activate(event.handlerTag);
208
- }, [coalescerState, forwardEventOnJS, generation, instrumentation, layoutEpoch, reportSamplerState, viewportShared]);
255
+ }, [cameraShared, coalescerState, forwardEventOnJS, generation, instrumentation, layoutEpoch, reportSamplerState, viewportShared]);
209
256
  const handleTouchesMove = useCallback(event => {
210
257
  'worklet';
211
258
 
@@ -216,7 +263,11 @@ export function GamePointerInput({
216
263
  pointerId: touch.id,
217
264
  x: touch.x,
218
265
  y: touch.y,
219
- nowMs: Date.now()
266
+ nowMs: Date.now(),
267
+ stamp: {
268
+ captured: true,
269
+ value: cameraShared?.value
270
+ }
220
271
  });
221
272
  for (const forwarded of batch) {
222
273
  instrumentation?.onForwarded?.(forwarded.kind, 'pointerId' in forwarded ? forwarded.pointerId : -1, Date.now());
@@ -226,11 +277,12 @@ export function GamePointerInput({
226
277
  generation,
227
278
  layoutEpoch: layoutEpoch.value,
228
279
  seq: forwardSeq.value,
229
- atMs: Date.now()
280
+ atMs: Date.now(),
281
+ camera: packetCameraFor(forwarded, cameraShared?.value)
230
282
  });
231
283
  }
232
284
  }
233
- }, [coalescerState, forwardEventOnJS, generation, instrumentation, layoutEpoch]);
285
+ }, [cameraShared, coalescerState, forwardEventOnJS, generation, instrumentation, layoutEpoch]);
234
286
  const handleTouchesUp = useCallback(event => {
235
287
  'worklet';
236
288
 
@@ -252,7 +304,8 @@ export function GamePointerInput({
252
304
  generation,
253
305
  layoutEpoch: layoutEpoch.value,
254
306
  seq: forwardSeq.value,
255
- atMs: Date.now()
307
+ atMs: Date.now(),
308
+ camera: packetCameraFor(forwarded, cameraShared?.value)
256
309
  });
257
310
  }
258
311
  const mirror = samplerMirrorFromBatch(batch);
@@ -269,7 +322,7 @@ export function GamePointerInput({
269
322
  if (deactivateAfterUp(event.numberOfTouches)) {
270
323
  GestureStateManager.deactivate(event.handlerTag);
271
324
  }
272
- }, [coalescerState, forwardEventOnJS, generation, instrumentation, layoutEpoch, reportSamplerState]);
325
+ }, [cameraShared, coalescerState, forwardEventOnJS, generation, instrumentation, layoutEpoch, reportSamplerState]);
273
326
  const handleTouchesCancel = useCallback(() => {
274
327
  'worklet';
275
328
 
@@ -286,7 +339,8 @@ export function GamePointerInput({
286
339
  generation,
287
340
  layoutEpoch: layoutEpoch.value,
288
341
  seq: forwardSeq.value,
289
- atMs: Date.now()
342
+ atMs: Date.now(),
343
+ camera: cameraShared?.value
290
344
  });
291
345
  }
292
346
  const nextActive = samplerMirrorFromBatch(batch);
@@ -296,7 +350,7 @@ export function GamePointerInput({
296
350
  active: nextActive
297
351
  });
298
352
  }
299
- }, [coalescerState, forwardEventOnJS, generation, instrumentation, layoutEpoch, reportSamplerState]);
353
+ }, [cameraShared, coalescerState, forwardEventOnJS, generation, instrumentation, layoutEpoch, reportSamplerState]);
300
354
  const handleFinalize = useCallback(() => {
301
355
  'worklet';
302
356
 
@@ -316,7 +370,8 @@ export function GamePointerInput({
316
370
  generation,
317
371
  layoutEpoch: layoutEpoch.value,
318
372
  seq: forwardSeq.value,
319
- atMs: Date.now()
373
+ atMs: Date.now(),
374
+ camera: cameraShared?.value
320
375
  });
321
376
  }
322
377
  const nextActive = samplerMirrorFromBatch(batch);
@@ -355,11 +410,13 @@ export function GamePointerInput({
355
410
  // flight become harmless no-ops, neutralize old input ownership exactly
356
411
  // once, reset the coalescer, remove the old sampler (generation
357
412
  // mismatch makes it inactive by construction), and dispose the binding.
413
+ // The mirror reset bails out when already inactive so cleanup never
414
+ // schedules redundant renders (GS-INPUT-04).
358
415
  bumpLayoutEpoch();
359
- setSamplerState({
416
+ setSamplerState(previous => previous.active ? {
360
417
  generation: -1,
361
418
  active: false
362
- });
419
+ } : previous);
363
420
  if (game.status !== 'disposed') {
364
421
  binding.cancel();
365
422
  }
@@ -377,7 +434,8 @@ export function GamePointerInput({
377
434
  instrumentation: instrumentation,
378
435
  layoutEpoch: layoutEpoch,
379
436
  forwardSeq: forwardSeq,
380
- generation: generation
437
+ generation: generation,
438
+ camera: cameraShared
381
439
  }) : null
382
440
  })
383
441
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useContext","useEffect","useMemo","useRef","useState","StyleSheet","View","GestureDetector","GestureStateManager","useManualGesture","useFrameCallback","useSharedValue","scheduleOnRN","GameViewportContext","canBeginPrimaryPointer","cancelOnActiveFinalize","deactivateAfterUp","reduceSamplerMirrorState","samplerMirrorFromBatch","isBeginAllowed","createPointerCoalescerState","reducePointerCoalescer","PointerBinding","jsx","_jsx","nextBindingGeneration","advanceSharedCoalescer","sharedState","input","transition","value","state","events","TrailingFlushSampler","coalescerState","forwardEventOnJS","instrumentation","layoutEpoch","forwardSeq","generation","instrumentationRef","current","onSamplerChanged","batch","kind","nowMs","Date","now","forwarded","onForwarded","pointerId","seq","atMs","GamePointerInput","game","action","viewportContext","Error","viewportShared","viewport","maxMoveIntervalMs","getRenderFrame","stepMs","viewportBinding","binding","resolved","layoutEpochRef","bumpLayoutEpoch","samplerState","setSamplerState","active","reportSamplerState","next","previous","packet","onDispatchResult","accepted","dispatch","handleTouchesDown","event","touch","changedTouches","undefined","onRawTouch","id","numberOfTouches","x","y","fail","handlerTag","nextActive","activate","handleTouchesMove","handleTouchesUp","mirror","deactivate","handleTouchesCancel","handleFinalize","gestureConfig","shouldCancelWhenOutside","onTouchesDown","onTouchesMove","onTouchesUp","onTouchesCancel","onFinalize","gesture","unsubscribeLayout","subscribe","status","cancel","dispose","children","style","absoluteFill"],"sourceRoot":"../../../src","sources":["react/GamePointerInput.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useContext","useEffect","useMemo","useRef","useState","StyleSheet","View","GestureDetector","GestureStateManager","useManualGesture","useFrameCallback","useSharedValue","scheduleOnRN","GameCameraContext","GameViewportContext","canBeginPrimaryPointer","cancelOnActiveFinalize","deactivateAfterUp","reduceSamplerMirrorState","samplerMirrorFromBatch","isBeginAllowed","createPointerCoalescerState","reducePointerCoalescer","packetCameraFor","PointerBinding","jsx","_jsx","nextBindingGeneration","advanceSharedCoalescer","sharedState","input","transition","value","state","events","TrailingFlushSampler","coalescerState","forwardEventOnJS","instrumentation","layoutEpoch","forwardSeq","generation","camera","instrumentationRef","current","onSamplerChanged","batch","kind","nowMs","Date","now","forwarded","onForwarded","pointerId","seq","atMs","GamePointerInput","game","action","viewportContext","Error","cameraContext","presentedCamera","presented","viewportShared","viewport","maxMoveIntervalMs","getRenderFrame","stepMs","viewportBinding","binding","resolved","cameraShared","layoutEpochRef","bumpLayoutEpoch","samplerState","setSamplerState","active","reportSamplerState","next","previous","status","subscription","addStatusListener","remove","packet","onDispatchResult","onDispatchRejected","accepted","dispatch","handleTouchesDown","event","touch","changedTouches","undefined","onRawTouch","id","numberOfTouches","x","y","fail","handlerTag","nextActive","activate","handleTouchesMove","stamp","captured","handleTouchesUp","mirror","deactivate","handleTouchesCancel","handleFinalize","gestureConfig","shouldCancelWhenOutside","onTouchesDown","onTouchesMove","onTouchesUp","onTouchesCancel","onFinalize","gesture","unsubscribeLayout","subscribe","cancel","dispose","children","style","absoluteFill"],"sourceRoot":"../../../src","sources":["react/GamePointerInput.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,8 +6,11 @@ import { AppState, StyleSheet, View } from 'react-native';
6
6
  import { useFrameCallback, useSharedValue } from 'react-native-reanimated';
7
7
  import { scheduleOnRN } from 'react-native-worklets';
8
8
  import { advanceAlpha } from "./alphaClock.js";
9
+ import { usePresentedCameraBinding } from "./camera2d/usePresentedCameraBinding.js";
9
10
  import { bindAppLifecycle } from "./bindAppLifecycle.js";
10
11
  import { bindGameSession } from "./bindGameSession.js";
12
+ import { createCleanupList } from "./cleanupList.js";
13
+ import { createGameLifecycleSource, GameLifecycleProvider } from "./lifecycleSource.js";
11
14
  import { bindingForViewport } from "./viewportBinding.js";
12
15
 
13
16
  /** Stable imperative values supplied to a Skia renderer component. */
@@ -25,6 +28,16 @@ import { bindingForViewport } from "./viewportBinding.js";
25
28
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
29
  export const GameViewportContext = /*#__PURE__*/createContext(null);
27
30
 
31
+ /**
32
+ * Context supplying the presented camera to pointer input children.
33
+ *
34
+ * The shared value is owned by `GameView` (fed by the per-session
35
+ * presentation), so renderer and pointer adapter observe the same camera
36
+ * generation. `undefined` when the game has no camera.
37
+ */
38
+
39
+ export const GameCameraContext = /*#__PURE__*/createContext(null);
40
+
28
41
  /**
29
42
  * Mount a headless GameSession into a Skia canvas.
30
43
  *
@@ -51,12 +64,19 @@ function GamePresentation({
51
64
  assets,
52
65
  renderer,
53
66
  viewportValue,
54
- instrumentationRef
67
+ instrumentationRef,
68
+ instrumentation,
69
+ cameraDefinition,
70
+ presentedCamera
55
71
  }) {
56
72
  const Renderer = renderer;
57
73
  const frame = useSharedValue(() => game.getRenderFrame());
58
74
  const alpha = useSharedValue(0);
59
- const running = useSharedValue(true);
75
+ const cameraBinding = usePresentedCameraBinding(cameraDefinition, presentedCamera);
76
+ // T10.6: the presentation gate mirrors CORE status, not callback-local
77
+ // state — a direct session.pause() freezes presentation too. Idle holds
78
+ // until the binding starts the session.
79
+ const running = useSharedValue(game.status === 'running');
60
80
  // Binding epoch: bumped per (re)subscription so a replacement session whose
61
81
  // revision restarts at zero is still accepted by the UI clock.
62
82
  const epoch = useSharedValue(0);
@@ -66,35 +86,67 @@ function GamePresentation({
66
86
  // report the FIRST UI frame that saw a new commit.
67
87
  const observedRevision = useSharedValue(-1);
68
88
  const observedEpoch = useSharedValue(-1);
89
+ // GS-REACT-01: mirror whether the UI-observation diagnostic is enabled so
90
+ // the frame callback branches BEFORE timestamp reads and RN scheduling.
91
+ // Updated alongside the ref (same effect), never read during render.
92
+ const instrumentationEnabled = useSharedValue(instrumentation?.onUiRevisionObserved !== undefined);
93
+
94
+ // GS-REACT-01: the ref and the UI-side enabled mirror update together so
95
+ // replacing instrumentation never restarts the session and the frame
96
+ // callback can branch before any timestamp read or RN scheduling.
69
97
  useEffect(() => {
70
- epoch.value += 1;
71
- // RF6: the frame is seeded at mount from this session; the keyed remount
72
- // guarantees the renderer below never reads the previous session's frame.
73
- frame.value = game.getRenderFrame();
74
- const cleanupBinding = bindGameSession(game, nextFrame => {
75
- frame.value = nextFrame;
76
- instrumentationRef.current?.onPresentCommit?.(nextFrame.revision, Date.now());
77
- });
78
- const cleanupLifecycle = bindAppLifecycle(AppState, {
79
- getStatus: () => game.status,
80
- pause: () => {
81
- running.value = false;
82
- if (game.status !== 'disposed') {
83
- game.pause();
84
- }
85
- },
86
- resume: () => {
87
- if (game.status !== 'disposed') {
88
- game.start();
89
- running.value = true;
90
- }
91
- }
92
- });
98
+ instrumentationRef.current = instrumentation;
99
+ instrumentationEnabled.value = instrumentation?.onUiRevisionObserved !== undefined;
100
+ }, [instrumentation, instrumentationEnabled, instrumentationRef]);
101
+ useEffect(() => {
102
+ // GS-REACT-02: the mount wiring is one transaction. Every acquired
103
+ // subscription registers its release as it completes, so a failing
104
+ // stage unwinds everything before it; unmount releases all stages in
105
+ // reverse order without stopping at the first failure.
106
+ const cleanups = createCleanupList();
107
+ try {
108
+ epoch.value += 1;
109
+ // RF6: the frame is seeded at mount from this session; the keyed remount
110
+ // guarantees the renderer below never reads the previous session's frame.
111
+ frame.value = game.getRenderFrame();
112
+ // T10.6: subscribe to core status BEFORE the mount-time start, so the
113
+ // idle -> running transition cannot be missed and every lifecycle change
114
+ // (manual pause, app background, error path) drives the same mirror.
115
+ running.value = game.status === 'running';
116
+ const statusSubscription = game.addStatusListener(status => {
117
+ running.value = status === 'running';
118
+ });
119
+ cleanups.add(() => statusSubscription.remove());
120
+ const cleanupBinding = bindGameSession(game, nextFrame => {
121
+ frame.value = nextFrame;
122
+ cameraBinding.commit(nextFrame);
123
+ instrumentationRef.current?.onPresentCommit?.(nextFrame.revision, Date.now());
124
+ });
125
+ cleanups.add(cleanupBinding);
126
+ const cleanupLifecycle = bindAppLifecycle(AppState, {
127
+ getStatus: () => game.status,
128
+ pause: () => {
129
+ if (game.status !== 'disposed') {
130
+ game.pause();
131
+ }
132
+ },
133
+ resume: () => {
134
+ if (game.status !== 'disposed') {
135
+ game.start();
136
+ }
137
+ },
138
+ addStatusListener: listener => game.addStatusListener(listener)
139
+ });
140
+ cleanups.add(cleanupLifecycle);
141
+ cleanups.add(() => cameraBinding.dispose());
142
+ } catch (error) {
143
+ cleanups.releaseAll();
144
+ throw error;
145
+ }
93
146
  return () => {
94
- cleanupLifecycle();
95
- cleanupBinding();
147
+ cleanups.releaseAll();
96
148
  };
97
- }, [epoch, frame, game, running]);
149
+ }, [cameraBinding, epoch, frame, game, running]);
98
150
 
99
151
  // F1: the first UI frame that sees a new commit revision is reported back
100
152
  // to the RN runtime through scheduleOnRN — never by calling the JS hook
@@ -115,7 +167,12 @@ function GamePresentation({
115
167
  if (observedEpoch.value !== epoch.value || observedRevision.value !== envelope.revision) {
116
168
  observedEpoch.value = epoch.value;
117
169
  observedRevision.value = envelope.revision;
118
- scheduleOnRN(reportUiObserved, envelope.revision, Date.now());
170
+ // GS-REACT-01: without an enabled observer there is no timestamp
171
+ // read and no RN scheduling — the disabled path performs no timing
172
+ // reads, packet creation, or cross-runtime calls.
173
+ if (instrumentationEnabled.value) {
174
+ scheduleOnRN(reportUiObserved, envelope.revision, Date.now());
175
+ }
119
176
  }
120
177
  const previousState = {
121
178
  epoch: clockEpoch.value,
@@ -130,11 +187,15 @@ function GamePresentation({
130
187
  clockEpoch.value = nextState.epoch;
131
188
  clockRevision.value = nextState.revision;
132
189
  alpha.value = nextState.alpha;
190
+ cameraBinding.present(alpha.value);
133
191
  });
134
192
  return /*#__PURE__*/_jsx(Renderer, {
135
193
  frame: frame,
136
194
  alpha: alpha,
137
195
  viewport: viewportValue,
196
+ ...(cameraDefinition === undefined ? {} : {
197
+ camera: presentedCamera
198
+ }),
138
199
  ...(assets === undefined ? {} : {
139
200
  assets
140
201
  })
@@ -163,9 +224,14 @@ export function GameView({
163
224
  renderer: Renderer,
164
225
  children,
165
226
  style,
166
- instrumentation
227
+ instrumentation,
228
+ camera2D
167
229
  }) {
168
230
  const instrumentationRef = useRef(instrumentation);
231
+ // T12.3: GameView owns the presented camera shared value so renderer and
232
+ // pointer adapter observe the same generation. Camera movement writes
233
+ // only shared values; React never re-renders for it.
234
+ const presentedCamera = useSharedValue(undefined);
169
235
  const bindingRef = useRef(null);
170
236
  bindingRef.current = bindingForViewport(game.viewport, bindingRef.current);
171
237
  const binding = bindingRef.current;
@@ -174,9 +240,13 @@ export function GameView({
174
240
  binding,
175
241
  viewport: viewportValue
176
242
  }), [binding, viewportValue]);
177
- useEffect(() => {
178
- instrumentationRef.current = instrumentation;
179
- }, [instrumentation]);
243
+ const cameraContext = useMemo(() => ({
244
+ presented: camera2D === undefined ? undefined : presentedCamera
245
+ }), [camera2D, presentedCamera]);
246
+ // T20.3: one lifecycle source per session — replacement sessions replace
247
+ // the source, so consumers bound to the old generation never observe the
248
+ // new one (the presentation subtree is remounted per session, RF6).
249
+ const lifecycle = useMemo(() => createGameLifecycleSource(game), [game]);
180
250
  useEffect(() => {
181
251
  viewportValue.value = binding.resolved;
182
252
  }, [binding, viewportValue]);
@@ -185,33 +255,42 @@ export function GameView({
185
255
  }, [binding]);
186
256
  return /*#__PURE__*/_jsx(GameViewportContext.Provider, {
187
257
  value: viewportContext,
188
- children: /*#__PURE__*/_jsxs(View, {
189
- style: [styles.surface, style],
190
- onLayout: event => {
191
- const {
192
- width,
193
- height
194
- } = event.nativeEvent.layout;
195
- binding.setSurfaceSize({
196
- width,
197
- height
198
- });
199
- viewportValue.value = binding.resolved;
200
- },
201
- children: [/*#__PURE__*/_jsx(Canvas, {
202
- style: StyleSheet.absoluteFill,
203
- children: /*#__PURE__*/_jsx(GamePresentation, {
204
- game: game,
205
- assets: assets,
206
- renderer: Renderer,
207
- viewportValue: viewportValue,
208
- instrumentationRef: instrumentationRef
209
- }, presentationKey ?? sessionPresentationId(game))
210
- }), children === undefined ? null : /*#__PURE__*/_jsx(View, {
211
- pointerEvents: "box-none",
212
- style: StyleSheet.absoluteFill,
213
- children: children
214
- })]
258
+ children: /*#__PURE__*/_jsx(GameCameraContext.Provider, {
259
+ value: cameraContext,
260
+ children: /*#__PURE__*/_jsx(GameLifecycleProvider, {
261
+ value: lifecycle,
262
+ children: /*#__PURE__*/_jsxs(View, {
263
+ style: [styles.surface, style],
264
+ onLayout: event => {
265
+ const {
266
+ width,
267
+ height
268
+ } = event.nativeEvent.layout;
269
+ binding.setSurfaceSize({
270
+ width,
271
+ height
272
+ });
273
+ viewportValue.value = binding.resolved;
274
+ },
275
+ children: [/*#__PURE__*/_jsx(Canvas, {
276
+ style: StyleSheet.absoluteFill,
277
+ children: /*#__PURE__*/_jsx(GamePresentation, {
278
+ game: game,
279
+ assets: assets,
280
+ renderer: Renderer,
281
+ viewportValue: viewportValue,
282
+ instrumentationRef: instrumentationRef,
283
+ instrumentation: instrumentation,
284
+ cameraDefinition: camera2D,
285
+ presentedCamera: presentedCamera
286
+ }, presentationKey ?? sessionPresentationId(game))
287
+ }), children === undefined ? null : /*#__PURE__*/_jsx(View, {
288
+ pointerEvents: "box-none",
289
+ style: StyleSheet.absoluteFill,
290
+ children: children
291
+ })]
292
+ })
293
+ })
215
294
  })
216
295
  });
217
296
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Canvas","createContext","useCallback","useEffect","useMemo","useRef","AppState","StyleSheet","View","useFrameCallback","useSharedValue","scheduleOnRN","advanceAlpha","bindAppLifecycle","bindGameSession","bindingForViewport","jsx","_jsx","jsxs","_jsxs","GameViewportContext","GamePresentation","game","assets","renderer","viewportValue","instrumentationRef","Renderer","frame","getRenderFrame","alpha","running","epoch","clockEpoch","clockRevision","observedRevision","observedEpoch","value","cleanupBinding","nextFrame","current","onPresentCommit","revision","Date","now","cleanupLifecycle","getStatus","status","pause","resume","start","reportUiObserved","atMs","onUiRevisionObserved","frameInfo","envelope","previousState","nextState","stepMs","timeSincePreviousFrame","viewport","undefined","sessionPresentationIds","WeakMap","nextSessionPresentationId","sessionPresentationId","id","get","set","GameView","presentationKey","children","style","instrumentation","bindingRef","binding","viewportContext","resolved","dispose","Provider","styles","surface","onLayout","event","width","height","nativeEvent","layout","setSurfaceSize","absoluteFill","pointerEvents","create","overflow"],"sourceRoot":"../../../src","sources":["react/GameView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Canvas","createContext","useCallback","useEffect","useMemo","useRef","AppState","StyleSheet","View","useFrameCallback","useSharedValue","scheduleOnRN","advanceAlpha","usePresentedCameraBinding","bindAppLifecycle","bindGameSession","createCleanupList","createGameLifecycleSource","GameLifecycleProvider","bindingForViewport","jsx","_jsx","jsxs","_jsxs","GameViewportContext","GameCameraContext","GamePresentation","game","assets","renderer","viewportValue","instrumentationRef","instrumentation","cameraDefinition","presentedCamera","Renderer","frame","getRenderFrame","alpha","cameraBinding","running","status","epoch","clockEpoch","clockRevision","observedRevision","observedEpoch","instrumentationEnabled","onUiRevisionObserved","undefined","current","value","cleanups","statusSubscription","addStatusListener","add","remove","cleanupBinding","nextFrame","commit","onPresentCommit","revision","Date","now","cleanupLifecycle","getStatus","pause","resume","start","listener","dispose","error","releaseAll","reportUiObserved","atMs","frameInfo","envelope","previousState","nextState","stepMs","timeSincePreviousFrame","present","viewport","camera","sessionPresentationIds","WeakMap","nextSessionPresentationId","sessionPresentationId","id","get","set","GameView","presentationKey","children","style","camera2D","bindingRef","binding","viewportContext","cameraContext","presented","lifecycle","resolved","Provider","styles","surface","onLayout","event","width","height","nativeEvent","layout","setSurfaceSize","absoluteFill","pointerEvents","create","overflow"],"sourceRoot":"../../../src","sources":["react/GameView.tsx"],"mappings":"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","ignoreList":[]}